Skip to content

Payment Error Codes

Payment-specific status codes returned in the response body for transaction endpoints (e.g., v2/topup). To simulate an error, send a request with the provided "Test Account" number corresponding to the desired error type. This allows you to test your application's error handling in the staging environment.

INFO

This Test Account Number should only be used in staging environment and NOT production.

The status code is returned in data.statusCode in the response body.

Retry Column

  • Y — Transaction is not yet final. Resubmit the same request (with the same refid) to get the updated status.
  • N — Transaction status is final. No retry needed.

Requests are idempotent via the refid field — you can safely retry without creating duplicate transactions.

Status CodeStatusDescriptionRetryTest Account
0AcceptedTransaction accepted and will be sent for processingY
1ProcessingTransaction is still being processedY
20SuccesfulTransaction is successfulN
40, 52FailedInvalid account number or mobile number (barred/terminated)N60123450052
41FailedClient's account has been suspended or an unauthorized access has occurredN60123450041
43FailedInsufficient credit on client's walletN60123450043
44FailedIncorrect format or an invalid product has been passedN60123450044
45FailedProduct out of stockN60123450045
47FailedService currently unavailable. Try again laterN60123450047
48FailedTransaction rejected by providerN60123450048
53RefundTriggered when user requests to void/refund a transactionN
54FailedDuplicate transaction, or daily account transaction limit has been reachedN60123450464
55FailedTransaction failed due to timeoutN60123450055
56FailedAccount blacklistedN60123450056
57FailedCustomer's mobile number activatedN60123450057
58, 61FailedInvalid denominationN60123450861

IIMMPACT API Documentation