Transaction Categorisation

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.


Request Flow

To use this product via API, see the Endpoints section "report" and go through the following steps:

  1. Upload the account information;
  2. Apply operation categorisation;
  3. Get results.


Response Example

    "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 Descriptions

accountsArray of account objectsA list of bank account objects 
bankStringName of an account holder's bankYes
countryStringName of an account holder's transactions countryYes
currenciesStringA list of currency objects 
codeStringCurrency codeYes
credit_turnoverFloatThe amount of money spent since the first transaction until the last oneYes
debit_turnoverFloatThe amount of money gained since the first transaction until the last oneYes
end_balanceFloatBalance parsed after all of the transactionsYes
start_balanceFloatBalance parsed at the beginningYes
transactionsArray of transaction objectsA list of transaction objectsYes
amountFloatThe amount of money earned/spent 
category_idIntegerCategory ID assigned by the categorisation solution 
titleStringTitle assigned by the categorisation solution 
dateString YYYY-MM-DDTransaction's date field 
infoStringTransaction's description fieldYes
transaction_idStringTransaction's ID, read from Nordigen json format input data onlyYes
partnerStringTransaction's counterparty name field (e.g. the company's name where you made the purchase from)Yes
holdersArray of account holder objectsA list of an account holdersYes
nameStringThe account holder's nameYes
is_joint_ownershipBooleanAn indicator of whether the uploaded statement has joint account transactionsYes
is_shared_ownershipBooleanAn indicator of whether the uploaded statement has shared (multiple) account transactionsYes
period_endString YYYY-MM-DDDate of the last parsed transactionYes
period_startString YYYY-MM-DDDate of the first parsed transactionYes
category_tree_versionStringVersion of the category tree applied 
statusStringProcessing record state 
typeStringRedundant field, it will be removed in the next iteration