This page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our new integration guide instead.
Adyen for Platforms provides you with a set of predefined test scenarios to test your integration. To test the scenarios, you need to create certain account holder states. This page explain how to:
- Create account holders in the states you need.
- Use the predefined test scenarios.
Create an account holder in the payout state
Select the account holder type to see the relevant examples below:
-
Make a POST /createAccountHolder request to create an account holder. In your request, specify:
address.city
: PASSEDbankAccountDetails.ownerCity
: PASSED for all banks accounts. At least one bank account must be defined.bankAccountDetails.ownerName
: TestDataindividualDetails.name.lastName
: TestDatalegalEntity
: Individual
/createAccountHolder requestExpand viewCopy link to code blockCopy code{ "accountHolderCode":"YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "accountHolderDetails":{ "address":{ "city":"PASSED", "country":"NL", "houseNumberOrName":"1", "postalCode":"1234AB", "street":"Main Street" }, "bankAccountDetails":[ { "countryCode":"NL", "currencyCode":"EUR", "iban":"NL13TEST0123456789", "ownerCity":"PASSED", "ownerCountryCode":"NL", "ownerHouseNumberOrName":"1", "ownerName":"TestData", "ownerPostalCode":"1234AB", "ownerStreet":"Main Street" } ], "email":"a.holder@example.com", "individualDetails":{ "name":{ "firstName":"Anthony", "gender":"MALE", "lastName":"TestData" }, "personalData":{ "dateOfBirth":"2001-04-27" } }, "phoneNumber":{ "phoneCountryCode":"NL", "phoneNumber":"0612345678", "phoneType":"Landline" }, "webAddress":"https://www.example.com" }, "legalEntity":"Individual", "processingTier":3 } -
Upload a photo ID on a Hosted Onboarding Page (HOP) or through an API request.
-
Hosted Onboarding Page
- Upload a document with a PASSED file name. For example, PASSED.jpg.
-
API
- Make a POST /uploadDocument request to upload a passport. In your request, specify:
documentContent
: A Base64-encoded image larger than 1000 bytes.documentType
: PASSPORTdescription
: PASSED
When uploading photo ID, the account holder is set to the limitless state. This means the account holder requires the highest level of KYC checks.
/uploadDocument request for passport uploadExpand viewCopy link to code blockCopy code{ "documentContent":"JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL1N1YnR5cGUgL0ltYWdlCi9UeXBlIC9YT2JqZWN0Ci9XaWR0aCAxMzYyCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9IZWlnaHQgNjI0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA0MDA2NQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCj4+CnN0cmVhbQp4nO3dB3gU1aRU9GCg==", "documentDetail": { "accountHolderCode":"YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "description":"PASSED", "documentType":"PASSPORT", "filename":"document_name_passport.pdf" } } - Make a POST /uploadDocument request to upload a passport. In your request, specify:
-
-
Upload a bank statement on a Hosted Onboarding Page (HOP) or through an API request.
-
Hosted Onboarding Page
- Upload a document with a PASSED file name. For example, PASSED.pdf.
-
API
- Make another POST /uploadDocument request to upload a bank statement:
/uploadDocument request for bank statement uploadExpand viewCopy link to code blockCopy code{ "documentContent":"JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL1N1YnR5cGUgL0ltYWdlCi9UeXBlIC9YT2JqZWN0Ci9XaWR0aCAxMzYyCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9IZWlnaHQgNjI0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA0MDA2NQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCj4+CnN0cmVhbQp4nO3dB3gU1aRU9GCg==", "documentDetail": { "accountHolderCode": "YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "bankAccountUUID": "THE_BANK_ACCOUNT_UUID_WHICH_NEEDS_VERIFICATIONThe /createAccountHolder response contains a bankAccountUUID", "description": "PASSED", "documentType": "BANK_STATEMENT", "filename": "document_name_bank_statement.pdf" } } The individual account holder now has its identity, document and bank statement verified.
-
An account holder with one of KYC checks set to FAILED
Select the account holder type to see the relevant examples below:
Make a POST /createAccountHolder request to create an account holder. In your request, specify:
address.city
: FRAUDbankAccountDetails.ownerCity
: FRAUD for all banks accounts. At least one bank account must be defined.bankAccountDetails.ownerName
: TestDataindividualDetails.name.lastName
: TestDatalegalEntity
: Individual
Here is an example of creating a suspended Individual legal entity account holder with its payouts blocked:
{ "accountHolderCode": "YOUR_UNIQUE_ACCOUNT_HOLDER_CODE", "accountHolderDetails": { "address": { "city": "FRAUD", "country": "NL", "houseNumberOrName": "1", "postalCode": "1234AB", "street": "Main Street" }, "bankAccountDetails": [ { "countryCode": "NL", "currencyCode": "EUR", "iban": "NL13TEST0123456789", "ownerCity": "FRAUD", "ownerCountryCode": "NL", "ownerHouseNumberOrName": "1", "ownerName": "TestData", "ownerPostalCode": "1234AB", "ownerStreet": "Main Street" } ], "email": "a.holder@example.com", "individualDetails": { "name": { "firstName": "Anthony", "gender": "MALE", "lastName": "TestData" }, "personalData": { "dateOfBirth": "2001-04-27" } }, "phoneNumber": { "phoneCountryCode": "NL", "phoneNumber": "0612345678", "phoneType": "Landline" }, "webAddress": "https://www.example.com" }, "legalEntity": "Individual", "processingTier": 2 }
An account holder with one of KYC checks set to INVALID_DATA
- Set
address.city
to INVALIDDATA. - Set
bankAccount.ownerCity
to INVALIDDATA for all banks accounts, which should be marked as Failed. - Set
description
to INVALIDDATA for a passport, if you need its KYC check to be marked as Failed.
An account holder with a PASSPORT_VERIFICATION KYC check set to INVALID_DATA
You can do this on a Hosted Onboarding Page (HOP) or through an API request.
-
Hosted Onboarding Page
- Upload a document with INVALIDDATA in the file name. For example, INVALIDDATA.jpg.
-
API
- Make a POST /uploadDocument request with:
documentContent
: A Base64-encoded image larger than 1000 bytes.documentType
: PASSPORTdescription
: INVALIDDATA
- Make a POST /uploadDocument request with:
Inactivate an account holder and schedule a refund
- Set
address.city
to INACTIVEDEADLINECITY.
The /refundNotPaidOutTransfers
call is scheduled to be performed in 6 weeks.
Inactivate an account holder and make a refund
- Set
address.city
to REFUNDDEADLINECITY.
In this case the /refundNotPaidOutTransfers
call is performed immediately.