EP Finance Importer
EP Finance Importer brings in the money your website never saw: the bank statement. It reads a CSV, works out what each line is, and posts it into the ledger without ever posting it twice.
This page documents EP Finance Importer 0.1.5.
Published by ElmsPark Studio.
Requirements
Section titled “Requirements”- PageMotor 0.9b or later
- EP Finance, which holds the ledger this plugin reads and writes
Mapping profiles
Section titled “Mapping profiles”Every bank exports a different CSV. The plugin ships profiles for AIB, Bank of Ireland, Revolut, Barclays, Monzo and Chase, and you can define your own for anything else: point it at which column is the date, which is the amount, which is the description, and it remembers.
The sign-flip trap, and why the preview exists
Section titled “The sign-flip trap, and why the preview exists”Banks disagree about what a positive number means. Some write money leaving your account as a positive figure, some as a negative one. Get it backwards and every expense becomes income.
So nothing posts straight from the file. The preview shows you what the plugin thinks each line is, anchored against the statement’s own opening and closing balance. If the signs are inverted the totals will not reconcile and you will see it before anything reaches the book.
A re-import can never double-post
Section titled “A re-import can never double-post”Every imported line is fingerprinted from the account, date, amount and description. Import the same statement twice, or overlap two exports by a fortnight, and the lines already in the book are recognised and skipped. This is what makes the import safe to retry when you are not sure whether it worked.
Rules and the review queue
Section titled “Rules and the review queue”A rule matches on the description and assigns a category, so your regular payments file themselves. Anything no rule matches goes to a review queue rather than being guessed at. You clear the queue; nothing is categorised behind your back.
Statements and reconciliation
Section titled “Statements and reconciliation”Import a statement, tell the plugin its opening and closing balance, and it will tell you whether the lines add up. Once a statement is closed the lines inside it are locked, which is what stops a reconciled figure being edited later.
Bringing in history
Section titled “Bringing in history”There is a separate migration screen for loading prior months or years, kept apart from routine importing so a large historical load cannot be confused with this month’s statement.
Changelog
Section titled “Changelog”0.1.20
Section titled “0.1.20”- Settings language menu. The language menu in this plugin’s settings now lists only the languages it is actually translated into, plus English, so you can no longer pick a language that changes nothing.
0.1.19
Section titled “0.1.19”- Rules can set a VAT rate. The Rules form has a new “and VAT rate” menu. A bank line a VAT rule matches goes into your books at its amount without VAT, with the VAT on its own line, from your VAT registration date in EP Finance 0.8.0. A line filed later from the review queue gets its VAT rule too.
- A rule with neither a category nor a VAT rate is no longer saved; the form says what to choose.
- The plugin description no longer mentions custom bank profiles. Only the built-in profiles exist; there is no screen to make your own.
0.1.18
Section titled “0.1.18”- A bank line with a very long description is no longer counted twice after its entry is deleted. If you delete, in EP Finance, a transaction the importer posted from a bank line whose description is longer than 255 characters, the line comes back to the review queue as before. It now comes back under the same identity it was imported with, so filing it and later importing an overlapping statement books it once. Before, it was booked a second time.
0.1.17
Section titled “0.1.17”- Unmatch a bank line. When the importer links a bank line to money another plugin already recorded (an invoice marked paid, a payout), the Statements tab now says which entry it is linked to, with an Unmatch button. Matching goes by amount and date, so two equal payments can be linked the wrong way round; Unmatch takes the line off that entry (the entry stays in your books) and puts the line back in the review queue, where filing it links it to the other one, never the same one again.
- A held-back line is no longer posted by mistake. A bank line whose money is already in your books on another bank account waits in the review queue, but filing it posted it anyway, so the money was counted twice. Filing it is now refused with the account named. If it is the same money, record a transfer from that account to this one in EP Finance and file again: the line is linked to the transfer. If they are different payments, press Post anyway. The review queue marks these lines.
- The review queue’s Account column now shows each line’s bank account. It showed ”—” for every line.
0.1.16
Section titled “0.1.16”- A bank file with an amount too large for your books is stopped, with the row named. An amount or running balance of 10 trillion or more used to be read as 0.00. The preview now lists the row (“an amount or balance is larger than the books can hold”), and nothing can be imported until it is fixed, as with any row that cannot be read.
- Migration: a closing balance too large is refused. It used to be compared as 0.00. Compare now says which account’s balance is too large, and keeps no result.
0.1.15
Section titled “0.1.15”- Bank lines come back when their transaction is deleted. If you delete, in EP Finance, a transaction the importer created, or the invoice payment or payout a bank line was matched to, that bank line now comes back to the Review queue, and the queue says so. File it again to put the money back. Before, the line stayed “done” and its money quietly dropped out of your books.
0.1.14
Section titled “0.1.14”- Old statements that could never be closed are fixed. Files with no running balance imported before version 0.1.12 made statements with an opening and closing balance of zero, so they could never be closed. They are now corrected automatically, once, to the figures a new import gets: they start at zero and end at the total of their lines. You can then close them. Statements that were already right, are closed, or came from a file with balances are not touched.
- This needs EP Finance 0.7.10 or later. Until then the Statements tab says so, and the correction runs as soon as EP Finance is updated.
0.1.13
Section titled “0.1.13”- You can now undo an import. Each imported statement on the Statements tab has an Undo import button. It deletes the transactions that import added and the statement itself. You can then import the file again, for example into the right account.
- Transactions already in your books before the import, such as a paid invoice that a bank line was matched to, are kept. They are just no longer matched.
- Before anything is deleted you see what will go and what will stay, and you confirm.
- An import cannot be undone if any of its transactions are in a closed period, locked, or matched to a closed statement, or if one has a receipt attached. You are told which transactions and why, and nothing is changed.
- On a phone, a statement’s table no longer makes the whole page scroll sideways.
- This needs EP Finance 0.7.8 or later.
0.1.12
Section titled “0.1.12”- Statements from files without a running balance can now be closed. A bank file with no balance column used to make a statement with an opening and closing of zero, which could never be closed. The statement now opens at zero and closes at the total of its lines, and the Statements tab explains that these figures are the movement in the file, not your bank balance. Statements imported this way before this release keep their zero figures and still cannot be closed.
- You can import the same file into a different account. If a file went into the wrong account, importing it into the right one no longer answers “Already imported”. The message tells you which account it went into first, so you can delete those transactions in EP Finance. Importing it again into the same account is still refused as a duplicate.
- Blank or “N/A” amounts are no longer imported as zero. A row whose amount is blank or not a number is now listed in the preview with its row number, and the file cannot be imported until you fix or remove it.
- Amounts written with a typographic minus sign are now read as negative. Some banks and spreadsheets use a ”−” or an en dash instead of a hyphen. These amounts used to come in as money in.
- The review queue now tells you when lines could not be filed, and why. Before, it said every ticked line was filed even when some were refused, for example because they are dated inside a closed period.
- Filing a line that is already in your books now says so. If a queue line had already been posted by an earlier import, or matched to an entry from another plugin, it keeps that entry and its category, and the message tells you the category you chose was not applied. Change it in EP Finance if it is wrong.
0.1.11
Section titled “0.1.11”- An import that stopped part-way can now be finished. If an import was cut off, for example by a server time limit, importing the same file again into the same account now carries on with the statement it had started, skipping every line already done. Before, it made a second statement, and the first one could never be closed.
- A double click on Import no longer imports the file twice. The button is greyed out while the import runs, and the server also refuses to run two imports of the same file at once.
- “History verified” now needs every account you have imported into. On the Migration tab, filling in one matching account used to verify the whole history. Now every account you have imported a bank file into must be filled in and match. Any left blank show as “Not entered” and the history stays unverified. If you saw “history verified” before, press Compare again to check it still holds.
- Imports now use your book’s currency. The “Imported income” and “Imported expenses” accounts, new bank accounts made on the Import tab, and imported statements and transactions were always recorded as pounds sterling. They now take your book’s currency, so a euro book gets euro records. Records made before this release are not changed.
- More bank files open. Files where a description runs over two lines, files that use old-style line endings, and spreadsheet exports ending in empty rows used to fail with “No rows parsed”. They now import normally.
0.1.10
Section titled “0.1.10”- The account picker now offers your main bank account first. When a main bank account is set in EP Finance, it is listed first, already selected and labelled “(main bank account)”. That keeps your statements on the same account where invoice payments and Stripe payouts are recorded, so they match.
- Money already in your books is no longer counted again when you import the bank statement. When you mark an invoice paid in EP Finance Invoicing, or the Stripe feed records a payout, that money is already in your books on the bank account. Importing the statement then added the same money again as new income. Now, before a bank line is posted, the importer looks for a matching entry on that bank account: same amount, within 7 days either side, and not yet matched. If it finds one, it links the bank line to it and posts nothing new.
- The import message tells you how many lines were matched this way.
- A line whose money was recorded on a different bank account is held for you to check. If the money is already in your books on another bank account, for example because a plugin posts to a different bank account from the one you import into, the line now waits in the review queue instead of being posted. The import message names that account. Point the plugin at the bank account you import into, or move the entry, before you file those lines, or the money will be counted twice.
- Lines already counted twice before this release are not changed.
- Lines the books refuse are no longer reported as posted. If a bank line could not be posted, for example because it is dated inside a period you have closed, the import used to count it as posted anyway and then refuse to import the file again, so the line quietly went missing. Such lines now go to the review queue, and the import message tells you how many there were, so you can file them once the reason is dealt with.
- The download no longer includes an internal notes file. Earlier versions carried a
CLAUDE.mdfile of developer notes in the plugin folder. Neither the plugin nor PageMotor ever read it, so nothing about how the plugin works changes. If an earlier version leftep-finance-importer/CLAUDE.mdon your site, it is harmless and safe to delete.
- Fixes a doubled cache-busting tag on its admin script. On PageMotor 0.11 and later the page asked for the file with two version tags on the end of its address (
?v=…?v=…), because the core had started adding its own tag and the plugin was still adding one too. The file loaded correctly, so nothing was visibly broken; the address was just malformed and every cache saw a longer key than it needed. The plugin now leaves the tag to the core on 0.11 and later, and still adds its own on older cores, where nothing else would. - No change to what that script does.
Released 6 August 2026.
- Hardening: if the plugin’s bundled shared file is ever missing or damaged, the plugin now stands down quietly instead of taking the site down with it. No change when everything is healthy.