V2 Alpha — This error format is part of the V2 API preview. Breaking changes may occur.
Overview
All V2 API endpoints return a consistent error format. Errors always includesuccess: false and an error object with a human-readable message and a machine-readable code.
Error Response Format
HTTP Status Codes
| Status | Description |
|---|---|
| 200 | Success |
| 201 | Resource created |
| 400 | Bad request — invalid parameters or missing required fields |
| 401 | Unauthorized — missing, invalid, or expired token |
| 403 | Forbidden — accessing another vendor’s data or a merchant-only endpoint |
| 404 | Not found — resource does not exist |
| 409 | Conflict — resource creation/update conflict |
| 429 | Too many requests — rate limit exceeded |
| 500 | Internal server error |
Error Codes
| Code | HTTP Status | Description |
|---|---|---|
UNAUTHORIZED | 401 | Invalid vendor API key or expired token |
FORBIDDEN | 403 | Attempting to access another vendor’s data or a merchant-only endpoint |
NOT_FOUND | 404 | Requested resource not found |
VALIDATION_ERROR | 400 | Request body or query parameters failed validation |
FULFILLMENT_FAILED | 400 | Fulfillment creation failed |
CONFLICT | 409 | Resource creation/update conflict |
INTERNAL_ERROR | 500 | Unexpected server error |
Vendor tokens are automatically scoped to your data. If you receive a 403 Forbidden error, it usually means you are calling a merchant-only endpoint. Check that you are using the
/v2/vendor/* routes.Validation Errors
When request validation fails, themessage field contains details about which fields are invalid: