--- title: "Show Terms of Service document" description: "Accept Adyen's Terms of Service" url: "https://docs.adyen.com/payouts/payout-service/top-up-balance-accounts/sign-terms-of-service" source_url: "https://docs.adyen.com/payouts/payout-service/top-up-balance-accounts/sign-terms-of-service.md" canonical: "https://docs.adyen.com/payouts/payout-service/top-up-balance-accounts/sign-terms-of-service" last_modified: "2026-04-28T13:08:00+02:00" language: "en" --- # Show Terms of Service document Accept Adyen's Terms of Service [View source](/payouts/payout-service/top-up-balance-accounts/sign-terms-of-service.md) 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 company director 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 [enterprise payouts](/payouts/payout-service) integration. | | **[API credential roles](/development-resources/api-credentials/roles/)** | Make sure that you have the credentials for the [Legal Entity Management API](https://docs.adyen.com/api-explorer/legalentity/latest/overview) (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: 1. Optionally, make an API request to [check if you have already signed the Terms of Service](#check-existing-acceptance). 2. Make an API request to [generate the Terms of Service document](#generate-document). 3. [Present the Terms of Service document](#present-document) for review and acceptance. 4. Make an API request to [confirm that you have accepted the Terms of Service](#accept-tos). ## Check the Terms of Service status To see if you have already accepted the Terms of Service for top-up contracts: 1. Make a GET [/legalEntities/{id}/termsOfServiceAcceptanceInfos](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/\(id\)/termsOfServiceAcceptanceInfos) request with the [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) of the main legal entity in the path. The main legal entity is the legal entity that accepts the Terms of Service. For enterprises, this is the ID of the organization's legal entity. **Get Terms of Service information for a legal entity** ```bash curl https://kyc-test.adyen.com/lem/v3/legalEntities/LE00000000000000000000001/termsOfServiceAcceptanceInfos \ -H 'x-api-key: ADYEN_LEGAL_ENTITY_MANAGEMENT_API_KEY' \ -X GET \ ``` 2. The response returns a `data` array. 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 `data` array. * **If terms have been accepted**: Check the `data` array for an object where the `type` is set to `directDebit`. If this object is present, you have 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](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/_id_/termsOfServiceAcceptanceInfos#responses-200-data-createdAt) | The date the document was created. | | [id](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/_id_/termsOfServiceAcceptanceInfos#responses-200-data-id) | The unique identifier of the accepted document. | | [acceptedBy](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/_id_/termsOfServiceAcceptanceInfos#responses-200-data-acceptedBy) | The [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) of the individual who accepted the terms of service. | | [acceptedFor](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/_id_/termsOfServiceAcceptanceInfos#responses-200-data-acceptedFor) | The [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) of the main legal entity. | | [type](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/_id_/termsOfServiceAcceptanceInfos#responses-200-data-type) | The type of document based on the services and capabilities requested. | **Response** ```json { "data": [ { "acceptedBy": "LE00000000000000000000002", "acceptedFor": "LE00000000000000000000001", "createdAt": "2022-12-05T13:36:58.212253Z", "id": "TOSA000AB00000000B2AAAB2BA0AA0", "type": "directDebit" } ] } ``` ## Generate the Terms of Service document To generate the Terms of Service document: 1. Make a POST [/legalEntities/{id}/termsOfService](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService) request, specifying the [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) of the main legal entity in the path. For enterprises, this is the ID of the organization's legal entity. | Parameter | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [type](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#request-type) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The type of document based on the services and capabilities requested. Set this to **directDebit** for topup contracts. | | [language](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#request-language) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The language used for the Terms of Service document, specified by the two letter [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) 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](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#request-termsOfServiceDocumentFormat) | | The requested format for the Terms of Service document. Possilble values:- **JSON** (default) - **PDF** - **TXT** . | **Generate the Terms of Service document** ```bash curl https://kyc-test.adyen.com/lem/v3/legalEntities/LE00000000000000000000001/termsOfService \ -H 'x-api-key: ADYEN_LEGAL_ENTITY_MANAGEMENT_API_KEY' \ -H 'content-type: application/json' \ -X POST \ -d '{ "type": "directDebit", "language": "en" }' ``` 2. The response contains the following fields: | Parameter | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | [document](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#responses-200-document) | The generated document in the Base64-encoded format. Present this to the relevant individual in the [next step](#present-document). | | [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#responses-200-id) | The unique identifier of the legal entity. For enterprises, this is the ID of the organization's legal entity. | | [language](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#responses-200-language) | The language of the document. | | [type](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#responses-200-type) | The type of document based on the services and capabilities requested. | | [termsOfServiceDocumentId](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#responses-200-termsOfServiceDocumentId) | The unique identifier of the document. Use this when you confirm that you have [accepted the Terms of Service](#accept-tos). | | [termsOfServiceDocumentFormat](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#request-termsOfServiceDocumentFormat) | The requested format for the Terms of Service document. Possilble values:- **JSON** (default) - **PDF** - **TXT** | Depending on your integration, you may need to accept more than one Terms of Service document. In this case, every required [document](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/_id_/termsOfService#responses-200-document) and [termsOfServiceDocumentId](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/_id_/termsOfService#responses-200-termsOfServiceDocumentId) is returned in the response. **Response** ```json { "id": "LE00000000000000000000001", "type": "directDebit", "language": "en", "document": "termsOfServiceDocumentResponse" , "termsOfServiceDocumentId": "abc123", "termsOfServiceDocumentFormat": "JSON" } ``` ## Present the Terms of Service document You need 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 you download and review the document. ### Tab: Format: JSON To present the document, you can use the Adyen Document Viewer to render the document on your website. Before passing the document to the Adyen Document Viewer, you need to decode it. Use the following code to decode the document and pass it to the Document Viewer: ```js const documentViewer = new AdyenDocumentViewer('#test'); const document = JSON.parse(decodeURIComponent(escape(window.atob(termsOfServiceDocumentResponse.document)))); documentViewer.render(document); ``` ### Tab: Format: PDF or TXT In the response from the previous step, take the Base64-encoded data from the [document](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/\(id\)/termsOfService#responses-200-document). Decode it and display it in your UI for review and acceptance. ## Confirm the Terms of Service acceptance To confirm that you have accepted the Terms of Service: 1. Make a PATCH [/legalEntities/{id}/termsOfService/termsOfServicedocumentid](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/\(id\)/termsOfService/\(termsofservicedocumentid\)) request, specifying the [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) of the main legal entity and the [termsOfServiceDocumentId](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities/_id_/termsOfService#responses-200-termsOfServiceDocumentId) of the document in the path. For enterprises, include the legal entity ID of the organization in the path. In the body of the request, specify the following: | Parameter | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [acceptedBy](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#request-acceptedBy) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The individual legal entity [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) who accepts the Terms of Service. | | [ipAddress](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#request-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 enterprises, the document contains both the data for the organization and the individual legal entity of the authorized signatory who accepted the document. **Accept Terms of Service document** ```bash curl https://kyc-test.adyen.com/lem/v3/legalEntities/LE00000000000000000000001/termsOfService/abc123 \ -H 'x-api-key: ADYEN_LEGAL_ENTITY_MANAGEMENT_API_KEY' \ -H 'content-type: application/json' \ -X PATCH \ -d '{ "acceptedBy" : "LE00000000000000000000002", "ipAddress" : "127.0.0.1" }' ``` The response returns the following information. | Parameter | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [acceptedBy](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#responses-200-acceptedBy) | The individual legal entity [id](https://docs.adyen.com/api-explorer/legalentity/latest/post/legalEntities#responses-200-id) who accepted the Terms of Service. | | [id](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#responses-200-id) | The unique identifier of the accepted document. | | [ipAddress](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#responses-200-ipAddress) | The IP address of the individual accepting the Terms of Service. Returned only if provided in the request. | | [language](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#responses-200-language) | The language of the document. | | [termsOfServiceDocumentId](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#responses-200-termsOfServiceDocumentId) | The unique identifier of the document. | | [type](https://docs.adyen.com/api-explorer/legalentity/latest/patch/legalEntities/_id_/termsOfService/_termsofservicedocumentid_#responses-200-type) | The type of document based on the services and capabilities requested. | **Terms of Service document accepted** ```json { "acceptedBy": "LE00000000000000000000002", "id": "TOSA000AB00000000B2AAAB2BA0AA0", "ipAddress": "127.0.0.1", "language": "en", "termsOfServiceDocumentId": "abc123", "type": "directDebit" } ``` 2. 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](#check-existing-acceptance) to verify that the `type` **directDebit** is now returned in the acceptance information. ## See also ###### [Create recurring top-ups](/issuing/add-manage-funds/top-ups/create-recurring-top-ups) [Learn how to configure recurring top-ups for your balance accounts.](/issuing/add-manage-funds/top-ups/create-recurring-top-ups) ###### [Manage recurring top-ups](/issuing/add-manage-funds/top-ups/manage-recurring-top-ups) [Learn how to view, change, and delete recurring top-ups.](/issuing/add-manage-funds/top-ups/manage-recurring-top-ups) ###### [Top-up webhooks](/issuing/add-manage-funds/top-ups/top-up-webhooks) [Stay updated about changes to the recurring top-ups on your platform.](/issuing/add-manage-funds/top-ups/top-up-webhooks)