public

POST /v1/pay/partner/{token}

Pay a partner's domain order on our checkout. Unauthenticated.

All public endpoints

All developer docs →

Authentication

This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X POST https://api.zinndigital.com/v1/pay/partner/{token} \
  -H "Content-Type: application/json" \
  -d '{  }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

With an empty body or {"rail": …}: the chosen rail is opened. Card gives a card-setup client_token (status: setup_required, nothing charged); PayPal gives a paypal_order_id for the wallet overlay (status: paypal_approval_required, nothing charged); crypto gives a redirect_url to the vendor invoice. With setup_intent_id, after the card form is confirmed: the card is re-read from the gateway, refused unless it belongs to this order's organization, recorded, and charged. With paypal_order_id, after the buyer approved: PayPal is asked to capture — the browser is never believed. When the order is paid, return_url is the partner's URL to send the browser to. ⛔ Nothing here decides an order is paid — the capture and the gateway webhook do, as for every order. A refusal the payer can act on is a 409 carrying its sentence.

Parameters

NameTypeRequiredWhat it is
token (path)stringYes—

Request body

NameTypeRequiredWhat it is
railstringNoThe rail the payer chose, from the rails the GET offered. Omitted means the default. A rail this order cannot settle on is refused with a sentence — it is never silently…
setup_intent_idstringNo—
paypal_order_idstringNo—

Response

NameTypeRequiredWhat it is
statusstringYes—
settledbooleanYes—
client_tokenstringYesA card-form client secret for the browser SDK, when one is needed.
setup_intent_idstringYes—
redirect_urlstringYesWhere to send the browser to approve the payment on a rail that finishes off-site — a crypto invoice today. Empty on the card and PayPal rails, both of which finish on this page.
action_kindstringYes—
paypal_order_idstringYesThe PayPal order the browser's SDK attaches to, on the PayPal rail. Minted by us — an id a client invents is refused by the gateway, not honoured.
railstringYesWhich rail this step belongs to (stripe, paypal, nowpayments).
return_urlstringYesThe partner URL to send the browser to

Errors this endpoint can return

404 · 409 · 422 · 429