publ betaReference (MCP guide)
Open publ console

publ Reference

channel_points_handoff — Prepare an original-console point action

Use this to select a human action after observing its current channel context and attempting the applicable prerequisites. An owner or delegate with MANAGE_MONETIZATION must be connected to the channel. The source hosted selected-channel allowlist requires the exact channelCode; account scope excludes this tool.

Inputs are strict: channelCode follows the point reader, and action is a discriminated object. No amount, ratio, price, bank number, provision HTML, credentials, raw URL, requestId, dryRun or task identity is accepted.

action.kind Additional fields Prerequisite observation / console destination
setup None Stable setup preset; Channel Point home/onboarding container.
policy None Branding/context; policy settings. Does not read the settings form.
provisions None Branding/context; provision edit screen. Does not read provision contents.
create-product None Branding/context; charge-product list/modal.
edit-product, activate-product, deactivate-product, delete-product action.publProductId, action.page, action.limit Stable selected WEB product and parent page; product-list editor.
request-withdrawal None Attempt stable WEB ledger and source screen gate; a bounded source failure can still return the withdrawal request screen after access revalidation.
revise-withdrawal action.ticketId, action.page, action.limit Stable selected ticket and repeated parent; exact withdrawal detail screen.

Identifiers are 1–256 characters with the reader's path/control exclusions. Page defaults to 1 and is a positive safe integer up to 1,000,000. Limit is 15/30/50/100 and defaults to 15.

{"channelCode":"selected-channel-code","action":{"kind":"setup"}}
{"channelCode":"selected-channel-code","action":{"kind":"policy"}}
{"channelCode":"selected-channel-code","action":{"kind":"provisions"}}
{"channelCode":"selected-channel-code","action":{"kind":"create-product"}}
{"channelCode":"selected-channel-code","action":{"kind":"edit-product","publProductId":"observed-product-id","page":1,"limit":15}}
{"channelCode":"selected-channel-code","action":{"kind":"activate-product","publProductId":"observed-product-id"}}
{"channelCode":"selected-channel-code","action":{"kind":"deactivate-product","publProductId":"observed-product-id"}}
{"channelCode":"selected-channel-code","action":{"kind":"delete-product","publProductId":"observed-product-id"}}
{"channelCode":"selected-channel-code","action":{"kind":"request-withdrawal"}}

Select the ticket from the explicit observed parent page:

{"channelCode":"selected-channel-code","action":{"kind":"revise-withdrawal","ticketId":"observed-ticket-id","page":1,"limit":15}}

Successful preparation returns action_required / POINT_HUMAN_ACTION_REQUIRED, action, observed data, writesPerformed:false, humanAction.submitted:false and verification.confirmed:false / prerequisitesObserved:true / financialActionCompleted:false. It rechecks branding except for setup and checks selected context. This is human guidance, not a promise that the console permits the requested action. The source offers bank edits for REQUESTED tickets; the bridge does not execute or reserve them. Demo omits real console links.

For request-withdrawal, setup, create-product, policy or provisions, a bounded prerequisite failure can return action_required / POINT_WITHDRAWAL_CONSOLE_REQUIRED (withdrawal) or POINT_CONSOLE_REQUIRED (the other four actions) after a fresh channel/actor/permission/credential context comparison. Eligible error codes are UPSTREAM_HTTP_404, UPSTREAM_HTTP_5xx, UPSTREAM_UNREACHABLE, POINT_RESPONSE_UNVERIFIED and POINT_RESPONSE_TOO_LARGE. This covers applicable setup-preset, branding or ledger observations without requiring a verified financial state. The result contains the exact selected destination (home/onboarding, charge products, policy settings, provision edit or withdrawal request), action, prerequisiteError.code, eligibility:not-observed, writesPerformed:false, humanAction.submitted:false and verification.confirmed:false / prerequisitesObserved:false / channelAccessObserved:true / financialActionCompleted:false. No partial observed balance or invented financial data is returned.

Initial or repeated authentication/permission/context failures still reject. Currency, channel and identity mismatches are not part of this fallback. Selected-product actions and revise-withdrawal retain their original prerequisite failures; a selected product or ticket is never accepted through this unselected-screen exception.

Other preparation exceptions return the error envelope with screenId and environment, without channel, consoleUrl, observed, humanAction or the successful verification fields. writesPerformed:false is not an error-envelope guarantee. Resolve the reported failure before retrying.

Reader errors and handoff errors outside the bounded exception remain failures; missing branding never becomes inactive. After the person acts, repeat the corresponding get view. Do not call task_status/task_resume to replay a financial action: this tool creates no job. Issuance, correction, reclaim, waiver, purchase and financial submission remain with the person in the original service.

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.

Inputs

Field Required here Contract
action Yes one of: setup, create-product, edit-product, activate-product, deactivate-product, policy, provisions, request-withdrawal, revise-withdrawal (by kind)
action.publProductId Yes When action.kind is edit-product: string; min length 1; max length 256
action.page No When action.kind is edit-product: integer; maximum 1000000; greater than 0; default 1
action.limit No When action.kind is edit-product: 15 or 30 or 50 or 100; default 15
action.publProductId Yes When action.kind is activate-product: string; min length 1; max length 256
action.page No When action.kind is activate-product: integer; maximum 1000000; greater than 0; default 1
action.limit No When action.kind is activate-product: 15 or 30 or 50 or 100; default 15
action.publProductId Yes When action.kind is deactivate-product: string; min length 1; max length 256
action.page No When action.kind is deactivate-product: integer; maximum 1000000; greater than 0; default 1
action.limit No When action.kind is deactivate-product: 15 or 30 or 50 or 100; default 15
action.ticketId Yes When action.kind is revise-withdrawal: string; min length 1; max length 256
action.page No When action.kind is revise-withdrawal: integer; maximum 1000000; greater than 0; default 1
action.limit No When action.kind is revise-withdrawal: 15 or 30 or 50 or 100; default 15