Skip to main content
POST
Place an order (create + pay from balance in one call)

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
items
object[]
required

Line count capped by your tier's maxItemsPerOrder.

Minimum array length: 1
paymentCurrency
string
default:USD

Currency the order total is expressed in.

externalRef
string

Your own order id — enables idempotent retries and reconciliation.

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

HTTPS URL (public hostname) for the legacy fire-and-forget order callback. Unsigned, un-retried, includes card codes — see the webhooks guide.

sealCards
boolean
default:false

True = deliver codes sealed (revealed by the recipient on our hosted page).

Response

Idempotent replay — an order with this externalRef already exists.

checkoutId
string
required
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

Total charged to your balance, in paymentCurrency.

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

Unix timestamp in milliseconds (UTC).

Example:

1753142400000

externalRef
string | null
appliedDiscountPercent
number

Your negotiated discount applied to this order.

completedAt
integer<int64> | null

Unix timestamp in milliseconds (UTC).

Example:

1753142400000