An Invoice is a posted demand for payment from a customer. Use one when:
- you've delivered goods or services and the customer will pay later,
- you need to age a receivable on the AR ledger,
- you want to share a numbered, branded document the customer can print or view through the portal.
Once posted, the invoice appears in your AR ledger, hits the General Ledger, ages in the A/R Aging Summary, and is visible to the customer through their secure portal. Until it is posted it is a Draft and does not affect your books.
Compared with a Sales receipt: a sales receipt is paid on the spot — cash is collected and revenue recognised in one step, no AR. An invoice splits the two: post now to recognise the receivable, collect later via a Payment.
You'll find Invoices under AR (Sales) → Documents → "Invoices".
Step by step
Browse invoices
- Open Invoices. Each row shows invoice number, customer, date, due date, total, amount due (after payments and credits), and status.
- Filter by status, customer, date range, or open balance.
Create an invoice
- Click New Invoice.
- Pick a Customer (or add one inline).
- The Invoice number comes from the active numbering sequence — see Settings. You can override it.
- Set Invoice date and Due date (the customer's default payment terms suggest the due date).
- Add line items: Product/Service, Description, Quantity, Unit price, Tax. Sub-totals, tax totals, and grand total update live.
- Need an item that doesn't exist yet? Type its name in the item search — a Create «what you typed» footer appears. It opens the New item modal ("Create it here and it drops straight into this line."); click Create & use and the new item lands on the line.
- Optionally add a Customer message and pick a PDF template.
- Optionally tag lines with Dimensions for analytic reporting.
- Save as a draft to keep editing, or Save & Post to post immediately.
A faster path: convert an accepted quote or an approved sales order — the quoted prices are preserved.
Bulk create / import invoices
To enter many invoices at once, use Bulk Invoices — open it from the caret next to New Invoice. Bulk is an input shortcut only: every invoice it creates is an ordinary draft invoice, saved through the same rules, numbering, and tax logic as one typed on the normal form. There is no special record type.
Two ways to enter data:
- Manual entry — fill in one card per invoice (invoice date, due date, customer, invoice number, currency, item, revenue account, quantity, rate, discount, tax).
- File import — download a per-document CSV or XLSX template, fill it in, and upload it. One row becomes one single-line invoice. The XLSX template has drop-downs on the customer, currency, revenue account, and tax-code columns; the tax drop-down shows the code, name, and rate. Searchable reference lists are shown on the import tab with copy buttons.
After entering or uploading, Validate previews every invoice — totals and any blocking errors are shown before anything saves. Fix the highlighted rows, then save. The batch saves all-or-nothing: if any invoice fails, nothing is saved. Bulk-created invoices are always Draft — post them as usual.
Edit a draft
Drafts can be edited freely. Once posted, the invoice's accounting fields are locked — see below.
Post an invoice
Posting:
- Validates the invoice against the chart of accounts and tax rates.
- Writes the journal: debit AR, credit Sales (and Tax Liability and Inventory/COGS for stocked items).
- Locks the document's accounting fields.
- Generates and stores the PDF.
Posting is blocked when:
- the invoice date falls inside a locked period (see Fiscal years and lock dates);
- the invoice has zero lines;
- the customer has been archived;
- approval workflow is on and the invoice is not yet approved.
Posted invoices are locked — what that means
Once an invoice is posted, everything that shaped its accounting is locked: date, customer, currency, price list, due date, project, VAT treatment, and the line items. If you open a posted invoice's edit page, a banner tells you the document is locked and which fields you cannot change.
To change any of those fields:
- Unpost the invoice (see below) — it returns to Draft.
- Edit the draft.
- Post it again.
Notes and attachments stay editable on a posted invoice — you never need to unpost just to attach a document or add an internal note.
Unpost (back to draft)
Returns the invoice to Draft so you can correct and re-post it. Unposting voids the invoice's journal entry — the entry is kept for the audit trail but marked void and excluded from reports. Unpost is not allowed if any payment has been allocated to the invoice — unallocate the payment first — and is blocked when the period is locked. Only users allowed to unpost will see the action.
Void an invoice
Marks a posted invoice as void: writes a fully reversing journal on the void date, sets the balance to zero, and keeps the document number on the books. Use Void when you want a permanent record that the invoice should not have happened.
Actions on an invoice
From a posted invoice's page you can also:
- Record a payment — jump straight to recording the customer's payment against this invoice (see Payments).
- Apply Retainer — apply a customer's advance deposit to this invoice (see Retainers).
- Make Recurring — turn this invoice into a recurring template that re-creates it on a schedule (plan-dependent; see Recurring transactions).
- Duplicate — start a fresh draft invoice pre-filled from this one.
Send by email
Opens the send dialog: customer email pre-filled, a default subject and body, the PDF attached, and a secure portal link the customer can use to view and download. Successful sends are logged on the invoice's activity tab.
Print a PDF
Streams the invoice as a PDF using the active PDF template — see PDF templates.
Delete a draft
Allowed only while the invoice is a Draft. Posted invoices cannot be deleted — Void instead.
How the journal looks
A JOD 100 service invoice (zero-rated tax):
| Account | Debit | Credit |
|---|---|---|
| AR — Customer control | 100.00 | |
| Revenue — Services | 100.00 |
A JOD 117 invoice with 17% VAT, no inventory:
| Account | Debit | Credit |
|---|---|---|
| AR — Customer control | 117.00 | |
| Revenue — Sales | 100.00 | |
| VAT Output | 17.00 |
A JOD 117 invoice with 17% VAT, sold as a stocked item with JOD 60 cost:
| Account | Debit | Credit |
|---|---|---|
| AR — Customer control | 117.00 | |
| Revenue — Sales | 100.00 | |
| VAT Output | 17.00 | |
| COGS | 60.00 | |
| Inventory | 60.00 |
A USD 1,000 invoice with base currency JOD at an exchange rate of 0.710 (no tax):
| Account | Debit (JOD) | Credit (JOD) |
|---|---|---|
| AR — Customer control (USD 1,000) | 710.00 | |
| Revenue — Sales | 710.00 |
When the customer later pays, the FX rate on the payment date may differ — the realised FX gain/loss is booked at that point. See Multi-currency.
Customer payment later applied to the JOD 117 invoice in full:
| Account | Debit | Credit |
|---|---|---|
| Bank | 117.00 | |
| AR — Customer control | 117.00 |
The invoice flips to Paid and the open balance becomes zero.
Discounts
By default, line discounts post gross: the full pre-discount revenue is credited to the revenue account and the discount amount posts to a dedicated discount account — so your reports show both what you would have earned and what you gave away (see the Discounts Report). Your organization can switch to net posting (discounts simply reduce the revenue line) in Settings.
Recurring invoices
Plan availability: recurring invoices depend on your subscription. If Make Recurring or the Recurring menu is missing, your plan may not include it — see Subscriptions & billing.
Create a recurring template from any invoice's Make Recurring action, or from Recurring Transactions → New Template. The template runs on its schedule and creates fresh draft (or auto-posted) invoices. See Recurring transactions.
When to use which AR document
| You want to… | Use this |
|---|---|
| Bill the customer now, collect later (with ageing) | Invoice (this page) |
| Collect money on the spot — walk-in / counter sale | Sales receipt |
| Hold a deposit before any service is delivered | Retainer |
| Repeat the same invoice on a schedule | Recurring template of an invoice |
| Reduce an invoice you've already posted | Credit note |
| Refund cash to the customer | Refund receipt |
Common mistakes
- "Post is blocked" → almost always one of: (1) the invoice date is in a locked period, (2) the invoice has zero lines or zero total, (3) the customer is archived, (4) workflow approval is on and the invoice is still pending. The error message tells you which.
- "I can't change the date / customer / lines on a posted invoice." That's the posting lock — the edit page shows a locked banner. Unpost first (payments must be unallocated), edit the draft, and post again. Notes and attachments don't need an unpost.
- Currency mismatch. A customer's currency is locked the moment they have any posted document. Trying to invoice them in a different currency will be blocked — issue the invoice in their original currency, or create a new customer record.
- PDF looks wrong. Templates are managed under PDF templates. Make sure the right template is the default for invoices, or pick it on the invoice itself.
- Tax line missing. Tax codes are line-level. If a line shows no tax, the line's tax code is "None" — pick a code, or set a default on the customer record so new lines inherit it.
Tips
- Press Ctrl/⌘ + K anywhere in SolaBooks to global-search for an invoice number.
- The invoices list supports bulk send and bulk PDF from the toolbar — tick rows and pick the action.
- Filtering to open balances is the fastest way to find what's unpaid.
- Use Duplicate for a customer who orders the same thing irregularly; use Make Recurring when it's on a fixed schedule.
Lifecycle
Draft ──Submit (workflow on)──▶ awaiting approval ──Approve──▶ Approved
Draft / Approved ──Post──▶ Posted (accounting fields locked)
Posted ──Allocate payments──▶ Partially Paid ──more payments──▶ Paid
Posted ──Unpost──▶ Draft (only if no payments allocated, period unlocked)
Posted ──Void──▶ Void
Behaviour and rules
- Posting hits the books. Drafts do not. Reports show only posted documents by default.
- Posting locks accounting fields — date, customer, currency, price list, due date, project, VAT treatment, line items. Notes and attachments remain editable. Unpost → edit → re-post to change locked fields.
- Unposting voids the journal. It does not create a reversal entry — the original journal is kept (marked void) for audit and dropped from reports.
- Tax is line-level. Each line carries a tax code; the totals shown on the document are derived.
- Discounts post gross by default — to a dedicated discount account, not netted off revenue. See Settings.
- Multi-currency. If the customer's currency differs from the base currency, the invoice carries a dated exchange rate. Posting requires a rate for that date and writes both currency amounts.
- Period lock. Post / Unpost / Void all require the invoice date's period to be open.
- Inventory. A posted invoice with stocked-item lines decreases on-hand quantity and posts to COGS — see Inventory.
- Missing buttons? Post, Unpost, Void, Send, and Delete each need the right access. If an action you expect is missing, ask your workspace administrator.
Related
- Customers
- Quotes
- Sales orders
- Payments
- Retainers
- Customer portal
- Recurring transactions
- Settings — numbering sequences, PDF templates, workflow, discount posting
- Fiscal years and lock dates