Docs
Importing sales invoices from an Excel file
If your sales are already in a spreadsheet, this template turns them into invoices without retyping.
How do I import sales invoices from Excel?
From the Sales Invoices screen, download the template, fill it in, and upload it with the import button. The system creates the invoices and matches customers and items for you.
Permission
Both downloading the template and importing require sales_invoices:add.
The template columns
| Column | Required? | Details |
|---|---|---|
| Invoice Date | ✅ | The invoice date |
| Invoice Reference | ✅ | The grouping key — rows sharing a value become one invoice |
| Customer Name | Required for a new phone | The customer's name |
| Customer Phone | ✅ | The matching key against existing customers |
| Customer Email | No | Saved on a newly created customer |
| Customer Address | No | Saved on a newly created customer |
| Customer Tax ID | No | Saved on a newly created customer |
| Item Code | One of the three | The item's Pashkateb code |
| Item SKU | One of the three | The SKU |
| Item Barcode | One of the three | The barcode |
| Quantity | ✅ | The quantity |
| Unit Price | ✅ | The unit price |
| Discount Amount | No | Line discount — cannot exceed the line total |
| VAT Rate | No | The VAT percentage |
| Paid Amount | No | Amount paid — cannot exceed the invoice total |
| Notes | No | Any notes |
Grouping rows into one invoice
The Invoice Reference column is the key.
INV-BULK-001 Ahmed Ali 01152875815 ITM-001 2 150
INV-BULK-001 ITM-002 1 300
INV-BULK-002 Mona Hassan 01011112222 ITM-001 5 150
The result is two invoices: one for Ahmed with two lines, and one for Mona with a single line.
On the second and later rows of the same invoice you can leave the customer columns empty. But if you fill them in they must match — the system rejects an Invoice Reference carrying a different customer name or date across its rows.
Customer matching
The system looks for a customer with the same phone number:
- Found → it uses the existing customer.
- Not found → it creates a new customer from the row's details, in which case Customer Name becomes required.
This is the same matching logic the online store and the integrations use, so you do not end up with duplicate customers.
Item matching
In this order: item code → SKU → barcode.
Fill in at least one of the three. If nothing matches an existing item, the row is rejected with a message telling you what it was looking for.
The warehouse
The import needs one warehouse for the whole batch. There is no warehouse column in the file.
If your invoices come from different warehouses, prepare one file per warehouse.
Validation
A row is rejected when:
- The quantity or price is not a valid number.
- The discount exceeds the line total.
- The paid amount exceeds the invoice total.
- The item does not match on any of the three codes.
- The customer name is missing for a new customer.
- The same Invoice Reference carries conflicting customer details or dates.
Invoices are created as drafts
The import does not submit anything. The invoices are created and wait for you to review and submit them.
That is deliberate: a mistake in a large batch is far better caught while it is still a draft, before it touches your stock and your accounts.
Check a sample of the resulting invoices, then submit them.
Frequently Asked Questions
How do I put several items on one invoice?
Use the same value in the Invoice Reference column for every row that belongs together. The system groups them into a single invoice with one line per spreadsheet row.
How does the system recognise the customer?
It matches on phone number first. If it finds a customer with that number it uses them; if not, it creates a new customer from the row's details. That is why name and phone matter.
How are items matched?
In this order: item code, then SKU, then barcode. Fill in at least one of them. If nothing matches, the row is rejected.
Are imported invoices submitted automatically?
No. The import creates the invoices; you review and submit them. That is deliberate, so you can check a large batch before it touches your stock and accounts.
Related Links
Use Pashkateb with Your Real Workflow
Start the free trial or move to the most relevant landing page for your workflow, then apply what you read using your own invoices, stock, and reports.
