Skip to main content
POST

Authorizations

Authorization
string
header
required

Authorization: Bearer qk_live_… — a Qint API key created in the dashboard under Developers → API keys.

Body

application/json
amount
number
required

Amount to charge, in the given fiat currency. Must be positive.

Example:

49.9

currency
enum<string>
required

Settlement currency. One of CHF, EUR or USD.

Available options:
CHF,
EUR,
USD
title
string

Shown to the buyer on the hosted checkout (e.g. "Order #1001"). When omitted, the checkout falls back to your merchant display name.

idempotencyKey
string

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.

returnUrl
string<uri>

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.

Maximum string length: 500

Response

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.

id
string
required

Payment intent id (pi_…).

Example:

"pi_x7k2m9p4q1w8"

status
enum<string>
required

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.

Available options:
initiated,
pending,
confirmed,
settled,
failed,
expired,
cancelled
amount
number
required

The fiat amount charged.

Example:

49.9

currency
enum<string>
required

The settlement currency.

Available options:
CHF,
EUR,
USD
checkoutUrl
string<uri>
required

The hosted checkout URL for this intent — redirect the buyer here.

Example:

"https://checkout.qint.ch/pay/pi_x7k2m9p4q1w8"

createdAt
string<date-time>
required
expiresAt
string<date-time>
required

End of the payment window — 15 minutes after creation. An unpaid intent is expired after this instant.

title
string | null

The title passed at creation, if any.

assetSymbol
string | null

The crypto asset the buyer selected at checkout (e.g. USDT). null until the buyer picks one.

cryptoAmount
string | null

The exact crypto amount the buyer must send, as an 8-decimal-place string (e.g. "49.90000000"). null until an asset is selected.

depositAddress
string | null

The deposit address the buyer pays to. null until an asset is selected.

returnUrl
string<uri> | null

The returnUrl passed at creation, if any.

confirmedAt
string<date-time> | null

When the deposit was confirmed on-chain, if it was.

settledAt
string<date-time> | null

When the payment settled, if it did.