--- title: "Test scenarios" description: "Test your integration." url: "https://docs.adyen.com/classic-platforms/test-scenarios" source_url: "https://docs.adyen.com/classic-platforms/test-scenarios.md" canonical: "https://docs.adyen.com/classic-platforms/test-scenarios" last_modified: "2020-10-26T10:15:00+01:00" language: "en" --- # Test scenarios Test your integration. [View source](/classic-platforms/test-scenarios.md) This page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our [new integration guide](/adyen-for-platforms-model) 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: ### Tab: Individual account holder 1. Make a POST [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request to create an account holder. In your request, specify: * `address.city`: **PASSED** * `bankAccountDetails.ownerCity`: **PASSED** for all banks accounts. At least one bank account must be defined. * `bankAccountDetails.ownerName`: **TestData** * `individualDetails.name.lastName`: **TestData** * `legalEntity`: **Individual** **/createAccountHolder request** ```json { "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 } ``` 2. 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](https://docs.adyen.com/api-explorer/#/Account/uploadDocument) request to upload a passport. In your request, specify: * `documentContent`: A Base64-encoded image larger than 1000 bytes. * `documentType`: **PASSPORT** * `description`: **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 upload** ```json { "documentContent":"JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL1N1YnR5cGUgL0ltYWdlCi9UeXBlIC9YT2JqZWN0Ci9XaWR0aCAxMzYyCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9IZWlnaHQgNjI0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA0MDA2NQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCj4+CnN0cmVhbQp4nO3dB3gU1aRU9GCg==", "documentDetail": { "accountHolderCode":"YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "description":"PASSED", "documentType":"PASSPORT", "filename":"document_name_passport.pdf" } } ``` 3. 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](https://docs.adyen.com/api-explorer/#/Account/uploadDocument) request to upload a bank statement: **/uploadDocument request for bank statement upload** ```json { "documentContent":"JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL1N1YnR5cGUgL0ltYWdlCi9UeXBlIC9YT2JqZWN0Ci9XaWR0aCAxMzYyCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9IZWlnaHQgNjI0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA0MDA2NQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCj4+CnN0cmVhbQp4nO3dB3gU1aRU9GCg==", "documentDetail": { "accountHolderCode": "YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "bankAccountUUID": "{hint:The /createAccountHolder response contains a bankAccountUUID}THE_BANK_ACCOUNT_UUID_WHICH_NEEDS_VERIFICATION{/hint}", "description": "PASSED", "documentType": "BANK_STATEMENT", "filename": "document_name_bank_statement.pdf" } } ``` The individual account holder now has its identity, document and bank statement verified. ### Tab: Business account holder 1. Make a POST [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request to create an account holder. In your request, specify : * `address.city`: **PASSED** * `bankAccountDetails.ownerName`: **TestData** * `bankAccountDetails.ownerCity`: **PASSED** for all banks accounts. At least one bank account must be defined. * `businessDetails.legalBusinessName`: **TestData** * `businessDetails.shareholders.address.city`: **PASSED** for each shareholder. * `businessDetails.shareholders.name.lastName`: **TestData** for each shareholder * `legalEntity`: **Business** **/createAccountHolder request** ```json { "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" } ], "businessDetails":{ "doingBusinessAs":"Furniture shop", "legalBusinessName":"TestData", "registrationNumber":"123456789", "shareholders":[ { "address":{ "city":"PASSED", "country":"NL", "houseNumberOrName":"1", "postalCode":"1234AB", "street":"Main Street" }, "email":"testshareholder@example.com", "name":{ "firstName":"Anthony", "gender":"MALE", "lastName":"TestData" }, "personalData":{ "dateOfBirth":"2001-04-27" } } ], "taxId":"1234567890" }, "email":"a.holder@example.com", "phoneNumber":{ "phoneCountryCode":"NL", "phoneNumber":"0612345678", "phoneType":"Landline" }, "webAddress":"https://www.example.com" }, "legalEntity":"Business", "processingTier":3 } ``` 2. 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](https://docs.adyen.com/api-explorer/#/Account/uploadDocument) request to upload a passport. In your request, specify: * `documentType`: **PASSPORT** * `description`: **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 upload** ```json { "documentContent":"JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL1N1YnR5cGUgL0ltYWdlCi9UeXBlIC9YT2JqZWN0Ci9XaWR0aCAxMzYyCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9IZWlnaHQgNjI0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA0MDA2NQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCj4+CnN0cmVhbQp4nO3dB3gU1aRU9GCg==", "documentDetail":{ "shareholderCode":"{hint:The /createAccountHolder response contains a shareholderCode}THE_SHAREHOLDER_WHICH_NEEDS_VERIFICATION{/hint}", "accountHolderCode":"YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "description":"PASSED", "documentType":"PASSPORT", "filename":"document_name_passport.pdf" } } ``` 3. 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](https://docs.adyen.com/api-explorer/#/Account/uploadDocument) request to upload a bank statement: **/uploadDocument request for bank statement upload** ```json { "documentContent":"JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL1N1YnR5cGUgL0ltYWdlCi9UeXBlIC9YT2JqZWN0Ci9XaWR0aCAxMzYyCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9IZWlnaHQgNjI0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0xlbmd0aCA0MDA2NQovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCj4+CnN0cmVhbQp4nO3dB3gU1aRU9GCg==", "documentDetail":{ "accountHolderCode":"YOUR_UNIQUE_ACCOUNTHOLDER_CODE", "bankAccountUUID": "{hint:The /createAccountHolder response contains a bankAccountUUID}THE_BANK_ACCOUNT_UUID_WHICH_NEEDS_VERIFICATION{/hint}", "description":"PASSED", "documentType":"BANK_STATEMENT", "filename":"bank_statement.png" } } ``` The account holder now has its company, 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: ### Tab: Individual account holder Make a POST [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request to create an account holder. In your request, specify: * `address.city`: **FRAUD** * `bankAccountDetails.ownerCity`: **FRAUD** for all banks accounts. At least one bank account must be defined. * `bankAccountDetails.ownerName`: **TestData** * `individualDetails.name.lastName`: **TestData** * `legalEntity`: **Individual** Here is an example of creating a suspended Individual legal entity account holder with its payouts blocked: **/createAccountHolder request** ```json { "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 } ``` ### Tab: Business account holder Make a POST [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request to create an account holder. In your request, specify: * `address.city`: **FRAUD** * `bankAccountDetails.ownerCity`: **FRAUD** for all banks accounts. At least one bank account must be defined. * `businessDetails.shareholders.address.city`: **FRAUD** * `businessDetails.shareholders.name.lastName`: **TestData** * `bankAccountDetails.ownerName`: **TestData** * `legalEntity`: **Business** Here is an example of creating a suspended Business legal entity account holder with its payouts blocked: **/createAccountHolder request** ```json { "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" } ], "businessDetails": { "doingBusinessAs": "Furniture shop", "legalBusinessName": "TestData", "registrationNumber": "123456789", "shareholders": [ { "address": { "city": "FRAUD", "country": "NL", "houseNumberOrName": "1", "postalCode": "1234AB", "street": "Main Street" }, "email": "testshareholder@example.com", "name": { "firstName": "Anthony", "gender": "MALE", "lastName": "TestData" }, "personalData": { "dateOfBirth": "2001-04-27" } } ], "taxId": "1234567890" }, "email": "a.holder@example.com", "phoneNumber": { "phoneCountryCode": "NL", "phoneNumber": "0612345678", "phoneType": "Landline" }, "webAddress": "https://www.example.com" }, "legalEntity": "Business", "processingTier": 1 } ``` ## 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](https://docs.adyen.com/api-explorer/#/Account/uploadDocument) request with: * `documentContent`: A Base64-encoded image larger than 1000 bytes. * `documentType`: **PASSPORT** * `description`: **INVALIDDATA** ## 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. ## See also * [API Reference](/classic-platforms/api) * [Error codes](/classic-platforms/error-codes) * [Payouts](/classic-platforms/payouts) * [Verification process](/classic-platforms/verification-process)