Help centre | Article

Import invoices in bulk from a CSV

For catching up a backlog, or moving a year of history in from a spreadsheet, without typing each invoice.

Free invoice template

When to use it

Bulk import exists for the two moments when entering invoices one at a time is the wrong shape of work: moving in from a spreadsheet you have kept for months or years, and catching up after a stretch where the admin slipped. For ordinary week-to-week invoicing, raising each invoice from its session is better, because the session already knows the rate, the hours and the organisation.

The columns

The header must contain these five columns, in this order:

  • organisation: the name of the organisation being billed. Required.
  • invoice_date: the date on the invoice. Required.
  • due_date: when payment is due. Optional; leave the cell empty to use your default terms.
  • description: what the invoice is for. Required.
  • amount_gbp: the total in pounds. Required.

Download the template from the import page rather than typing the header yourself, which removes the commonest cause of a rejected file.

How to write dates and amounts

Important

Dates must be written YYYY-MM-DD, so 3 September 2026 is 2026-09-03. This is deliberate: 03/09/2026 means September in the UK and March in the US, and a spreadsheet will happily reformat one into the other without telling you. The unambiguous form cannot be misread.

Amounts are plain numbers in pounds: 450.00, not £450.00 and not 450,00. Do not use a thousands separator.

Checking before you commit

Paste or upload the file and Sessional shows you the parsed rows before anything is created, highlighting the exact cell in any row it cannot read. Nothing is imported until you confirm, so a badly formatted file costs you a correction rather than a cleanup.

Up to 200 invoices can go in one import. For more than that, split the file; each import is checked and created as one batch.

What it creates

Each row becomes an invoice against the named organisation. If an organisation on the file does not exist yet, it is created for you, so you do not have to add them first. Nothing is sent: imported invoices are yours to review, and you send them when you choose. See invoicing.

Tier access

Basic covers up to 5 invoices a calendar month, and imported invoices count towards that like any other. If a file would take you past the cap, the rows up to the limit are created and the rest come back marked with the reason, so you keep what fitted rather than losing the import. A large backfill needs Plus. See pricing.

Frequently asked questions

Can I import the sessions behind these invoices too?
Yes, and separately. Bulk session import is its own CSV with its own columns, covered in sessions. Imported sessions are treated as work already done.
What happens if two rows name the same new organisation?
It is created once and both invoices attach to it. You will not end up with duplicates from a single file.
Will importing an old invoice send anything to the organisation?
No. Import only creates the invoices in your account. Sending is always a separate, deliberate action.
One row is wrong. Do I lose the whole file?
The preview shows you the problem cell before anything is created, so the normal outcome is that you fix that row and import once. Nothing is created while a row is still unreadable.