Success
| Code | Meaning | Where you’ll see it |
|---|---|---|
200 OK | It worked. | Reading data, refreshing a quote. |
201 Created | It worked, and something new was created. | Onboarding a customer, getting a quote. |
202 Accepted | We’ve accepted it and are working on it. Watch for webhooks. | Creating an onramp or offramp, sending a mobile money code. |
Errors
| Code | Error type | In plain words | What to do |
|---|---|---|---|
400 Bad Request | invalid_request_error | The request can’t be used as it is. For example, the quote has expired or the API-Version header is missing. | Read the message and fix the request. |
401 Unauthorized | authentication_error | We don’t know who you are. The API key is missing, wrong, expired, or for the other environment. | Check your API key. |
403 Forbidden | authorization_error | We know who you are, but you can’t do this. Your IP isn’t allowlisted, your key doesn’t have the scope, or the pair isn’t turned on. | See IP allowlist, API keys, or Currency pairs. |
404 Not Found | resource_not_found | The thing you asked for doesn’t exist, or the URL is wrong. | Check the ID and the URL. |
409 Conflict | resource_conflict or idempotency_error | It clashes with the current situation. For example, the quote is already used, the customer is banned, or the same idempotency key is in use. | Read the message. |
413 Payload Too Large | invalid_request_error | The request body is over 10 KB. | Send less data. |
422 Unprocessable Entity | validation_error, payment_error, risk_error | The request is understood but something in it isn’t valid, or the payment couldn’t be processed. | Read errors and fix the fields. |
429 Too Many Requests | rate_limit_error | You’re sending requests too fast. | Wait for the seconds in Retry-After. See Rate limits. |
500 Internal Server Error | internal_error | Something went wrong on our side. | Retry later. If it keeps happening, contact support with the request_id. |
503 Service Unavailable | service_error | We or a payment partner are temporarily unavailable. | Retry later. |
504 Gateway Timeout | timeout_error | A payment partner took too long to answer. | Retry with the same Idempotency-Key. |

