Your users must accept Adyen's Terms of Service before they can perform particular actions in your marketplace. If you build your own UI to collect data to onboard your users, you must generate a Terms of Service document, show the document to your users, and ask them to accept it. If you are using hosted onboarding, your user will complete this step as part of the onboarding process.
The Terms of Service document must be accepted by an individual legal entity that represents a physical person. For organizations, the document must be accepted by an authorized signatory of the organization. For example:
- A cardholder accepts the document on their own behalf.
- The owner of a restaurant accepts the document on behalf of the legal entity that represents the business.
Before you begin
Make sure that you have API credentials for the Legal Entity Management API and that you have created legal entities for:
- The user that has a contractual relationship with your marketplace.
- The individual legal entity who will accept the document.
Step 1: Confirm Terms of Service requirements
When you create an account holder, certain capabilities are requested for them. To check whether your user must accept the Terms of Service, listen to balancePlatform.accountHolder.updated webhooks.
If your user is required to accept Adyen's Terms of Service, it is indicated in the verificationErrors
array.
Step 2: Get the types of Terms of Service required
If your user is required to accept Adyen's Terms of Service, you must determine which types of documents they need to accept. Make a GET /legalEntities/{id}/termsOfServiceStatus request, specifying the id of the main legal entity in the path. For sole proprietorships, this is the individual legal entity ID of the owner.
Note that your user may need to accept more than one Terms of Service document.
In your test environment, only the document type adyenForPlatformsAdvanced
is returned regardless of your actual integration. This is since all accounts use the same default configuration. In your live environment, the actual Terms of Service document types are returned.
Step 3: Generate the Terms of Service documents
To generate the Terms of Service documents, make a POST /legalEntities/{id}/termsOfService request, specifying the id of the main legal entity in the path. For sole proprietorships, this is the individual legal entity ID of the owner.
Parameter | Required | Description | |
---|---|---|---|
type | ![]() |
The type of document based on the services and capabilities requested by the user and your platform integration. | |
language | ![]() |
The language used for the Terms of Service document, specified by the two letter ISO 639-1 language code. Possible value: en for English. |
The response returns the following information:
Parameter | Description |
---|---|
document | The generated document in the Base64-encoded format. |
id | The unique identifier of the organization legal entity. |
language | The language of the document. |
type | The type of document based on the services and capabilities requested by the user and your platform integration. |
termsOfServiceDocumentId | The unique identifier of the document. |
The response returns the document and its unique termsOfServiceDocumentId.
Your user may need to accept more than one Terms of Service document depending on your integration. In this case, every required document and termsOfServiceDocumentId is returned in the response.
You will need to present the document to your user in the next step. Use the document ID when you confirm your user has accepted the Terms of Service.
Step 4: Present the Terms of Service document to your user
You need to ask your user to review and accept the Terms of Service document. To present the document to your user, you can use the Adyen Document Viewer to render the document in your website.
Before passing the document to the Adyen Document Viewer, you need to decode it.
const documentViewer = new AdyenDocumentViewer('#test');
const document = JSON.parse(decodeURIComponent(escape(window.atob(termsOfServiceDocumentResponse.document))));
documentViewer.render(document);
Step 5: Accept the Terms of Service
To confirm that your user has accepted the Terms of Service, make a PATCH /legalEntities/{id}/termsOfService/termsOfServicedocumentid request, specifying the id of the main legal entity and the termsOfServiceDocumentId of the document in the path. For sole proprietorships, the main legal entity is the legal entity ID of the owner. For organizations, this is the ID of the organization.
In the body of the request, specify the following:
Parameter | Required | Description |
---|---|---|
acceptedBy | ![]() |
The individual legal entity id of the user accepting the Terms of Service. For organizations, this must be the legal entity ID of an authorized signatory for the organization. For sole proprietorships, this must be the individual legal entity ID of the owner. |
ipAddress | The IP address of the user. |
This request populates the document with the data for the main legal entity. For sole proprietorships, this is the individual legal entity of the owner. For organizations, the document will also contain the data of the individual legal entity who accepted the document.
The response returns the following information.
Parameter | Description |
---|---|
acceptedBy | The individual legal entity id of the user who accepted the terms of service. |
id | The unique identifier of the accepted document. |
ipAddress | The IP address of the user. Only if provided in the request. |
language | The language of the document. |
termsOfServiceDocumentId | The unique identifier of the document. |
type | The type of document based on the services and capabilities requested by the user and your platform integration. |
Step 6 (Optional): Get the Terms of Service information for a legal entity
To see the Terms of Service information for a legal entity, make a GET /legalEntities/{id}/termsOfServiceAcceptanceInfos request with the id of the main legal entity in the path. For sole proprietorships, this is the individual legal entity ID of the owner.
The response returns information about the Terms of Service document linked to the legal entity.
Parameter | Description |
---|---|
createdAt | The date the document was created. |
id | The unique identifier of the accepted document. |
acceptedBy | The id of the individual who accepted the terms of service. |
acceptedFor | The id of the main legal entity. |
type | The type of document based on the services and capabilities requested by the user and your platform integration. |