Idempotent replay. The original order was already placed under this `idempotencyKey`; returns the same `orderIds`.
Order placed
{
"success": true,
"orderIds": [
48201
],
"status": "processing",
"subtotal": 12.5,
"balanceAfter": 87.5,
"fulfillment": {
"kind": "automated",
"estimatedCompletionMinutes": 30
}
}
Schema validation failed. The `error` field carries the first failing field message.
{
"success": false,
"errorCode": "INVALID_REQUEST",
"error": "Invalid order request"
}
Missing, malformed, or revoked key.
{
"success": false,
"errorCode": "UNAUTHORIZED",
"error": "Invalid API key"
}
Insufficient wallet balance.
{
"success": false,
"errorCode": "INSUFFICIENT_BALANCE",
"error": "Insufficient wallet balance.",
"balance": 5.25,
"required": 12.5
}
Key lacks the required permission.
{
"success": false,
"errorCode": "FORBIDDEN",
"error": "Missing permission"
}
Server-quoted subtotal differs from `expectedSubtotal`. Re-quote and retry with a fresh `idempotencyKey`.
{
"success": false,
"errorCode": "PRICE_MISMATCH",
"error": "Quoted subtotal does not match expectedSubtotal.",
"quotedSubtotal": 12.5,
"expectedSubtotal": 11.99
}
Per-key bucket exhausted. Honor the `Retry-After` response header.
{
"success": false,
"errorCode": "RATE_LIMITED",
"error": "Rate limit exceeded"
}
Server-side failure. Safe to retry an order with the same `idempotencyKey`.
{
"success": false,
"errorCode": "INTERNAL_ERROR",
"error": "Could not create checkout attempt"
}