Purchase Order
A purchase order is a buyer's binding commitment to acquire specified goods or services from a supplier at agreed terms.
Also called PO · Order · Procurement order
Why it exists
Because spending money on behalf of a business needs to be authorised before it happens, not explained afterwards.
What it means to the business
The purchase order is the control point of procurement. It is where budget authority is exercised and where the three-way match — ordered, received, billed — becomes possible at all. Businesses that skip it can still buy things; what they cannot do is prove afterwards that what they paid for is what arrived.
Draft. Being prepared. No commitment.
State 1 of 6
Purchase Order issued to Supplier.
Open SupplierThe control exists to stop unbudgeted spend. Removed, the first thing you lose is the ability to answer who authorised a payment — usually discovered during an audit.
Rules that must hold
- A purchase order commits money; it must therefore pass whatever approval the amount requires before it is sent.
- Received quantity may never silently exceed ordered quantity — over-receipt is a decision, not a default.
- A purchase order is not an invoice and creates no payable on its own.
What commonly goes wrong
Approval workflows fail organisationally rather than technically. They get designed around the org chart instead of around who actually knows whether the spend is right, so approvals become a rubber stamp by someone with no context — and everyone routes around them the first time an urgent order is delayed.
Edge cases
- Over-receipt within tolerance, which is legitimate for bulk commodities and fraud everywhere else.
- Price on the supplier's invoice differing from the order — a three-way match failure that needs a human, not a rule.
- Subcontracting, where materials you own are consumed at someone else's site.
- Services with no receipt event at all, where billing is the only confirmation the work happened.
How ERPNext models it
| DocType | Note |
|---|---|
| Purchase Order | `per_received` and `per_billed` drive status — they are percentages, so partial flows are first-class. |
| Purchase Receipt | The goods event. Moves stock; does not create a payable. |
| Purchase Invoice | The money event. Creates the payable. |
Last reviewed 2026-08-13
Machine-readable versionWe implement this for a living — that’s where the mistakes above come from. See the service or request a discovery briefing