Before you can set up recurring top-ups, you must accept Adyen's Terms of Service for top-up contracts.
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.
Requirements
Before you begin, take into account the following requirements and preparations.
| Requirement | Description |
|---|---|
| Integration type | Adyen Issuing integration. |
| API credential roles | Make sure that you have the credentials for the Legal Entity Management API (in the format ws[123456]@Scope.Company[YourCompanyAccount]) |
| Setup steps | This workflow is only required if you are configuring top-ups using the API. If you are using the Customer Area, this is handled during the setup wizard. Before you begin, make sure that you created the legal entity connected to the account holder. This is the same legal entity that accepts the Terms of Service document. |
How it works
To generate and accept the Terms of Service, follow these steps:
- Optionally, make an API request to check if your cardholder has already signed the Terms of Service.
- Make an API request to generate the Terms of Service document.
- Present the Terms of Service document to your cardholder.
- Make an API request to confirm that your cardholder has accepted the Terms of Service.
Check the Terms of Service status
To see if your cardholder has already accepted the Terms of Service for top-up contracts:
-
Make a GET /legalEntities/{id}/termsOfServiceAcceptanceInfos request with the id of the main legal entity in the path. The main legal entity is the legal entity that accepts the Terms of Service. For sole proprietorships, this is the individual legal entity ID of the owner. For organizations, this is the ID of the organization.
-
The response returns a
dataarray. Each object in the array contains the details of a Terms of Service document that the legal entity has accepted.- If no terms have been accepted: The response returns an empty
dataarray. - If terms have been accepted: Check the
dataarray for an object where thetypeis set todirectDebit. If this object is present, your cardholder has already accepted the Terms of Service for top-up contracts and you can skip the remaining steps.
The response contains the following fields:
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. - If no terms have been accepted: The response returns an empty
Generate the Terms of Service document
To generate the Terms of Service document:
-
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. For organizations, this is the ID of the organization.
Parameter Required Description type 
The type of document based on the services and capabilities requested.
Set this to directDebit for topup contracts.language 
The language used for the Terms of Service document, specified by the two letter ISO 639-1 language code. Possible values: - en for English
- fr for French
Note that French is only available for some integration types in certain countries/regions. Reach out to your Adyen contact for more information.termsOfServiceDocumentFormat The requested format for the Terms of Service document. Possilble values: - JSON (default)
- TXT .
-
The response contains the following fields:
Parameter Description document The generated document in the Base64-encoded format. Present this to your cardholder in the next step. id The unique identifier of the legal entity. For sole proprietorships, this is the individual legal entity ID of the owner. For organizations, this is the ID of the organization. language The language of the document. type The type of document based on the services and capabilities requested. termsOfServiceDocumentId The unique identifier of the document. Use this when you confirm that your cardholder has accepted the Terms of Service. termsOfServiceDocumentFormat The requested format for the Terms of Service document. Possilble values: - JSON (default)
- TXT
Depending on your integration, your cardholder may need to accept more than one Terms of Service document. In this case, every required document and termsOfServiceDocumentId is returned in the response.
Present the Terms of Service document
You need to ask your cardholder to review and accept the Terms of Service document. The process depends on the format you requested in the previous step:- Use JSON if you want to render the document directly in your UI using the Adyen Document Viewer.
- Use PDF or TXT for a simpler flow where your cardholder downloads and reviews the document.
Confirm the Terms of Service acceptance
To confirm that your cardholder 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, include the legal entity ID of the owner in the path. For organizations, include the legal entity ID of the organization in the path.
In the body of the request, specify the following:
Parameter Required Description acceptedBy 
The individual legal entity id who accepts the Terms of Service. ipAddress The IP address of the individual accepting the Terms of Service. This request populates the Terms of Service document with the data of the main legal entity. For sole proprietorships, this is the information for the individual legal entity of the owner. For organizations, this means the document contains both the data for the organization and the individual legal entity of the authorized signatory who accepted the document.
The response returns the following information.
Parameter Description acceptedBy The individual legal entity id who accepted the Terms of Service. id The unique identifier of the accepted document. ipAddress The IP address of the individual accepting the Terms of Service. Returned 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. -
After receiving a successful response, confirm that the document is now correctly linked to the legal entity record. Follow the steps in Check the Terms of Service status to verify that the
typedirectDebit is now returned in the acceptance information.