mono-logo

Statement Insights Guide

Last updated Jan 31st, 2025

Overview

The Statement Insights API analyzes transactions linked to a provided account ID and returns insights based on the transaction data. These insights offer valuable information for understanding spending patterns, financial habits, and overall account activity.

Integration Steps

Kindly note that there are two endpoints under under the Statement Insight API, these are:

  1. Initiate Statement Insights: Starts the process of analyzing transactions and returns insights based on the provided account ID.
  2. Retrieve Statement Insights Records: Retrieves the generated insight records linked to a particular account.
1

Initiate Statement Insights

This endpoint triggers and starts the process of analysing all transactions that are already linked to a connected bank account.

To initiate the endpoint, send a GET request to the following endpoint:

Request

1
GET https://api.withmono.com/v2/accounts/{id}/statement/insights

Request Path Parameter

  • id (required): This field expects the id of a connected bank account linked from mono connect

cURL Sample Request

Request

1234
curl --request GET \
  --url https://api.withmono.com/v2/accounts/{id}/statement/insights \
  --header 'mono-sec-key: string' \
  --header 'accept: application/json'

Request Headers

Include the following header in your request for authentication:

  • mono-sec-key (required): Your Mono secret key.

Success Response

If the initiation request is successful, you will receive the following API response:

Request

123456789
{
    "status": "processing",
    "message": "Statement insights is currently being processed, you will receive a webhook when insight is ready",
    "timestamp": "2024-11-19T10:34:37.535Z",
    "data": {
        "jobId": "673c69bd98d8df63d9934de8",
        "jobStatus": "processing"
    }
}

Please note that once the API request above is successful, our system generates an insight report and sends you a webhook notification confirming completion.

Tracking Job Progress with the Job ID

Tracking Job Progress with the Job ID

A unique job ID is generated to track the progress of each job through the system. This job ID, returned in the API response, serves as an identifier for the specific data processing task, enabling real-time monitoring of its status.

The initial API response includes the job ID along with the current status, such as "processing." As the job progresses, its status is updated accordingly. Users can retrieve the latest status at any time by querying the dedicated tracking endpoint here with the job ID.

Sample Webhook Response

Request

123456789
{
    "event": "mono.events.statement_insights",
    "data": {
      "account": "67405d074b87be75af8f8358",
      "status": "available",
      "message": "Statement insights for 67405d074b87be75af8f8358 is ready",
      "action": "Make a call to the account insights endpoint to get insights"
    }
}

With the above webhook mono.events.statement_insights received, you can proceed to call the insights records endpoint to query the statement insight report at a later time in the next section.

Here's a table explaining each unique field in the response of the statement insights:

FieldDescription
accountThe is the account id
start_dateDate of earliest transaction linked the account. Format YYYY-MM-DD
end_dateDate of latest transaction linked the account. Format YYYY-MM-DD
transaction_lengthNumber of days between first and last transaction
transaction_countNumber of transactions found linked to the account
balance_after_expenseTotal credit amount - total debit amount of all transactions
account_summaryAccount summary breakdown
opening_balancetransaction.balance of earliest transaction
closing_balancetransaction.balance of latest transaction
average_balanceAverage of transaction.balance for all transactions
debit_to_credit_ratioRatio of all debits to credit
overall_creditsTotal of all credit amounts
overall_debitsTotal of all debits amounts
number_of_credit_transactionsNumber of all credit transactions
number_of_debit_transactionsNumber of all debit transactions
total_recurring_creditsTotal amount for all recurring credit transactions
total_recurring_debitsTotal amount for all recurring debit transactions
activity_insightsA breakdow of the activity insights
rare_findingsThis is the rare findings breakdown
immediate_large_withdrawal_post_paydayMore than 2 occurrences of withdrawal >80% of salary within 24hrs of credit.
identical_debit_vs_creditFinds a match for the following criteria's; 1. Same credit and debit amounts; 2. Both credit and debit are transfers; 3. Debit happened within 3 days after credit
cash_deposits_larger_than_salaryIf salary is found; Credit amount higher than the salary amount.
transaction_details[]A breakdown of the transaction details information
highest_debitsTop 3 highest debits. We return the amount and date of transaction
highest_creditsTop 3 highest credit. We return the amount and date of transaction
inflowConsiders credit transactions
outflowConsiders debit transactions
all_transactionall_transaction: This section considers all transactions, whether they are repeated or not; average_per_month: average per month; monthly_sum: sum of all amounts for each month for the last 12 months
repeat_transactionsThis section considers repeated transactions
recurring_transactionsThis returns the clusters of repeat transactions and its details
descriptionThis is the transaction description for that cluster. The version returned maybe a modified version that has been stripped some text like months and reference number.
categoryCluster category returned from out categoriser
typeThe type of transactions in the cluster. This can be credit or debit
countTotal number of transactions in the cluster
stabilityVariance of transaction amounts in the cluster. Ranges between 0-1
consistencyConsistency of the transaction amounts in the cluster, weighted by days between transactions. Ranges between 0-1
average_monthly_sumTotal monthly average / Number of months
average_days_between_transactionsAverage number of days between transactions in the cluster
compound_monthly_growth_rateCompound monthly growth rate for that cluster
monthly_growth_ratemonthly_growth_rate: monthly growth rate in total transaction amount for that cluster ;total: total for specific month; growth_rate: increase in total in relation to previous month; month: month being considered

Did this page help you?