Appearance
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 Code | Status | Description | Retry | Test Account |
|---|---|---|---|---|
| 0 | Accepted | Transaction accepted and will be sent for processing | Y | |
| 1 | Processing | Transaction is still being processed | Y | |
| 20 | Succesful | Transaction is successful | N | |
| 40, 52 | Failed | Invalid account number or mobile number (barred/terminated) | N | 60123450052 |
| 41 | Failed | Client's account has been suspended or an unauthorized access has occurred | N | 60123450041 |
| 43 | Failed | Insufficient credit on client's wallet | N | 60123450043 |
| 44 | Failed | Incorrect format or an invalid product has been passed | N | 60123450044 |
| 45 | Failed | Product out of stock | N | 60123450045 |
| 47 | Failed | Service currently unavailable. Try again later | N | 60123450047 |
| 48 | Failed | Transaction rejected by provider | N | 60123450048 |
| 53 | Refund | Triggered when user requests to void/refund a transaction | N | |
| 54 | Failed | Duplicate transaction, or daily account transaction limit has been reached | N | 60123450464 |
| 55 | Failed | Transaction failed due to timeout | N | 60123450055 |
| 56 | Failed | Account blacklisted | N | 60123450056 |
| 57 | Failed | Customer's mobile number activated | N | 60123450057 |
| 58, 61 | Failed | Invalid denomination | N | 60123450861 |
| 62 | Failed | NRIC not eligible | N | 60123450062 |
JomPAY Test Biller Codes
Use these dedicated JomPAY biller codes in the staging environment to simulate payment outcomes.
To simulate a real successful JomPAY scenario, use an actual account/reference number with its correct biller code instead of a test biller code.
INFO
These biller codes are for staging/testing only. Do not use them in production.
| Biller Code | Simulated Result |
|---|---|
9920 | Transaction Accepted |
9940 | Transaction Failed |
9941 | Account Suspended |
9943 | Insufficient Credit |
9944 | Incorrect Format |
9945 | Out of stock |
9947 | Network Error |
9948 | System Error |
9952 | Invalid Account No |
9954 | Duplicate. Try again later |
9955 | Timeout |
9956 | Number Blacklisted |
9958 | Invalid Denomination |
