Create a pay-by-link request-to-pay
Mints a hosted checkout link for a one-off customer payment, picks the highest-priority delivery channel the contact is reachable on, and renders the request-to-pay message for that channel (SMS, RCS, WhatsApp, email, or voice). Nothing is sent here; the host carries the returned URL and rendered message into its own send pipeline. Payment settlement lands asynchronously on the checkout webhook. Owner, admin, or billing role required; the call is audit-logged. Returns 422 when the amount is below the provider’s minimum or no preferred channel is reachable.
Authorizations
Dashboard JWT token from Clerk
Headers
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
1 - 255Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
true, false Body
Charge amount in the currency's minor units (e.g. cents). Minimum 50 — the payment provider's universal per-currency floor.
Three-letter ISO 4217 currency code.
What the payment is for; rendered into the request-to-pay message.
Delivery channels in descending priority order (cross-channel fallback).
sms, rcs, whatsapp, email, voice Channels the contact is currently reachable on.
sms, rcs, whatsapp, email, voice Post-payment redirect URL (trusted Orbit origin).
Redirect URL when the payment is abandoned (trusted Orbit origin).
Optional conversation id that links the payment back to a thread.
Optional contact id of the payer.
Optional merchant name rendered into the message (defaults to the org name).
Optional BCP-47 locale for the rendered message.
Response
Successful response.