Data Enrichment

Learn how to extract even more value from Open Banking and Account Information Services by using Yapily’s Data Enrichment products to identify merchants & transaction types.

Yapily uses sophisticated data processing & machine learning techniques developed specifically for Open Banking to empower our customers to unlock the true value of the data, easily and scalably. Fuelling our enrichment algorithms using Open Banking API data means better accuracy, less exceptions and accelerated improvement as our algorithms are constantly fed new data points to drive learning.

Enrichment currently available on the Get Account Transactions endpoint offers the following categorisation content:

  • Transaction categorisation
  • Merchant identification

Transaction Categorisation

Introduction

The Yapily Categorisation Engine parses Open Banking transactions, identifying the merchants and different Income and Expense categories, which can serve as the foundation of Personal Financial Management or Lending Decision applications.

The Yapily Categorisation Engine combines the following techniques to uncover extensive value from vast amounts of raw data:

  • Highly precise string operations on transaction descriptions
  • Mapping bank codes
  • State of the art machine learning based on the transaction descriptions & dates.

The engine itself does not store any data, passing transactions straight through it and returning categories associated with each transaction. Hosted securely in the cloud, it can scale independently - ensuring no adverse impact on performance.

Prerequisites

Before retrieving data from the Get Account Transactions endpoint, you will first need to follow these steps:

  1. Obtain a Consent from the user
  2. Get Accounts for the user
  3. Get Account Transactions adding the optional parameter with=merchant

Categorisation Schema

When the with=merchant parameter is added, the account transactions endpoint supplements transactions with the enrichment. An example of the merchant identification can be seen below:

Request:

curl https://api.yapily.com/accounts/{account-id}/transactions?with=merchant \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -u API_KEY:API_SECRET

Response (with Categorisation enrichment):

{
    "data": [{
        "transactionInformation": "TESCO PFS BASINGSTOKE 2020/07/30 3803",
        "bookingDateTime": "2020-08-01 00:00:00",
        "transactionAmount": {
            "amount": 10,
            "currency": "GBP"
        }
        ,
        "proprietaryBankTransactionCode": "DEB",
            "isoBankFamilyCode": "CCRD",
            "isoBankSubFamilyCode": "POSD"
        },
        "enrichment": {
            "categorisation": {
                 "categories": [“TRANSPORT”],
                 "source": "MERCHANT"
            },
            "transactionHash": {
                "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
            },
            "merchant": {
                 "merchantName": "TESCO PETROL",
                 "parentGroup": "TESCO"
            },
            "location": "BASINGSTOKE",
            "correctedDate": "2020-07-30T00:00:00.000Z"
        }
    }]
}


Elements

Where possible we return the following:

  • merchantName
  • correctedDate This is extracted from the transaction string, which is likely to be the date the transaction took place on. The bookingDateTime can refer to the post-clearing value
  • location
  • paymentProcessor e.g. Paypal

Where we find a merchant, we return it with its associated category. For organisations selling a diverse range of products that don't fit within a single category, we assign multiple merchants with different categories and add a parentGroup to gather those merchants together. So Sainsbury's and Sainsbury's Bank are merchants with appropriate categories that also have Sainsbury's as their parentGroup.

As with categories, the merchant and category of a transaction may change as we improve the accuracy of our merchant service and add new merchants.

Fees and Cash

Yapily’s Categorisation engine will identify whether certain transactions are cash withdrawals or bank fees, based on the transaction codes or description. In the case of bank fees, we set the merchantName to the institution that manages the account. For cash withdrawals, we also parse merchantName from the description to gain more insights.

Please note: transactions marked with subcategory ATM Withdrawal, indicate ATM withdrawals or cashback at merchant, not a transaction with that merchant.

Transaction Categories

Categories List
CategorySubcategory
BILLSINTERNET/TV
BILLSMOBILE PHONE
BILLSOTHER
BILLSSUBSCRIPTION
BILLSTV LICENCE
BILLSUTILITY BILL
CHARITY & GIFTSDONATIONS
CHARITY & GIFTSGIFTS
CHARITY & GIFTSOTHER
EATING OUTCOFFEE
EATING OUTDRINKS
EATING OUTFAST FOOD
EATING OUTOTHER
EATING OUTRESTAURANT
EATING OUTTAKE AWAY/DELIVERY
ENTERTAINMENTART/MUSEUM
ENTERTAINMENTBETTING SHOP
ENTERTAINMENTCINEMA
ENTERTAINMENTLIVE MUSIC
ENTERTAINMENTLIVE SPORT
ENTERTAINMENTLOTTERY
ENTERTAINMENTNIGHTCLUB
ENTERTAINMENTONLINE GAMBLING
ENTERTAINMENTOTHER
ENTERTAINMENTTHEATRE
FEES & CHARGESATM FEE
FEES & CHARGESFOREIGN CURRENCY CHARGE
FEES & CHARGESLATE FEE
FEES & CHARGESOTHER
FEES & CHARGESOVERDRAFT CHARGE
FEES & CHARGESSERVICE FEE
GENERALOTHER
GROCERIESONLINE GROCERIES
GROCERIESOTHER
GROCERIESSUPERMARKET
HOMECOUNCIL TAX
HOMEGARDEN
HOMEHOME IMPROVEMENT
HOMEMORTGAGE
HOMEOTHER
HOMERENT
HOMESERVICE CHARGE
INCOME
INSURANCEHEALTH INSURANCE
INSURANCEHOME INSURANCE
INSURANCELIFE INSURANCE
INSURANCEMOTOR INSURANCE
INSURANCEOTHER
INSURANCEPET INSURANCE
INSURANCEPHONE/GADGET INSURANCE
INSURANCETRAVEL INSURANCE
INVESTMENT & SAVINGSCREDIT CARD PAYMENT
INVESTMENT & SAVINGSINVESTMENT
INVESTMENT & SAVINGSPENSION
INVESTMENT & SAVINGSOTHER
INVESTMENT & SAVINGSSAVINGS
LOANCAR LOAN
LOANLONG TERM
LOANSHORT TERM
OTHERATM WITHDRAWAL
OTHERCARD TOPUP
OTHERCREDIT CARD PAYMENT
OTHEREDUCATION
OTHEROTHER
OTHERTRANSFER
PERSONAL CAREBEAUTY PRODUCTS
PERSONAL CAREDOCTOR
PERSONAL CAREGYM/EXERCISE
PERSONAL CAREHAIRDRESSER
PERSONAL CAREOTHER
PERSONAL CAREPHARMACY
PERSONAL CARESPA/BEAUTY TREATMENT
SHOPPINGBOOKS
SHOPPINGCLOTHING
SHOPPINGELECTRONICS
SHOPPINGFILM/DVD
SHOPPINGGAMES
SHOPPINGHOBBIES
SHOPPINGHOUSE ITEMS
SHOPPINGMUSIC
SHOPPINGOTHER
SHOPPINGPETS
SHOPPINGSOFTWARE
SHOPPINGSPORTING ITEMS
SHOPPINGSTATIONARY
TRANSPORTOTHER
TRANSPORTPARKING
TRANSPORTPETROL/FUEL
TRANSPORTPUBLIC TRANSPORT
TRANSPORTTAXI
TRAVEL & HOLIDAYAIR TRAVEL
TRAVEL & HOLIDAYCAR RENTAL
TRAVEL & HOLIDAYHOTELS
TRAVEL & HOLIDAYOTHER

Please note: where the model cannot identify a merchant we omit the merchant field entirely.