Integrate our products into your software. Let's make payment happen together!
Look at all the possibilitiesIn case of an error, we respond with a corresponding HTTP status code. The body of the response will be an error in JSON.
application/json| Code | Message | Description |
|---|---|---|
| 400 | Bad Request | Invalid input in the request |
| 401 | Unauthorized | None or invalid API key (typo, expired) |
| 404 | Not Found | Invalid URL |
| 415 | Unsupported Media Type | Not using application/json as the content type |
| 500 | Internal Server Error | Unexpected error |
| 504 | Gateway Timeout | Processing the request took too long. Default time out is ${timeout} ms |
All resources will return a JSON object in case of an error.
| Name | Description |
|---|---|
| type | Possible values: input_error, process_error, unexpected_error |
| message | A generic message. Contains helpful information regarding the cause of the error. This message should not be parsed. In case of input_error this field holds the validation message for the field mentioned in field |
| field | In case of type input_error the field that caused an error. Otherwise not present. If multiple field validations failed, field contains the first one. |
| fields | In case of type input_error an array of all failed field validations. For each field the error message is shown. See example below. |
| reference | A reference that you can provide to the helpdesk for investigation of the failing request |
| failureCode | An optional field that explains more about the cause of the failure. Possible values: Failure Codes |
| transactionReference | In case of a time out or other processing error, an optional transaction reference to query the status of the transaction. |
| balance | Object containing the merchant’s balance associated with the used payment method. Only included in case of type process_error for failureCode unsufficient_balance. |
Example of one input error due to an invalid amount
{
"type" : "input_error",
"message" : "'113.73999999999' has a scale larger than 2",
"reference" : "718ee617",
"field" : "amount"
}
Example of a process error due to an invalid balance for a requested refund
{
"type": "process_error",
"message": "Refund request with amount 20,05 DENIED for originalReferenceId I230504161044674CB87E1BB.F due to insufficient open amount",
"reference": "5c0a0487",
"failureCode": "unsufficient_balance",
"balance": {
"creditAmount": 0.35,
"debitAmount": 1.70,
"total": 1.35
}
}
Example of multiple input errors
{
"type" : "input_error",
"message" : "An amount is required",
"reference" : "718ee617",
"field" : "amount",
"fields": [
{
"field": "amount",
"message": "An amount is required"
},
{
"field": "method",
"message": "A supported method is required"
},
{
"field": "method",
"message": "may not be null"
},
{
"field": "currency",
"message": "A ISO 4217 currency code is required"
}
]
}
All error responses with failure codes are HTTP Status Code 400: Bad Request.
| Name | Description |
|---|---|
| expired | The transaction is expired which can happen if remote services such as iDEAL or PayPal expire the transaction on their side |
| processing_error | A general error if the transaction can’t be processed correctly |
| invalid_config | The configuration of the merchant or method is not correct |
| cancelled | The transaction is cancelled by either the customer or the merchant. The field cancelledBy indicates the initiator of the cancel |
| unsufficient_balance | In case of refunds, the transaction can be denied if the balance of the merchant is insufficient |
| fraud_detected | The transaction is denied due to fraud prevention |
| rejected | The transaction is manually confirmed and rejected |
| unknown_reference | The reference used is not known |
| refund_limit | The refund limit for this transaction has been reached, not further refunds are allowed for this transaction |
| unsupported_currency | The currency in your request is not supported |
| qr_failed | There was a problem with the required QR-Code |
| card_refused | The transaction is declined because the card host refused/declined the transaction |
| insufficient_funds | The transaction is declined because the customer has insufficient funds available |
| vault_token_expired | Either the vault access token or the card data attached to the vault access token is expired |
| amount_limit_exceeded | The transaction amount exceeds the configured limit |
| bad_credentials | The provided authentication credentials in your request are incorrect |
| authentication_failed | The transaction is declined because the authentication of the customer failed |
| duplicate_request | A request is performed twice for an action that can only be performed once. For example a second reversal |
| original_transaction_archived | A request with a link to an original transaction is denied if the original transaction is already archived. Requests with a link to an original transaction are for example reversal and refund |
| soft_declined | The transaction failed because additional authentication cannot be performed |
Example of a Process error due to invalid method configuration with failure code
{
"type" : "process_error",
"message" : "The request could not be processed",
"reference" : "dfa865b6",
"failureCode" : "invalid_config"
}