BigBooks Docs
Selling

Create an Invoice

As an operator, you will create a customer sales document — line items, currency, and tax — that saves as a draft and then posts to the general ledger the moment you issue it.

What you'll accomplish

As an Operator, you will create a customer sales document — line items, currency, and tax — that saves as a draft and then posts to the general ledger the moment you issue it.

Before you start

Invoices live at /[lang]/tax-invoices. The page opens as a master-detail screen: a list of documents on the left, and a tabbed detail panel on the right when you click a row. Creating an invoice has prerequisites (company profile, tax setup, and a numbering series); when they are not met the first-run screen shows a guided EmptyState with a "Complete setup" checklist instead of the "New tax invoice" button. Amounts are entered in a major unit but stored as integer satang (1 LAK = 100 satang) and all totals are recomputed server-side.

Compliance Note

Nothing posts to the GL while a document is a draft. The balanced journal entry is written only when you issue the invoice, so the audit trail stays clean for MoF 2020.

Steps

Open the invoices list Go to /[lang]/tax-invoices. The secondary-header breadcrumb reads Dashboard › Tax Invoices, and the "New tax invoice" action sits on the right of that header. A stats strip and readiness banner show above the list once you have documents; on a truly empty company the illustrated EmptyState carries the setup guidance instead.

Tax invoices list-detail screen with the New action in the secondary header and status views (All / Draft / Issued / Cancelled).
Tax invoices list-detail screen with the New action in the secondary header and status views (All / Draft / Issued / Cancelled).

Start a new invoice Click New tax invoice to open the document-style editor. Pick the customer, add line items (description, quantity, unit price), choose the document currency, and set the tax rate. A live preview renders the document as you type.

Document-style invoice editor with the line-item grid, currency and tax selectors, and the live preview.
Document-style invoice editor with the line-item grid, currency and tax selectors, and the live preview.

Save the draft Save the document. It is created with status draft and a sequential number, and appears as a row in the list with an amber status accent. No accounting entry exists yet.

The new draft invoice as a one-line master row with its status badge and accent bar.
The new draft invoice as a one-line master row with its status badge and accent bar.

Open and issue it Click the row to open the tabbed detail panel (Document, Overview, Payments). The detail header carries icon-button actions plus an Edit button while the document is a draft. Press Issue to commit the document — this is the step that posts the GL.

Invoice detail panel with the Document tab open and the issue / icon-button actions in the header.
Invoice detail panel with the Document tab open and the issue / icon-button actions in the header.

What happens behind the scenes

Issuing the invoice writes one balanced, posted journal entry (createTaxInvoiceJournalEntry in invoices/mutations.ts). The debit account depends on how the buyer settles: Cash-on-hand for a CASH sale, Accounts Receivable (the customer sub-account when known) for a TRANSFER sale. Revenue is credited per line at its net base, VAT output is credited to the tax-output account, and any DTTDF levy is credited to its own payable account. The entry is in satang and always balances because the debited total equals net + VAT + DTTDF by construction. For a non-LAK document the exchangeRate is snapshotted on the journal entry so the LAK ledger value is fixed at issue time. Cancelling an issued invoice posts a mirror entry that swaps debits and credits rather than deleting the original.

AccountDebitCredit
Accounts Receivable (or Cash on CASH sale)Total-
Revenue (per line, net base)-Net Amount
VAT Output-VAT Amount
DTTDF Payable (when applicable)-DTTDF Amount

Common problems

  • Setup not complete: When company/tax/numbering prerequisites are missing, the EmptyState shows a "Complete setup" checklist instead of the New action — finish those links first.
  • Empty or zero document: An invoice with no line items or a zero total cannot be issued.
  • Missing FX rate: A non-LAK document needs a rate for its date before it can be issued.
  • Closed period: Issuing into a closed accounting period is rejected.
  • Permissions: Without canCreateInvoices the New action and editor are not available.
  • Still a draft: A draft has no GL entry until issued — check the status badge if you expect a posting.

On this page