The following aims to narrow the hundreds of error codes and descriptions we find across the implemented gateways to as few as possible, so integrators more easily can implement different workflows depending on the situation and desired business logic. To provide full transparency into our interpretation of the chosen gateway’s error codes and descriptions, we apply these as gatewayErrorCode and gatewayErrorDescription onto the relevant entity whenever possible. This allows advanced integrators a much more nuanced workflow.
Vocabulary
| Debtor | The payee also known as the customer or donor. |
| Creditor | The merchant also known as the organisation. |
| System | OnlineFundraising’s Payment Engine. |
| Gateway | The chosen Payment Gateway, such as Betalingsservice, MobilePay Subscriptions, NETS, Teller, Bambora etc. |
| Error Codes | Our Error Codes are applied to entities when unintentional errors occur either internally in System or at the Gateway. |
| Cancel Codes | Our Cancel Codes are applied to entities intentionally cancelled by either the Debtor or the Creditor. |
Subscription
Subscription Error Codes and Descriptions
Please note that errorCode and errorDescription goes hand in hand, and are applied systemically depending on the situation.
Please also note that the state of the Subscription may depend on the connected Agreement’s definition of paymentRequired.
- For example, if the Payment Method for a Subscription of a monthly donation (an Agreement) should be cancelled by the Debtor, then a Creditor may wish to abstain from pursuing the outstanding amount. In this case the Agreement does not have paymentRequired, thus the Subscription will be given the state Inactive.
- In contrast this might be the very case, if the same Subscription was for an annual membership with customer privileges. In this case the Agreement does have paymentRequired, thus the Subscription will maintain the state Active.
| Error Code | Description | State |
|---|---|---|
| 100001 | Subscription has no active Payment Method, but Payments are required by the Agreement. | Active |
| 100002 | Subscription has no active Payment Method, and Payments are not required. | Inactive |
| 100003 | Subscription Payment Method not found at the time of scheduling. | Inactive |
Subscription Cancel Codes
Please note that both holdDescription and cancelDescription are custom, optional strings defined by the Creditor during cancellation, while cancelCode are applied systemically depending on the situation.
| Cancel Code | Description | State |
|---|---|---|
| 100101 | Cancelled by Debtor. | Inactive |
| 100102 | Cancelled by Creditor in either UI or API integration. | Inactive |
| 100103 | Expired due to the defined expiresAfterDate. | Inactive |
| 100104 | Cancelled by System at the time og charge. Due to the Payment Method being cancelled at payment gateway. | Inactive |
Payment Method
Payment Method Error Codes and Descriptions
Please note that errorCode and errorDescription goes hand in hand, and are applied systemically depending on the situation.
| Error Code | Description | Examples | State |
|---|---|---|---|
| 200001 | Payment Method signup failed | Invalid data provided for either National ID, Business Number, Sort Code or Account Number with Betalingsservice. | Failed |
| 200002 | Payment Method was rejected during sign up | Involves Debtor rejection of a request i.e. in a mobile app. | Rejected |
| 200003 | Payment Method signup expired | Debtor did not approve request in mobile app in time. | SessionExpired |
| 200004 | Payment Method has expired | Involves expiration of Card or requirement of new SCA. | Expired |
| 200005 | Payment Method has failed | Errors with the Gateway without options to retry or reactive. | Failed |
Payment Method Cancel Codes and Descriptions
Please note that cancelCode and cancelDescription goes hand in hand, and are applied systemically depending on the situation.
| Cancel Code | Description | State |
|---|---|---|
| 200101 | Cancelled by Debtor | Cancelled |
| 200102 | Cancelled by Creditor | Cancelled |
| 200103 | Cancelled by System | Cancelled |
Payment
Payment Error Codes and Descriptions
Please note that errorCode and errorDescription goes hand in hand, and are applied systemically depending on the situation.
| Error Code | Description | Examples | State |
|---|---|---|---|
| 300001 | Payment Method is temporarily unavailable | Technical error or unresponsive gateway. No funds currently, denied for ~24 hours due to incorrect PIN or similar. For Cards we retry over a period of 7 days. |
AwaitingRetry |
| 300002 | Payment has failed to charge | Lost, stolen or closed Card. Mobile app misconfigured. Phone not available to SMS charges. Unknown errors with the Gateway. |
Failed |
| 300003 | Payment is expired. | The OneOff Payment was not accepted in time. | SessionExpired |
| 300004 | Payment was rejected by Debtor | Involves Debtor rejection of a request i.e. in a mobile app or home banking. | Rejected |
| 300005 | Payment was rejected by Gateway | Involves Gateway interaction. | Rejected |
| 300006 | Payment has failed to charge | Payment Method not active at the time of scheduling | Failed |
Payment Cancel Codes and Descriptions
Please note that cancelDescription is a custom, optional string defined by the Creditor during cancellation, while cancelCode is applied systemically depending on the situation.
| Cancel Code | Description | State |
|---|---|---|
| 300101 | Cancelled by Creditor in either UI or API integration. | Cancelled |
Examples of common scenarios
The table below describes common situation in terms of error codes, cancel codes, state, and other relevant properties.
| Examples (Click to expand) | |
|---|---|
Gateway rejects Payment Method signup due to invalid data | |
| Payment Required by Agreement | TRUE |
| Subscription state | Active |
| Subscription errorCode | 100001 |
| Subscription cancelCode | - |
| Payment Method state | Failed |
| Payment Method errorCode | 200001 + gatewayErrorCode + gatewayErrorCode |
| Payment Method cancelCode | - |
Gateway rejects Payment Method signup due to invalid data | |
| Payment Required by Agreement | FALSE |
| Subscription state | Inactive |
| Subscription errorCode | 100002 |
| Subscription cancelCode | - |
| Payment Method state | Failed |
| Payment Method errorCode | 200001 + gatewayErrorCode + gatewayErrorDescription |
| Payment Method cancelCode | - |
Debtor rejects Payment Method signup in mobile app | |
| Payment Required by Agreement | TRUE |
| Subscription state | Active |
| Subscription errorCode | 100001 |
| Subscription cancelCode | - |
| Payment Method state | Rejected |
| Payment Method errorCode | 200002 + gatewayErrorCode + gatewayErrorDescription |
| Payment Method cancelCode | - |
Debtor rejects Payment Method signup in mobile app | |
| Payment Required by Agreement | FALSE |
| Subscription state | Inactive |
| Subscription errorCode | - |
| Subscription cancelCode | 100101 |
| Payment Method state | Rejected |
| Payment Method errorCode | 200002 + gatewayErrorCode |
| Payment Method cancelCode | - |
Debtor cancels an active Payment Method in mobile app | |
| Payment Required by Agreement | TRUE |
| Subscription state | Active |
| Subscription errorCode | 100001 |
| Subscription cancelCode | - |
| Payment Method state | Cancelled |
| Payment Method errorCode | - |
| Payment Method cancelCode | 200101 |
Debtor cancels an active Payment Method in mobile app | |
| Payment Required by Agreement | FALSE |
| Subscription state | Inactive |
| Subscription errorCode | - |
| Subscription cancelCode | 100101 |
| Payment Method state | Cancelled |
| Payment Method errorCode | - |
| Payment Method cancelCode | 200101 |
Payment Method with Card is expired | |
| Payment Required by Agreement | TRUE |
| Subscription state | Active |
| Subscription errorCode | 100001 |
| Subscription cancelCode | - |
| Payment Method state | Expired |
| Payment Method errorCode | 200004 + gatewayErrorCode + gatewayErrorDescription |
| Payment Method cancelCode | - |
Payment Method with Card is expired | |
| Payment Required by Agreement | FALSE |
| Subscription state | Inactive |
| Subscription errorCode | 100002 |
| Subscription cancelCode | - |
| Payment Method state | Expired |
| Payment Method errorCode | 200004 + gatewayErrorCode + gatewayErrorDescription |
| Payment Method cancelCode | - |
Payment has failed to charge due to lost, stolen or closed Card. | |
| Payment Required by Agreement | TRUE |
| Subscription state | Active |
| Subscription errorCode | 100001 |
| Subscription cancelCode | - |
| Payment Method state | Failed |
| Payment Method errorCode | 200005 + gatewayErrorCode + gatewayErrorDescription |
| Payment Method cancelCode | - |
Payment has failed to charge due to lost, stolen or closed Card. | |
| Payment Required by Agreement | FALSE |
| Subscription state | Inactive |
| Subscription errorCode | 100002 |
| Subscription cancelCode | - |
| Payment Method state | Failed |
| Payment Method errorCode | 200005 + gatewayErrorCode + gatewayErrorDescription |
| Payment Method cancelCode | - |
Creditor put Subscription on hold | |
| Payment Required by Agreement | - |
| Subscription state | Inactive |
| Subscription errorCode | - |
| Subscription cancelCode | - |
| Payment Method state | as is |
| Payment Method errorCode | - |
| Payment Method cancelCode | - |
Creditor cancels both Subscription and Payment Method using UI or API | |
| Payment Required by Agreement | - |
| Subscription state | Inactive |
| Subscription errorCode | - |
| Subscription cancelCode | 100102 |
| Payment Method state | Cancelled |
| Payment Method errorCode | - |
| Payment Method cancelCode | 200102 |
Subscription is expired due to defined expiration date | |
| Payment Required by Agreement | - |
| Subscription state | Inactive |
| Subscription errorCode | - |
| Subscription cancelCode | 100103 |
| Payment Method state | as is |
| Payment Method errorCode | - |
| Payment Method cancelCode | - |
Common gateway errors at charge attempt
The following tables contain an incomplete, but common list of gateway error codes on a Charge Attempt in relation to a given Payment.
Related to Payment Gateway Providers for Card
These error codes are sourced from live examples and:
- Quickpay: https://learn.quickpay.net/tech-talk/appendixes/errors
- NETS Easy: https://developer.nexigroup.com/nexi-checkout/en-EU/api
- ePay: accessible via their portal
| Gateway Error Code | Gateway Error Description |
|---|---|
| -1027 | The payment was declined as the credit card is cancelled. Try using another credit card. |
| -2 | Communication disorders at the acquirer. |
| -1 | Communication disorders at the acquirer. |
| 1 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 4 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 5 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 7 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 12 | Declined - Invalid transaction - eg service not permitted to card type |
| 14 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 15 | Source: Internal, Message: Direct charge failed for payment id: xxx. ErrorMessage: Invalid card number |
| 34 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 39 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 41 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 43 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 46 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 51 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 54 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 56 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 59 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 61 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 62 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 75 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 78 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 79 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer |
| 91 | Source: Issuer, Message: Direct charge failed for payment id: xxx. ErrorMessage: Refused by issuer xxx |
| 99 | Source: Internal, Message: Direct charge failed for payment id: xxx. ErrorMessage: Pan Hash not in file |
| 100 | Do not honor (Not accepted) |
| 101 | Expired Card |
| 102 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 104 | The payment was declined as the credit card can only be used in the card holder home country. Try with another credit card. |
| 106 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Call your bank for information |
| 107 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 109 | The payment was declined as the merchant has not an agreement to the credit card used for this transaction. Try with another credit card. |
| 111 | The payment was declined as the credit card number can not be found. Try to enter the credit card information again or try with another credit card. |
| 114 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 116 | Not sufficient funds |
| 118 | The payment was declined as the credit card number can not be found. Try to enter the credit card information again or try with another credit card. |
| 119 | Transaction not allowed to cardholder |
| 120 | Transaction not allowed to terminal |
| 121 | Exceeds limits to withdrawal |
| 123 | The payment was declined as there is no coverage of the transaction amount. Try with another credit card. |
| 130 | Customer Authentication Required |
| 132 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 136 | Unknown error |
| 137 | Unknown error |
| 164 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 178 | The payment was declined as the credit card is not yet activated. Try activating the credit card or use another credit card. |
| 190 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 192 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 194 | Unknown error |
| 200 | No not honor |
| 201 | Card Not Valid |
| 202 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 207 | Special occasion |
| 208 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Call your bank for information |
| 209 | Stolen Card |
| 210 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Call your bank for information |
| 904 | Form error |
| 907 | The payment was declined - system error / timeout. Wait a moment and try again with the current or another credit card. |
| 908 | Message can not be routed |
| 909 | System error |
| 911 | Issuer timed out |
| 912 | The payment was declined - system error / timeout. Wait a moment and try again with the current or another credit card. |
| 953 | Host timeout |
| 980 | Action code exclusive to RPG and indicates a data form error. |
| 999 | Declined - Reason could not be determined |
| 1000 | Denied |
| 1002 | Denied suspected fraud |
| 1006 | Denied pin locked |
| 1016 | Denied no funds |
| 1019 | Denied not permitted to cardholder |
| 1021 | Denied exceeds withdrawal limit |
| 1029 | Source: Internal, Message: Subscription charge cannot be reattempted. |
| 1601 | Source: Internal, Message: Charge failed. Could not find account with DKK currency |
| 1602 | An unknown error occurred while conducting the recurring charge via DIBS Easy |
| 1986 | The payment was declined of unknown reasons. For more information contact the bank. E.g. try with another credit card. Denied - Contact cardholders bank for information |
| 1987 | Unknown error |
| 1988 | Unknown error |
| 1995 | Unknown error |
| 30100 | 3-D Secure required |
| 30101 | SCA required |
| 40000 | Rejected by acquirer |
| 40001 | Validation error: Previous Clearhaus in-series can not be older than 397 days |
| 41000 | CoF deleted by scheme |
| 42300 | CoF token suspended by scheme |
| 50000 | Encountered an unexpected error. The QuickPay development team has been notified. |
| 50300 | Communication error with tokenization service |
VippsMobilePay
These internal error codes are defined by the error messages provided and documented: https://developer.vippsmobilepay.com/docs/APIs/webhooks-api/events/
| Gateway Error Message | Internal Error Code | Gateway Error Description |
|---|---|---|
| user_action_required | 999001 | The user has to fix something on their agreement, e.g. their payment source |
| technical_error | 999003 | Something went wrong |
| non_technical_error | 999004 | E.g. user no longer exist |
SMS
These internal error codes are given while the full list of error codes is not public.
| Internal Error Code | Internal Error Description |
|---|---|
| 5001 | Unknown account |
| 5002 | Payment was not allowed by the telecommunications service provider |
| 5003 | Specified amount exceeds the 4T system limits |
| 50024 | Specified amount failed due to error at acquirer |
Betalingsservice
These are internal error codes are used in validation of charge attempts and based on the requirements set by: https://www.betalingsservice.dk/media/shubfe4r/bs_vejledning_kr_dk.pdf
| Internal Error Code | Internal Error Description |
|---|---|
| 1010 | Creditor number is invalid |
| 1013 | Subscription is not in active state |
| 1020 | Customer number is required |
| 1030 | Amount is too short |
| 1310 | Subscription has been cancelled |
| 1402 | Due date is required |
| 1403 | Only dates after this month are valid |
| 1404 | Name is required |
| 1405 | Address is required |
| 1407 | Country is invalid |