Skip to main content
Share a pay URL. The payer chooses network and token on the hosted page. You receive stablecoins at your destination wallet. Scopes: api:read, api:write
API path: /v1/collections (ledger: kind: "collection")
Dashboard: Payment Links — Invoices and Checkout tabs

Invoice vs checkout

Every payment link has a linkMode. This controls how many times the URL can be used and how payments are tracked.

Fixed vs open amount

Both modes support pricingType: Typical pairings:
  • Invoice + fixed — “Pay invoice #1042 for $500”
  • Invoice + open — “Send whatever you owe on this bill”
  • Checkout + fixed — “Buy this product for $49” (new session each visit)
  • Checkout + open — “Donate any amount” (new session each visit)

When to use which

Choose invoice when you create a link for a specific payment event — billing a client, a one-off request, an API-generated link per order line. Choose checkout when one URL should stay live on your site — pricing page, embed widget, “Pay with crypto” button. Each visitor gets their own payment session; the parent link stays active until you cancel it.

Merchant endpoints

Auth: API key or dashboard JWT. Writes with an API key need Idempotency-Key. {collectionId} is the RemitFlex payment link UUID from POST or GET /collections (invoice id or checkout parent id). Discover supported networks and corridors in Networks & corridors (GET /collections/chains and GET /collections/corridors mirror the payment-routes discovery endpoints).

Create an invoice

Share payUrl. The payer quotes and pays on that same id. Poll GET /collections/{collectionId} or GET /pay/{collectionId} for status (for invoices, both use the same {collectionId}).
The parent returns status: "active". Share payUrl or embed the parent id. When a payer requests a quote (POST /pay/{parentId}/quote), Remitflex creates a session (child collection). Track that payment with GET /pay/{sessionId} or list sessions on GET /collections/{parentId}.

Update

Use PATCH /collections/{collectionId} on the parent link (invoice or checkout). Sessions cannot be PATCHed.
Logo — POST /collections/{collectionId}/logo (multipart). Sync — POST /collections/{collectionId}/sync. Legacy aliases POST .../cancel and PATCH .../embed-config still work.

Payer endpoints

No auth. On pay routes, {collectionId} is the payment link UUID — the invoice id, checkout parent id (for quote), or checkout session id (after quote).
refundTo is required on every deposit quote.

Payer details

When creating a link, set payerFields to collect information from payers before quoting: Each field has required: true or false. On quote (POST /pay/{collectionId}/quote), send collected values in payerDetails:
Collected payerDetails appear on GET /collections/{collectionId} and checkout session lists. On the hosted pay page, Connect wallet is available for EVM and Solana fixed-amount payments. Bitcoin and Tron payers use Send manually — copy the deposit address and pay from any wallet or exchange.
  • Invoice: quote on the invoice id.
  • Checkout: quote on the parent checkout id → response uses the new session id for deposit and status.

Status values

On completed, refunded, and failed, Remitflex emails a receipt to the creating dashboard user. When customer receipts are enabled for the organisation (dashboard Settings, or PATCH /v1/org/settings), the payer (if an email was collected) and linked customer are emailed too. Fixed pricing: quote expires in ~1 min (quoteValidUntil). Open pricing: re-quote on the same origin reuses the deposit address.

Embed

Works for invoice and checkout parent ids.
  1. Theme — PATCH /collections/{collectionId} (embedConfig) or dashboard Payment Links → Embed
  2. Loader — embed.js opens a modal or inline iframe at /embed/{linkId}
  3. Pay UI — theme from GET /pay/{collectionId}/embed-config (checkout sessions inherit parent theme)
Modal button:
Inline:
Events — postMessage (type: "remitflex.payment"): opened, status, completed, failed, resize. Pass ?origin=https://yoursite.com on the iframe URL so messages target your domain only.

vs payment routes

Testing

Integration testing: Testing.