Are you looking for test card numbers?

Would you like to contact support?

Marketpay icon

Verification results

Keep track of the results of the verification and know when to retry.

You can find out about the verification results by:

Adyen sends an ACCOUNT_HOLDER_VERIFICATION notification webhook to inform your server of the results of the check. This notification contains:

Here is an example notification when the data that the account holder has provided is invalid.

Webhook for check with INVALID_DATA
{
   "error": {
      "errorCode": "1104",
      "message": "test error message"
   },
   "eventDate": "1970-01-01T01:00:00+01:00",
   "eventType": "ACCOUNT_HOLDER_VERIFICATION",
   "executingUserKey": "executing-user-key",
   "live": true,
   "pspReference": "TSTPSPR0001",
   "content": {
      "accountHolderCode": "AH0000001",
      "kycCheckStatusData": {
         "type": "PASSPORT_VERIFICATION",
         "status": "INVALID_DATA",
         "summary": {
            "kycCheckCode": 1104,
            "kycCheckDescription": "Document has expired"
         },
         "requiredFields": [
            "field.missing"
         ]
      },
      "shareholderCode": "SH00000001"
   }
}

You can also make a POST /getAccountHolder request to get updates about the verification. Specify the accountHolderCode in your request.

/getAccountHolder request
 curl https://cal-test.adyen.com/cal/services/Account/v6/getAccountHolder \
  -H "x-API-key: YOUR_X-API-KEY" \
  -H "content-type: application/json" \
  -d '{
     "accountHolderCode": "YOUR_ACCOUNT_HOLDER_CODE"
}'

The response returns a verification object. In this object you'll find the resource being verified, along with the following:

/getAccountHolder response
{
   "pspReference" : "8836183819713023",
   "accountHolderCode" : "YOUR_ACCOUNT_HOLDER_CODE",
   ...
   "verification" : {
      "accountHolder" : {
        "checks" : [
          {
            "type" : "IDENTITY_VERIFICATION",
            "status" : "DATA_PROVIDED"
          },
          {
            "type" : "PASSPORT_VERIFICATION",
            "status" : "INVALID_DATA",
            "summary": {
             "kycCheckCode": 1104,
             "kycCheckDescription": "Document has expired"
            },
            "requiredFields": [
              "field.missing"
            ]
          }
        ]
      }
   }
}

In addition to getting the results through notifications and API responses, you can also view verification statuses in your Customer Area. Your Customer Area user must have the Merchant MarketPlace role user role.

  1. Log in to your Customer Area.
  2. Go to Platform > Sub-merchants.
  3. Find the account holder and select the KYC tab.

Here you can find more information about the verification process, such status of the checks and the tiers for your platform.

Verification types

The verification is categorized into the following checks.

Type Description
COMPANY_VERIFICATION Checks for a business legal entity.
IDENTITY_VERIFICATION Checks for an individual account holder.
LEGAL_ARRANGEMENT_VERIFICATION Checks for an account holder with a legal arrangement.
NONPROFIT_VERIFICATION Checks for a nonprofit organization.
PASSPORT_VERIFICATION Checks for an identification documents such as a passport or driver's license.
PAYOUT_METHOD_VERIFICATION Checks for the payout methods that an account holder adds. This type is sent starting from notification webhook version 6. This replaces BANK_ACCOUNT_VERIFICATION and CARD_VERIFICATION from earlier versions.
PCI_VERIFICATION Checks for PCI SAQ A questionnaire.

Verification statuses

Below are the different check statuses and the action that you can take.

Verification status Description Action to take
AWAITING_DATA There is still missing data required for the verification to start. Get the required information from the account holder.
DATA_PROVIDED All the required data has been provided. None.
PENDING Verification is in progress. None. The status will change once the validation is completed.
INVALID_DATA There are errors in the data provided. Retry the verification.
RETRY_LIMIT_REACHED The data has been updated too many times. For some of the checks, you may retry the verification.
PASSED The verification has been completed and the data has passed the checks None. The account holder can continue processing payments and payouts are enabled.
FAILED Adyen has verified the information, but has found reasons to refuse working with this entity. None. This is a final state.
When a check fails, the account holder status is set to suspended.

Retrying the verification

Adyen uses the data from the account holder to automatically run the verification. However, in some cases, automatic verification might fail. This could be due to incorrect data or the data can't be verified.

In general, the following statuses mean that you can retry the verification.

  • INVALID_DATA: You should ask the account holder to review their data and update when needed.
  • RETRY_LIMIT_REACHED: This means that Adyen has tried to verify the account holder more than three times. After the third attempt, Adyen may require additional documents.

The following sections are specific for the verification type.

For individuals

When the IDENTITY_VERIFICATION type has the following statuses, you can ask the account holder to retry.

Status Action to take
INVALID_DATA Ask the account holder to review and update their information.
RETRY_LIMIT_REACHED Upload a photo ID.

For bank accounts

When the PAYOUT_METHOD_VERIFICATION type has the following statuses, you can ask the account holder to retry.

Status Action to take
INVALID_DATA Ask the account holder to review and update their information.
RETRY_LIMIT_REACHED Upload a bank statement.

For organizations

When the COMPANY_VERIFICATION or NONPROFIT_VERIFICATION types has an INVALID_DATA status, check the kycCheckCode to know if you can retry the verification by uploading documents.

  • For API version 5 and later, refer to Company check verification codes for a full list of codes.
  • For API version 4 and earlier, check if the kycCheckCode is "1604: The submitted Taxpayer Identification Number and legal business name do not match. Correct any errors."

If you receive any of the codes described above, you should:

  1. Ask the account holder to review if their company name and business registration number are correct, and update if needed.
  2. In case the account holder is certain that their company name and business registration number are correct, give them the option to upload a company registration document.
  3. If after three attempts you still receive any of kycCheckCode described above, require the account holder to upload a company registration document in addition to reviewing and updating their company name and registration number.

Adyen will use the company registration document to manually verify the company.

See also