Skip to content

Errors

Errors are returned with a non-2xx HTTP status and a JSON body:

{
"error_code": "invalid_argument",
"error_message": "the transaction amount is insufficient as it wont cater for cost: (4.62)",
"status_code": 400
}
Status error_code Example cause
400 invalid_argument Amount too low to cover cost; inactive channel
401 Missing or invalid Basic auth credentials
  • Always read error_message — it carries the specific business reason.
  • A 400 is a permanent rejection of that request; fix the input before retrying.
  • A 401 means your API key is missing or wrong.
  • Network/5xx errors can be retried with backoff using the same external_reference for idempotency on your side.