Barclays CSV to Beancount
Convert a Barclays current or business account export into balanced double-entry Beancount transactions — day-first dates, tab characters inside the Memo column and unescaped commas in payee names included.
Column mapping verified against a real Barclays export
How to export your Barclays transactions
- 1
Sign in to Barclays online banking in a desktop browser — the mobile app has no CSV export — and open the account.
- 2
Click Show recent transactions, then View all transactions at the foot of the list.
- 3
Set a start and an end date and click Search. The export window reaches back only a couple of months, so a longer history takes several passes.
- 4
Click Export All, choose CSV rather than OFX or QIF, and paste the downloaded file below with its header row.
Day-first dates, and a Memo column full of tab characters
01/08/2026 in a Barclays export is the 1st of August. Read month-first it becomes the 8th of January and converts without a single complaint, which is why this preset states the order rather than letting anything guess at it. The Memo column is the other rough edge: Barclays pads the payee to a fixed width and separates the pieces with literal tab characters, so narrations arrive carrying runs of blank space in the middle exactly as the bank wrote them. Whole-pound amounts have no decimal point at all — a line reading -110000 in the file becomes -110000.00 GBP in the ledger, which is the same number, properly written.
Beancount output
Barclays export questions
One of my payees is cut short — GITHUB instead of GITHUB, INC.
Barclays does not escape a comma inside a payee name, so that row leaves the bank with seven fields where every other row has six, and the payee splits in two at the comma. Every column this preset maps sits before the split, so the date and the amount on that row are still correct and only the narration is truncated. Retype the handful of affected narrations after converting, or quote the field in the file before you paste it.
My export only goes back a couple of months.
That is the bank's window, not a limit of this page. Run the export several times, moving the date range back each time, and paste each file in turn — Beancount does not mind what order transactions arrive in, and you can sort the finished file by date afterwards. History older than the online window is available only as a PDF statement, which this converter does not read.
What are the Number and Subcategory columns for?
Number is a cheque number, and on a modern account it is zero on almost every row; Subcategory is Barclays' own transaction type — Direct Debit, Contactless Card Purchase, Counter Credit. Neither is mapped, because the payee is in Memo and the direction is already carried by the sign on Amount. If you want the transaction type recorded, add it as metadata after conversion rather than folding it into the narration.
Keep the ledger you just converted
Beancount.io hosts your plain-text ledger, imports future statements for you, and keeps every number auditable.
Start Free→