Operation keyword: categorisation
Transaction Categorisation is a pre-trained solution that processes an end-user's (a person) account information and identifies the type and purpose of a transaction, based on its description, transaction amount, date, and contextual metadata. The solution is trained on millions of data points using advanced algorithms and it's constantly improved to recognise new merchants, payment types and consumer trends. Based on the country, the product categorises incoming and outgoing transactions into 120+ categories with high accuracy.
The solution can be used to process personal or depersonalised account information from a variety of transaction sources, including open banking data, debit and credit card transactions and user-provided bank statements.
To see the latest category tree (i.e. full category list) available in your country, you will need to create a free account on our Dashboard and follow the instructions in the Endpoints section to retrieve the latest category list.
To use this product via API, see the Endpoints section "report" and go through the following steps:
{
"data": {
"attributes": {
"categorisation": {
"accounts": [
{
"account_number": "GB29IBAN20160604201923",
"bank": "Imperial Bank",
"country": "uk",
"currencies": [
{
"code": "GBP",
"credit_turnover": 1000.0,
"debit_turnover": 1000.0,
"end_balance": 2750.86,
"start_balance": 2016.46,
"transactions": [
{
"amount": -15.45,
"category_id": 26,
"title": "Groceries",
"date": "2019-08-01",
"info": "PURCHASE 201620190406111 15.45GBP",
"transaction_id": "unique-id-1",
"partner": "Local Groceries"
},
{
"amount": 900.8,
"category_id": 85,
"title": "Salary",
"date": "2019-08-05",
"info": "SALARY 201620190406222 900.80GBP",
"transaction_id": "unique-id-2",
"partner": "Job Ltd"
},
{
"amount": 200.0,
"category_id": 23,
"title": "Unknown"
"date": "2019-08-07",
"info": "ROYALTIES 201620190406333 200.00GBP",
"transaction_id": "unique-id-3",
"partner": "Freelance Agency Ltd"
},
{
"amount": -50.45,
"category_id": 44,
"title": "Fuel",
"date": "2019-08-11",
"info": "PURCHASE 201620190406444 50.45GBP",
"transaction_id": "unique-id-4",
"partner": "Gas Station"
},
{
"amount": -300.5,
"category_id": 81,
"title": "Other loans",
"date": "2019-08-15",
"info": "MORTGAGE PAYMENT, AGREEMENT A201664 300.50GBP",
"transaction_id": "unique-id-5",
"partner": "Loan Bank"
}
]
}
],
"holders": [
{
"name": "Alex Watson"
}
],
"is_joint_ownership": false,
"is_shared_ownership": false,
"period_end": "2019-08-15",
"period_start": "2019-08-01"
}
],
"category_tree_version": "uk_201909300659"
},
"status": "completed"
},
"type": "report processing status"
}
}
Key | Type | Description | Optional |
---|---|---|---|
accounts | Array of account objects | A list of bank account objects | |
account_number | String | IBAN | Yes |
bank | String | Name of an account holder's bank | Yes |
country | String | Name of an account holder's transactions country | Yes |
currencies | String | A list of currency objects | |
code | String | Currency code | Yes |
credit_turnover | Float | The amount of money spent since the first transaction until the last one | Yes |
debit_turnover | Float | The amount of money gained since the first transaction until the last one | Yes |
end_balance | Float | Balance parsed after all of the transactions | Yes |
start_balance | Float | Balance parsed at the beginning | Yes |
transactions | Array of transaction objects | A list of transaction objects | Yes |
amount | Float | The amount of money earned/spent | |
category_id | Integer | Category ID assigned by the categorisation solution | |
title | String | Title assigned by the categorisation solution | |
date | String YYYY-MM-DD | Transaction's date field | |
info | String | Transaction's description field | Yes |
transaction_id | String | Transaction's ID, read from Nordigen json format input data only | Yes |
partner | String | Transaction's counterparty name field (e.g. the company's name where you made the purchase from) | Yes |
holders | Array of account holder objects | A list of an account holders | Yes |
name | String | The account holder's name | Yes |
is_joint_ownership | Boolean | An indicator of whether the uploaded statement has joint account transactions | Yes |
is_shared_ownership | Boolean | An indicator of whether the uploaded statement has shared (multiple) account transactions | Yes |
period_end | String YYYY-MM-DD | Date of the last parsed transaction | Yes |
period_start | String YYYY-MM-DD | Date of the first parsed transaction | Yes |
category_tree_version | String | Version of the category tree applied | |
status | String | Processing record state | |
type | String | Redundant field, it will be removed in the next iteration |