Skip to content

minimal-scouser/trny

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trny

🛠 A newer version of this package is in the works

A javascript package that extracts transactional info like account number, money spent, balance and type of transaction from a string

Demo here

Note: After developing this I was very excited and tested it on some bank alerts. The results were disappointing(I should have seen this coming).

The parsing logic is weak. There are soooo many different formats of bank alerts out there.

So if you want to improve this or doing something like this you may find the following steps useful

  1. Collect as much varied data as you can.
  2. Then work on parsing logic.

Data is king here. Without that your parser/engine will fail.

Installation

npm install trny

Usage

import { getTransactionInfo } from "trny";

const message = "Your a/c XX0413 is debited on 15/12/2020 by INR 3,211.00 towards purchase. Avl Bal: INR 5,603.54.";

const info = getTransactionInfo(message);
 
/* 
info = {     
   account: {
    type: "account",
    no: "0413"
   },
   balance: 5603.54,
   money: 3211.00,
   typeOfTransaction: "debited" 
}
*/

Methods

  1. getTransactionInfo
  2. getAccount
  3. getMoneySpent
  4. getBalance

getTransactionInfo

import { getTransactionInfo } from "trny";

const message = "Dear Customer, Rs.248,759.00 is debited from A/c XXXX6791 for BillPay/Credit Card payment via Example Bank NetBanking. Call XXXXXXXX161XXX if txn not done by you";

const info = getTransactionInfo(string: string)
/*
{
    account: {type: "account", no: "6791"},
    balance: "",
    money: "248759.00",
    typeOfTransaction: "debited"
}, 
*/

getAccount

import { getAccount } from "trny";

const message = "INR Rs. 399 debited from A/c no. 098900 on Avl Bal-INR Rs. 57575";

const account = getAccount(message);
// "098900"

getMoneySpent

import { getMoneySpent } from "trny";

const message = "Your sb a/c XXX00981 is debited for rs.80 on 22-02-2021 by transfer avl bal rs:6802.04";

const money = getMoneySpent(message);
// "00981"

getBalance

import { getBalance } from "trny";

const message = "Avbl Bal for A/c XXXX0377  as on 30-06-2019 is INR 21719.25. Combined Avbl Bal is INR 21719.25. Use Mobile Banking App to track A/c (app.kotak.com)";

const balance = getBalance(message);
// "21719.25"

Contribute

Please submit a PR

Visitors

visitor badge