Purchase Orders
Create, approve, and send purchase orders to suppliers.
Purchase Orders#
A Purchase Order (PO) is the commercial document you send to a supplier to commit them to delivering specific items at specific prices by specific dates. Once approved and sent, it is the binding reference for delivery, invoicing, and dispute resolution.
Overview#
Every PO has:
- A supplier (approved) and their contact
- Header terms: payment terms, delivery terms, remarks
- Billing and shipping addresses (picked from the supplier's or your own addresses)
- One or more line items — item, UOM, qty, rate, tax, required-by date
- Optional link to one or more Purchase Requisition lines that seeded the PO
- Two independent statuses: lifecycle (approval) and receipt (fulfillment)
POs go through the approval workflow — Draft → Pending → Approved → (Sent) → (Cancelled) — before any GRN can be posted against them.
Typical workflow#
- Create a draft PO — either from scratch or by pulling lines from an approved PR
- Review rates, taxes, and required-by dates
- Submit for approval
- Approver reviews and approves
- (Optional) Mark as Sent once you have emailed or handed over the PO to the supplier
- As material arrives, post Goods Receipts against the PO
- Receipt status moves Not Received → Partially Received → Fully Received
- Handle returns via Purchase Returns if needed
- If the balance will never arrive, Short Close the remaining lines
Creating a purchase order#
- Navigate to Purchase › Purchase Orders
- Click + New PO
- Pick the Supplier
- Add lines — either with + Add Line (new line from scratch) or Add from PR (pulls from approved PR lines)
- Fill in the header fields (payment terms, delivery terms, billing/shipping)
- Click Save → lands in
Draft
Header fields#
| Field | Required | Notes |
|---|---|---|
| Supplier | Yes | Searchable picker — only approved suppliers |
| Supplier Contact | No | Loaded from the supplier's contacts |
| Billing Address | No | Defaults from supplier or your own |
| Shipping Address | No | Where you want the goods delivered |
| Payment Terms | No | From your configured payment terms |
| Delivery Terms | No | Free text (e.g., "FOB origin", "Door delivery") |
| Remarks | No | Free text |
Line items#
| Field | Required | Notes |
|---|---|---|
| Item | Yes | Searchable picker; must be approved |
| UOM | Yes | Pick from the item's purchase UOMs |
| Quantity | Yes | Positive |
| Rate | Yes | Unit price in your base currency. Pre-filled from item's standard cost if set. |
| Tax Rate | No | Looked up from the item's tax code; editable override |
| Tax Amount | — | Calculated |
| Total Amount | — | Calculated |
| Expected Delivery Date | No | Per line |
| Line Remarks | No | Free text |
Unlike sales orders, tax on a PO is per-header — a single delivery location applies to the whole PO and drives place-of-supply for every line. See Tax determination.
Pulling from a purchase requisition#
Click Add from PR to open a picker:
- (Optional) Filter by supplier
- The dialog lists PR lines with remaining quantity (previously consumed by other POs is subtracted)
- Multi-select the lines you want
- Neriyam copies item, UOM, qty, and estimated rate into the PO; your new PO line carries a back-reference to the PR line
Once on the PO, you can edit the rate to reflect your actual negotiated price (the PR only had an estimate).
Tax calculation#
Each line looks up its tax rate from the tax code on the item. A single place-of-supply for the whole PO determines whether the tax is intra-state (CGST + SGST) or inter-state (IGST). You can override the rate on an individual line if you have a specific contractual rate.
Set the Is Reverse Charge flag at the header if the purchase is under RCM.
Statuses#
Purchase orders use the dual-status model.
Lifecycle status (approval)#
| Code | Label |
|---|---|
D | Draft |
P | Pending Approval |
A | Approved |
SN | Sent |
R | Rejected |
CN | Cancelled |
Receipt status (fulfillment)#
| Code | Label |
|---|---|
NR | Not Received |
PR | Partially Received |
FR | Fully Received |
SC | Short Closed |
Receipt status moves automatically as you post GRNs against the PO.
Workflow actions#
| Action | From lifecycle | Permission |
|---|---|---|
| Submit for Approval | Draft, Rejected | PURCHASE.MANAGE_PURCHASE_ORDER |
| Approve | Pending | PURCHASE.APPROVE_PURCHASE_ORDER |
| Reject | Pending | PURCHASE.APPROVE_PURCHASE_ORDER |
| Recall to Draft | Pending | PURCHASE.MANAGE_PURCHASE_ORDER |
| Mark as Sent | Approved | PURCHASE.SEND_PURCHASE_ORDER |
| Cancel | Approved, Sent (not Fully Received) | PURCHASE.MANAGE_PURCHASE_ORDER |
| Short Close All | Approved, Sent with some pending qty | PURCHASE.MANAGE_PURCHASE_ORDER |
| Short Close Line | Per-line, where pending qty > 0 | PURCHASE.MANAGE_PURCHASE_ORDER |
| Delete | Draft, Rejected | PURCHASE.MANAGE_PURCHASE_ORDER |
| View PDF | Any | PURCHASE.VIEW_PURCHASE_ORDER |
Cancel vs. Short Close All vs. Short Close Line#
- Cancel voids the entire PO (lifecycle →
CN) and releases the PR back for other POs. Use when you scrap the order before delivery or when the supplier cannot fulfill. - Short Close All keeps everything delivered so far but voids all remaining pending qty across every line. Use when the supplier has completed what they can and you are closing the book.
- Short Close Line targets one line. Useful when one item is cancelled but other lines on the same PO continue.
Each short-close action requires a reason. The reason shows up on the PO detail page as a banner.
Mark as Sent#
Separate from approval. Use when the PO has been formally communicated to the supplier (email, WhatsApp, printed and handed over). Lifecycle moves A → SN and Neriyam records sentBy and sentAt.
This keeps the "approved internally" state distinct from "committed externally" — so the purchase manager can see which approved POs still need to go out.
PO detail page — tabs#
Details#
Read-only card display with:
- Supplier details (name, contact, address, GSTIN)
- Order details (payment terms, delivery terms, remarks)
- Addresses (billing, shipping)
- Tax details (tax type, place of supply, reverse charge)
- Tax summary (component-wise amounts with the grand total)
Line Items#
- Line No., Item, UOM, Qty, Rate, Tax Rate, Tax Amt, Total Amt, Expected Delivery
- Plus fulfillment counters: Received Qty, Returned Qty, Pending Qty, Line Status
- Row actions: Edit (Draft only), Delete (Draft only), Short Close (when pending qty > 0)
- Add Line and Add from PR buttons
Attachments#
Upload quote PDFs, signed POs, correspondence, etc.
List page#
- Search by PO code or supplier
- Filters: Lifecycle Status and Receipt Status (independent)
- Columns: Code/Ref, Supplier, Amount, Lifecycle, Receipt, Created
- Row menu with workflow actions
Find POs awaiting approval#
- Purchase › Purchase Orders
- Lifecycle Status filter: Pending Approval
- Sort by Created ascending
Find POs waiting to be sent#
- Purchase › Purchase Orders
- Lifecycle Status filter: Approved (not yet
SN)
Related#
- Suppliers — create before any PO
- Purchase Requisitions — the optional upstream document
- Goods Receipt — the follow-up when goods arrive
- Purchase Returns — if goods go back
- Tax determination — per-header on POs
- Lifecycle and fulfillment status
Last updated