Move your invoice records out of a subscription, without sending them anywhere
You have outgrown the spreadsheet or you are tired of the monthly bill. Before you switch, you need the records themselves: the client list, the hours, the invoices you have already sent. This page takes the CSV export from your current tool, or a plain spreadsheet saved as CSV, and turns it into a backup file you can restore into an offline invoicing app. It runs entirely in your browser. It has no network code, so your client list never leaves the machine it is on.
The converter
Choose a CSV file, or paste the rows below. Either way the text is read where it stands — there is nothing to upload to. Then check the column mapping and take the backup file.
Which column is which?
Guesses are already made where the header text matched. Correct anything wrong; choose not used for columns you want ignored.
How to use the file it gives you
- Open the offline tracker — the free demo on this site or the copy you bought. Both restore the same format, so converting first and trying it in the demo costs nothing.
- Go to the Settings panel and press Restore backup, then choose the JSON file you just downloaded. Restoring replaces whatever that browser already holds, so export the existing backup first if the tracker is already in use.
- Check three things: a client's balance, one invoice's recomputed total against the PDF you sent, and the numbering. The invoice series continues from the highest number in your data, and you can re-cut it from your own business details in Settings whenever you like.
What actually transfers, and what does not
An export is your records, not your workspace. Being clear about the boundary is the difference between a migration and an unpleasant surprise three weeks later.
| Comes across in the CSV | Does not come across |
|---|---|
| Client names, addresses, emails, VAT numbers, default currency and rate | The PDF artwork and your logo on it |
| Invoice numbers, issue and due dates, line descriptions, quantities, rates, status | Payment links and the card-fee history behind them |
| Time entries: date, description, hours, rate, billed or not | Recurring schedules and auto-reminders you had configured |
| Tax or VAT you exported, and any fixed discount | Bank feeds, matched payments and reconciliation state |
| Notes you wrote on the record | Message threads with the client and the audit log |
If the tool you are leaving will not export at all, that is worth knowing on its own terms. It is a commercial choice, not a technical limit, and it tells you what happens to your records if you ever stop paying or that company stops trading.
Two things to check after any conversion
Totals are recalculated, not copied
An invoice total here is the sum of its lines (quantity times rate), plus tax as a percentage, minus a fixed discount. Most tools compute the same way, so the numbers agree. Where they do not, it is because the old tool rounded line by line, applied a percentage discount, or added a fee that never appears in the export. The converter flags lines with no rate or quantity so a gap is visible instead of silent.
Ambiguous dates
04/05/26 is 5 April in much of the world and 4 May in the United States. The converter takes the
day first when the leading number is over 12, which settles it, and otherwise assumes day-month and says so in the
warnings. If your export came from a US product, check a date or two before restoring. Excel serial numbers such as
45123 are converted for you.
Worked example: a 6-row export from a subscription tool
The rows below are typical — one line per invoice, semicolon-delimited because the export came from a European product, dates with dots, amounts with a comma:
| Opportunity | Rekening | Factuurdatum | Vervaldatum | Bedrag | Status |
|---|---|---|---|---|---|
| Northline Studio | NS-26-0004 | 11.04.2026 | 25.04.2026 | 1.020,00 | betaald |
| Northline Studio | NS-26-0005 | 09.05.2026 | 23.05.2026 | 850,00 | verstuurd |
| Aalto Clinic | AC-26-0011 | 02.06.2026 | 16.06.2026 | 480,00 | open |
Press Load a sample export above to put a machine-shaped version of this in the box and watch the mapping. The converter reads Rekening as the invoice number and Factuurdatum as the issue date because those headers match the patterns it knows; where a header is a language it does not recognise, the column lands on not used and you point it yourself in one click. Two invoices for the same client become one client record and two invoices, and betaald becomes a paid invoice. Its 12 hours at 85 multiply out to the 1.020,00 that was billed, so the line keeps its hours; where an export's total does not multiply out, the total wins, because that is what the client was charged, and the hours go into the time log marked as billed.
Frequently asked
Can I get my invoice data out of my current invoicing software?
Usually yes, as a CSV. Nearly every invoicing product exports clients, invoices or time entries, because accountants ask for it; the button is often under Settings, Data or Reports rather than on the main screen. Free plans limit which exports you get and sometimes how many rows, but the client list and the invoice list are commonly available. Payment links, reminder schedules, bank feeds and message history do not export, because those are features of the service rather than your records.
Does this converter upload anything anywhere?
No. There is no network code on this page. Your file is read by the browser's own file reader, the work happens in that page's memory, and the output is handed back as a download. It does not store to local storage either, so closing the tab leaves nothing behind. Check it yourself in the Network tab, or load the page once and then switch off your internet — it keeps working.
Which columns must my export have?
None by name. The header row is read, matched against known patterns, and shown to you as an editable mapping. It understands client, customer, company, account and billed to; date, issued, invoice date and factuurdatum; hours, quantity and duration; amount, total and bedrag; plus tax, VAT, discount, currency, status, due date and description. Minimum viable: a client name for the client list, a description or hours for time entries, or an invoice number with a line description for invoices.
Why do converted totals sometimes differ by a cent or two?
Totals are recalculated from the lines rather than copied, because that is how the receiving app works. Rounding differences, percentage discounts and fees that never appeared in the export all show up as a cent or two. Compare one invoice against the PDF you actually sent before you start chasing anybody for the difference. The one that can be more than a cent is tax: a header row cannot tell you whether the money column was net or gross, and the app adds tax on top of the lines. If your export was VAT-inclusive, set the tax on those invoices to 0 after restoring, or the totals come out high by exactly that rate. The converter says so on screen whenever your file carries both an amount and a tax percentage.
What do I do with the file it produces?
Open the tracker, go to Settings, press Restore backup, pick the JSON. Records appear as clients, time entries and invoices, and numbering continues from the highest number found. Restoring replaces what was in that browser, so back up anything already there first.
Can two computers share the converted records?
Not live. Each browser holds its own copy and there is no merge, so pick one machine as the book of record. If more than one person invoices the same clients at the same time, a local file is the wrong shape of tool and a shared system is the honest answer.
Where the records go
The output is the backup format of FreelanceDesk, the single-file offline client, time and invoice tracker: $14 once, no account, no subscription, nothing sent to a server. It is one HTML file you keep, and it will still be running in five years whether or not anyone is still selling it. The free invoice generator, overdue reminder writer, rate calculator and statutory interest calculator on this site are free in the same spirit, and the $7 document pack covers the agreement, proposal, rate card and late-payment letters.
Disclosure: this converter is written by the people who make FreelanceDesk, so it produces their file format. The parsing is still useful as a reference for what a clean export looks like, and the output is plain JSON you can open in any text editor and change.