Procure to Pay
The purchasing document chain from purchase order to vendor payment โ the three-way match, GRNI, the GL effect of each step, and how Norma automates it.
Procure-to-pay (P2P) is the vendor-facing process โ how a company buys goods or services from a supplier and pays for them. It is the mirror of order-to-cash, and it controls three things a business cannot afford to get wrong: purchasing discipline, inventory accuracy, and cash flow. Like the sales flow it is a chain of documents created in a fixed order, each recording who is involved, what is bought, how much, and the effect on inventory and accounting. Understanding the flow means knowing which document comes next and what each one does; answering a question about the process is an explanation, never a document creation.
The document chain
The chain runs from a request for a price, through a firm commitment to buy, to the physical receipt of goods, the vendor’s bill, and the payment that settles it.
flowchart TD
REQ([Purchase Request]) -->|sourced| PQ[Purchase Quotation]
PQ -->|vendor selected| PO[Purchase Order]
PO -->|goods arrive| GRPO[Goods Receipt PO]
GRPO -->|vendor invoices| API[A/P Invoice]
API -->|payment due| OP[Outgoing Payment]
OP -->|matched| BR[Bank Reconciliation]
style REQ fill:#f0f0f0,stroke:#999
style PQ fill:#ede9fe,stroke:#7c3aed
style PO fill:#ede9fe,stroke:#7c3aed
style GRPO fill:#dcfce7,stroke:#16a34a
style API fill:#fef9c3,stroke:#ca8a04
style OP fill:#fef9c3,stroke:#ca8a04
style BR fill:#f0f0f0,stroke:#999The purchase request and the purchase quotation are optional sourcing steps. The purchase order is the commitment; the goods receipt PO (GRPO) is where inventory moves; the A/P invoice records the liability; and the outgoing payment settles it and feeds bank reconciliation.
What each document does
As in the sales flow, the crucial fact is when inventory and accounting move. Inventory increases at the goods receipt โ not at the invoice โ and a temporary liability account bridges the two.
| Document | Inventory effect | Accounting effect | Required? |
|---|---|---|---|
| Purchase Request | None | None | No |
| Purchase Quotation | None | None | No |
| Purchase Order | None | None | Yes (as commitment) |
| Goods Receipt PO | Increases stock | Debit Inventory / Credit GRNI | Yes |
| A/P Invoice | None (GRPO already posted) | Debit GRNI / Credit Vendor | Yes |
| Outgoing Payment | None | Debit Vendor / Credit Bank | Yes |
| Bank Reconciliation | None | Matches bank statement to payment | Yes |
GRNI โ Goods Received Not Invoiced โ is a temporary liability account that holds the value of received-but-not-yet-billed stock. It is opened by the goods receipt and cleared by the A/P invoice. A GRNI balance that never clears is a classic sign of a receipt that was never matched to a vendor bill.
The three-way match
Best-practice purchasing does not pay a vendor on the strength of an invoice alone. It matches three independent facts first: what was agreed, what arrived, and what is being charged. Only when all three agree is the invoice cleared for payment.
flowchart TD
PO["Purchase Order โ what we agreed to buy"]
GRPO["Goods Receipt PO โ what actually arrived"]
API["A/P Invoice โ what the vendor is charging"]
PO --> MATCH{Three-Way Match}
GRPO --> MATCH
API --> MATCH
MATCH -->|quantities + prices match| PAY[Approve for Payment]
MATCH -->|discrepancy| HOLD[Hold โ investigate]In SAP Business One the match is built automatically by the reference chain: the
A/P invoice is based on the GRPO, which is based on the PO. Following the base-
document references (BaseType / BaseEntry / BaseLine) reconstructs the whole
match, so the discipline is enforced by how the documents are copied forward, not
by a separate reconciliation step.
Each document in detail
Purchase Request. An internal request to buy something. It has no external effect and may trigger an approval before a purchase order is raised.
Purchase Quotation. A request for a price from one or more vendors. It reserves no stock and posts nothing; its job is to let a buyer compare offers before committing.
Purchase Order. The legal commitment to the vendor. It moves no stock and posts nothing, but it shows as an open purchase order in stock and MRP reports โ a demand signal that says “this stock is coming.” Skipping the PO removes that signal and the ability to match later.
Goods Receipt PO. The physical receipt of goods. It increases stock immediately and posts debit Inventory, credit GRNI โ accruing the liability before the bill has arrived. The warehouse on each line decides where the stock lands. It normally references the originating PO, and partial receipts are allowed.
A/P Invoice. The vendor’s bill and the company’s obligation to pay. It does not change stock โ the GRPO already did that. It posts debit GRNI (clearing the accrual), debit VAT Recoverable, credit Accounts Payable. If no GRPO exists it falls back to debiting Expense or Inventory directly. An A/P Credit Memo reverses an A/P invoice.
Outgoing Payment. The disbursement to the vendor. It posts debit Accounts Payable, credit Bank, and can settle one or several open invoices by cheque, bank transfer, or card.
The journal entries
The GRNI account is what makes purchasing accounting work across the timing gap between receiving goods and receiving the bill. The three postings for a โฌ1,000 purchase at 17% VAT show it opening and closing.
Step 1 โ Goods Receipt PO (goods arrive, not yet invoiced):
DR Inventory 1,000
CR Goods Received Not Invoiced 1,000Step 2 โ A/P Invoice (vendor invoice arrives):
DR Goods Received Not Invoiced 1,000
DR VAT Recoverable 170
CR Accounts Payable (vendor) 1,170Step 3 โ Outgoing Payment:
DR Accounts Payable (vendor) 1,170
CR Bank Account 1,170Between step 1 and step 2 the company holds stock it has not been billed for, and the GRNI balance is exactly that value. Step 2 moves the liability from GRNI (an accrual) to Accounts Payable (a real, dated debt); step 3 turns that debt into cash out.
Common mistakes in this flow
Each of these breaks either the three-way match or the inventory-to-ledger reconciliation, and each leaves a signature a report can find.
| Mistake | Consequence |
|---|---|
| Creating an A/P Invoice without a GRPO | Three-way match broken; inventory not updated |
| Receiving into the wrong warehouse | Stock in the wrong location; picking fails |
| Paying the vendor before the GRPO is matched | Paying for goods not confirmed as received |
| Not using Purchase Orders at all | No commitment tracking, no MRP feed, no match |
| PO quantity โ GRPO quantity | A discrepancy needing manual adjustment |
How Norma automates the flow
Norma splits purchasing work the same way it splits sales work โ reading is free, writing is gated.
Reading the flow. Norma answers purchasing and payables questions with
read-only connector tools: list_purchase_orders, get_purchase_order,
list_grpos, get_grpo, list_ap_invoices, and get_ap_invoice retrieve the
documents and their status. Payables health comes from get_ap_aging (how overdue
the vendor balances are), get_credit_exposure, get_cash_flow_forecast,
get_stock_coverage, and get_unhedged_demand. These tools only read the Service
Layer, so they carry no review gate.
Advancing the flow. Raising a purchasing document is a write, and every write is
gated. Norma drafts a create_purchase_order (and, as the write backlog lands, the
matching receipt, invoice, and corrective purchase_return / ap_credit_memo
documents) and posts it to the connector, which targets the Service Layer create
path /b1s/v1/<Docs> โ for example /b1s/v1/PurchaseOrders. Nothing reaches SAP
until a human reviews and approves the draft. When Norma copies a document forward,
it sets the base-document references so the PO โ GRPO โ A/P-invoice chain is intact
and the three-way match reconstructs itself โ exactly the discipline that stops a
company paying for goods it never received.