Accounting Workflows by Business Type
The shortest ERPNext workflow is not always the best one. A distributor may need separate order, delivery, invoice, and payment controls. A consultancy may only need an order, invoice, and receipt. A retailer may combine stock, billing, and payment at the counter.
Choose the workflow that matches the milestones your business must approve, fulfil, audit, and report. Documents can be optional in the software while still being necessary for your process.
Choose your required milestones
Before selecting a workflow, answer these questions:
- Do you need to record a Customer or Supplier commitment before billing?
- Does physical stock move?
- Must operations confirm delivery or receipt separately from finance?
- Is billing based on quantity, time, milestones, usage, or a recurring schedule?
- Is payment immediate, in advance, or on credit?
- Do goods pass through your Warehouse, go directly between parties, or not exist as stock?
The following document types represent different milestones:
| Document | Milestone | General Ledger effect |
|---|---|---|
| Quotation | Commercial offer | None |
| Sales Order or Purchase Order | Confirmed commitment | None |
| Delivery Note or Purchase Receipt | Physical fulfilment | Stock entries with perpetual inventory |
| Sales Invoice or Purchase Invoice | Billing and amount due | Yes |
| Payment Entry | Movement and allocation of money | Yes |
Standard goods sale
flowchart LR
Q["Quotation, optional"] --> SO["Sales Order"]
SO --> DN["Delivery Note"]
DN --> SI["Sales Invoice"]
SI --> PE["Payment Entry"]
Best for: wholesale, distribution, equipment sales, and businesses where sales, warehouse, billing, and collection happen at different times.
Benefits: each team confirms its own milestone; partial delivery and partial billing are easy to track; the Sales Order shows delivered and billed percentages; stock and receivables are recorded at the correct stage.
Tradeoffs: more documents must be completed and reconciled. Users must create downstream documents from the order or delivery so the fulfilment chain remains linked.
Configuration: maintain stock Items and Warehouses, enable perpetual inventory if stock movement should post to the General Ledger, set Item income and expense defaults, and configure receivable, tax, and cost-of-goods-sold accounts.
The Sales Order is a commitment and does not normally post to the ledger. The Delivery Note reduces stock and recognizes cost. The Sales Invoice records income, tax, and receivable. Payment clears the outstanding amount.
Use a separate Purchase Order, Purchase Receipt, Purchase Invoice, and payment cycle to replenish inventory.
Direct invoice with stock update
flowchart LR
SI["Sales Invoice with Update Stock"] --> PE["Payment Entry"]
Best for: small stores, simple counter sales, and low-complexity businesses that deliver and bill at the same moment but do not require a full POS workflow.
Benefits: one document records revenue, receivable, inventory reduction, and cost of goods sold. There is no separate Delivery Note to complete.
Tradeoffs: warehouse and finance do not have separate confirmation points. It is less suitable when picking, dispatch, proof of delivery, or partial fulfilment must be controlled independently.
Configuration: maintain stock Items and Warehouses, configure perpetual inventory and Item accounts, then enable Update Stock on the Sales Invoice. If payment is immediate, record it through a Payment Entry or the supported payment fields for the selected invoicing flow.
The invoice affects both the General Ledger and Stock Ledger. A separate Sales Order remains optional. If you create the invoice directly, there is no order whose delivery or billing progress can be tracked. See Sales Invoice with Update Stock for the combined path.
Retail and point-of-sale sale
flowchart LR
POS["POS Invoice"] --> P["Immediate payment"]
POS --> SL["Stock and accounting ledgers"]
Best for: retail stores and counters where the Customer receives goods and pays in the same interaction.
Benefits: Item selection, pricing, taxes, stock update, billing, and payment are combined in a checkout-oriented interface. POS Closing consolidates and reconciles shift activity.
Tradeoffs: it is not designed for long fulfilment cycles, negotiated project billing, or complex credit control. Returns and shift closing need consistent cashier procedures.
Configuration: create a POS Profile, choose the Company, Warehouse, price list, payment methods, taxes, and applicable users. Confirm opening and closing procedures and cash-difference responsibility.
Service or project-based sale
flowchart LR
Q["Quotation, optional"] --> SO["Sales Order, optional"]
SO --> SI["Sales Invoice by milestone, time, or quantity"]
SI --> PE["Payment Entry"]
Best for: consulting, agencies, implementation partners, maintenance providers, and project businesses that do not deliver stocked goods.
Benefits: avoids unnecessary stock documents. A Sales Order can hold the commercial scope and track billing progress. Projects, Tasks, and Timesheets can collect delivery effort and cost.
Tradeoffs: progress depends on disciplined milestone, time, or quantity updates. A Sales Invoice proves billing, not acceptance of work, unless your process captures approval separately.
Configuration: create non-stock service Items, income and expense accounts, payment terms, and Projects where profitability is required. Use Timesheet-based billing when invoices are based on approved hours.
For milestone billing, use one service Item with a quantity such as 1.000. Invoice 0.250, 0.500, and 0.250 across three invoices to represent 25%, 50%, and 25% of the engagement. Keep the rate equal to the full contract value. ERPNext uses the decimal quantities to track the billed portion of the Sales Order.
A Delivery Note is normally unnecessary for a non-stock service. Creating the Sales Invoice directly is valid, but it will not update a Sales Order's billing progress if no order is linked.
Recurring service or subscription
flowchart LR
S["Subscription or recurring source"] --> SI["Recurring Sales Invoices"]
SI --> PE["Payment and reconciliation"]
SI --> DR["Deferred revenue recognition, when configured"]
Best for: software subscriptions, retainers, memberships, support plans, rentals, and other periodic services.
Benefits: automates regular invoice creation and can separate billing from revenue recognition. Payment terms, reminders, and receivable reports support collection.
Tradeoffs: plan dates, cancellations, upgrades, proration, failed payments, and tax changes need clear operating rules. Automatic invoice creation does not guarantee collection.
Configuration: set up Subscriptions, plans, Customer defaults, taxes, due dates, and recurring processing. Configure deferred revenue when income must be recognized over the service period rather than entirely on the invoice date.
Drop-shipped sale
flowchart LR
SO["Sales Order with Supplier delivers to Customer"] --> PO["Purchase Order to Supplier"]
SO --> SI["Sales Invoice to Customer"]
PO --> PI["Purchase Invoice from Supplier"]
Best for: distributors and online sellers whose Supplier sends goods directly to the Customer.
Benefits: avoids receiving and dispatching the goods through your Warehouse. Sales and purchase documents remain connected, making margin and Supplier fulfilment easier to trace.
Tradeoffs: you have less physical control over stock, packing, delivery timing, and proof of delivery. Supplier and Customer addresses and communication must be accurate. The normal Warehouse stock ledger does not represent the goods because your company does not receive them.
Configuration: mark applicable Items as supplied by a Supplier, set the default Supplier where useful, select Supplier delivers to Customer on the Sales Order item, and create the Purchase Order from that Sales Order. Follow the Drop Ship workflow so the documents remain linked.
The Sales Invoice records Customer revenue and receivable. The Purchase Invoice records Supplier cost and payable. The Sales Order and Purchase Order are commitments, not ledger postings.
Make-to-order manufacturing
flowchart LR
SO["Sales Order"] --> WO["Work Order"]
WO --> SE["Stock Entries for manufacture"]
SO --> DN["Delivery Note"]
DN --> SI["Sales Invoice"]
SI --> PE["Payment Entry"]
Best for: manufacturers that produce finished goods against confirmed demand.
Benefits: connects demand, material planning, production, finished-goods stock, delivery, billing, and profitability. Manufacturing stock entries carry component value into the finished Item.
Tradeoffs: Bills of Materials, Warehouses, Work Orders, valuation, scrap, and work-in-progress practices must be maintained accurately. Backdated stock entries can trigger valuation reposting.
Configuration: set up stock Items, Warehouses, Bills of Materials, Workstations, operations, and manufacturing defaults. Use Request for Raw Materials from a Sales Order or production planning where needed.
The Sales Order creates demand but no accounting entry. Manufacturing Stock Entries affect inventory value. Delivery records cost of goods sold, and the invoice records income and receivable.
Purchase-led service and expense workflow
flowchart LR
PO["Purchase Order, optional"] --> PI["Purchase Invoice"]
PI --> PE["Payment Entry"]
Best for: professional services, rent, utilities, software, and other purchases without a physical receipt into stock.
Benefits: avoids a Purchase Receipt that adds no operational value. The Purchase Order can still provide budget or approval control before the Supplier invoice arrives.
Tradeoffs: there is no separate goods-received confirmation. The team needs another way to verify that the service was accepted before invoice approval.
Configuration: use non-stock Items or appropriate expense accounts, Supplier payment terms, taxes, Cost Centers, Projects, and approval workflows. A Purchase Invoice records expense or asset value and the Supplier payable.
Multi-company and intercompany workflow
flowchart LR
A["Company A sales document"] <--> B["Company B purchase document"]
A --> LA["Company A ledger"]
B --> LB["Company B ledger"]
Best for: groups with separate legal entities that trade with each other.
Benefits: each entity keeps an independent, balanced audit trail while linked documents reduce duplicate entry. Consolidated statements can provide a group view.
Tradeoffs: Companies, internal Customers and Suppliers, prices, taxes, currencies, and due-to or due-from accounts must be aligned. Consolidation is not a substitute for any elimination or statutory process required by your accounting policy.
Configuration: mark the relevant parties as internal, map them to Companies, configure intercompany accounts, and use Inter Company Invoices or intercompany Journal Entries. Test both sides before using automation in production.
Decide which documents are optional
Do not ask only whether ERPNext permits a document to be skipped. Ask what control disappears if you skip it.
| If you skip | You no longer have |
|---|---|
| Quotation | A versioned offer before Customer commitment |
| Sales Order | A central record of committed quantity, delivery, and billing progress |
| Delivery Note | Separate warehouse confirmation and proof of stock delivery |
| Purchase Order | Pre-purchase commitment, authorization, and ordered-versus-billed tracking |
| Purchase Receipt | Separate receiving confirmation and received-not-billed accrual |
Creating a downstream document directly can be correct for a short workflow. It does not update an omitted or unlinked upstream document. If an order exists, create its delivery, receipt, or invoice from that order so ERPNext updates the related percentages and status.
Implementation recommendation
Start with one primary workflow per business line. Document its required fields, approvals, handoffs, returns, and exceptions. Then test:
- full and partial fulfilment;
- advance, partial, and combined payments;
- returns and credit notes;
- tax and currency differences;
- cancellation and amendment;
- month-end reconciliation and reporting.
Only introduce a shorter alternate workflow when users can clearly identify when it applies. Review How Transactions Affect the Ledger before approving the accounting result.