publ betaReference (MCP guide)
Open publ console

publ Reference

Channel Point reads, configuration and human actions

channel_points_get selects policy, products, setup presets, a product, issuance/records, WEB ledger/history or withdrawals/detail. OWNER or explicit MANAGE_MONETIZATION delegation is required.

Use current discovery, choose the exact view, retain raw_CP and source monetary strings, and report coverage. Source errors, missing branding and malformed records do not mean inactive points, an empty inventory or a zero balance. The policy/products views keep their narrower observation flags; new finance views use CHANNEL_POINT_SCREEN. The products view repeats the exact page and returns productsRevision only for a valid page; selected product detail also verifies repeated parent/detail observations. Do not apply one view's confirmation scope to another.

Data Source service / route under /seller/api/v1/ Binding and boundary
Branding, configuration, policy and WEB products Core channel-management/in-channel-store/branded-point-system/ Original stored settings/list views.
Setup preset Core branded-point-system/preset under the same prefix No branding read or activation inference.
Product detail Core branded-point-system/point-products/{publProductId} target_platform=WEB; must match observed parent page.
Ledger/history Core branded-point-system/ledgers/web and ledger-transaction-records WEB and base currency; history page/limit, inserted_at descending.
Withdrawals/detail Core branded-point-system/ledger-withdrawal-tickets[/ticketId] WEB, masked account number, stable parent/list/detail agreement.
Issuance Separate POINT channel-point-management/issuance-summary Operator-configured separate origin; no core fallback.
Issuance/consumption records Separate POINT channel-point-management/issuance-records or consumption-records Unpaged source capped at 2 MiB/1,000 rows, returned subset at most 100; no CSV or complete inventory claim.

All reader finance transport calls are GET. Reads and console handoffs change no policy, products, balances or bank details; the supported configuration writers below have separate write and recovery contracts. setup-options can be observed without establishing whether the channel has completed setup.

The console prefix is /channels/{code}/monetization/channel-point/. Destinations are point-issuance-status, policy-setting, policy-setting/provision/edit, charge-products, withdrawal-request, withdrawal-request/history and withdrawal-processing-history[/ticketId]. Product editors and onboarding open within their source containers; no invented edit/create URL is used. After the person acts, reread the corresponding view. There is no point-finance task type, financial replay or automatic traversal. Configuration tasks are separate: point-settings, point-provisions and point-products.

Withdrawal uses POINT_WITHDRAWAL_CONSOLE_REQUIRED; the other four use POINT_CONSOLE_REQUIRED. They preserve prerequisiteError.code and mark eligibility:not-observed / prerequisitesObserved:false without projecting partial data or submitting changes. Selected-product actions and revise-withdrawal retain their identity checks and have no such fallback. Read the handoff contract for the exact error allowlist.

Product-list page navigation

The products result includes consoleView with the destination page, limit and exactMatch. Valid pages preserve the API selection in the single console URL. For a page beyond the observed total, the bridge opens a known first-list parent at page1/limit15 with exactMatch:false and a navigation notice. The source has both a last-page effect and a first-page invalid-page redirect; their actual rendering order is not inferred. Returned API productQuery, pagination, empty records and coverage are unchanged; the parent link must not be presented as the same returned empty API page. Re-select a page in the console if needed.

Navigation validates the selected WEB query, row count and unique identities, pagination, coverage, verification and exact URL. A substituted page/filter/target or missing evidence produces no destination. This does not change source requests, product prices/state, branding checks, role/scope rules or financial actions. Policy and the separate product-detail/financial views keep their own contracts. Actual console click-through and populated service observations remain separate.

Finance page and selected-record navigation

Successful finance reads keep the existing string view and additionally return normalized selection. Successful observed human handoffs return their normalized action as selection; unavailable-prerequisite fallbacks retain their prior shape.

ledger-history and withdrawals preserve the requested page and limit in the single console address. Their consoleView reports the destination page, limit and exactMatch. An empty API page beyond the observed total keeps its original pagination and records while navigation explicitly opens the first parent list at page1/limit15 with exactMatch:false. It is not the returned empty API page. An empty first page remains an exact list destination. No second page is fetched.

Selected product reads and edit/activate/deactivate/delete-product handoffs keep the verified parent page/limit. Their navigation relation is parent even when that list page matches exactly: select the observed product row to open its editor. No product modal deep link or completed financial action is inferred. withdrawal-detail and revise-withdrawal instead open the exact observed ticket route with target navigation and no list queries. Bank masking remains in place; source bank-edit availability still depends on REQUESTED status.

The navigation boundary binds normalized selection, page/count/coverage, row identity, financial currency and the selected product or ticket projection. Mismatched selection, target, page, verification or destination suppresses the address. Unselected human destinations and missing-prerequisite fallbacks retain their existing source screens and financial-action boundaries.

Editable policy switches

channel_points_get policy now returns configurationRevision. Use channel_point_settings_apply for individual-content point priority and purchase-based restriction resolution. The other three source-disabled switches are preserved. This supersedes older blanket settings-handoff statements in this document; onboarding, products, and financial actions remain separate boundaries. Localized provision editing is described below.

Human-reviewed point provisions

The policy read now also returns provisionsRevision and the four editable localized refund/usage field names. Use the existing channel_point_settings_apply with provisions instead of settings, dry-run the complete resulting text, and obtain human review before passing its contentHash as humanReviewedContentHash. Common/redemption policies and configuration remain unchanged. The writer validates the receipt and independent readback, with read-only point-provisions task recovery and no repeated uncertain POST. This supersedes older provision-editing handoff-only statements; actual-service mutation, same-screen captures and restoration are still unverified.

Existing charge-product changes

The products view now repeats its exact WEB page and returns productsRevision only for a valid source page. Use channel_point_product_apply to edit the source display name/bonus or selected product visibility. The method preserves price/base quantities and unrelated rows, refuses forced-visible hiding, checks independent readback, and never repeats an uncertain source request. Recovery uses point-products. The console address preserves the page/limit; edit opens the observed parent list modal entry. Initial product creation and deletion are not implemented here. This supersedes older existing-product handoff-only statements; actual mutation, restoration and original-console capture pairs remain pending.