| succeeded | 200 | processed | Approved | N/A | N/A |
| waiting_confirmation | 200 | pending | Confirmation is pending for the non-instant operation. | Confirmation is pending for the non-instant operation. This mainly happens for push payment products (wallets). When the processors asynchronously inform the status of a payment or refund to us, you can expect this reason code. | You can fetch the updated status of the operation at a later moment using the get method. |
| unknown_status | 200 | pending | Status of the operation is unknown at the moment. | Status of the operation is unknown at the moment. | You can fetch the updated status of the operation at a later moment using the get method. |
| cancelled | 200 | aborted | The consumer has cancelled the payment. | The consumer has cancelled the payment. Payment is not completed. | Consumer can retry the payment again or use another payment method to pay. |
| timeout | 200 | aborted | The consumer did not make the payment within the given time frame. | The consumer did not make the payment within the given time frame. | Provide a new payment method to the consumer in-session or inform them to retry off-session. |
| rejected_by_issuer | 200 | declined | The issuer has declined the payment. | The issuer has declined the payment. | Contact bank or use another method. |
| do_not_retry | 200 | declined | The issuer has declined the payment. Do not retry. | The issuer has declined the payment and it should not be retried. | Contact bank or use another method. |
| insufficient_funds | 200 | declined | The consumer does not have enough funds. | The consumer does not have enough funds. | Use a different payment method. |
| suspected_fraud | 200 | declined | Payment declined due to suspected fraud. | Payment declined due to suspected fraud. | Do not show details to the user. Show a generic decline message and advise contacting the bank. |
| invalid_amount | 200 | declined | Payment declined due to invalid amount. | Payment declined due to invalid amount. Examples: amount exceeds card program max, authorization exceeds authentication amount, or the reverse or refund amount is lower than the original amount for push payment products (wallets). | Retry using the correct amount or advise the consumer to check with their bank. |
| referral | 200 | declined | Additional issuer verification required. | Additional issuer verification required. | The consumer needs to contact the bank. Retry or use another method. |
| required_authentication | 200 | declined | Authentication is required. | Authentication is required. | The consumer can retry the payment and authenticate their card, or use another payment method to pay. |
| pin_required | 200 | declined | The issuer has declined the payment. PIN is required by the issuer. | The issuer has declined the payment. PIN is required by the issuer. | The consumer can retry the payment and authenticate their card, or use another payment method to pay. |
| incorrect_pin | 200 | declined | The issuer has declined the payment. PIN was incorrect. | The issuer has declined the payment. PIN was incorrect. | The consumer can retry the payment or use another payment method to pay. |
| pin_exceeded | 200 | declined | The issuer has declined the payment. PIN tries were exceeded. | The issuer has declined the payment. PIN tries were exceeded. | The consumer can use another payment method to pay. |
| invalid_pin_block | 200 | failed | Operation failed due to invalid pin block format. | Operation failed due to invalid pin block format. | Contact our support team. |
| exceeded_activity | 200 | declined | Balance, limit, or frequency exceeded. | Balance, limit, or frequency exceeded. | Contact the bank. Retry or use another method. |
| invalid_account | 200 | declined | Account validation failed. | Account validation failed. Examples: account closed or blocked, card not activated, or no valid account available. | Contact the account provider or bank. Retry or use another method. |
| pickup_card | 200 | declined | Issuer requested card pickup. | Issuer requested card pickup. | Contact the bank. Retry or use another method. |
| restricted_card | 200 | declined | Card cannot be used for the payment. | Card cannot be used for the payment. | Contact the bank. Retry or use another method. |
| lost_card | 200 | declined | Card is reported lost. | Card is reported lost. | Contact the bank. Retry or use another method. |
| stolen_card | 200 | declined | Card is reported stolen. | Card is reported stolen. | Contact the bank. Retry or use another method. |
| expired_card | 200 | declined | Card is expired or has the wrong expiry date. | Card is expired or has the wrong expiry date. | Contact the bank. Retry or use another method. |
| security_violation | 200 | declined | Security violation reported by the processor or issuer. | Security violation reported by the processor or issuer. | Contact the bank. Retry or use another method. |
| not_allowed_by_issuer | 200 | declined | Payment not allowed by issuer. | Payment not allowed by issuer. | Contact the bank. Retry or use another method. |
| invalid_account_number | 200 | declined | Account number is incorrect. | Account number is incorrect. | Retry with the correct account number. If the issue persists, contact the bank. |
| duplicated_transaction | 200 | declined | Operation reported as duplicated. | Operation reported as duplicated. | Check whether the operation was already processed. Retry later if needed. |
| not_supported_by_issuer | 200 | declined | Operation not supported by issuer. | Operation not supported by issuer. | Contact the bank. Retry or use another method. |
| processing_error | 200 | failed | Operation failed due to incorrect or missing data or system error. | Operation failed due to incorrect or missing data or system error. | Please try again later. |
| timeout_issuer | 200 | failed | Operation failed due to timeout from issuer. | Operation failed due to timeout from issuer. | The consumer can retry the payment later or use another payment method to pay. |
| bad_request | 400 | Bad Request | Validation failed | The request is not formatted properly. Details are provided in the errors object. | Check the errors objects in the response and adjust the request. |
| Unauthorised | 401 | * | * | Unauthorised. Please contact help@nomupay.com for assistance. | Please contact help@nomupay.com for assistance. |
| 404_page_not_found | 404 | * | * | The request resource does not exist. Please check if the endpoint is correct. | Please check if the endpoint is correct. |
| * | 404 | Not Found | The requested resource does not exist | The requested resource does not exist. Please check whether the transaction ID used in the request is correct. | Please check whether the transaction ID used in the request is correct. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is not incrementable | Original transaction is not incrementable. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Increment currency must match the original transaction currency | Increment currency must match the original transaction currency. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is cleared and no remaining amount | Original transaction is cleared and no remaining amount. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is not reversible | Original transaction is not reversible. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is older than 30 days | Original transaction is older than 30 days. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction card number does not match the reversal card number | Original transaction card number does not match the reversal card number. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | Unprocessable Entity | Reversal currency must match the original transaction currency | Reversal currency must match the original transaction currency. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is already cleared | Original transaction is already cleared. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is not capturable | Original transaction is not capturable. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is not cleared; try reversal instead | Original transaction is not cleared; try reversal instead. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is not refundable | Original transaction is not refundable. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction is older than 18 months | Original transaction is older than 18 months. | Check the detail in the response and adjust the flow as needed. |
| invalid_operation | 422 | Unprocessable Entity | Original transaction card number does not match the refund card number | Original transaction card number does not match the refund card number. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | Unprocessable Entity | Refund currency must match the original transaction currency | Refund currency must match the original transaction currency. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | Unprocessable Entity | Transaction timestamp must be in UTC | The timestamp was submitted with a timezone offset other than UTC (Z). The terminal must convert all timestamps to UTC before sending. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | Unprocessable Entity | Transaction timestamp does not match the expected timeframe in UTC | The timestamp is in UTC format but differs from the server-recorded time beyond the acceptable threshold. This typically indicates that the terminal clock is not synchronised or that timezone conversion was applied incorrectly. | Check the detail in the response and adjust the request. |
| invalid_operation | 422 | * | Invalid operation for the resource's current state | This mainly happens for push payment products (wallets). Examples include reversing or refunding a reversed or refunded transaction, inquiring about a reversed or refunded transaction, or refunding a transaction before the cutoff. | Check the errors objects in the response and adjust the request. |
| exceeded_amount | 422 | * | Amount exceeds the original transaction | This mainly happens for push payment products (wallets). Example: reversal or refund amount exceeds the original amount. | Check the detail in the response and adjust the request. |
| invalid_amount | 422 | Unprocessable Entity | Reversal amount cannot be greater than the original transaction amount including incrementals | Reversal amount cannot be greater than the original transaction amount including incrementals. | Check the detail in the response and adjust the request. |
| invalid_amount | 422 | Unprocessable Entity | Transaction amount cannot exceed the original amount plus incrementals minus reversals | Transaction amount cannot exceed the original amount plus incrementals minus reversals. | Check the detail in the response and adjust the request. |
| invalid_amount | 422 | Unprocessable Entity | Refund amount cannot be greater than the remaining amount | Refund amount cannot be greater than the remaining amount. | Check the detail in the response and adjust the request. |
| validation_failed | 422 | Unprocessable Entity | Operation not allowed due to an unexpected property in the request | Operation not allowed due to an unexpected property in the request. Details are provided in the errors object. Examples include a tip field in a refund or reversal request, or a missing transaction ID in the path. | Check the errors objects in the response and adjust the request. |
| internal_error | 500 | Internal Server Error | Internal Server Error | Internal Server Error. Please contact help@nomupay.com for assistance. | Please contact help@nomupay.com for assistance. |