Filter customers that have any financial activity (invoices, direct debits)
Adfin API (1.0.0)
Adfin uses OAuth 2.0 access tokens to authenticate all API requests.
There are two contexts in which tokens are issued:
Biller Access Tokens — Generated via the Authorization Code flow when a biller connects their Adfin account. These tokens grant access to that biller's data (invoices, payment requests, customers, etc.).
Platform Access Tokens — Generated via the Client Credentials flow for Adfin's own integrations and system events. These tokens authenticate Adfin as the platform itself (not as a specific biller) and are required for endpoints like
/api/webhook.
Filter customers that have signed their direct debit mandate after this date
Filter customers that have signed their direct debit mandate until this date
This flag determines whether the response should include the financial status of the customer's invoices and payments
The start time after which the customer last updated time should be, including the start time.
- Mock serverhttps://developer.adfin.com/_mock/api-docs/prod/customers
- Production API Server URLhttps://api.adfin.com/api/customers
- Staging API Server URLhttps://api.staging.adfin.com/api/customers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developer.adfin.com/_mock/api-docs/prod/customers?onlyCustomersWithActivity=string&searchText=string&ddMandateSignedStartTime=string&ddMandateSignedEndTime=string&ddMandateStatuses=string&includeCustomerFinancialDetails=string&financialStatuses=string&lastUpdatedStartTime=string&tagIds=string&customerIds=string&page=0&size=20&sort=creationTime%2CDESC' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "customers": [ { … } ], "page": { "page": 0, "size": 0, "totalPages": 0, "totalElements": 0, "numberOfElements": 0, "sort": "string" }, "pagination": { "page": 0, "size": 0, "totalPages": 0, "totalElements": 0, "numberOfElements": 0, "sort": "string" } }
- Mock serverhttps://developer.adfin.com/_mock/api-docs/prod/customers
- Production API Server URLhttps://api.adfin.com/api/customers
- Staging API Server URLhttps://api.staging.adfin.com/api/customers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://developer.adfin.com/_mock/api-docs/prod/customers \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"id": "string",
"externalId": "string",
"name": "string",
"people": [
{
"id": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phoneNo": "string",
"isPrimaryContact": true,
"isIncludedInCommunications": true
}
],
"addresses": [
{
"id": "string",
"city": "string",
"postalCode": "string",
"country": "string",
"addressLine1": "string"
}
],
"externalData": {
"connectorType": "string",
"id": "string",
"name": "string"
}
}'{ "id": "string", "externalId": "string", "name": "string", "creationTime": "2019-08-24T14:15:22Z", "lastUpdatedTime": "2019-08-24T14:15:22Z", "people": [ { … } ], "addresses": [ { … } ], "directDebitMandate": { "id": "string", "status": "string", "statusReasonCode": "string", "statusReason": "string", "creationTime": "2019-08-24T14:15:22Z", "lastUpdatedTime": "2019-08-24T14:15:22Z", "authorisationTime": "2019-08-24T14:15:22Z", "submissionTime": "2019-08-24T14:15:22Z", "url": "string" }, "timezone": "string", "discount": { "percentage": 0, "period": 0 }, "externalData": [ { … } ], "tags": [ "string" ] }
A list of people associated with the customer. Can include contacts, representatives, or stakeholders.
A list of addresses for the customer. Currently, only one address is supported.
- Mock serverhttps://developer.adfin.com/_mock/api-docs/prod/customers
- Production API Server URLhttps://api.adfin.com/api/customers
- Staging API Server URLhttps://api.staging.adfin.com/api/customers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.adfin.com/_mock/api-docs/prod/customers \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"name": "John Doe",
"people": [
{
"name": "Jane Smith",
"email": "jane.smith@example.com"
}
],
"addresses": [
{
"line1": "2 Catherine Pl",
"city": "London",
"state": "NY",
"postCode": "SW1E 6HF"
}
],
"externalData": {
"connectorType": "string",
"id": "string",
"name": "string"
}
}'{ "id": "string", "externalId": "string", "name": "string", "creationTime": "2019-08-24T14:15:22Z", "lastUpdatedTime": "2019-08-24T14:15:22Z", "people": [ { … } ], "addresses": [ { … } ], "directDebitMandate": { "id": "string", "status": "string", "statusReasonCode": "string", "statusReason": "string", "creationTime": "2019-08-24T14:15:22Z", "lastUpdatedTime": "2019-08-24T14:15:22Z", "authorisationTime": "2019-08-24T14:15:22Z", "submissionTime": "2019-08-24T14:15:22Z", "url": "string" }, "timezone": "string", "discount": { "percentage": 0, "period": 0 }, "externalData": [ { … } ], "tags": [ "string" ] }
Customer workflow settings
Auto-collect workflow settings
Indicates whether auto-collect workflow is enabled
Indicates whether auto-collect is the default workflow
When true, payment collection is paused. While paused, no automatic retries or scheduled collection attempts will occur.
On-demand workflow settings
- Mock serverhttps://developer.adfin.com/_mock/api-docs/prod/customers/workflow_settings
- Production API Server URLhttps://api.adfin.com/api/customers/workflow_settings
- Staging API Server URLhttps://api.staging.adfin.com/api/customers/workflow_settings
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://developer.adfin.com/_mock/api-docs/prod/customers/workflow_settings \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"customerIds": [
"string"
],
"workflowSettings": {
"autoCollect": {
"isEnabled": true,
"isDefault": true,
"pauseCollection": true,
"resumeCollectionAt": "2025-01-15T10:00:00Z"
},
"onDemand": {
"isEnabled": true,
"isDefault": true
},
"customerStatement": {
"isEnabled": true
}
}
}'{ "autoCollect": { "isEnabled": true, "isDefault": true, "pauseCollection": true, "resumeCollectionAt": "2025-01-15T10:00:00Z" }, "onDemand": { "isEnabled": true, "isDefault": true }, "customerStatement": { "isEnabled": true } }
- Mock serverhttps://developer.adfin.com/_mock/api-docs/prod/customers/{id}
- Production API Server URLhttps://api.adfin.com/api/customers/{id}
- Staging API Server URLhttps://api.staging.adfin.com/api/customers/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developer.adfin.com/_mock/api-docs/prod/customers/{id}?idType=string&includeCustomerFinancialDetails=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "id": "string", "externalId": "string", "name": "string", "creationTime": "2019-08-24T14:15:22Z", "lastUpdatedTime": "2019-08-24T14:15:22Z", "people": [ { … } ], "addresses": [ { … } ], "directDebitMandate": { "id": "string", "status": "string", "statusReasonCode": "string", "statusReason": "string", "creationTime": "2019-08-24T14:15:22Z", "lastUpdatedTime": "2019-08-24T14:15:22Z", "authorisationTime": "2019-08-24T14:15:22Z", "submissionTime": "2019-08-24T14:15:22Z", "url": "string" }, "timezone": "string", "discount": { "percentage": 0, "period": 0 }, "externalData": [ { … } ], "tags": [ "string" ] }
- Mock serverhttps://developer.adfin.com/_mock/api-docs/prod/customers/{id}/workflow_settings
- Production API Server URLhttps://api.adfin.com/api/customers/{id}/workflow_settings
- Staging API Server URLhttps://api.staging.adfin.com/api/customers/{id}/workflow_settings
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developer.adfin.com/_mock/api-docs/prod/customers/{id}/workflow_settings' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "autoCollect": { "isEnabled": true, "isDefault": true, "pauseCollection": true, "resumeCollectionAt": "2025-01-15T10:00:00Z" }, "onDemand": { "isEnabled": true, "isDefault": true }, "customerStatement": { "isEnabled": true } }