OFX is the closest to being universal, although often it is well hidden.
CSV feeds are often surprisingly useless for programmatic / feed use, they're often littered with stupid textual headers and footers and lack important columns - they're designed to be opened in excel and looked at by a human, not parsed and ingested.
There's also the heterogeneity of transactions. Looking at the csv export I've got from my bank, there are three "reference" columns and they play different roles depending on how I'm paying:
- debit card: merchant name + date, card number, blank
- alternative card-based payment system: constant (account number?), merchant, constant
- alternative app-based payment system: constant, merchant, user custom reference
And a data sanitation issue: one of the merchant names has a comma in it, and it's not escaped or quoted in the csv so that record is corrupted.
CSV feeds are often surprisingly useless for programmatic / feed use, they're often littered with stupid textual headers and footers and lack important columns - they're designed to be opened in excel and looked at by a human, not parsed and ingested.