Agreements
Sign the Valpay T&C, Adyen Service Agreement, and (when applicable) Adyen PCI DSS attestation for an existing merchant. Sign one, several, or all in a single call.
All endpoints require either a JWT Bearer token in the Authorization header or an API key in the X-API-KEY header.
Base URL: https://onboarding.valpay.com.
GET /v1/adyen/merchants/{merchant_id}/agreements
Get applicable agreements for a merchant
Returns the signing bundle — the same shape included in the create-merchant response. Use this to check per-agreement signed state. Document content is fetched separately via GET /v1/adyen/merchants/{merchant_id}/agreements/{type}/document.
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path |
| Yes | Merchant UUID. |
Responses
Status | Description |
|---|---|
| Applicable agreements retrieved successfully |
| Authentication failed — missing or invalid credentials |
| Merchant not found — also returned for cross-tenant access (we never confirm whether a uuid exists outside the caller's tenant) |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| No | |
|
| No | All agreements applicable to this merchant. PCI is omitted when not required. |
|
| No |
POST /v1/adyen/merchants/{merchant_id}/agreements
Sign agreements for a merchant
Signs the agreements the caller submits — one, several, or all of the applicable list. The signature block carries only the signer's first and last name; each type in agreements must be in the applicable list returned by GET /agreements. Inapplicable entries are rejected with 400. Already-signed agreements (same signer) are silently skipped. A different signer on an already-signed agreement is rejected with 409.
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path |
| Yes | Merchant UUID. |
Request body (required)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | |
|
| Yes | Every agreement the caller is signing in this atomic call. Must exactly match the applicable list returned by GET /agreements / create-merchant — both extras and omissions are rejected. |
Responses
Status | Description |
|---|---|
| All requested agreements signed successfully (or — on a retry — already signed by the same signer) |
| Bad request — submitted list contains an agreement that doesn't apply to this merchant, or the body fails validation |
| Authentication failed |
| Merchant not found — also returned for cross-tenant access |
| Conflict — an already-signed agreement is being re-signed by a different signer |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| No | |
|
| No | All agreements applicable to this merchant. PCI is omitted when not required. |
|
| No |
GET /v1/adyen/merchants/{merchant_id}/agreements/{type}/document
Fetch the document for one agreement
Returns the document for the merchant. VALPAY_TC → HTML download (text/html); ADYEN_SERVICE_AGREEMENT → PDF download; ADYEN_PCI_DSS → JSON form definition (when not yet signed) or PDF download of the completed questionnaire (when already signed).
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path |
| Yes | Merchant UUID. |
| path |
| Yes | Which agreement's document to fetch. One of: |
Responses
Status | Description |
|---|---|
| Document returned to the partner. - |
| Unknown agreement type (the |
| Authentication failed |
| Merchant not found, cross-tenant access, or the requested document is not currently available for this merchant (e.g., Valpay contract URL not set, Adyen reports no pending service-agreement ToS, or PCI is not applicable). |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| No | |
|
| No | Adyen PCI questionnaire form definition. Shape is determined by Adyen and may include nested sections, questions, and answer options that the partner UI renders as inputs. |
|
| No |
Examples
GET /v1/adyen/merchants/{merchant_id}/agreements
Response 200 (illustrative):
POST /v1/adyen/merchants/{merchant_id}/agreements
Response 200: the signed agreements list.
GET /v1/adyen/merchants/{merchant_id}/agreements/{type}/document
Response 200: the agreement document as a file download (PDF in this case).