Skip to content

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 when a platform authenticates as itself rather than as one of its billers. A platform uses one to manage its own webhook subscriptions under /api/apps/{clientId}/webhooks.

Languages
Servers
Mock server
https://developer.adfin.com/_mock/products/direct-integration/direct-integration-api-reference/
Production API Server URL
https://api.adfin.com/api/
Staging API Server URL
https://api.staging.adfin.com/api/

oAuth2

Operations

Biller

Operations

Retrieves a biller

Request

Fetches the details of the authenticated user's associated biller. Returns a 404 if no biller is found.

Security
Biller Access Token (Staging) or Biller Access Token (Production)
curl -i -X GET \
  https://developer.adfin.com/_mock/products/direct-integration/direct-integration-api-reference/biller \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The biller details retrieved successfully

Bodyapplication/json
idstringnon-emptyrequired

The unique identifier of the biller.

namestring[ 0 .. 255 ] charactersrequired

The legal registration name of the company.

statementNamestring[ 0 .. 22 ] charactersrequired

The biller statement name shown on bank and credit card statements.

directDebitStatementNamestring

The biller statement name shown on Direct Debit bank statements.

aliasstring[ 0 .. 50 ] charactersrequired

The short name of the biller.

registrationNostringnon-emptyrequired

The registration number of the company.

currencyCodestringrequired

The default currency of the biller.

Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
countryCodestringnon-emptyrequired

The default country code of the biller.

timezonestringnon-emptyrequired

The default timezone of the biller.

websitestring

The website of the biller.

categoryCodestring

The merchant category code (MCC) representing the business type.

industryCodestring

The industry code that represents the industry of the biller.

legalEntityTypestringrequired

The legal entity type of the biller.

Enum"organization""soleProprietorship"
businessTypestring

The business type of the biller.

Enum"PRIVATE_COMPANY""PUBLIC_COMPANY""OTHER_COMPANY""INCORPORATED_PARTNERSHIP""UNINCORPORATED_PARTNERSHIP""INDIVIDUAL""NON_PROFIT"
vatRegistrationNostring

The VAT registration number of the biller.

billingEmailstring

The email address for billing purposes.

emailDomainstring

The email domain of the biller.

paymentDetailsArray of objects(PaymentDetails)

The list of payment details associated with the biller.

bankAccountsArray of objects(BankAccountResponse)

The list of bank accounts associated with the biller.

locationsArray of objects(Location)

The registered business locations of the biller.

statusstringrequired

The status of the biller.

Enum"PENDING""RESTRICTED""VERIFIED""ACTIVE""INACTIVE""LAPSED""BLACKLISTED""CLOSED"
channelBillerIdstring

The identifier of the biller associated with the payment provider.

accountingSettingsobject(AccountingSettingsResponse)
creationTimestring(date-time)

The date and time when the biller was created.

externalDataArray of objects(BillerExternalData)

References about this biller from external platforms Adfin integrates with, such as ID, etc.

typestringrequired

The type of the biller.

Enum"STANDARD""DEMO""E2E"
paymentSettingsobject(PaymentSettingsResponse)Deprecated
Response
application/json
{ "id": "string", "name": "string", "statementName": "string", "directDebitStatementName": "string", "alias": "string", "registrationNo": "string", "currencyCode": "AED", "countryCode": "string", "timezone": "string", "website": "string", "categoryCode": "string", "industryCode": "string", "legalEntityType": "organization", "businessType": "PRIVATE_COMPANY", "vatRegistrationNo": "string", "billingEmail": "string", "emailDomain": "string", "paymentDetails": [ {} ], "bankAccounts": [ {} ], "locations": [ {} ], "status": "PENDING", "channelBillerId": "string", "paymentSettings": { "status": "ACTIVE", "paymentMethods": [], "entityId": "string", "entityType": "BILLER" }, "accountingSettings": { "connectors": [] }, "creationTime": "2019-08-24T14:15:22Z", "externalData": [ {} ], "type": "STANDARD" }

Patch a Biller

Request

Applies JSON Patch operations to update specific biller fields.

Security
Biller Access Token (Staging) or Biller Access Token (Production)
Bodyapplication/json-patch+jsonrequired
operationsArray of JsonPatchOperation (object)

Patch operations to be applied to biller

curl -i -X PATCH \
  https://developer.adfin.com/_mock/products/direct-integration/direct-integration-api-reference/biller \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json-patch+json' \
  -d '{
    "operations": [
      {
        "op": "string",
        "path": {
          "empty": true
        },
        "value": null
      }
    ]
  }'

Responses

The biller was successfully patched.

Retrieves the payment capabilities of a biller

Request

Returns the payment capabilities that apply to the biller, each with its status.

A capability that does not apply is left out of the list rather than sent with a status. A missing capability means only that Adfin does not offer it to this biller right now. It is not a rejection, and the list length is not a fixed denominator.

Security
Biller Access Token (Production) or Biller Access Token (Staging)
Path
billerIdstring(uuid)required

The biller the capabilities belong to.

curl -i -X GET \
  'https://developer.adfin.com/_mock/products/direct-integration/direct-integration-api-reference/billers/{billerId}/payment_capabilities' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The payment capabilities retrieved successfully.

Bodyapplication/json
lastUpdatedTimestring(date-time)

When the biller's capability record last changed.

paymentCapabilitiesArray of objects(PaymentCapabilityResponse)required

The payment capabilities that apply to the biller, each with its status.

paymentCapabilities[].​capabilitystringrequired

The payment capability.

Enum"CARD""DIRECT_DEBIT""PAY_BY_BANK""PAYOUTS""BANK_TRANSFER""PAYMENT_OVER_THE_PHONE"
paymentCapabilities[].​statusstringrequired

Whether the capability can be used.

Enum"VALID""PENDING""INVALID""REJECTED""RESTRICTED"
Response
application/json
{ "lastUpdatedTime": "2026-08-20T14:02:31Z", "paymentCapabilities": [ {}, {}, {}, {} ] }

Verifications

Operations

Customers

Operations

Direct debit mandates

Operations

Invoices

Operations

Recurring invoices

Operations

Payment requests

Operations

Recurring payment requests

Operations

Payments

Operations

Payouts

Operations

Tax rates

Operations

Items

Operations

Workflows

Operations

Activities

What has happened to a customer, invoice, payment request or schedule.

Operations

Scheduled Activities

Operations

Webhooks

Operations