Are you looking for test card numbers?

Would you like to contact support?

Issuin icon

Verification codes

Verification errors and remediation codes in webhooks or API responses

When a verification error occurs, Adyen informs you through webhooks or API responses. These codes provide information such as which checks failed and what your account holder can do to fix the errors. You can use these codes to build your verification error handling flows.

  • Remediating action codes: Provides possible solutions to fix a verification error. Whenever possible, Adyen sends a remediating action for every error.
  • General error codes: Provides a broad description of the cause of the verification error.
  • Specific suberror codes: Provides a more granular and specific cause of the verification error. Suberrors are linked to the general error codes.

Adyen sends these codes in the GET /accountHolders/{id} response and in the balancePlatform.accountHolder.created and balancePlatform.accountHolder.updated webhooks.

Recommendations

We recommend that you build your error handling flows using the codes that best fit your use cases and available development resources.

Using all the codes—general errors, suberrors, and remediating actions—allows you to help account holders fix issues while also providing them more information about an error. However, doing this requires the most work because your implementation must be able to handle all possible error codes.

Alternatively, you can use only the remediating actions to help your account holders solve issues. This requires less work because there are less remediating action codes to map in your implementation, but these codes alone do not provide details about an error.

Problems array example

When a verification error occurs, you get information from the problems array. This array contains the following:

  • entity object: The ID of the legal entity that has a verification error.
  • verificationErrors array: Contains the details of the errors. Each item contains:
    • type: The type of error. Possible values are invalidInput and dataMissing.
    • code: The general error code.
    • message: The general error message.
    • remediatingActions: This object is sent when there is a common remediating action in the suberrors. This contains a code and message.
    • subErrors array. Each entry contains a type, code, message, and a remediatingActions array.

Problems array example
{
  ...
    "problems": [
        {
            "entity": {
                "id": "LE322VF223222D5DQKK9H2FKV",
                "type": "LegalEntity"
            },
            "verificationErrors": [
                {
                    "code": "1_30",
                    "message": "Individual details couldn't be verified",
                    "remediatingActions": [
                        {
                            "code": "1_300",
                            "message": "Update individual details"
                        }
                    ],
                    "subErrors": [
                        {
                            "code": "1_3001",
                            "message": "The name and date of birth couldn't be verified.",
                            "remediatingActions": [
                                {
                                    "code": "1_301",
                                    "message": "Upload an ID document"
                                },
                                {
                                    "code": "1_300",
                                    "message": "Update individual details"
                                }
                            ],
                            "type": "invalidInput"
                        },
                        {
                            "code": "1_3000",
                            "message": "The user couldn't be verified.",
                            "remediatingActions": [
                                {
                                    "code": "1_300",
                                    "message": "Update individual details"
                                },
                                {
                                    "code": "1_301",
                                    "message": "Upload an ID document"
                                }
                            ],
                            "type": "invalidInput"
                        }
                    ],
                    "type": "invalidInput"
                }
            ]
        }
    ],
    "verificationStatus": "invalid"
  ...
}

Next steps

Build your error handling flows using the codes below.