DDeetzo Academy ◀ All module guides
Deetzo ERP · Sales & Invoicing · Training Guide

Sales & Invoicing — order to cash

The fulfilment half of the deal: turn a confirmed order into dispatched goods, a GST-correct invoice, and collected cash — with credit notes for what comes back. The natural sequel to the CRM guide.

Version 1.2 Updated Sep 2026 · reviewed against production code India GST Audience Sales · Accounts · Admin · Owner
01Sales Order
→
03Invoice
→
02Deliver
→
06Collect
→
07Credit note
00

The big picture

Where the deal becomes goods, a bill, and cash.

CRM wins the deal; Sales & Invoicing fulfils it. A confirmed sales order is the anchor. From it you raise invoices (the only step that actually moves stock and posts to the books), dispatch the goods on deliveries, collect payments, and issue credit notes for returns. Every document links back to the one before it.

Shipping it is its own guide

Carriers, LR numbers, packages and weight, tracking links and the delivered / returned lifecycle now live on the delivery note. See Dispatch & Shipment — and remember the invoice, not the challan, is what moves stock.

The one rule that explains everything

The invoice is the single point where finished-goods stock leaves and the ledger posts. A delivery note records what shipped but moves no stock; a sales order tracks fulfilment but touches neither. Keep that in mind and the whole module makes sense.

Where the screens live

INV

Invoices

Tax invoices, proforma, payments, PDFs — the module's home screen.

/sales/invoices
SO

Sales Orders

Confirmed customer orders with a fulfilment-driven next-step engine.

/sales/orders
DN

Deliveries

Dispatch notes against a sales order — documentary, no stock move.

/sales/deliveries
EWB

E-Way Bills

Movement permits filed with the government against an invoice, credit note or challan.

/sales/eway-bills
CN

Credit Notes

Returns, short supply, or post-sale discount — with held-credit balances.

/sales/credit-notes
CUS

Customers

The customer list & 360 view (shared with CRM). GST profile lives here.

/sales/customers
QTE

Quotes

Sits in the Sales branch but is a CRM surface — see the CRM guide.

/sales/quotes

Who can do what

ActionPermission
See the modulecanViewSales
Create / finalise / cancel invoicescanCreateInvoice · canFinaliseInvoice · canCancelInvoice
Record a customer paymentcanRecordPayment
Issue a credit notecanIssueCreditNote
Create / confirm / close sales orderscanManageSalesOrders
Approve a submitted sales order newcanApproveSalesOrder
Plan note

Sales & Invoicing ships in every plan — Lite, Growth and Business all include invoices, orders, deliveries and credit notes. The Quotes surface, though it lives under Sales, is a CRM feature and needs the Growth+ CRM entitlement.

01

Sales Orders

The order that anchors fulfilment — and a smart button that always knows the next step.

A sales order (SO/FY/NNN) is a confirmed commitment to a customer. It carries the lines, a currency, and — crucially — two independent fulfilment axes: how much has been invoiced and how much has been delivered. They move separately.

What the order carries

  • Customer PO number and PO date — their paperwork reference, printed on the order.
  • Delivery method — By Road / Rail / Air / Sea / Courier / Customer pickup / Hand delivery. Need another? Add it from the form and it joins the list for everyone.
  • Payment terms — one shared list across sales orders, purchase orders and vendor bills (Advance, Cash on Delivery, Due on Receipt, Net 7 … Net 60, plus staged terms such as "50% Advance & 50% Prior to Delivery"). A term with a credit period derives the due date and the status chip for you; staged terms name milestones instead, so they carry no derived due date.
  • Credit limit — set per customer. The check runs when the order is confirmed, against unpaid invoices plus open orders, and either warns then allows (the default) or blocks confirmation — your choice under Settings → Credit control.
erp.deetzo.com/#/sales/orders
Sales Orders list with status funnel (Draft, Confirmed, Partially invoiced, Invoiced) and a table of orders showing customer, lines, remaining, total and status
ScreenSales Orders. The status funnel (Draft / Confirmed / Partially invoiced / Invoiced) and per-order rows with remaining vs total, so open backlog is obvious.

Status lifecycle

ORDER STATUS — MOVED BY INVOICES Draft editable Confirmed lines frozen Partially invoiced some billed Fully invoiced all billed Confirm order invoice rest APPROVAL · OPT-IN Pending approval read-only Approved ready to confirm Send for approval Withdraw Approve Confirm order ENDINGS Cancelled · Void draft or confirmed, nothing billed Closed Mark as fulfilled · Short-close Mark as fulfilled DELIVERY — ALONGSIDE, MOVED BY DELIVERY NOTES Not delivered Partially delivered Delivered dispatch dispatch rest
LifecycleConfirming is what makes an order real; after that, only invoices move its status. Draft → Confirm order → Confirmed, then Partially invoiced → Fully invoiced as invoices are finalised. With sales order approval on, a draft goes Send for approval → Pending approval → Approve → Approved → Confirm order; Send back parks it as Rejected (editable, re-send when fixed), and Reopen for edit takes an approved order back to draft. Delivery runs on its own row, moved by delivery notes. Cancel / Void only from draft or confirmed with nothing invoiced or dispatched; otherwise end it with Mark as fulfilled or Short-close.
The approval stage is opt-in new

Pending approval and Approved only exist for a business that switches on Settings → Sales order approval. Leave it off — the default — and an order still goes draft → confirmed in one tap, exactly as before. With it on, submitting parks the order for someone holding canApproveSalesOrder.

Approving and confirming stay separate acts. Approval says the order may go ahead; confirming is what freezes the lines and lets invoices, deliveries and work orders be raised — so an approver can say yes without also committing the numbering and the fulfilment counters.

Rejecting sends the order back rather than ending it: it becomes editable again, carries the reason it was returned, and can be re-submitted. A submission nobody has acted on can be withdrawn, and an approved order reopened for a correction lands back in draft — because an order that changed after approval has not been approved.

From confirmed onward the status is invoice-driven: it advances to partially invoiced / invoiced only as invoices are finalised against it. Delivery is a separate, derived axis (not delivered → partially → delivered) rolled up from dispatches.

Cancelled records a real order the customer called off; void nullifies one that should never have been raised — the number is kept so the series never gaps, but the document counts for nothing. Neither is reachable once anything has been invoiced or dispatched against the order, or while a work order is still building for it; short-close such an order with closed instead. Closed is now reachable straight from confirmed too, so an order that was delivered and settled outside the invoice run stops asking to be billed.

The next-step engine

The SO detail screen shows a single smart CTA that reads the order's state and fulfilment and tells you exactly what to do next:

* "Create work order" only appears when the line is a manufactured item and Manufacturing is on — see the Production Control guide. If the saved production plan finishes after the date on this order, the order names the machine and the day that machine runs past its shift. The banner asks for the invoice before the delivery — the goods travel against the bill. With approval on, a draft's button is Send for approval instead of Confirm order; if anything is still unbilled after dispatch, it comes back to Create invoice.

erp.deetzo.com/#/sales/orders/<id>
Sales order detail with a Next Step banner, line items showing ordered/invoiced/remaining, a fulfilment panel with Invoiced and Dispatched percentages, linked production work orders and an actions list
ScreenSales Order detail. The Next step banner ("Dispatch the goods…"), lines with Ordered / Invoiced / Remaining, a fulfilment panel tracking Invoiced & Dispatched %, linked production work orders, and the full action set (Create invoice / delivery / work order). Note it came From QT-0016 — the CRM quote.
Fulfilment lives on the parent

Once an order is confirmed, its lines are frozen, but per-line counters — invoicedByLine, deliveredByLine, producedByLine — keep updating on the order itself. That's how a partially-invoiced order stays consistent while the line list never changes.

02

Deliveries

Dispatch notes that record what shipped — and deliberately touch no stock.

A delivery order (DN/FY/NNN — "delivery note") records goods sent to a customer against a sales order. Creating one prefills each line to its remaining-to-deliver quantity. Dispatching it rolls those quantities onto the order's delivered counter; Delivered is a final status once the customer confirms receipt.

erp.deetzo.com/#/sales/deliveries
Delivery orders list with KPIs (Total deliveries, To dispatch, Draft, Delivered) and a table of dispatch notes linked to sales orders with transporter, lines, qty and status
ScreenDelivery orders. Dispatch notes (DN) against a sales order, with status Draft → Dispatched → Delivered. Each links back to its SO; transporter/vehicle can be captured for the challan.
Delivery notes do NOT move stock

This is deliberate and important: a delivery note is a document. Dispatching it updates the order's delivered counter but writes no stock ledger entry — the invoice is the single point where finished-goods stock actually leaves. So the order of the two can never double-count stock — though the next-step banner asks for the invoice first, and that is the recommended order.

A blocking pre-dispatch inspection holds the goods new

If a pre-dispatch quality control point applies to what you are shipping, the delivery form says so and will not let you dispatch while that inspection is open. Clear it in Quality first — the whole point of a pre-dispatch gate is that it is raised before the goods go, not after.

Two different "challans"

Don't confuse a customer Delivery Note (DN) here with a job-work Delivery Challan (DC) under Purchases — the DC sends material out to a vendor for subcontract and does move stock (into a per-vendor balance) and carries the manual e-way field. Different document, different side of the business.

03

Invoices

The document that bills the customer, relieves stock, and posts to the books — all at finalise.

An invoice starts as a draft and does nothing until you finalise it. You can raise one from a sales order (prefilled to remaining qty), from an accepted CRM quote, or from scratch for a walk-in.

erp.deetzo.com/#/sales/invoices
Invoices home with KPIs (Outstanding, Overdue, Drafts, Paid) and a table of invoices with source SO/quote, type, status, age, amount and outstanding
ScreenInvoices. KPIs (Outstanding, Overdue, Drafts, Paid) and the register — each row shows its source (from SO/… or from QT-…), type, status, ageing and outstanding. Filter by Tax invoice / Proforma / Challan.

Types & the document lifecycle

Four invoice types: taxInvoice (the GST bill), billOfSupply (the GST document for supplies that carry no tax), proforma (a quote-like pre-bill, no stock/GL), and a deliveryChallan invoice-type (gets a DC number, no COGS/stock). The document walks a lifecycle, with an optional approval step you can switch on in settings:

DOCUMENT STATUS PAYMENT — DERIVED Draft nothing posted Finalised stock out · books Partially paid balance due Paid settled Finalise payment settled Overdue past due, unpaid due date passes Cancelled stock + books undone Cancel invoice (no payments) APPROVAL · OPT-IN In review awaiting approval Approved ready to finalise Submit for review Reject · Withdraw Approve Finalise
LifecycleNothing happens until Finalise; payment and overdue are read off the money, not set by hand. Draft → Finalise → Finalised (number issued, stock out, books posted). With invoice approval on, a draft goes Submit for review → In review → Approve → Approved → Finalise; Reject or Withdraw submission returns it to draft, and Reopen for correction does the same for an approved one. Partially paid / Paid / Overdue follow from receipts, credit notes and the due date. Cancel invoice puts the stock back and reverses the journal — only once no payment or credit note is left on it.

"Sent" and "Overdue" aren't statuses — they're derived (sent = it's been shared; overdue = finalised + unpaid + past due date). Payment is a separate axis: unpaid · partial · paid. When the approval step is on, the approver cannot be the person who submitted the invoice — a separation of duties enforced on the server, not merely hidden in the UI.

Bill of Supply runs its own series

With Settings → GST → Composition scheme on, a new invoice — and an invoice raised from a quote, sales order or delivery — is a Bill of Supply. It charges no GST on top of the rate, takes the next number from Bill of Supply # (not the invoice series), and the PDF prints the composition declaration with no GST columns and no CGST/SGST. A tax-invoice draft already sitting there has Convert to Bill of Supply; finalising it as a tax invoice is refused until you convert it or turn the scheme off. Turning the scheme off does not rewrite documents already issued. While it is on, sales orders and quotes show the ex-tax total. An exempt customer's invoice is a different document: it stays a tax invoice, with no GST, and says the customer is tax-exempt. A Bill of Supply is filed in GSTR-1 as exempted supply, not as a B2B tax invoice.

What finalising actually does

Finalising runs one transaction that:

  1. Assigns the document number (INV/FY/NNN, or BOS/FY/NNN for a Bill of Supply).
  2. Deducts stock for each stocked line — ledger reason invoice (−) — and blocks if there's not enough (unless overselling is allowed).
  3. Rolls the quantities onto the source sales order's invoiced counter, advancing its status.
  4. Records COGS at moving-average cost and posts the journals (§09).

Cancelling a finalised invoice reverses all of it — restock (invoice_cancel +), un-rolls the SO, and reverses the journals. It is refused while the invoice still carries a payment or a credit note: reverse those first.

erp.deetzo.com/#/sales/invoices/<id>
Invoice detail showing a lifecycle stepper (Created, Finalised, Partially paid, Paid), payment received, line items with GST, a totals panel with Taxable, CGST, SGST and grand total, and PDF/email actions
ScreenInvoice detail. The lifecycle stepper, payments received, line items with per-line GST, and the totals panel — here an intra-state sale split into CGST + SGST. Actions: Preview/Print PDF, Send email, WhatsApp, Mark as sent, Record payment, Issue credit note.
04

GST on an invoice

How Deetzo decides CGST + SGST vs IGST — and when tax is zero.

Each line is taxed on its taxable value (qty × rate, less any discount) at the line's GST rate. The only question is which tax heads the GST splits into — and that's decided by the customer's tax profile and where they are:

  • Intra-state (customer's state = your business state) → GST splits into CGST + SGST (half each; odd paise lands in SGST).
  • Inter-state (different state) → the whole GST becomes IGST.
  • Zero-rated treatments (overseas / SEZ / SEZ-developer / deemed-export) always route to IGST — for LUT/bond exports you set the line rate to 0.
  • Exempt customers (tax preference = exempt) are billed with no GST. That invoice is still a tax invoice. A composition dealer issues a Bill of Supply instead (§03).
  • Round-off to the nearest rupee is a setting (Settings → Invoice → "Round invoice totals to the nearest rupee"). When it is on, the rounding is recorded as a separate line and you can override it.
Multi-currency

A USD invoice runs the same GST math in document currency (there's no automatic zeroing) — exports go tax-free via the zero-rated treatment with a 0% line rate. The books always record the INR equivalent at the invoice's exchange rate. Place of supply for the split is read from the customer's state on the invoice snapshot.

Reverse charge is a switch on the customer and on the invoice (Accounting guide). HSN/SAC does not change the tax math — the line's stored rate is what is used — but a tax invoice, including a sale to a consumer, cannot be finalised while a line and its item both lack an HSN or SAC. A Bill of Supply is not blocked for a missing code. A goods line also needs a GST unit (UQC).

05

E-way bills

The government's permit for goods in transit — now filed from inside Deetzo.

Raise an e-way bill against a finalised invoice, a credit note or a delivery challan, and Deetzo files it with the NIC portal through the Fyn gateway, then stores the returned e-way bill number and valid-upto on the record. The register at /sales/eway-bills shows everything you have filed — generated, cancelled, and the ones the portal rejected.

Connect once, then file

Filing needs your NIC portal login, because every business files under its own GSTIN with its own API user. Open E-Way Bills → Settings and connect: Deetzo verifies the credentials against the gateway before storing them, so a login that cannot file is never saved. The password is server-side only — no client can read it back, the owner's included — and the connection status the app displays is written by the server, so nothing can fake a connection.

draft→ generated · cancelled · failed

What you choose when you raise one

  • Source document — invoice · creditNote · deliveryChallan.
  • Supply type — supply · export · skdCkd.
  • Transaction type — regular · billToShipTo · billFromDispatchFrom · combination. This is what decides which extra address blocks the form asks you for.
  • Part B — the vehicle the goods actually travel on. File Part A now and add or update Part B later from the row menu, which is what you want when the transporter is booked after the invoice is raised.
Cancelling runs on the government's clock

NIC allows an e-way bill to be cancelled within 24 hours of generation, and only while it has not been verified in transit. Deetzo asks for the mandatory remark and passes the cancellation on — after that window the bill stands and you deal with it on the portal.

E-way yes, e-invoice not yet

The e-way bill is filed for you. The IRN / e-invoice is still not generated — no signed QR, no Ack No. See §10.

06

Getting paid

Recording receipts, and how outstanding & ageing follow.

Record a payment against a finalised invoice from its detail screen. Each receipt is immutable and raises the invoice's amount paid; the payment status then derives itself — unpaid → partial → paid — and the customer's outstanding and ageing update.

  • Modes: cash · upi · bankTransfer · cheque · card · other.
  • Outstanding = grand total − payments − credit notes. Overpaying a single invoice is rejected.
  • Overdue feeds the customer's aging buckets (Current / 1–30 / 31–60 / 60+) shown on the Customer 360.
  • Foreign-currency receipts capture the rate and book any realised FX gain/loss vs the invoice rate.
One receipt, one invoice

Customer receipts allocate to a single invoice at a time — there's no multi-invoice receipt or on-account advance for customers. A genuine customer advance is modelled instead as a held credit note (§07) that you later apply. (The "Payments Made" screen with multi-bill allocation is the vendor side, under Purchases — don't confuse the two.)

07

Credit notes

The reverse of an invoice — for returns, short supply, or a post-sale discount.

A credit note (CN/FY/NNN) is raised against a finalised tax invoice or Bill of Supply. Against a tax invoice it reverses GST on the same split the invoice used. Against a Bill of Supply it credits the taxable amount only: the PDF uses the bill's columns (no GST % and no GST amount) and the note's line and subtotal show that taxable value, even when the line still stores the item's GST-inclusive total. Choose Goods return to put returnable stock back (ledger reason credit_note +), or Value adjustment for a price difference — custom lines, no stock movement, and a valid HSN/SAC before it can be issued.

erp.deetzo.com/#/sales/credit-notes
Credit notes screen with KPIs (Credit notes, Total credit issued, Open credit, Applied this FY) and a table with number, customer, against-invoice, stock, available, status and amount
ScreenCredit notes. KPIs track total credit issued, open credit (raised but not yet applied), and applied-this-FY — the numbers behind the held-credit model.
  • Capped two ways: you can't credit more of an item than was invoiced, and total credits can't exceed the invoice's grand total.
  • Classic credit reduces the origin invoice's outstanding directly; a held credit note keeps an open balance you can apply to another invoice for the same customer later (this is how customer advances work).
  • Cancelling a credit note (only if none of it has been consumed) reverses the restock (credit_note_cancel −) and the GST.
  • Finalised credit notes flow into the customer statement and reduce outstanding.
08

Document templates & custom fields

Make the printed document look like your company's — and carry the fields your business actually needs.

Every printed document can be redesigned without a developer. Settings → General Settings → Document templates lists the six documents you can style, and opens an editor with a section rail on one side and a live PDF preview on the other, built from sample data so you see the change as you make it.

DocumentPrinted from
InvoiceInvoice detail → Preview / Print PDF
Sales OrderSales order detail
Purchase OrderPurchasing — see the Purchasing guide
Vendor BillPurchasing → Bills
Payment MadePurchasing → Payments
ExpensePurchasing → Expenses (the expense voucher)

What you can change

  • Start from a preset — Classic · Modern · Compact · Spreadsheet — then adjust anything.
  • Page — paper size, orientation, margins, font, colours, watermark.
  • Header & footer — logo, the organisation lines, header style, footer, notes, terms, bank details, signature block.
  • The line table — which columns appear and how wide they are, whether tax heads are banded, which totals rows show, and amount in words.
  • Restore built-in puts everything back.
Doing nothing changes nothing

A tenant that never opens the editor keeps today's design exactly. Each document's fixed renderer only hands over to the template engine when a saved template exists for that document — so this is opt-in, per document.

Custom fields

The same editor — or Settings → Custom Fields — defines extra fields per document: Invoice · Sales Order · Purchase Order · Vendor Bill · Payment Made · Expense, alongside the CRM entities (Lead, Task, Issue, Project). A field you define is captured on the form, saved on the document, and printed under your own label in the place you give it in the template. That is how a vehicle number, a batch reference or a site name gets onto the paperwork without a code change.

Template vs numbering — two different settings

The template decides how a document looks. Document prefixes & numbering (Settings → Invoice) decide what it is called — invoice, sales order, delivery challan and Bill of Supply each run their own consecutive series.

09

The books (GL)

What posts to the ledger, automatically, at each step.

When accounting is set up (a chart of accounts seeded), finalising an invoice, recording a receipt, and issuing a credit note each post a journal automatically:

Invoice finalised

Dr Accounts Receivablegrand total
Cr Salesnet
Cr GST OutputCGST / SGST / IGST
Dr COGS Cr Inventory

Payment received

Dr Bank / Cashamount
Cr Accounts Receivableamount

Credit note finalised

Dr Sales + GST outputreverse
Cr Accounts Receivable
Dr Inventory Cr COGS

Invoice cancelled

Reverses the finalise journal
Restores stock & SO counters

These are Phase-1 postings and only run once a chart of accounts is configured; proforma and delivery-challan invoice-types post no COGS/GL. See the (upcoming) Accounting & Books guide for the ledger itself.

10

Not yet in the module

Being straight about the edges, so you don't go looking for what isn't there.

No e-invoice (IRN)

Deetzo does not generate an IRN / e-invoice — there is no signed QR or Ack No on the document. The invoice PDF is a standard GST tax invoice. If you are above the e-invoicing threshold, generate the IRN on the government portal for now.

Changed in v1.1 — e-way bills ARE here

An earlier edition of this guide said Deetzo could not produce a sales e-way bill. It can, since Aug 2026 — raised against an invoice, credit note or challan and filed with NIC through the Fyn gateway, with Part-B updates and 24-hour cancellation. See §05.

  • Customer advances aren't a first-class "on-account" balance — use a held credit note (§07).
  • Multi-invoice receipts exist for vendors, not customers (§06).
  • GL postings are Phase-1 and require the chart of accounts to be set up.
11

Scenarios — end-to-end playbooks

The common routes through the module.

Order → invoice → deliver → collect happy path

Confirm the sales order. The next-step button lights up.SO: draft → confirmed
Create the invoice from the SO (prefilled to remaining), then finalise — stock leaves, books post.ledger: invoice (−) · SO → invoiced
Create a delivery for the goods and dispatch it (updates the order's delivered %, no stock move).
Record the payment. Status goes to paid; outstanding clears.

Direct invoice (walk-in) no order

New invoice → pick the customer → add lines → finalise. No SO needed.
GST is computed from the customer's state & treatment (CGST+SGST or IGST).

Partial invoicing staggered billing

Invoice some lines / quantities from the SO → it moves to partially invoiced.
Invoice the rest later → SO reaches invoiced; the per-line counters keep it consistent.

Sale return credit note

Open the finalised invoice → Issue credit note → pick items/qty (capped to what was invoiced).
Restock returnable goods and reverse the GST on the same split.ledger: credit_note (+)
Apply or hold the credit — reduce this invoice, or keep an open balance for a future one.

Export invoice zero-rated

Customer treatment = overseas / SEZ / export. GST routes to IGST.
Set line GST rate to 0 (LUT/bond) → tax-free; books record the INR equivalent at the FX rate.
12

Quick reference

The tables to keep open while you learn.

Routes

ScreenRoute
Invoices (home)/sales/invoices
Sales Orders/sales/orders
Deliveries/sales/deliveries
E-Way Bills/sales/eway-bills
Credit Notes/sales/credit-notes
Customers/sales/customers
Quotes (CRM)/sales/quotes

Key states & codes

ConceptValues
Sales-order statusdraft · pendingApproval* · approved* · rejected* · confirmed · partiallyInvoiced · invoiced · closed · cancelled · voided (* only when SO approval is on)
Delivery status (derived)notDelivered · partiallyDelivered · delivered
Delivery-order statusdraft · dispatched · delivered · returned · cancelled
Invoice typetaxInvoice · billOfSupply · proforma · deliveryChallan
Invoice document statusdraft · submitted_for_review · approved · finalised · cancelled
Invoice payment statusunpaid · partial · paid
Payment modescash · upi · bankTransfer · cheque · card · other
Credit-note statusdraft · finalised · cancelled
E-way bill statusdraft · generated · cancelled · failed
E-way source doc / supply typeinvoice · creditNote · deliveryChallan  ·  supply · export · skdCkd
Payment termsAdvance · Cash on Delivery · Due on Receipt · Net 7/15/30/45/60 + staged milestone terms
Templated documentsinvoice · salesOrder · purchaseOrder · vendorBill · payment · expense — presets classic · modern · compact · spreadsheet
Stock reasons (sales)invoice (−) · invoice_cancel (+) · credit_note (+) · credit_note_cancel (−)
The one mental model to keep

The invoice is the pivot. Orders track the promise, deliveries record the shipment, but only the invoice moves stock and posts money. Everything before it is documentary; everything after — payments, credit notes — adjusts what the invoice created.