Error Reference
API response format
All successful responses follow this shape:
Success
{
"success": true,
"data": { ... },
"meta": { ... }
}All error responses follow this shape:
Error
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human readable description"
}
}HTTP status codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request — invalid input |
| 401 | Unauthorized — invalid or missing API key/token |
| 403 | Forbidden — you don't have permission |
| 404 | Not Found — resource doesn't exist |
| 409 | Conflict — resource already exists or invalid state transition |
| 422 | Unprocessable Entity — validation failed |
| 429 | Too Many Requests — rate limited |
| 500 | Internal Server Error |
Common error codes
| Code | Description |
|---|---|
MISSING_API_KEY | X-API-Key header not provided |
INVALID_API_KEY | API key is invalid or merchant is inactive |
VALIDATION_ERROR | Request body failed validation |
RESOURCE_NOT_FOUND | The requested resource does not exist |
INVALID_STATUS_TRANSITION | The escrow cannot transition to the requested status |
INSUFFICIENT_PERMISSIONS | You don't have permission for this action |
DUPLICATE_DISPUTE | A dispute already exists for this escrow |
ESCROW_NOT_DISPUTABLE | Escrow is not in a status that allows disputes |
PAYMENT_LINK_EXPIRED | The payment link has expired |
PAYMENT_LINK_NOT_ACTIVE | The payment link is not active |