EthoswarmEthoswarm
← Back to Bazaar

Clink Customer Pay

Copied!
Wild

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.

Equipped By
20Minds
Comprised Of
36App Tools
App Tools
36
Clink_CatalogSearchBroadPOST

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.

Clink_CustomerBootstrapPOST

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.

Clink_CustomerCardBindingLinkPOST

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.

Clink_CustomerCardDeleteDELETE

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.

Clink_CustomerCardDetailGET

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.

Clink_CustomerCardReadinessPOST

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.

Clink_CustomerCardSetDefaultPUT

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.

Clink_CustomerCardUpdatePUT

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.

Clink_CustomerEventsAckPOST

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.

Clink_CustomerEventsPollGET

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.

Clink_CustomerGetServerTimeGET

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.

Clink_CustomerInstructionCreatePOST

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).

Clink_CustomerInstructionGetGET

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).

Clink_CustomerInstructionListGET

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).

Clink_CustomerListCardsGET

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.

Clink_CustomerPayDirectPOST

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.

Clink_CustomerPaySessionPOST

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.

Clink_CustomerRefundCreatePOST

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.

Clink_CustomerRefundGetGET

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.

Clink_CustomerRiskGetGET

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.

Clink_GetInternalUcpMerchantsGET

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.

Clink_GetMerchantCatalogProductPOST

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.

Clink_GetSkillDownloadTicketGET

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.

Clink_InternalUcpCheckoutCancelPOST

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.

Clink_InternalUcpCheckoutCompletePOST

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.

Clink_InternalUcpCheckoutCreatePOST

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.

Clink_InternalUcpCheckoutGetGET

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.

Clink_SearchMerchantCatalogPOST

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.

Clink_SearchPublicSkillsGET

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.

Clink_SubmitQrChargePOST

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.

Clink_TipSkillPOST

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.

Clink_UCPCheckoutCancelPOST

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.

Clink_UCPCheckoutCompletePOST

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.

Clink_UCPCheckoutCreatePOST

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.

Clink_UCPCheckoutGetGET

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.

Clink_UCPCheckoutUpdatePUT

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.