Skip to main content

Liabilities overview

Comprehensive loan insights and credit history analysis

Our liabilities feature simplifies the evaluation of a borrower's financial obligations. Machine learning models automatically identify loans from connected sources and provide lenders with a clear overview of a borrower's outstanding loans and their repayment history.

Use cases

Common uses of our liabilities feature include:

  • Risk assessment: helps assess the borrower's risk profile and repayment reliability.

  • Debt capacity: evaluates if the business can handle more debt without financial strain.

  • Repayment behaviour: indicates if the borrower makes payments on time or defaults.

  • Loan structuring: tailors new loan terms to fit the borrower's financial situation.

Feature components

Supported outputs

You can retrieve the data pulled by the feature by calling the liabilities endpoints of our API. For example, use the Get loan summaries endpoint to review a company's loan repayment history and determine their drawdown to repayment ratio.

type LoanData {
totalDrawdowns: number;
totalRepayments: number;

const sourceType = GenerateLoanSummarySourceType.Accounting

// Request the generation of the report. This can take some time so
// make sure to poll the get endpoint to check the status of the process.
const generateResponse = await lendingClient.liabilities.generateLoanSummary({
companyId: companyId,
sourceType: sourceType,

if(generateResponse.statusCode != 202){
throw new Error("Unable to generate loan summary report")

// Wrap get call in function to poll endpoint
const getLoanSummary = async (lendingClient, companyId, sourceType) => {
const reportResponse = await lendingClient.liabilities.getLoanSummary({
companyId: companyId,
sourceType: sourceType,

if (reportResponse.statusCode != 200) {
return getLoanSummary(companyId, sourceType)
else {
return reportResponse

const summaryResponse = await getLoanSummary(lendingClient, companyId, formattedDate)

const summaries: LoanData[] = => {
totalDrawdowns: x.totalDrawdowns,
totalRepayments: x.totalRepayments

const totalDrawdowns = summaries.reduce((sum, current) => sum + current.totalDrawdowns, 0)
const totalRepayments = summaries.reduce((sum, current) => sum + current.totalRepayments, 0)

const repaymentRatio = totalRepayments / totalDrawdowns

if(repaymentRatio < repaymentRatioThreshold){
console.log('Company does repayment ratio does not pass threshold')

Get started

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

Configure data sources

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


Enable data types and sync schedule

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

  • Proft and loss profitAndLoss
  • Balance sheet balanceSheet
  • Chart of accounts chartOfAccounts
  • Journal entries journalEntries
  • Accounts banking-accounts
  • Transactions banking-transactions
  • Transactions commerce-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.

  • DataSyncStatusChangedToError

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

  • DatasetDataChanged

    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?