BYO data for Basiq Affordability
Damir Cuca avatar
Written by Damir Cuca
Updated over a week ago

The Basiq Affordability service provides a complete view of your customer's financial position as part of the loan application process. Bank transaction data is used to generate an Affordability report, allowing you to derive valuable insights from a customer's financial data, including verification of income and living expenses.

Our partners have told us that they have a lot of their own bank transaction data and would love the option to easily share this as CSV files via the Basiq API to derive insights.

Basiq now provides the option to upload files (via the Statements endpoint) to generate an Affordability report based on bank transaction data. 

Using this, it is possible to gain valuable insights into spending patterns and create better solutions for your customers. By using bank transaction data to assess affordability, you can: 

  • Onboard customers faster - pre-fill forms and assist with credit decisioning in loan origination 

  • Make faster clean lending decisions

  • Provide the right products to the right customers

  • Nurture customers to save towards buying their own home

  • Predict and prevent hardship

Creating a file to upload data

For a customer, Basiq Affordability provides a single (aggregated) view across institutions and takes into account: Assets, Liabilities, Income & Expenses. 

Using the Statements endpoint, the CSV file (by customer and financial institution) is imported and the data is automatically parsed before going through our best-in-class categorisation and classification engines.

Once the data is imported, an Affordability report can be generated which includes access to: Income, Expenses and underlying categorised Transaction data.

Contact for an example file and complete file specification


In order to successfully upload a CSV file and generate an Affordability report, each file should meet the following specifications:

  • Input file format is: CSV

  • Each file does not exceed 4.5MB

  • Each file includes data for a single customer

  • Each file includes data for a single institution

  • Transactions are grouped by Account

  • The file includes the last updated date for each account

  • Amounts include minus signs to represent negative values (amounts without a minus sign are assumed to be positive values)

  • Transaction amounts include direction field to indicate ‘debit or credit’

  • Header row must be present and columns named as per specification

  • No empty columns or rows

  • All account meta data included in the file needs to be the same per each transaction line for that account.

For best results, it is recommended that debit and credit transactions go back between 3-13 months. 

Each file will be verified automatically via the Statements endpoint. Multiple files for multiple institutions can be uploaded for one customer but only one file can be uploaded per endpoint request.

Uploading a CSV Statement to generate Basiq Affordability

Before you begin, it's also important to understand the Basiq data model and some of the core concepts:

  • The root resource of the Basiq API is the 'User.' This reflects a user or customer within your system (i.e. a real person). Before you can retrieve user's data, you will need to create a User within our system. This will return a user id, which you should store for future reference.  

  • Use this User as a 'container' for all the csv statements you upload for each institution – relating to this User.  

  • Once a User is created, you can then upload one or more CSV Statements for this User (  For example - for the same User you might create multiple Statement objects. Let's say the customer has several accounts with two different institutions then you will upload a separate CSV file per institution.

Note: the sandbox institutions do not accept uploaded documents (pdf or csv) – you should upload the against the institution where the data has come from.This will also ensure classification and categorisation are performed for the right institution providing the best results.  
  • When you create a Statement object by uploading a CSV statement, Basiq parses the document to extract account and transaction data. The system processes this request asynchronously - by returning a reference to a Jobs resource ( that you can poll to keep track of the statements upload progress.Once all the job steps are complete then the upload and parsing and categorisation of the data is complete.

  • Once a Statement object has been successfully created, the following resources are available by User: /account, /transaction, /affordability, /income and /expenses  

  • Now you are ready to Create an Affordability resource by User ( which returns link to created Income and Expenses resources.


Upload one or more CSV Statements for a single customer, then use the API to generate a single Affordability Report as output (by customer):

  • Affordability Report - format: PDF : option to download visual representation of the data presented as a Summary, Assets, Liabilities, Income & Expenses – via the Affordability endpoint

Did this answer your question?