Are you looking for test card numbers?

Would you like to contact support?

No momento, esta página não está disponível em português
Marketpay 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 users 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.

To complete this procedure, you must have one of the following user roles :

  • BalancePlatform Merchant Admin role
  • BalancePlatform Merchant Read-only Admin role

To view the capabilities of an account holder:

  1. Log in to your Balance Platform Customer Area.
  2. Do one of the following:
    • Go to Account holders and select an account holder ID.
    • Search for an account holder by selecting Search at the top-right corner of the page. As a search parameter, use the account holder ID, account holder reference, or the ID of the linked legal entity.
  3. On the Account holder details page, you see details about the capabilities:
    • Whether the capabilities are allowed
    • Their verification status

Recommendations for custom onboarding

When using custom onboarding, we recommend that you build your error handling flows using the codes that best fit your use cases and available development resources.

We try to provide you with the most accurate feedback. This requires you to build your implementation so that it can handle all possible verification codes. Using all the codes allows you to resolve issues for your users by providing them with more information about errors and what they need to do next.

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": "LE00000000000000000000001",
                "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"
  ...
}

Próximas etapas

Build your error handling flows using the codes below.