# Adfin API 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`. Version: 1.0.0 ## Servers Production API Server URL ``` https://api.adfin.com/api ``` Staging API Server URL ``` https://api.staging.adfin.com/api ``` ## Security ### Biller Access Token (Production) Type: oauth2 ### Platform Bearer Token Type: http Scheme: Bearer ### Biller Access Token (Staging) Type: oauth2 ## Download OpenAPI description [Adfin API](https://developer.adfin.com/_bundle/products/direct-integration/direct-integration-api-reference.yaml) ## oAuth2 ### Issue an OAuth 2.0 access token - [POST /oauth2/token](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/oauth2/issueoauth2token.md) ### Revoke an OAuth2 Refresh token - [POST /oauth2/revoke](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/oauth2/revokeoauth2refreshtoken.md) ### Authorize an app to access Adfin data on behalf of an Adfin user - [POST /oauth2/authorize](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/oauth2/authorize.md) ### Get the authorization details for an app - [GET /oauth2/authorization](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/oauth2/getappauthorizationdetails.md) ## Biller ### Retrieves a biller - [GET /biller](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/biller/getbiller.md): Fetches the details of the authenticated user's associated biller. Returns a 404 if no biller is found. ### Patch a Biller - [PATCH /biller](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/biller/patchbiller.md): Applies JSON Patch operations to update specific biller fields. ## Customers ### Retrieve a list of customers by filter - [GET /customers](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/customers/getcustomers.md) ### Update a customer - [PUT /customers](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/customers/putcustomer.md) ### Create a customer - [POST /customers](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/customers/createcustomer.md) ### Upsert customer workflow settings - [PUT /customers/workflow_settings](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/customers/upsertworkflowsettings.md) ### Retrieve a customer - [GET /customers/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/customers/getcustomerbyid.md) ### Retrieve customer workflow settings - [GET /customers/{id}/workflow_settings](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/customers/getworkflowsettings.md) ## Direct debit mandates ### Retrieve a direct debit mandates by customer - [GET /customers/{id}/directdebitmandates](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/direct-debit-mandates/getdirectdebitmandatesbycustomerid.md) ### Create a direct debit mandate - [PUT /customers/{id}/directdebitmandates](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/direct-debit-mandates/create.md) ### Cancel a direct debit mandate - [PUT /customers/directdebitmandates/{id}:cancel](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/direct-debit-mandates/canceldirectdebitmandate.md) ### Retrieve a direct debit mandate - [GET /customers/directdebitmandates/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/direct-debit-mandates/getdirectdebitmandate.md) ## Invoices ### Get an invoice by its id - [GET /invoices/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/getinvoice.md) ### Update an invoice - [PUT /invoices/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/putinvoice.md) ### Void an invoice - [PUT /invoices/{id}:void](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/voidinvoice.md) ### Manually mark an invoice as paid - [PUT /invoices/{id}:mark-as-paid](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/markinvoiceaspaid.md) ### Activate (send) an invoice - [PUT /invoices/{id}:activate](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/activateinvoice.md) ### Retrieve a list of invoices by filter - [GET /invoices](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/getinvoices.md) ### Create an invoice - [POST /invoices](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/createinvoice.md) ### Get the file for a specific invoice - [GET /invoices/{id}/file](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/invoices/getfile.md) ## Recurring invoices ### Retrieve a recurring invoice - [GET /schedules/invoices/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-invoices/getrecurringinvoicebyid.md) ### Update a recurring invoice - [PUT /schedules/invoices/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-invoices/updaterecurringinvoice.md) ### Delete a recurring invoice - [DELETE /schedules/invoices/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-invoices/deleterecurringinvoice.md) ### Cancel a recurring invoice - [PUT /schedules/invoices/{id}:cancel](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-invoices/cancelrecurringinvoice.md) ### Activate a recurring invoice - [PUT /schedules/invoices/{id}:activate](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-invoices/activaterecurringinvoice.md) ### Create a recurring invoice - [POST /schedules/invoices](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-invoices/postrecurringinvoice.md) ## Payment requests ### Get a payment request - [GET /payment_requests/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/getpr.md) ### Update a payment request - [PUT /payment_requests/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/putpaymentrequest.md) ### Void a payment request - [PUT /payment_requests/{id}:void](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/voidpr.md) ### Activate (send) a payment request - [PUT /payment_requests/{id}:activate](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/activatepr.md) ### Update the distribution details of payment requests - [PUT /payment_requests/distribution](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/updatedistributiondetails.md) ### Retrieve a list of payment requests by filter - [GET /payment_requests](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/getpaymentrequests.md) ### Create a payment request - [POST /payment_requests](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/postpr.md) ### Bulk import payment requests - [POST /payment_requests/bulk_import](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/bulkimport.md) ### Retrieve bulk payment request import job details - [GET /payment_requests/bulk_import/{jobId}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/getbulkpaymentrequestimportjobdetails.md) ### Retrieve bulk payment request import job items - [GET /payment_requests/bulk_import/{jobId}/items](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/getbulkpaymentrequestimportjobitems.md) ### Cancel a payment request (deprecated) - [PUT /payment_requests/{id}:cancel](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payment-requests/cancelpr.md): This endpoint is deprecated and will be removed in a future release. Use /{id}:void instead ## Recurring payment requests ### Retrieve a recurring payment request by its ID - [GET /schedules/payment_requests/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-payment-requests/getrecurringpaymentrequestbyid.md) ### Update a recurring payment request - [PUT /schedules/payment_requests/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-payment-requests/updaterecurringpaymentrequest.md) ### Delete a recurring payment request - [DELETE /schedules/payment_requests/{id}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-payment-requests/deleterecurringpaymentrequest.md) ### Cancel a recurring payment request - [PUT /schedules/payment_requests/{id}:cancel](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-payment-requests/cancelrecurringpaymentrequest.md) ### Create a recurring payment request - [POST /schedules/payment_requests](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/recurring-payment-requests/postrecurringpaymentrequest.md) ## Payments ### Import a payment - [POST /payments:import](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/payments/importpayment.md): Import a payment against an invoice with a custom reference. ## Tax rates ### Retrieve tax rate options - [GET /catalogs/tax_rates](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/tax-rates/gettaxratecataloguesforbiller.md) ## Items ### Get line item catalogue items for a given filter - [GET /catalogs/items](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/items/postlineitemcatalogueelement.md) ## Workflows Manage workflow configurations ### Create a new workflow - [PUT /workflows](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/workflows/createworkflow.md) ## Webhooks ### Retrieve a webhook - [GET /apps/{clientId}/webhooks/{webhookId}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/getwebhookbyid.md) ### Update a webhook - [PUT /apps/{clientId}/webhooks/{webhookId}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/updatewebhook.md) ### Delete a webhook - [DELETE /apps/{clientId}/webhooks/{webhookId}](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/deletewebhook.md) ### Generate or replace the webhook signing secret key - [PUT /apps/{clientId}/webhooks/digest](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/generatewebhooksecretkey.md) ### Create or update the authentication method and credentials for webhook target URLs - [PUT /apps/{clientId}/webhooks/auth](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/storewebhookauthentication.md) ### Retrieve webhooks for a clientId - [GET /apps/{clientId}/webhooks](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/getwebhooks.md) ### Create a webhook - [POST /apps/{clientId}/webhooks](https://developer.adfin.com/products/direct-integration/direct-integration-api-reference/webhooks/createwebhook.md)