ruby-on-railstransactionsplaidbankofx

Is there a common unique identifier for transactions from plaid and QFX file?


Is there a way to uniquely identify a transaction from a QFX file (downloaded from a bank) and the list of transactions fetched from plaid?

There is FITID in the QFX file and transaction_id in plaid transaction list. But is there any common unique identifier for both QFX file and Plaid transaction?

QFX file:

<BANKACCTFROM>
<BANKID>1234
<ACCTID>567890
<ACCTTYPE>CHECKING
</BANKACCTFROM>

<BANKTRANLIST>
<DTSTART>20210430120000[0:GMT]
<DTEND>20210504120000[0:GMT]

<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20210504120000[0:GMT]
<TRNAMT>-99.99
<FITID>202105040
<NAME>TEST TRANSACTION DATA
<MEMO> IN        05/03
</STMTTRN>
</BANKTRANLIST>

Transaction fetched from Plaid API:

{
    "account_id": "testaccountid123",
    "amount": 99.99,
    "category": [
      "Shops",
      "Clothing and Accessories"
    ],
    "category_id": "123546",
    "date": "2021-05-04",
    "iso_currency_code": "USD",
    "location": {},
    "merchant_name": "Test Transaction Data in 05/03",
    "name": "TEST TRANSACTION DATA IN  05/03",
    "payment_channel": "in store",
    "payment_meta": {},
    "pending": false,
    "pending_transaction_id": "asdf",
    "transaction_id": "testtransactionid",
    "transaction_type": "place"
  }

Solution

  • I think you've kind of answered your own question -- as you can see from the responses you pasted in, there isn't a shared id field across both the QFX file and the Plaid response.

    That said, you could probably do some processing on the name, memo, date, and amount fields to match them up and get a very close to accurate correlation between QFX transactions and Plaid transactions.