Skip to main content

Accounts receivable overview

Assessing debtor risk in real time with accounts receivable insights

Our accounts receivable feature offers a thorough breakdown of a borrower's debtors ledger sourced from their accounting platform. You can examine the ledger in its entirety or delve into specific customer histories, enabling full automation of the receivables financing process.

Use cases

Common uses of our accounts receivable feature include:

  • Digital data collection: get an ongoing feed of customer invoices.

  • Debtor risk analysis: gain insights into a debtor's history, including customer details and comprehensive relationship history spanning invoices, payments, and credit notes.

  • Invoice reconciliation: automatically match invoice payments with bank transactions.

  • Collections performance evaluation: assess customer payment timeliness, gauge bad debt levels, and monitor outstanding customer receivables balances.

Feature components

Feature enrichments

Reconciled invoices

The reconciled invoices component of this feature streamlines the often tedious and error-prone process of matching invoice payments with bank transactions. By automating this crucial task, it ensures that lenders can confidently validate the accuracy and authenticity of invoice payments in real time, minimizing the risk of errors and fraud.

A quick and easy test is to filter for invoices that have a status of ‘Paid’ but do not have a matching bank transaction.

Call our List reconciled invoices endpoint to use this feature component. You must have both an accounting and a banking source connected.

Supported outputs

You can retrieve the data pulled and enriched by the feature by downloading a report in an Excel format or calling the accounts receivable endpoints of our API.

For example, invoice finance providers looking to reduce their risk can use the List reconciled invoices endpoint to evaluate an SMB's customers ability to repay.

type CustomerDetails {
id: string;
name: string;

const invoicesResponse = await lendingClient.accountsReceivable.invoices.listReconciled({
companyId: companyId,
query: 'status=Paid'

if(invoicesResponse.statusCode != 200){
throw new Error("Could not get reconciled invoices")

// Get all fully reconciled invoices
const reconciledInvoices = invoicesResponse.enhancedInvoicesReport.reportItems.filter(x => {
reconciledTotal = x.payments.reduce((sum, current) => sum + current.amount, 0);
return x.totalAmount === reconciledTotal;

// Get customer details:
const customers: CustomerDetails[] = => {
name: x.customerRef.customerName

Get started

Once you have the Lending API enabled, configure your instance to work with our accounts receivable feature.

Configure data sources

Follow the respective guides to set up and enable at least one accounting and one banking integration that will serve as a data source for the accounts receivable feature:


Enable data types and sync schedule

See how to enable data types and ensure the following data types have been switched on:

  • Customers customers
  • Invoices invoices
  • Payments payments
  • Credit Notes creditNotes
  • Account transactions accountTransactions
  • Direct costs directCosts
  • Direct incomes directIncomes
  • Transfers transfers
  • Accounts banking-accounts
  • Transactions banking-transactions

Configure the solution to refresh data when you need it by setting a synchronization frequency. We recommend setting it to a daily or a monthly sync.

Configure webhooks

We recommend you configure webhook consumers with the following event types to manage your data pipelines. These webhooks send a message for each dataType separately.

  • Dataset status has changed to an error state

    If you receive a message from this webhook, it means an issue has occurred when syncing the specified data type. Resolve the issue and initiate the sync for this dataset again.

  • Dataset data changed

    If you receive a message from this webhook, it means data has been updated for the specified data type. This can include new, updated, or deleted data. You should then refresh the data in your platform.

Was this page useful?