Tutorials
“Do I have to raise a sales order before I can invoice?” is the question the old Creating Your First Invoice page was reaching for, and the one to start from if you came here looking for it. The short answer is no, and the page that answers it in full is Standard Sales Workflow. This folder itself holds no tutorials any more; it stays so that old links still land somewhere useful.
Where the walkthroughs actually are
Four pages on this site are written as start-to-finish tutorials. None of them is in this folder.
| You want to… | Read |
|---|---|
| Take a customer from quote to money in the bank, including your first invoice | Standard Sales Workflow |
| Take a supplier from purchase order to payment | Standard Procurement Workflow |
| Read and write BigLedger data from your own code | Developer getting started |
| Build an applet | Applet development: getting started |
Everything else that walks you through a job is in the Guides, and if you would rather listen than read, the narrated presentations are in Learn.
Why your first invoice is two pages, not one
The old Creating Your First Invoice page put the whole job in seven lines and got it wrong in a way that is worth knowing about, because the mistake is natural. It treated pressing Finalise as the end of the job. It is the start of it.
When you finalise a sales invoice, BigLedger records the document as final and queues the rest: a background job posts the journal and moves the stock, and a separate one decides whether the invoice goes to LHDN on its own or inside the month’s consolidated e-invoice, or parks it in a pool because something LHDN needs is missing. (The sales invoice screen starts every new invoice as an individual e-invoice; you can change that on the invoice.) None of that happens on the screen in front of you, and none of it happens at the moment you press the button. So the walkthrough is two pages:
- Standard Sales Workflow — the invoice, what it posts and how you see it posted. The screen itself is documented field by field in the Sales Invoice applet reference.
- E-Invoice Pools & Submission Routing — what happens to that invoice on its way to LHDN, and how BigLedger decides between an individual and a consolidated e-invoice. Moving or resubmitting a document that has parked in a pool is done in the My E-Invoice Admin applet.
For example, a corporate customer who orders twelve laptops from branch GS-KV-01 and wants a
quote first takes the whole of page 1: quotation, order, delivery, invoice, receipt. A walk-in
customer buying one pair of earbuds at the counter needs none of that. Use
Cash Sales instead of the long path: one document, the
cash bill, does the jobs of the invoice and the receipt together.
If you want the mechanism itself, the presentation series Finalise: what the button starts, and what it writes walks it.
Before your first invoice will post
Two things have to exist first, and missing either one shows up only after you have finalised:
- Default GL codes on the company. The invoice’s journal is built from them. If the customer-account (debtor) mapping is missing, or a line finds no sales or tax account to post to, the invoice still finalises but its journal is refused — see Chart of Accounts Setup. Because the mapping belongs to the company, a missing debtor mapping fails every sales invoice in that company, not just yours.
- MyInvois set up for the company, if you are e-invoicing: MyInvois setup. Set the company’s LHDN environment before anything else: a blank one means the sandbox, and invoices sent there come back Valid having been filed with nobody.
For a brand-new company, Getting Started and the presentation series Set up a new company end to end put these in order.
When something looks wrong
| What you see | What is going on | Where it is answered |
|---|---|---|
| “I finalised the invoice and nothing was submitted to LHDN.” | Almost always queued, not stuck. Submission runs in the background, and a document waiting for its run shows no error because there is none. | Understanding E-Invoice Statuses |
| You raised a sales order and your stock did not move. | It never does. A quotation or sales order posts nothing and moves no stock; only the sales invoice (or cash bill) does. | Standard Sales Workflow |
| “Every sales invoice finalises, but none of them post, and the trace names a missing default GL code.” | The company’s default GL codes are not mapped, so the posting job fails after the document is already final. | Chart of Accounts Setup |
An old bookmark to /tutorials/first-invoice/ or /tutorials/month-end-closing/ | Both pages moved. The first now opens the sales workflow; the second opens the Month-End Closing Process. | — |
How you know your first invoice worked
Open the invoice and look at its Posting tab. Journal and Inventory should both show as posted. If Inventory is posted and Journal is empty, the posting failed — almost always the default GL codes above. From here the invoice is ready for the customer’s payment (Step 6 of the sales workflow), and at month end it is one of the documents the Month-End Closing Process checks for a missing journal.
The e-invoice is a separate check, made later: Understanding E-Invoice Statuses says what each status means and how to tell waiting from failed.
What this folder will not give you
- No tutorials of its own, and none planned here. New walkthroughs go into the Guides or Learn.
- No video walkthroughs. The old page linked to one that never existed. The nearest thing is the narrated presentations in Learn, which you can also read as a transcript.
- No single walkthrough from keyboard to LHDN. It is the two pages above, because the posting and the e-invoice run as separate background jobs and finish at different times.
Next
Start with Standard Sales Workflow. It is the page the old first-invoice tutorial was reaching for.