REST API
Payers
POST/api/payers
Sign up a payer. Every field is validated and normalized; nothing is repaired silently. The account opens as pending_verification and can sign nothing until activated.
Request
JSON
{
"legalName": "Merchant B.V.",
"accountType": "business",
"registrationNumber": "87654321",
"vatNumber": "NL123456789B01",
"contactFirstName": "Eva",
"contactLastName": "Jansen",
"email": "[email protected]",
"phone": "+31612345678",
"fundingSources": [
{
"type": "sepa",
"destination": "NL91ABNA0417164300"
}
]
}Response 200
JSON
{
"ok": true,
"data": {
"payerId": "95df7fad-016c-4406-bd04-8ff13ac121ee",
"accountType": "business",
"legalName": "Merchant B.V.",
"registrationNumber": "87654321",
"vatNumber": "NL123456789B01",
"contactFirstName": "Eva",
"contactLastName": "Jansen",
"email": "[email protected]",
"phone": "+31612345678",
"fundingSources": [
{
"type": "sepa",
"label": "Bank account 4300",
"identifier": "NL91ABNA0417164300",
"holderName": "Merchant B.V.",
"isDefault": true,
"verified": false,
"sourceId": "70f228c6-a6d5-4057-b2b5-46c4f57525b2",
"createdAt": "2026-09-23T18:42:40.612Z"
}
],
"status": "pending_verification",
"history": [
{
"status": "pending_verification",
"timestamp": "2026-09-23T18:42:40.612Z",
"note": "Account created, awaiting verification."
}
],
"createdAt": "2026-09-23T18:42:40.612Z",
"updatedAt": "2026-09-23T18:42:40.612Z"
}
}POST/api/payers/{id}/activate
Record the verification decision. A person's name goes in verifiedBy.
Request
JSON
{
"verifiedBy": "Compliance Officer",
"note": "KYB documents checked"
}Response 200
JSON
{
"ok": true,
"data": {
"payerId": "95df7fad-016c-4406-bd04-8ff13ac121ee",
"accountType": "business",
"legalName": "Merchant B.V.",
"registrationNumber": "87654321",
"vatNumber": "NL123456789B01",
"contactFirstName": "Eva",
"contactLastName": "Jansen",
"email": "[email protected]",
"phone": "+31612345678",
"fundingSources": [
{
"type": "sepa",
"label": "Bank account 4300",
"identifier": "NL91ABNA0417164300",
"holderName": "Merchant B.V.",
"isDefault": true,
"verified": false,
"sourceId": "70f228c6-a6d5-4057-b2b5-46c4f57525b2",
"createdAt": "2026-09-23T18:42:40.612Z"
},
{
"type": "sepa",
"label": "Bank account 3000",
"identifier": "DE89370400440532013000",
"holderName": "Merchant B.V.",
"isDefault": false,
"verified": false,
"sourceId": "948857c9-e456-491f-8ef4-596e7208d0a5",
"createdAt": "2026-09-23T18:42:40.615Z"
}
],
"status": "active",
"history": [
{
"status": "pending_verification",
"timestamp": "2026-09-23T18:42:40.612Z",
"note": "Account created, awaiting verification."
},
{
"status": "active",
"timestamp": "2026-09-23T18:42:40.616Z",
"note": "KYB documents checked"
}
],
"createdAt": "2026-09-23T18:42:40.612Z",
"updatedAt": "2026-09-23T18:42:40.616Z"
}
}POST/api/payers/{id}/funding-sources
Add an account the payer can be debited from.
Request
JSON
{
"type": "sepa",
"destination": "DE89370400440532013000"
}Response 200
JSON
{
"ok": true,
"data": {
"payerId": "95df7fad-016c-4406-bd04-8ff13ac121ee",
"accountType": "business",
"legalName": "Merchant B.V.",
"registrationNumber": "87654321",
"vatNumber": "NL123456789B01",
"contactFirstName": "Eva",
"contactLastName": "Jansen",
"email": "[email protected]",
"phone": "+31612345678",
"fundingSources": [
{
"type": "sepa",
"label": "Bank account 4300",
"identifier": "NL91ABNA0417164300",
"holderName": "Merchant B.V.",
"isDefault": true,
"verified": false,
"sourceId": "70f228c6-a6d5-4057-b2b5-46c4f57525b2",
"createdAt": "2026-09-23T18:42:40.612Z"
},
{
"type": "sepa",
"label": "Bank account 3000",
"identifier": "DE89370400440532013000",
"holderName": "Merchant B.V.",
"isDefault": false,
"verified": false,
"sourceId": "948857c9-e456-491f-8ef4-596e7208d0a5",
"createdAt": "2026-09-23T18:42:40.615Z"
}
],
"status": "pending_verification",
"history": [
{
"status": "pending_verification",
"timestamp": "2026-09-23T18:42:40.612Z",
"note": "Account created, awaiting verification."
}
],
"createdAt": "2026-09-23T18:42:40.612Z",
"updatedAt": "2026-09-23T18:42:40.615Z"
}
}POST/api/payers/{id}/suspend
Suspend a payer: no new mandates. Existing mandates stay until revoked.
Request
JSON
{
"reason": "Chargeback investigation"
}Response 200
JSON
{
"ok": true,
"data": {
"payerId": "95df7fad-016c-4406-bd04-8ff13ac121ee",
"accountType": "business",
"legalName": "Merchant B.V.",
"registrationNumber": "87654321",
"vatNumber": "NL123456789B01",
"contactFirstName": "Eva",
"contactLastName": "Jansen",
"email": "[email protected]",
"phone": "+31612345678",
"fundingSources": [
{
"type": "sepa",
"label": "Bank account 4300",
"identifier": "NL91ABNA0417164300",
"holderName": "Merchant B.V.",
"isDefault": true,
"verified": false,
"sourceId": "70f228c6-a6d5-4057-b2b5-46c4f57525b2",
"createdAt": "2026-09-23T18:42:40.612Z"
},
{
"type": "sepa",
"label": "Bank account 3000",
"identifier": "DE89370400440532013000",
"holderName": "Merchant B.V.",
"isDefault": false,
"verified": false,
"sourceId": "948857c9-e456-491f-8ef4-596e7208d0a5",
"createdAt": "2026-09-23T18:42:40.615Z"
}
],
"status": "suspended",
"history": [
{
"status": "pending_verification",
"timestamp": "2026-09-23T18:42:40.612Z",
"note": "Account created, awaiting verification."
}
],
"createdAt": "2026-09-23T18:42:40.612Z",
"updatedAt": "2026-09-23T18:42:40.861Z"
}
}GET/api/payers/{id}
Read a payer. Same shape as the signup response.
GET/api/payers
List payers.
Response 200
JSON
{
"ok": true,
"data": {
"payers": [
{
"payerId": "95df7fad-016c-4406-bd04-8ff13ac121ee",
"accountType": "business",
"legalName": "Merchant B.V.",
"registrationNumber": "87654321",
"vatNumber": "NL123456789B01",
"contactFirstName": "Eva",
"contactLastName": "Jansen",
"email": "[email protected]",
"phone": "+31612345678",
"fundingSources": [
{
"type": "sepa",
"label": "Bank account 4300",
"identifier": "NL91ABNA0417164300",
"holderName": "Merchant B.V.",
"isDefault": true,
"verified": false,
"sourceId": "70f228c6-a6d5-4057-b2b5-46c4f57525b2",
"createdAt": "2026-09-23T18:42:40.612Z"
},
{
"type": "sepa",
"label": "Bank account 3000",
"identifier": "DE89370400440532013000",
"holderName": "Merchant B.V.",
"isDefault": false,
"verified": false,
"sourceId": "948857c9-e456-491f-8ef4-596e7208d0a5",
"createdAt": "2026-09-23T18:42:40.615Z"
}
],
"status": "active",
"history": [
{
"status": "pending_verification",
"timestamp": "2026-09-23T18:42:40.612Z",
"note": "Account created, awaiting verification."
},
{
"status": "active",
"timestamp": "2026-09-23T18:42:40.616Z",
"note": "KYB documents checked"
}
],
"createdAt": "2026-09-23T18:42:40.612Z",
"updatedAt": "2026-09-23T18:42:40.616Z"
}
]
}
}