All API errors use the same structure to pass detailed information. Some errors have special HTTP status codes associated, but not all. So the best way to distinguish the situations is to check payload.

HTTP Response

In case of an error, the API returns an HTTP status different from 2xx, and a response body like this:

Response Body
{
"status": "error",
"error": "ProductUnauthorizedException",
"error_details": "Invalid token",
"error_user": "ungültiger Token",
"code": 0,
"supportId": "af545b27c2d1f0bfd51254a96ffe32c6"
}

The fields are:

Field

Type

Description

status

string

Request status (always "error")

error

string

Exception name (see below)

error_details

string

Error details

error_user

string

Error details in German

code

int

The ID of the error type (see Error Codes)

supportId

string

ID by which our help desk may find more information

Error Values (Exceptions)

The exception names in the field error are:

Name

Meaning

ProductBackendproviderException

External service error

ProductBlacklistedException

Card or product is on a blacklist

ProductDuplicateException

Data already exist

ProductException

Generic error

ProductFormatException

Validation error

ProductInternalException

Internal error

ProductMethodNotAllowedException

HTTP method used is not supported for this URL

ProductNotAllowedException

Missing access rights

ProductNotEnoughBalanceException

Card balance is exceeded

ProductNotFoundException

Unknown ID

ProductPasscodeIncorrectException

Loyalty merchant card PIN was invalid

ProductSecurityException

Invalid credentials or request limit exceeded

ProductUnauthorizedException

Authorization failed

ProductUnknownActionException

Unknown URL

ProductUpdateFailedException

Update was not possible

Error Codes

See next page Error Codes