DDeetzo Academy ◀ All module guides
Deetzo ERP · Purchasing & Procurement · Training Guide

Purchasing — request to pay

The buy side, end to end: requisition, purchase order, goods receipt, vendor bill, and payment — with GST input credit, TDS, and returns handled the Indian way. The mirror of the Sales guide.

Version 1.2 Reviewed against production code India GST · TDS · MSME Audience Purchase · Stores · Accounts
01Requisition
→
02Purchase Order
→
03Receive (GRN)
→
04Bill
→
05Pay
00

The big picture

Procure to pay — request, order, receive, bill, settle.

Purchasing is the buy-side mirror of Sales. A need becomes a requisition, which sources a purchase order, against which you receive goods (the step that moves stock and costs inventory), record the supplier's bill, and finally pay — with debit notes for returns and expenses for spend outside the PO flow.

OPTIONAL SOURCING RFQ invite suppliers Compare quotes cheapest first Requisition draft · SO/WO/you Approve someone signs off Purchase order starts as draft Submit → Approve PO approved Goods receipt GRN · stock in Vendor bill billed ≤ received Payment made bank · cash · TDS QC hold until inspected Books (general ledger) each step posts its own journal Raise PO Submit Create GRN Convert Pay Send RFQ quotes Convert to PO blocking stock in you owe you paid
FlowNothing is bought until someone approves the requisition, and nothing is paid beyond what was received. The solid path is the everyday route: approve the requisition, Raise PO, Submit for Approval, then Create GRN when the goods arrive. The dashed detour is optional: send an RFQ, save each supplier’s quote, and Convert to PO from the comparison. If an item has a blocking incoming quality check, the received quantity waits in QC hold until the inspection is submitted. The bill can only claim what has been received, and the receipt, the bill and the payment each post to the books on their own.
The mirror of Sales

Where the invoice is the single stock-out point on the sell side, the GRN (goods receipt) is the single stock-in point on the buy side — it's where quantity and weighted-average cost land. The PO promises; the bill records what's owed; the payment clears it.

Where the screens live

PO

Purchase Orders

The buy orders — approval routing, receipt progress, billing.

/purchases
PR

Requisitions

Internal material requests → RFQ → quote comparison → PO.

/purchases/requisitions
BILL

Vendor Bills

Supplier invoices, ITC, 3-way match, TDS & MSME.

/purchases/bills
PAY

Payments Made

Settle bills — multi-bill allocation, advances, TDS.

/purchases/payments
DN

Debit Notes

Purchase returns against a bill, with restock.

/purchases/debit-notes
EXP

Expenses

Spend outside a PO — categories, RCM, re-billable.

/purchases/expenses
SUP

Suppliers

Vendors, GST profile, payables, MSME, quality score.

/purchases/suppliers
DC

Delivery Challans

Job-work material sent out (this DOES move stock).

/purchases/delivery-challans

Who can do what

ActionPermission
See the modulecanViewPurchases
Create / edit POs, requisitions, challanscanManagePurchases
Record goods receipts (GRN)canReceiveGoods (or any of the purchase / bill rights)
Approve / reject POs, approve requisitionscanApprovePurchase
Vendor bills & debit notescanManageBills
Record supplier paymentscanRecordPayment

Purchasing ships in every plan tier (Lite / Growth / Business); only staff permissions or a suspended workspace gate it. Owner/Admin/Manager get the full purchasing set by default; Staff get none.

01

Requisitions & RFQ

Ask before you buy — and shop the ask around before you commit.

A purchase requisition (PR/FY/NNN) is an internal request for materials — often auto-raised from a shortage on a sales order or work order. It carries lines with target/estimated rates but no committed price until you source it.

erp.deetzo.com/#/purchases/requisitions
Purchase requisitions list with KPIs (open, drafts, converted to PO, total value) and a table of PRs linked to work orders and sales orders with status
ScreenPurchase Requisitions. KPIs (open / drafts / converted / total value) and rows linked to the work order or sales order that generated the need — with the RFQ status funnel.

Requisition lifecycle (with RFQ)

Draft editable Approved open · can order Inquiry sent suppliers invited Quotes received compare vendors Closed all lines on order Partly ordered badge · still open Cancelled any open state Approve Send RFQ Save quote Convert to PO Raise PO — every line ordered (no RFQ needed) PO for some lines rest ordered, or Close PO cancelled → quantity freed, reopens Cancel
LifecycleA requisition stays open until every line is on order, then it shows Closed. Only a Draft can be approved, and nothing can be sent to suppliers or ordered until it is. The RFQ route (dashed) is optional: Raise PO goes straight to an order from any open state. Ordering only some lines leaves it open with a Partly ordered badge; order the rest, or use Close — don’t order the rest. Cancelling a PO gives its quantity back and reopens a closed requisition to Approved.

The sourcing path: Approve the requisition → Send RFQ (each invited supplier gets an inquiry seeded with your lines) → Save quote as each price comes in → open Compare (the Vendor comparison screen ranks quotes cheapest first, with the supplier quality score alongside) and press Convert to PO on the winner. When you already know the vendor and the rate, skip all of that: Raise PO on an approved requisition goes straight to a draft PO. A PO can’t be raised from an unapproved requisition, and there is no "rejected" requisition: one that isn’t wanted is cancelled.

  • Closed, not "converted" — the requisition shows Closed only once every line’s quantity is on order. A PO that buys part of it records what it bought per line, and the detail screen shows "N still to order".
  • Merge into one PO — tick several requisitions on the list and use the bulk bar. If the items have different preferred suppliers, a split screen proposes one draft PO per supplier (Save N draft purchase orders), or Merge into one PO instead.
  • Second approver (optional) — turn on Settings ▸ Purchases ▸ "Requisitions need a second approver" and whoever raised a requisition can’t approve it; the Approve button stays visible but disabled, saying why. The owner is always exempt. Approving needs the approve purchases permission either way.
One-click from demand

"Raise PR for shortages" on a work order or BOM (see the Production Control guide) creates a requisition pre-filled with the true shortfall — closing the loop from a stalled job straight into sourcing.

02

Purchase Orders

The commitment to a supplier — with real approval routing and a receipt-driven status.

A PO commits to buy specific items at agreed prices. It walks an approval workflow (single-shot or multi-step routing by amount), then becomes receivable. Saving a purchase order refuses a line whose HSN or SAC is not a valid code.

erp.deetzo.com/#/purchases
Purchase Orders list with KPIs (total POs, this month, overdue, active value) and a table with supplier, status, receipt progress, items, total and approval
ScreenPurchase Orders. KPIs plus the register — status (Draft / Approved / Fully received), a receipt progress bar, and the approval column. Filter by Draft / Submitted / Approved / Partially Rcvd / Fully Rcvd.

PO status lifecycle

Draft editable Submitted awaiting approver Approved can receive Part received more to come Fully received can auto-close Rejected with a reason Cancelled nothing received Vendor bill only what was received Submit for Approval Approve Create GRN Next GRN one GRN receives everything Reject Edit, resubmit Cancel PO · approved needs an approver Convert to bill
LifecycleA PO can be received only once approved, and cancelled only until something is received. A draft or rejected PO is fixed and sent back with Submit for Approval; the approver either Approves or Rejects with a reason. Each GRN moves it to Partially Received or Fully Received (a GRN with No Backorder closes the short remainder). A bill can be converted once goods are received, for no more than was received. Cancelling a draft, submitted or rejected PO needs the manage-purchases permission; cancelling an approved one needs an approver.

Only an approved (or partially-received) PO can be received. Multi-step routing stamps approver steps by total value and notifies each step in turn; the final step flips the PO to approved and records the preferred supplier + last cost on each product. A submitted PO can still be edited while nobody has signed a step.

Cancel is refused once any quantity has been received (return the goods with a debit note instead) or while a live vendor bill points at the PO (cancel the bill first). Cancelling frees the PO’s quantity on its requisition.

erp.deetzo.com/#/purchases · PO detail
Purchase order detail with a progress stepper (Created, Approved, Sent to supplier, Received, Billed), a Record Receipt call to action, line items with ordered/received, supplier card and activity history
ScreenPurchase Order detail. The progress stepper (Created → Approved → Sent → Received → Billed), the "Record Receipt (GRN)" next step, lines with Ordered / Received, the supplier + GSTIN, and the approval activity trail.

A fully-received PO can also be auto-closed (a "Closed" chip) — on the receipt, on the bill, or on both, per Settings ▸ Purchases (off by default). There’s no separate "closed" status value; "Billed" is a chip linking to the bill, not a status.

03

Goods Receipt (GRN)

The single stock-in point — and where cost is averaged.

Recording a GRN against a PO is where the buy side touches inventory. In one transaction it books received quantities, updates weighted-average cost, and can route goods through incoming QC.

  • Partial & close-short — receive some now; "no backorder" cancels the un-received remainder.
  • Weighted-average cost — each priced receipt blends into the product's moving-average costPrice (in base units).
  • Two-phase QC-HOLD — if a blocking incoming control point applies, the accepted qty lands in qcHoldQty (ledger grn_qc_hold), not sellable stock, until the incoming inspection is submitted: the accepted qty is then released to stock (grn_qc_release) and the rejected qty leaves the hold into an NCR — on a pass or a fail. See the Production Control guide.
  • Subcontract consume — components you supplied are drawn from your own stock at receipt (subcontract_consume).
  • Batches & expiry — a batch-tracked item asks which lots the accepted quantity arrived in, and pre-fills the expiry from its shelf life. See the Batch, Lot & Expiry guide.
  • Landed cost — freight, duty and clearing belong on the goods, not in an expense. Capitalise them from the bill's Charges card or allocate a carrier's bill to this receipt: Landed Cost guide.
ReasonWhenΔ
grnNormal receipt into good stock+
grn_qc_holdReceived under a blocking incoming gate (→ QC-HOLD)+*
grn_qc_releaseIncoming inspection submitted → accepted qty released from hold to stock+
subcontract_consumeSupplied component consumed at subcontract receipt−
purchase_returnReceived goods sent back (debit note / PO return)−
04

Vendor Bills

What you owe — with ITC, three-way match, TDS and the MSME clock.

A vendor bill is the supplier's invoice recorded against your books. Create it from a PO (prefilled from received qty) or standalone. The bill number is the supplier's number (dedup-checked per supplier).

A bill can be linked only to an approved, partially received or fully received PO. The bill can’t claim more of an item than has been received less what earlier bills already claimed — two bills for the same delivery are refused rather than paid twice.

erp.deetzo.com/#/purchases/bills
Vendor bills list with KPIs (total bills, open, payable, overdue) and a table with supplier, due date, PO link, outstanding, total, ITC status and status
ScreenVendor Bills. KPIs (open / payable / overdue) and rows showing the linked PO, outstanding, and the ITC status chip (ITC eligible / Reverse charge) — plus TDS bills and a Recurring badge.

Status & the soft gates

open→ partially_paid→ paid · cancelled

Alongside the pay status run three orthogonal flags:

  • ITC status — eligible · ineligible · reverseCharge · pending. Ineligible input tax folds into cost (Purchases) instead of being claimed.
  • Approval — an optional bill-approval gate blocks payment while pending.
  • 3-way match — PO ordered vs GRN received vs bill; surfaces over-billing and price drift (self-heals if the GRN lands late).

TDS u/s 194Q (default 0.1% over a ₹50,00,000 supplier threshold) is pre-filled per bill; the MSME 45-day rule flags overdue micro/small-enterprise bills. Outstanding = grand total − paid − TDS − debited.

05

Paying suppliers

Settle many bills at once, carry advances, and deduct TDS.

A payment (PAY/FY/NNN) settles one or more vendor bills in a single record. Unlike customer receipts (one invoice each), a supplier payment supports multi-bill allocation.

  • Modes: bankTransfer · upi · cash · cheque · other.
  • Allocation — split the payment across bills; each allocation can carry its own TDS (default section 194Q).
  • Advances — pay a supplier more than the allocated bills and the surplus becomes a supplier advance (advanceBalance) to consume against future bills.
  • Cancelled / already-paid / pending-approval bills are refused as allocation targets.
Two payment worlds

This "Payments Made" screen is the vendor side. Customer receipts live on the invoice detail (Sales guide) and settle a single invoice at a time. Don't mix them up.

06

Returns & debit notes

Sending goods back, on the books.

A debit note (DN/FY/NNN) records a purchase return against an open or partially-paid bill. Finalising it is immutable. Choose Goods return to send stock back, or Value adjustment for a price difference — custom lines, no stock movement, and a valid HSN/SAC before it can be issued.

  • Restock — returnable stocked items are deducted from your stock (ledger purchase_return −); if the bill links a PO, the PO line's returned qty is bumped so a later PO return can't double-count.
  • Reduces outstanding — the returned value lowers the bill's outstanding (or is held as vendor credit to apply to other bills).
  • The 194Q accumulator is decremented so TDS stays accurate.

Under GST the legal purchase return is the supplier's own credit note; this debit note is your buyer-side record and doesn't flow to your GSTR-1.

07

Expenses

Spend that doesn't go through a PO.

An expense (EXP/FY/NNN) captures single-line spend — rent, utilities, travel, professional fees — outside the PO/bill flow.

  • Categories (rent, utilities, travel, office-supplies, professional-fees, marketing, repairs, misc), each with a default SAC and GST rate.
  • Reverse charge (RCM) — when the supplier's GST treatment implies it, the expense self-assesses tax (both input and output legs).
  • Paid-through account (bank / cash), tax-inclusive option, and place-of-supply for the CGST/SGST vs IGST split.
  • Billable — mark an expense re-billable to a customer and it can be pulled into their invoice.
08

Suppliers

The vendor master — GST, payables, MSME, and an incoming-quality score.

erp.deetzo.com/#/purchases/suppliers
Suppliers list with KPIs (total suppliers, with balance, total payable, MSME registered) and a table with GSTIN, payment terms and payable balance
ScreenSuppliers. Each vendor's GSTIN, payment terms, MSME flag and payable balance — the balance is derived from bills + opening balance, never from PO totals.
  • GST treatment (registered regular/composition, unregistered, consumer, overseas, SEZ, deemed-export) — unregistered/composition default to reverse charge.
  • Ledger fields — advanceBalance (maintained by payments), opening balance, payment terms, MSME registration (drives the 45-day rule).
  • Supplier ledger merges PO payments, bill payments, TDS and finalised debit notes chronologically.
  • Quality scorecard — the incoming first-pass-yield + open NCRs + top defect (from GRN inspections) surfaces on the supplier profile, the RFQ comparison, and the PO supplier picker (see Production Control).
09

Job-work challans

Sending material out to a subcontractor — and this one does move stock.

A delivery challan (DC) sends material out to a vendor for job work. Unlike a customer delivery note (Sales, documentary), a job-work challan moves stock into a per-vendor balance and carries the e-way bill number.

draft→ issued→ closed · cancelled
ReasonWhenΔ
job_work_outMaterial sent out for job work (from shelf)−
job_work_moveWIP material relocated (already off-shelf)0
job_work_received / job_work_producedInward — same item back, or a made item+
job_work_lossWritten off at the vendor0
job_work_returnIssued challan cancelled, stock back+

Vendor-held stock is tracked per products/{id}/vendorStock/{vendorId}. Job-work receipt can gate on an incoming inspection.

10

The books (GL)

What posts to the ledger on the buy side.

With a chart of accounts set up, purchasing events auto-post journals (shadow, deterministic). In plain words: when goods arrive, the GRN adds their value to stock and parks the same amount in Goods Received Not Invoiced — "we have it, the supplier hasn’t billed us yet". The bill then clears that parking account and raises the real payable, and the payment clears the payable. A bill waiting for approval posts nothing until it is approved.

Goods received (GRN)

Dr Inventory Assetvalue received
Cr Goods Received Not Invoicedsame

Vendor bill posted

Dr Goods Received Not Invoicedgoods portion
Dr Inventory Assetcapitalised charges
Dr Purchasesrest
Dr GST Inputif ITC-eligible
Cr Accounts Payabletotal − TDS
Cr TDS Payableif deducted on the bill

Payment made

Dr Accounts Payableapplied + TDS
Cr Bank / Cashcash
Cr TDS Payabletds

Expense

Dr Expense + GST Input
Cr Bank / Cash
RCM adds Cr GST Output (self-assessed)

Debit note (return)

Dr Accounts Payable
Cr Inventory / Purchases / GST Input

See the (upcoming) Accounting & Books guide for the ledger itself.

11

Quick reference

The tables to keep open while you learn.

Routes

ScreenRoute
Purchase Orders/purchases
Requisitions/purchases/requisitions
Vendor Bills/purchases/bills
Payments Made/purchases/payments
Debit Notes/purchases/debit-notes
Expenses/purchases/expenses
Suppliers/purchases/suppliers
Delivery Challans/purchases/delivery-challans

Key states & codes

ConceptValues
Purchase-order statusdraft · submitted · approved · rejected · cancelled · partially_received · fully_received
Requisition statusDraft · Approved · Inquiry sent · Quotes received · Closed · Cancelled (plus a "Partly ordered" badge)
Vendor-bill statusopen · partially_paid · paid · cancelled
ITC statuseligible · ineligible · reverseCharge · pending
Debit-note statusdraft · finalised
Challan statusdraft · issued · closed · cancelled
Payment modesbankTransfer · upi · cash · cheque · other
Stock reasons (buy)grn (+) · grn_qc_hold (+) · grn_qc_release (+) · subcontract_consume (−) · purchase_return (−) · job_work_*
The one mental model to keep

The GRN is the pivot. The requisition asks, the PO commits, the bill records the debt, the payment clears it — but only the goods receipt moves stock and sets cost. Everything else is paperwork around that one physical event.