Reference
Error Codes Every HTTP status code and error message returned by the ePay Business API.
All errors follow the same envelope shape:
{
"status" : "error" ,
"data" : {
"message" : "Missing or malformed Authorization header"
}
}
These apply to every endpoint.
Status When it happens 401Missing or malformed Authorization header, or the API key is invalid / revoked. 403Your server IP is not in the IP whitelist, or the API key lacks the required permission. 429Rate limit exceeded — 100 requests per 60-second window per API key. Back off and retry.
Status Message / cause 400amount is not a valid positive numeric string, or exceeds 999999999.99.400currencyCode is not a supported ISO 4217 code.400customerPhone is not in a recognised Ethiopian phone format.404No active payment source found for your account. Contact support. 429Rate limit exceeded.
Status Message / cause 400Transaction is not yet completed. Message includes the current status. 404No transaction found for the given reference under your account.
Status Message / cause 400Transaction is not in a cancellable status. Only pending and processing can be cancelled. 404No transaction found for the given reference under your account.
Status Message / cause 400from is after to.400Date range between from and to exceeds 90 days. 400currency is not a valid 3-letter ISO 4217 code.400status is not a recognised value.400cursor is malformed or has expired.
Status Message / cause 404No transaction found for the given reference under your account.
Status Message / cause 404No transaction found for the given reference under your account.
POST /v1/transactions/initialize supports the x-idempotency-key header. Resending the same key within the session window returns the original response without creating a new transaction. No error is returned for duplicate requests.
The limit is 100 requests per 60-second window per API key . When you hit it the API returns 429. Check for the standard Retry-After header and implement exponential backoff before retrying.