From 6ef23ec47a74e8612a51610a5e4a79a17dd5d541 Mon Sep 17 00:00:00 2001 From: SJM Date: Mon, 16 Feb 2026 15:14:15 +0100 Subject: [PATCH 1/2] Add installation and upgrade instructions for Windows - Included specific installation commands for Windows users. - Added upgrade commands for both Linux/macOS and Windows. --- README.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.rst b/README.rst index 767bbc6..bfe6f23 100644 --- a/README.rst +++ b/README.rst @@ -56,6 +56,9 @@ transaction type code as memo. Installation ------------ +Linux / macOS +~~~~~~~~~~~~~ + .. code-block:: bash pip install ofxstatement-lloyds @@ -66,6 +69,28 @@ Or with pipx: pipx inject ofxstatement ofxstatement-lloyds +Windows +~~~~~~~ + +.. code-block:: powershell + + py -m pip install ofxstatement-lloyds + +Upgrading +~~~~~~~~~ + +Linux / macOS: + +.. code-block:: bash + + pip install --upgrade ofxstatement-lloyds + +Windows: + +.. code-block:: powershell + + py -m pip install --upgrade ofxstatement-lloyds + Configuration ------------- From 157fd06f3cc1c85bc0eaa39b9f7658bbcde49742 Mon Sep 17 00:00:00 2001 From: SJM Date: Mon, 16 Feb 2026 15:14:46 +0100 Subject: [PATCH 2/2] Created markdown documentation version, and rendered as pdf --- README.md | 146 ++++++++++++++++++++++++++++++++++++++++ ofxstatement-lloyds.pdf | Bin 0 -> 35691 bytes 2 files changed, 146 insertions(+) create mode 100644 README.md create mode 100644 ofxstatement-lloyds.pdf diff --git a/README.md b/README.md new file mode 100644 index 0000000..e96de8e --- /dev/null +++ b/README.md @@ -0,0 +1,146 @@ +--- +title: ofxstatement-lloyds +--- + +# ofxstatement-lloyds + +Plugin for [ofxstatement](https://github.com/kedder/ofxstatement) to +convert CSV statements exported from Lloyds Bank (UK) into OFX format +for import into accounting software such as Odoo, GnuCash, and others. + +## Features + +Payee extraction + +: Parses Lloyds transaction descriptions to produce a clean payee name + in the OFX `` field. Downstream importers use this as the + primary transaction label for display and auto-reconciliation. + +Transaction type preservation + +: Prefixes the OFX `` field with the original Lloyds transaction + type code (DD, FPI, FPO, DEB, BGC etc.), preserving detail that is + lost in the standard OFX TRNTYPE mapping. + +Structured memo + +: Splits the description into payee and remainder, so importers that + display `NAME : MEMO` show useful detail rather than duplication. + +Balance tracking + +: Calculates opening and closing balances from the + reverse-chronological CSV, included in the OFX output for statement + validation. + +## Supported transaction patterns + +Card purchases + +: `MERCHANT CD nnnn [ddMMMYY]` extracts the merchant name. + +FX purchases + +: `MERCHANT [ref] [CURRENCY] amount VISAXR rate CD nnnn` extracts the + merchant, with FX details in the memo. + +FX fees + +: `NON-GBP TRANS FEE n.nn% CD nnnn` normalised to + `Non-GBP Transaction Fee`. + +Faster payments (FPI/FPO/BGC) + +: `PAYEE reference sortcode ddMMMYY HH:MM` extracts the payer or payee + name. + +Direct debits and standing orders (DD/SO) + +: `PAYEE mandate-reference` extracts the payee name. + +Service charges (PAY) + +: `SERVICE CHARGES REF : number` extracts the charge description. + +Unrecognised formats fall back to the full description as payee with the +transaction type code as memo. + +## Installation + +### Linux / macOS + +``` bash +pip install ofxstatement-lloyds +``` + +Or with pipx: + +``` bash +pipx inject ofxstatement ofxstatement-lloyds +``` + +### Windows + +``` powershell +py -m pip install ofxstatement-lloyds +``` + +### Upgrading + +Linux / macOS: + +``` bash +pip install --upgrade ofxstatement-lloyds +``` + +Windows: + +``` powershell +py -m pip install --upgrade ofxstatement-lloyds +``` + +## Configuration + +Edit the ofxstatement configuration: + +``` bash +ofxstatement edit-config +``` + +Add a section for your Lloyds account: + +``` ini +[lloyds] +plugin = lloyds +currency = GBP +``` + +## Usage + +Export a CSV statement from Lloyds online banking, then convert: + +``` bash +ofxstatement convert -t lloyds statement.csv statement.ofx +``` + +The CSV is expected in the format provided by Lloyds online banking with +columns: date, type, sort code, account number, description, debit, +credit, balance. + +## Odoo reconciliation + +The payee and memo split is designed to work with Odoo\'s reconciliation +models and the OCA `account_statement_completion_label_simple` module. + +The `Label` field in Odoo matches against the OFX `` (clean +payee). The `Note` field matches against `` (prefixed with the +Lloyds transaction type code). + +Example reconciliation model rules: + + Label Contains Note Contains Action + ---------------- --------------- ------------------------------------------- + `Non-GBP` Counterpart: bank charges expense account + `DIRECT LINE` `DD` Partner: Direct Line Insurance + `FPI` Filter: incoming faster payments only + `HMRC` `FPO` Partner: HMRC diff --git a/ofxstatement-lloyds.pdf b/ofxstatement-lloyds.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8deabc4b2616c2c741951d88b820b20d76f3199c GIT binary patch literal 35691 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 Wl8U0#G%jOPBSQl&RaIAiH!c90N`OWH literal 0 HcmV?d00001