Guide · Order and invoice exports
Reconcile two order or invoice exports by record ID
Month-end checks often come down to two lists that should agree: orders in the web shop and invoices in the accounting system, or invoices in a billing tool and the same invoices in the ledger. CSV Compare matches the two exports on a shared ID and gives you a review list. This page covers the preparation that makes that list trustworthy, and what to check for each result.
Try the free demo ↗ See licenses and prices ↗
1. Choose the record ID
- Use an ID that both systems store for the same record, such as the order number or invoice number, and that appears once per record in each export.
- If one system keeps the other system’s number only in a reference field, export that field as its own column and use it as the key.
- IDs are matched exactly after surrounding spaces are removed.
INV-1001,inv-1001and1001are three different IDs, so make both exports write the number the same way.
2. Align the scope before you export
- Period. Use the same date range and the same kind of date: order date, invoice date or posting date. A record dated on the last day of the month can land in different periods in two systems.
- Statuses. Decide whether drafts, cancelled orders and credit notes belong in the check, and filter both exports the same way.
- Amount basis. Compare gross with gross or net with net. Shipping, fees and discounts must be included on both sides or left out on both.
- One row per record. An export with one row per order line repeats the order number. The app reports repeated IDs as duplicates and never adds them up, so export one row per order or invoice.
- Currency. If both files have a currency column, map it. The app compares the currency codes but does not convert amounts.
3. Map the files and compare
- Choose the delimiter and decimal separator for each file. Each file has its own settings, so a comma-delimited export with dot decimals can be compared with a semicolon-delimited export with comma decimals.
- Map the record ID, the amount and, if present, the currency on both sides. Pair text columns such as
status → payment_statusif you want those checked as well. - Choose Compare exports and work through the review entries.
Example: invoices in a billing tool and in the ledger
The billing tool exports comma-separated values with dot decimals. The ledger exports semicolon-separated values with comma decimals. Each file is read with its own settings.
| invoice_no | amount | currency |
|---|---|---|
| INV-2041 | 1500.00 | NOK |
| INV-2042 | 980.00 | NOK |
| INV-2043 | -250.00 | NOK |
| INV-2044 | 4200.00 | NOK |
| invoice_number | amount | currency |
|---|---|---|
| INV-2041 | 1500,00 | NOK |
| INV-2042 | 890,00 | NOK |
| INV-2043 | -250,00 | NOK |
| INV-2044 | 2100,00 | NOK |
| INV-2044 | 2100,00 | NOK |
| INV-2045 | 640,00 | NOK |
Map invoice_no to invoice_number as the record key, amount to amount and currency to currency. The app suggests invoice_no on the left, but you choose invoice_number yourself, because INV-2044 appears twice in the ledger.
| Record ID | Report status | What to check |
|---|---|---|
| INV-2044 | Duplicate right key | The ledger has two rows of 2100,00, for example two installments. The app does not add them up; INV-2044 is left out of matching on both sides until each file has one row for it. |
| INV-2041 | Mapped fields match | 1500.00 and 1500,00 are the same amount in the same currency. |
| INV-2042 | Amount differs | 980.00 in billing, 890,00 in the ledger. Possibly a typing error; check the invoice itself. |
| INV-2043 | Mapped fields match | The credit note is -250 in both files. Negative amounts are compared like any other. |
| INV-2045 | Only on right | Only in the ledger. Was it created directly in accounting, or dated outside the billing export’s period? |
That is 2 matches and 3 review entries. None of them proves an error by itself; each one tells you where to look.
Copy the example as CSV text
Paste each block into the left and right text boxes of the demo. Choose comma and dot for the left file, semicolon and comma for the right file, and map the key, amount and currency as above.
invoice_no,amount,currency INV-2041,1500.00,NOK INV-2042,980.00,NOK INV-2043,-250.00,NOK INV-2044,4200.00,NOK
invoice_number;amount;currency INV-2041;1500,00;NOK INV-2042;890,00;NOK INV-2043;-250,00;NOK INV-2044;2100,00;NOK INV-2044;2100,00;NOK INV-2045;640,00;NOK
4. What each result means and what to check next
| Report status | What to check |
|---|---|
| Only on left / Only on right | The export period and date type, status filters, and whether the correct column is mapped as the record ID on both sides. |
| Amount differs | Gross versus net, VAT, shipping or fees, discounts, partial credits, and rounding in one of the systems. |
| Currency differs | Which currency each system reports. Amounts are never converted. |
| Amount and currency differ | Both of the above. |
| Text differs / Multiple fields differ | The report names the changed fields. Text comparison is exact, so check case and spaces as well. |
| Duplicate left key / Duplicate right key | Instalments, split payments, order lines or an invoice entered twice. Get to one row per ID, then compare again. |
| Invalid left row / Invalid right row | An empty ID, an amount with a thousands separator or currency symbol, or a currency that is not three letters. Fix the export and compare again. |
| Unresolved left record / Unresolved right record | A record appears in one file only, but the other file contains a row without an ID. Fix the empty ID before concluding that anything is missing. |
A missing or changed record can come from a different export filter, period or billing schedule. Check the source before you correct anything. The report is a work list, not accounting advice or proof of lost or recovered money.
5. Repeat it next month
After the first run, export a mapping profile. It stores the delimiters, decimal separators and column mappings, but none of your rows. Next month, import the profile, choose the new exports and compare. Keep downloaded reports private: they contain the compared values.
Privacy and limits
The comparison runs in your browser tab. The app makes no network requests while it compares, saves no input to browser storage and contains no analytics, so the invoice data is not uploaded. The free demo handles up to 50 data rows and 2 MiB per file; the full version handles up to 10,000 data rows and 2 MiB per file, offline after you extract the ZIP. Both use exact IDs. Fuzzy matching, currency conversion, combining split invoices and automatic accounting entries are not included.
Related: worked example with eight order outcomes · compare two CSV files · compare two Excel sheets via CSV · format guide · see licenses and prices
Start with this month’s exports