Reconcile bank and Shopify CSV exports locally. Import two CSV exports, map their columns, inspect proposed transaction matches and differences, and export your reconciliation for review.
Customers pay by bank transfer quoting their order number, and you want to see which pending Shopify orders have a matching payment before you update them yourself.

Buy and extract the NjordMatch ZIP, then open its NjordMatch folder. Install Node.js 20.12 or newer. In this extracted folder run: node start.mjs
Open http://127.0.0.1:8787/ in desktop Google Chrome. Keep the terminal open; Ctrl+C stops it. The same workflow can be explored in the online browser preview.
In your open local copy, follow the controls described below. The three steps are Import files, Map columns and conventions, and Review and confirm.
Choose your file under Bank statement (CSV or CAMT.053 XML) and under Shopify order export CSV. To practise first, click Load synthetic demo, which loads two small made-up files.
Choose the Decimal separator (Dot or Comma) and Date convention (YYYY-MM-DD, DD/MM/YYYY or MM/DD/YYYY). Check each column list: Transaction ID, Reference, Amount, Currency, Date, Direction and Booking status for payments; Order ID, Reference, Outstanding amount, Currency, Financial status and Cancelled at for orders. Standard headings are filled in automatically and the first two rows of each file are shown. Click Preview reconciliation.
Each bank payment gets a state (Exact match, Ambiguous, Unmatched or Excluded) with a reason; orders without an exact payment are listed after the payments. What the states mean explains each one. Tick the matches you accept, or click Select all exact matches.
Tick I reviewed these results and confirm the report, then click Export reconciliation CSV. The download njordmatch-report.csv lists every payment row, every order without an exact payment and any row errors, with a selected column. Update orders in Shopify yourself; NjordMatch changes nothing there.
Input: examples/njordmatch/fictional-bank-statement.csv (5 fictional bank lines) and examples/njordmatch/fictional-shopify-orders.csv (4 fictional pending orders).
Expected: The summary reads “5 payment rows: 2 match, 0 ambiguous, 2 unmatched, 1 excluded/invalid; 0 row errors.” BK-2001 and BK-2002 are Exact match for orders #2041 and #2042. BK-2003 is Unmatched with “Amount or currency differs” (19.00 was paid, order #2043 is 21.00); BK-2004 is Unmatched with “No eligible order with this reference”; the card-fee debit BK-2005 is Excluded as “Not a credit”. Orders #2043 and #2045 appear under “Orders without an exact payment (2)”. njordmatch-report.csv has 7 rows, with selected = yes for the two accepted matches.
Only booked credits (direction CRDT, status BOOK) can match, and rows without a direction or status are excluded. Map the Direction and Booking status columns if your bank provides them.
Only pending or unpaid orders are eligible, and the reference, amount and currency must match exactly. The reference comparison ignores one leading # and letter case; payer names and partial references are never used. A partial payment shows as Unmatched.
A transaction, payment reference or order reference appears more than once, so NjordMatch never proposes a match. Check the duplicates in your exports.
Set Decimal separator to Comma for amounts such as 49,90, and pick the Date convention your bank uses.
Click Preview reconciliation first, then tick I reviewed these results and confirm the report.
Imported files stay only in the current browser tab and are never uploaded or stored. Choose them again.
Guide and examples: 30 September 2026. Examples are fictional or synthetic. Online guide · Support