Purchase Orders & Goods Receipt (GRN)
Master the complete Procure-to-Pay (P2P) lifecycle in Katixo. Convert stock shortages into supplier purchase orders, perform inbound physical inspections with Goods Receipt Notes (GRN), capture batches and expiry dates, assign warehouse racks, and verify supplier invoices with 3-way matching.
1. Module Overview: The Procure-to-Pay (P2P) Pipeline
In wholesale distribution, retail chains, and manufacturing enterprises, procurement controls the business's largest cash outflows and guarantees inventory availability. In Katixo ERP, purchasing is organized into three tightly-governed operational stages:
Purchase Order (PO)
Commercial contract sent to the supplier specifying agreed items, quantities, negotiated rates, and delivery due dates.
Goods Receipt Note (GRN)
Physical inspection at warehouse unloading. Captures supplier batches, expiry dates, rack locations, and updates stock balances.
3-Way Match & Bill
Audits PO prices vs GRN accepted quantities vs Supplier Bill before booking liability in Accounts Payable (AP 2000).
2. How to Create a Purchase Order (Step-by-Step)
- 1Go to Procurement > Purchase Orders > Click "New Purchase Order":Select the supplier from your contact directory. Katixo automatically fetches the supplier's GSTIN, state code, and default payment terms (e.g. Net 30, Net 45).
- 2Select Receiving Warehouse & Expected Date:Choose the destination warehouse or branch where goods should be delivered. Set the expected delivery date for supplier lead time tracking.
- 3Add Item Lines & Negotiated Purchase Rates:Search items by name, SKU, or barcode. Enter ordered quantities and unit purchase rates. The system verifies HSN codes and applies the correct GST percentage automatically.
- 4Approval Routing (Governance):If your organization has configured multi-level approval workflows (e.g., POs over ₹50,000 require Manager approval), clicking Submit moves the PO to PENDING_APPROVAL. Once approved, the PO enters APPROVED.
- 5Issue to Supplier:Click "Issue PO" to generate the legal PO document. Send it to the vendor with one click via WhatsApp or PDF email. Status updates to ISSUED.
3. Physical Inbound Receiving: The Goods Receipt Note (GRN)
When the supplier's truck arrives at the warehouse loading bay, warehouse staff create a Goods Receipt Note (GRN) to inspect incoming goods:
Staff enter Received Quantity, Accepted Quantity, and Rejected Quantity. Damaged or near-expiry packs are immediately flagged and set aside.
For batch-tracked items (pharma, FMCG, packaged foods), staff input the manufacturer Batch Number, Manufacturing Date (MFG), and Expiry Date (EXP).
Assign warehouse rack coordinates (e.g. Rack B-02, Shelf 3) so pickers can instantly locate items during order dispatch.
- Creates active stock balances in
stock_batch_balanceandstock_balance. - Opens a new FIFO cost lot (
cost_lot) with the landed unit cost for FIFO valuation. - Recalculates the item's weighted average purchase cost.
- Updates the PO's received quantity counter; transitions PO to PARTIALLY_RECEIVED or RECEIVED.
4. 3-Way Matching & Purchase Bill Conversion
Before paying the supplier, Katixo's 3-Way Matching Engine cross-audits the three critical documents:
| Audit Leg | Source Document | Validation Rule | Anti-Fraud Protection |
|---|---|---|---|
| Quantity Match | GRN Received Quantity | Billed Qty ≤ Inspected & Accepted Qty | Prevents paying for damaged or short shipments |
| Price Match | Purchase Order Rate | Supplier Invoice Rate == Agreed PO Rate | Flags unapproved price hikes or unauthorized surcharges |
| Tax Rate Match | Item Master HSN | GST Rate == Statutory HSN Rate (5%, 12%, 18%) | Guarantees eligible Input Tax Credit (ITC) under GSTR-2B |
5. Complete Lifecycle & Status Transitions
| PO Status | Meaning | Inventory State | Next Step |
|---|---|---|---|
| DRAFT | PO being drafted by purchase officer. | No stock change | Submit for approval or issue |
| PENDING_APPROVAL | Value exceeds threshold; awaiting manager approval. | No stock change | Manager Approve or Reject |
| ISSUED | Sent to supplier; shipment in transit. | Inbound pipeline expected | Create GRN when goods arrive |
| PARTIALLY_RECEIVED | Partial shipment received at warehouse. | Partial batches received into stock | Receive remaining shipment |
| RECEIVED | Full order received and inspected. | All stock active in warehouse & FIFO lots | Convert to Purchase Bill (AP) |
Developer & API Integration Reference
JWT Bearer RequiredProgrammatically create POs, trigger stock receipts, or query 3-way match status via REST:
/api/v1/purchase-orders/api/v1/purchase-orders/api/v1/purchase-orders/{id}/approve/api/v1/stock-receipts/api/v1/stock-receipts/{id}/receive/api/v1/three-way-match/{poId}# Receive stock with batches and rack assignment via cURL
curl -X POST https://api.katixo.com/api/v1/stock-receipts/c8a1b2-1111/receive \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"itemId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"batchNumber": "BN-2026-X9",
"expiryDate": "2028-06-30",
"receivedQuantity": 100,
"rackLocationId": "r1a2b3-9999"
}
]
}'