Appearance
Purchase Order field guide
The Purchase Order (PO) is an approved commitment to buy goods or services. It is not a receipt, supplier invoice, or payment. OSERP uses the PO to control budget, quantity, price, delivery, tax, quality, landed cost, and three-way matching.
Header fields
Open Purchasing → Workspace → New Order.
| Field | Example | Purpose and impact |
|---|---|---|
| PO number | PO-2026-004281 | Immutable commitment key |
| Company | Demo Retail Group LLC | Legal purchasing scope |
| Branch | DXB-MAIN | Responsibility and tax location |
| Supplier | NovaBio GmbH | Payable and supplier statement |
| Supplier reference | NB-Q-88210 | External traceability |
| Order date | 2026-09-17 | Commitment and audit date |
| Required date | 2026-10-02 | Planning and SLA |
| Currency | USD | Supplier price and FX |
| Exchange rate | 3.6725 | Functional value |
| Buyer | Aisha Khan | Ownership and approval |
| Warehouse | DXB-COLD | Receiving destination |
| Incoterm | CIP Dubai | Freight, risk, and customs |
| Payment term | Net 30 | Due date and cash forecast |
| Tax treatment | Import / standard | Tax and landed-cost rules |
| Status | Draft / approved | Commitment gate |
Header also stores quotation, contract, project/WBS, budget, freight method, carrier, quality requirement, supplier contact, notes, attachments, and approval route. Supplier, company, currency, and external reference must be validated before lines are added.
Detail fields
| Field | Example | Purpose and impact |
|---|---|---|
| Line number | 10 | Stable detail reference |
| Item/service | MED-INS-100 | Product or service identity |
| Description | Insulin Pen 5-pack | Printed line text |
| Ordered quantity | 500 | Supplier commitment |
| Purchase UoM | CARTON | Quantity interpretation |
| Base quantity | 2,500 PACK | Inventory conversion |
| Unit price | USD 42.00 | Commercial value |
| Discount | 2% | Cost and approval |
| Tax code | IMPORT | Tax calculation |
| Promised date | 2026-10-02 | Delivery planning |
| Warehouse/bin | DXB-COLD / A-03 | Put-away proposal |
| Batch expected | Yes | Receipt traceability |
| Quality status | Quarantine | Release control |
| Cost centre | Procurement | Spend reporting |
| Project/WBS | HOSP-2026 | Budget and margin |
Line totals should show gross, discount, net, tax, freight allocation, landed cost estimate, received, invoiced, and open quantities. A partial receipt leaves the open quantity visible.
Supplier and budget controls
Before approval, OSERP validates supplier active status, tax and bank records, blocked status, duplicate PO, price validity, budget availability, required date, item status, and permission. If the PO is AED 600,000 against a restricted grant, fund and programme dimensions are mandatory.
Commitment reporting shows approved budget, prior commitments, current PO, receipts, invoices, actual cost, and remaining forecast. Cancelling a PO releases its unreceived commitment with reason and approval. Editing price or quantity after approval creates an amendment version.
Currency, tax, and landed cost
Store supplier currency, transaction rate, rate date/source, functional value, tax code, freight, insurance, duty, brokerage, and other charges. A 500-carton PO at USD 42 is USD 21,000; at 3.6725, functional value is AED 77,122.50 before other charges.
Landed-cost allocation records component, amount, basis (quantity, weight, value), item/batch, and approval. The final cost flows to inventory or expense according to item policy. Do not change the original PO rate to compensate for payment-date FX.
Approval and amendments
Approval may depend on amount, category, fund, project, supplier risk, discount, or currency. The event records reviewer, decision, timestamp, comment, and PO version. A rejected PO returns to draft with reason.
An amendment records old/new value, reason, initiator, impact on budget and supplier commitment, and approval. A material change may require re-quotation. Posted receipts and invoices remain linked to the prior version.
Receipt and quality linkage
The goods receipt references PO, supplier, warehouse, delivery note, date, receiver, carrier, and status. Lines record ordered, received, accepted, rejected, damaged, batch/serial, expiry, certificate, bin, and discrepancy. Receiving 480 against 500 creates shortage/open quantity; 20 damaged cartons create claim evidence.
Receipt posting debits inventory, expense, or GRNI and credits receipt accrual. Quality release is a separate event. A quarantined batch cannot be allocated to a sale. Supplier claims reference receipt, photos, quantity, and resolution.
Three-way match and payment
Invoice matching compares PO quantity/price, receipt quantity/quality, and supplier invoice amount/tax. A price or quantity variance shows tolerance, value, owner, reason, and approval. It cannot be hidden by changing the receipt.
Once approved, the invoice credits payable and clears GRNI or accrual. Payment proposal uses due date, bank verification, currency, discount, withholding, and cash availability. Failed payments retain bank reason and retry state.
API mapping and practice
Use immutable PO ID, company, supplier, warehouse, currency, external reference, lines, and idempotency key. Include source quotation or contract and explicit tax/dimension objects. A timeout retry uses the same key; duplicate creation is not acceptable.
json
{"companyId":"company_uae","supplierId":"supplier_novabio","warehouseId":"warehouse_dxb",
"currency":"USD","exchangeRate":"3.6725","externalReference":"NB-Q-88210",
"lines":[{"itemId":"item_med_ins_100","quantity":"500","uom":"CARTON","unitPrice":"42.00","taxCode":"IMPORT"}]}Practice: create a budget-controlled USD PO, approve a discount exception, receive a shortage and damaged batch, allocate landed cost, match an invoice with a variance, amend the delivery date, pay the supplier, and reconcile commitment to GL. Explain every header/detail field, format, owner, status, permission, tax, FX, stock, journal, API ID, and audit event.
Related: Procure to pay, Inventory field guide, Journal Entry field guide, Advanced GL Mapping, and API cookbook.
Purchase-to-pay implementation worksheet
During configuration, have procurement, warehouse, finance, tax, and the budget owner sign the same example. For Demo Retail Group LLC, use a USD import PO for 500 cartons of a batch-managed item and capture the result at each boundary.
| Boundary | Fields that must be evidenced | Expected result |
|---|---|---|
| Supplier master | Legal name, tax, bank, currency, risk, blocked state | Supplier is active and payable-safe |
| Requisition | Requester, need date, item/service, quantity, budget, project | Demand is approved before commitment |
| PO header | Company, branch, supplier, currency, Incoterm, warehouse, terms | Correct legal and logistics defaults |
| PO lines | UoM, conversion, price, tax, batch, promised date | Quantity and value are reproducible |
| Approval | Threshold, reviewer, decision, version, comment | Segregation and exception evidence |
| Receipt | Delivery note, actual quantity, batch, quality, bin | Stock/GRNI reflects physical receipt |
| Landed cost | Freight, duty, insurance, basis, batch allocation | Inventory cost is explainable |
| Invoice | Supplier reference, tax, rate, three-way result | AP liability is valid |
| Payment | Bank, due date, withholding, reference, allocation | Supplier statement clears |
| Close | Open quantity, commitment, GRNI, AP, FX, GL | No unowned balance remains |
Three-way-match decision matrix
The match engine should display the comparison, not only a pass/fail badge. A quantity shortage with an accepted partial receipt may pass within policy; a price variance may require buyer approval; an invoice for a rejected batch must block regardless of tolerance.
| Condition | Example | Default decision | Required action |
|---|---|---|---|
| PO = receipt = invoice | 500 / 500 / 500 | Pass | Post AP and clear GRNI |
| Receipt below PO | 480 received / 500 ordered | Pass partial | Keep 20 open or cancel with reason |
| Invoice above receipt | 500 invoiced / 480 accepted | Block | Correct invoice or approve exception |
| Price within tolerance | USD 42.00 vs USD 42.20 | Warn/pass by policy | Record tolerance and owner |
| Price above tolerance | USD 42.00 vs USD 46.00 | Block | Amend PO or approve variance |
| Quality rejected | 480 received, 100 rejected | Block rejected quantity | Claim, replace, or disposition |
| Tax mismatch | PO import, invoice domestic VAT | Block | Correct tax evidence and code |
| Duplicate invoice | Same supplier number and date | Block | Resolve duplicate before posting |
| Closed period | Invoice posting date locked | Block | Use permitted date or reopen authority |
Landed-cost walkthrough
For 500 cartons at USD 42, goods value is USD 21,000. Add freight USD 1,200, insurance USD 180, duty AED 7,900, and brokerage AED 1,100. At USD/AED 3.6725, freight plus insurance is AED 5,066.70 and goods value is AED 77,122.50. Total landed cost before brokerage is AED 90,089.20; including brokerage it is AED 91,189.20. The allocation record must state whether each component is allocated by value, weight, quantity, or a mixed policy, and which lots receive it.
Do not put duty into the supplier unit price merely to make the item cost look complete. The PO price remains the commercial price; landed-cost documents explain additional cost and their posting accounts. If tax is recoverable, keep it separate from inventory cost. If freight is expensed by policy, do not capitalise it. The same numerical total can be wrong if the component policy is wrong.
Amendments, cancellations, and closure
An approved PO is a commitment. An amendment to price, quantity, currency, supplier, warehouse, or required date must show old value, new value, reason, initiator, budget effect, receipt effect, and approval route. If receipts exist, the amendment must not retroactively change received history. Cancelling an unreceived line releases commitment and records the supplier communication. Closing a line with open quantity requires a cancellation reason; otherwise the commitment remains misleading.
Refusal and replay tests
Test a duplicate supplier reference, inactive supplier, missing tax code, missing project on a restricted fund, over-capacity warehouse, expired batch, receipt above open quantity, invoice above accepted quantity, changed payload with an existing idempotency key, and payment to an unverified bank account. Each refusal must be atomic: no partial stock, commitment, or journal should remain. Save request ID, response, user, timestamp, and audit event for the handover pack.