SETSimple Easy Transactions
SET DocsAPI reference and complianceUpdated 2026-11-09
Browse: SET Merchant API

SET Merchant API · Payment links

Create a payment link

POST/v1/payment_links

Key scope: write · Success: 201

A page payers open at url. With {amount, description}: a fixed USD amount paid by card through the merchant's SET Connect account. With {invoice}: the invoice's link, for the amount still due in the invoice's currency, by card when the invoice is in USD and by the invoice's own way to pay (the exact stablecoin amount to its Cash-Out Address, or bank details with the invoice number as reference). One link per invoice: a repeat returns it (200).

Headers

Idempotency-Key string
Optional. The same key and body run once; a replay answers with Idempotent-Replayed: true. Kept 24 hours.

Body

amount decimal string
Without an invoice: USD, 0.50 to 999,999.99.
description string
Up to 120 plain characters shown to payers (required without an invoice). Never personal data.
invoice string
An open or short invoice (inv_…).
card boolean
Invoice links only: false to offer no card.
expiresAt ISO time
A future time after which the page takes no payment.

Notes

  • A card payment started from an invoice's link is matched to the invoice when Stripe reports it succeeded (rule card). A paid, void, expired or deactivated link says so and takes no payment.
  • Events payment_link.created, payment_link.deactivated.

Errors

  • 400 body_invalid
  • 400 amount_invalid
  • 400 currency_invalid
  • 400 card_required
  • 400 description_invalid
  • 400 description_required
  • 400 expires_at_invalid
  • 400 field_not_used
  • 404 invoice_unknown
  • 409 invoice_settled
  • 409 set_connect_not_ready
  • 403 payment_links_merchant_only
  • 401 api_key_required
  • 401 api_key_invalid
  • 401 api_key_wrong_mode
  • 403 scope_missing
  • 429 rate_limited

All codes: Errors.