Skip to main content
POST
Create a checkout for an end-customer

Authorizations

X-API-Key
string
header
required

API key (wg_live_…) created in the dashboard (Account → API Keys). Shown once at creation; only a hash is stored server-side.

Body

application/json
customerEmail
string<email>
required

Your END-CUSTOMER's email (used for delivery/refund identity).

items
object[]
required
Required array length: 1 - 50 elements
paymentCurrency
string
default:USD
customerCountry
string

The END-CUSTOMER's ISO 3166-1 alpha-2 country (never inferred from your server's IP). When present, blocked-country rules apply.

Required string length: 2
Example:

"DE"

externalRef
string

Your own order id — idempotency + reconciliation.

Required string length: 1 - 128
callbackUrl
string<uri>

Per-checkout webhook override — https, public hostname. Signed with your business webhook secret (an endpoint must be configured).

markupPercent
number

Your profit margin on top of our price for this checkout. Overrides your account default; capped by tier maxMarkupPercent.

Required range: x >= 0
payment
object

One-call convenience — also create the payment invoice.

sealCards
boolean
default:false

Response

Idempotent replay — checkout with this externalRef already exists.

checkoutId
string
required
customerEmail
string
required

The end-customer's email.

status
enum<string>
required

Order lifecycle. partial = some items fulfilled, some failed. expired = never paid.

Available options:
pending,
processing,
completed,
partial,
failed,
expired
totalAmount
number
required

What the end-customer pays, in paymentCurrency (markup included).

paymentCurrency
string
required
items
object[]
required
createdAt
integer<int64>
required

Unix timestamp in milliseconds (UTC).

Example:

1753142400000

availablePaymentMethods
object[]
required
externalRef
string | null
markupTotal
number

Your total markup on this checkout, in USD. Credited to your balance as items complete.

sealCards
boolean
callbackUrl
string | null
country
string | null

The customerCountry you supplied.

completedAt
integer<int64> | null

Unix timestamp in milliseconds (UTC).

Example:

1753142400000

expiredAt
integer<int64> | null

Unix timestamp in milliseconds (UTC).

Example:

1753142400000

updatedAt
integer<int64>

Unix timestamp in milliseconds (UTC).

Example:

1753142400000

payment
object

Present when the create call included payment.paymentMethodId.