List agreements
GET /api/v1/partner/customers/{customerId}/agreements
Required scope:
agreements:read(global tier).
Returns every catalogued agreement and where this customer stands on each.
“Assigned” currently means all customers on the current version. status answers
the only question you have: required (no valid acceptance), accepted (current
version accepted), or superseded (an old version was accepted and must be
re-collected).
Request
curl -X GET https://api.niftipay.com/api/v1/partner/customers/pc-1/agreements \
-H "Authorization: Bearer <partner_api_key>"
No request body.
Response 200
{
"request_id": "req-1",
"api_version": "2026-08-01",
"data": {
"agreements": [
{
"agreement_id": "tos",
"title": "Terms of Service",
"version": "1.0",
"effective_date": "2026-01-01",
"document_url": "https://.../tos.pdf",
"content_hash": "a1b2c3…64hex",
"parties": [
{
"role": "provider",
"name": "Niftipay"
},
{
"role": "customer",
"name": "Example SL"
}
],
"disclosure": "This agreement is between you and Niftipay …",
"status": "required",
"current_acceptance": null,
"previous_acceptances": []
}
]
}
}| Field | Type | Notes |
|---|---|---|
agreement_id |
string | |
title |
string | |
version |
string | Current version in force. |
effective_date |
string | |
document_url |
string | Where to render the document text. |
content_hash |
string | 64-hex SHA-256 of the document body. |
parties |
array | At least two: { role, name }. |
disclosure |
string | Always names Niftipay (no silent terms). |
status |
string | required | accepted | superseded. |
current_acceptance |
object|null | The acceptance of the current version, if any. |
previous_acceptances |
array | Acceptances of superseded versions. |
The current_acceptance object mirrors Accept an agreement’s body (sans the
wrapping acceptance key).
Errors
| Status | code | Meaning |
|---|---|---|
| 404 | not_found | Customer is not yours / relationship missing. |