Clink Customer Pay
Customer-side Clink payment app via protocol-injected OAuth Bearer (provider=clink). v2.2.0 — checkout-create tools now carry a canonical buyer JSON object (email + optional first_name/last_name/phone_number) per Clink spec, unblocking merchants like eats365 that require buyer fields beyond email. 35 tools covering: UCP external checkout lifecycle, internal merchant-scoped UCP checkout, broad + merchant catalog search, public skills marketplace (list + download ticket), skill tipping and Alipay QR charge (inactive pending consent), wallet bootstrap, card binding & management, direct/session charges, VIC spending instructions, refunds, events, risk rules. Card-management tools served from agent.clinkbill.com.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itBroad/cross-merchant catalog search across all Clink-onboarded merchants without a merchant ID. Anonymous-friendly entry point for discovery; returns product groups grouped by merchant and channel. Money in filtersJson uses minor units (1000 = $10.00). Pass the merchantId from results to Clink_SearchMerchantCatalog.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itInitialize a Clink customer wallet. First call (no OTP) emails a verification code and returns code 71160015; call again with the 6-digit OTP to get customerId and customerAPIKey. With the OAuth flow this is usually handled by wallet init.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGenerate a card binding link the user opens in their own browser (agents never open, preview or fill it). Returns the URL plus current paymentMethodsVoList; the fragment after # is the binding token for card management tools. Completion is proven via Clink_CustomerEventsPoll. CARD STATE WARNING (hard): paymentMethodsVoList may serialize card fields as a compact positional array — NEVER map positional values to readiness booleans (strongAuthReady, visaRegistrationSucceeded, etc.) by position. Readiness decisions use CLINK_CUSTOMER_PAY_Clink_CustomerCardReadiness or explicit named key-value fields only; if the card state is positional-only or ambiguous, STOP before any checkout Complete, report the raw snapshot verbatim, and escalate.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itDelete a payment method from the wallet. Destructive - use only behind explicit user authorization.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet detailed information about one payment method by instrument ID (pi_*). Read-only. bindingToken is sent in the binding-token header, matching the other card tools.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itReturn the authoritative named-field card readiness snapshot. Wired to the exact endpoint Clink's own CLI uses for card readiness (POST /agent/cwallet/card/bindingLink -> data.paymentMethodsVoList; per Clink's contract references/clink-wallet-config.md + lib/strong-auth.mjs, each paymentMethodsVoList entry is a NAMED-FIELD object: paymentInstrumentId (required string), strongAuthReady (Boolean, camelCase authoritative), authProtocol (VISA|MASTERCARD), plus registration fields (strongAuthRegistered, visaRegistrationSucceeded, cardSchemeRegistrationEnabled) and cardLastFour/cardLast4). CARD READINESS RULE (hard): readiness decisions read ONLY explicit named key-value fields from the returned entries — e.g. {"paymentInstrumentId":"...","strongAuthReady":false,"strongAuthRegistered":true,"visaRegistrationSucceeded":false,"cardSchemeRegistrationEnabled":true,"authProtocol":"VISA"}. If an entry exposes no named strongAuthReady Boolean, or readiness values appear only inside a compact positional array, the result is AMBIGUOUS: never map positional values to readiness booleans by position — stop before any checkout Complete, report the raw snapshot verbatim, and escalate. MIXED STATE (strongAuthRegistered=true + strongAuthReady=false + visaRegistrationSucceeded=false) is a provider/Visa readiness mismatch, NOT 'the user did not complete the passkey': refresh once via this tool; if unchanged, stop, surface the exact flags, and escalate — never resend the passkey link blind, never retry the charge. The response also carries a bindingUrl: that page is USER_DEVICE_ONLY — never open, preview or fill it. Read-only diagnostics; generates no charge.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itSet a payment method as the default for future transactions.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itUpdate the billing address of a payment method.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itAcknowledge webhook events returned by Clink_CustomerEventsPoll so they stop reappearing. Pass event IDs as a JSON array.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itPoll pending webhook events for the customer wallet (card binding completion, instruction activation, 3DS order results, charges). Success of any money flow is proven here, never assumed. Acknowledge processed events with Clink_CustomerEventsAck.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet current server time as epoch milliseconds, e.g. before any timestamp-dependent operation. Read-only.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCreate a VIC spending instruction (agent-authorized repeat charges). A Passkey URL may be returned for the user to sign in their own browser; activation is proven via Clink_CustomerEventsPoll plus Clink_CustomerInstructionGet. Mandate keys: currencyCode, description, amountLimit. Path corrected 2026-09-09 per Clink operator: POST /agent/cwallet/instructions (was /agent/cwallet/customer/instruction, which 404s).
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet a VIC spending instruction by ID (ins_*). Use to verify an instruction is ACTIVE before pinning or reusing it; PENDING is never usable. Path aligned 2026-09-09 to corrected instruction base /agent/cwallet/instructions per Clink operator (create path confirmed; list/get alignment pending live verification behind wallet gate).
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itList VIC spending instructions for the customer; the reuse-before-create check for recurring flows. Pass empty strings to skip filters. Path aligned 2026-09-09 to corrected instruction base /agent/cwallet/instructions per Clink operator (create path confirmed; list/get alignment pending live verification behind wallet gate).
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itList all payment methods bound to the customer wallet, with instrument IDs (pi_*) for charges. bindingToken comes from the fragment after # in a Clink_CustomerCardBindingLink URL and is sent in the binding-token header, matching the other card tools. CARD STATE WARNING (hard): card state may be serialized as a compact positional array — NEVER map positional values to readiness booleans (strongAuthReady, visaRegistrationSucceeded, etc.) by position. For readiness decisions use CLINK_CUSTOMER_PAY_Clink_CustomerCardReadiness or explicit named key-value fields only; positional-only or ambiguous card state means STOP before any checkout Complete, report the raw snapshot verbatim, and escalate.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itDirect charge against a saved card using merchant ID, amount, currency. Moves real money - run only behind explicit user authorization for the exact target and amount. If 3DS is required a redirectUrl is returned for the user's browser.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCharge using a pre-created payment session ID. If 3DS is required a redirectUrl is returned for the user's browser; completion is proven by Clink_CustomerEventsPoll. Moves real money - run only behind explicit user authorization for the exact target and amount.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCreate a refund for a completed order. Returns refund details including status; follow up with Clink_CustomerRefundGet. Run only behind explicit user authorization.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet details and status of a specific refund by refund ID (rfd_*). Read-only.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet the customer wallet's risk rules (single recharge limit, daily limit, frequency controls). Read-only; check before proposing large charges.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have it[RETIRED 2026-09-15: endpoint 404s since Sep 1 - dead, never route here] Fetch Clink's public list of onboarded UCP merchants (.well-known/ucp-merchants.json). Feed a merchant id into Clink_SearchMerchantCatalog or the InternalUcpCheckout tools. Anonymous, read-only.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet full detail for one product in a merchant's catalog; body key id = productId from Clink_SearchMerchantCatalog. Anonymous POST with Request-Id tracing header. NOTE: merchants without an exposed catalog return catalog_not_supported - not a tool failure.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet a time-limited download ticket (downloadUrl, expireSeconds, fileName, sizeBytes, optional skillId) for a marketplace skill. Anonymous read-only. publisher and skillName come from Clink_SearchPublicSkills rows; empty versionNo means latest.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCancel an internal UCP checkout session (sets status to cancelled). No body required.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itComplete (charge) an internal UCP checkout session in ready_for_complete status; instrument ID is constructed as customerId#paymentInstrumentId. Moves real money - run only behind explicit user authorization for the exact target and amount.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCreate an internal UCP checkout session scoped to a merchantId (from Clink_GetInternalUcpMerchants). Body mirrors the external create (merchant_url, minor-unit line_items, canonical buyer JSON). Returns a chk_* ID; create is reversible - cancel with Clink_InternalUcpCheckoutCancel.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itRead the status of an internal UCP checkout session (ready_for_complete, complete_in_progress, complete, cancelled) scoped to a merchant. Read-only.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itSearch one merchant's product catalog by merchantId (from Clink_GetInternalUcpMerchants). Anonymous POST with a Request-Id tracing header. Returns matching products; pass a product id to Clink_GetMerchantCatalogProduct. NOTE: merchants without an exposed catalog return catalog_not_supported - not a tool failure.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itList public skills in the Clink marketplace (anonymous, no wallet contact). Rows carry id, publisher, name, category, summary, version, verified and the publisher merchantId. Pass a row's merchantId to Clink_TipSkill; pass publisher/skillName to Clink_GetSkillDownloadTicket. Server caps pageSize at 50.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itStart a charge that renders a payment QR code (e.g. paymentMethodType ALIPAY); the response carries channelPaymentResponse QR image/content and expiry. Session-mode QR is not covered. Moves real money - run only behind explicit user authorization for the exact amount.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itSend a USD tip (1-100) to a marketplace skill publisher via direct card charge. merchantId comes from a Clink_SearchPublicSkills row. Moves real money - run only behind explicit user authorization for the exact amount.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCancel a UCP external checkout session (chk_*). No body required; sets status to cancelled.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itComplete a UCP external checkout session by charging a payment instrument; the session must be ready_for_complete. Moves real money - run only behind explicit user authorization for the exact amount. If 3DS is required, redirect data is returned for the user's browser.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itCreate a UCP external checkout session from a product or merchant URL (custom domain or .myshopify.com). Clink resolves the merchant; returns a chk_* ID for Get/Complete. Line-item prices use MINOR units (1410 = $14.10). buyerJson must include email; merchants like eats365 may also require first_name/last_name/phone_number in the buyer object. Creating is reversible; completing charges the card.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itGet the status of a UCP external checkout session (chk_*): ready_for_complete, complete_in_progress, complete or cancelled. Poll until ready_for_complete before completing.
MUST BE RUN with skillId: 1398533E-F36B-1410-8466-00039CE7DF11 "Clink_Payment_Flows". Equip this skill if you don't have itUpdate a UCP external checkout session (line_items, buyer, shipping_address, metadata). Send only changed fields as a raw JSON body.
Overview
Customer-side Clink payment app via protocol-injected OAuth Bearer (provider=clink). v2.2.0 — checkout-create tools now carry a canonical buyer JSON object (email + optional first_name/last_name/phone_number) per Clink spec, unblocking merchants like eats365 that require buyer fields beyond email. 35 tools covering: UCP external checkout lifecycle, internal merchant-scoped UCP checkout, broad + merchant catalog search, public skills marketplace (list + download ticket), skill tipping and Alipay QR charge (inactive pending consent), wallet bootstrap, card binding & management, direct/session charges, VIC spending instructions, refunds, events, risk rules. Card-management tools served from agent.clinkbill.com. It gives your AI agent 36 built-in tools, including clink catalog search broad, clink customer bootstrap and clink customer card binding link. Apps are free to equip, and once equipped your AI Mind can use Clink Customer Pay automatically while it works. Clink Customer Pay is currently equipped on 20 Minds.
Frequently asked questions
What is Clink Customer Pay?
Customer-side Clink payment app via protocol-injected OAuth Bearer (provider=clink). v2.2.0 — checkout-create tools now carry a canonical buyer JSON object (email + optional first_name/last_name/phone_number) per Clink spec, unblocking merchants like eats365 that require buyer fields beyond email. 35 tools covering: UCP external checkout lifecycle, internal merchant-scoped UCP checkout, broad + merchant catalog search, public skills marketplace (list + download ticket), skill tipping and Alipay QR charge (inactive pending consent), wallet bootstrap, card binding & management, direct/session charges, VIC spending instructions, refunds, events, risk rules. Card-management tools served from agent.clinkbill.com. It bundles 36 tools your AI agent can call on your behalf.
What can Clink Customer Pay do for my AI agent?
Once equipped, your AI Mind can use Clink Customer Pay to clink catalog search broad, clink customer bootstrap, clink customer card binding link, clink customer card delete and clink customer card detail, and more — without you having to do any of it manually.
How do I connect Clink Customer Pay to my AI Mind?
Open Clink Customer Pay in the Ethoswarm Bazaar and select Equip to add it to one of your AI Minds. Your Mind can then use it automatically. Some apps ask you to authorize access the first time they run.
Is Clink Customer Pay free?
Yes — Clink Customer Pay is free to equip on your AI Mind in the Ethoswarm Bazaar.