Create a payment intent
Creates a standalone payment intent and returns a checkoutUrl to send
the buyer to. The payment window is 15 minutes from creation
(expiresAt).
Requires the Write scope.
Idempotency — pass an idempotencyKey (unique per merchant, e.g.
your order id). Retrying the same request returns the original intent
with 200 OK instead of creating a duplicate (201 Created).
Authorizations
Authorization: Bearer qk_live_… — a Qint API key created in the dashboard under Developers → API keys.
Body
Amount to charge, in the given fiat currency. Must be positive.
49.9
Settlement currency. One of CHF, EUR or USD.
CHF, EUR, USD Shown to the buyer on the hosted checkout (e.g. "Order #1001"). When omitted, the checkout falls back to your merchant display name.
Unique per merchant. Retrying a request with the same key returns the original intent (200) instead of creating a duplicate. Use your own order or reference id.
Absolute https URL (max 500 characters). When set, the hosted checkout shows a "Return to merchant" action that navigates back to this URL with ?qint_intent={id}&status={status} appended.
500Response
Idempotent replay — an intent with this idempotencyKey already exists for your merchant; the original intent is returned.
A payment intent as returned by the merchant API.
Payment intent id (pi_…).
"pi_x7k2m9p4q1w8"
Lifecycle of a payment intent. Transitions follow
initiated → pending → confirmed → settled, with failed, expired
and cancelled branches. Terminal states never change again —
except that a merchant may resolve an underpaid, expired payment as
accepted from the dashboard review queue, which moves it
expired → settled.
initiated, pending, confirmed, settled, failed, expired, cancelled The fiat amount charged.
49.9
The settlement currency.
CHF, EUR, USD The hosted checkout URL for this intent — redirect the buyer here.
"https://checkout.qint.ch/pay/pi_x7k2m9p4q1w8"
End of the payment window — 15 minutes after creation. An unpaid intent is expired after this instant.
The title passed at creation, if any.
The crypto asset the buyer selected at checkout (e.g. USDT). null until the buyer picks one.
The exact crypto amount the buyer must send, as an 8-decimal-place string (e.g. "49.90000000"). null until an asset is selected.
The deposit address the buyer pays to. null until an asset is selected.
The returnUrl passed at creation, if any.
When the deposit was confirmed on-chain, if it was.
When the payment settled, if it did.