Categorisation product is available as a Private Beta version.

Yapily’s categorisation product returns additional information for individual transactions, providing a more detailed summary of each transaction.

Categorisation provides the following additional information for transactions:

Field Description
Category 19 possible transaction categories.
Cleaned transaction description Transaction description without unnecessary information.
Subcategory 93 possible transaction subcategories.

(optional) Only returned when rules-based matching is able to determine a subcategory.
Location Location of the transaction.

(optional) Only returned when matched.
Payment processor The payment processor.

(optional) Only returned when one is present in the description.
Merchant The merchant.

(optional) Only returned when matched to a merchant in our merchant database.
Parent group The parent company of the merchant.

(optional) Only returned if applicable.

Enable categorisation

You can enable categorisation by including the with=categorisation query parameter when calling the Get Account Transactions endpoint:

GET /accounts/{accountId}/transactions?with=categorisation

Category calculation

Firstly, the transaction reference and descriptive fields are cleaned to remove special characters or extra terms that may wrongly affect categorisation or merchant identification.

Categorisation is then determined using 2 main approaches:

  • a rules based service
  • a machine learning model

Rules based service

Transactions are filtered through the rules based categorisation service. Each transaction is run through a set of rules. If a rule is triggered the corresponding logic will assign a category and sub-category.

Machine learning model

If the transaction can't be categorised by the rules based service, the machine learning model predicts the categorisation to a predefined confidence level.

The categorisation model uses 2 machine learning algorithms.

The first model is a natural language processing (NLP) model. This model will take a text input and give a numeric output. The second model takes the output from the first model, considers additional transaction attributes, and attempts a category prediction for the transaction.

Next steps