Goods Receipt (GRN)
Record what actually arrived against a purchase order, with batch, expiry and serial numbers where the product needs them.
Overview
A goods receipt (GRN) creates a real Inventory receipt: stock on hand, batches, serials and valuation increase, and the Inventory / GRNI journal is posted in company currency. The order’s received quantity and status update at the same time.
Stock items need a warehouse. The default receiving warehouse can be set in Purchasing preferences.
When to use goods receipt (grn)
- Goods or services have arrived (fully or partly) against an approved purchase order.
Prerequisites
Step by step
Procurement → Receiving → Goods Receipts → New, then choose the purchase order.
Screenshot for this step has not been captured yet — run npm run docs:flow.
Screenshot for this step has not been captured yet — run npm run docs:flow.
Field reference
| Field | Description | Required | Data type | Business meaning |
|---|---|---|---|---|
| Qty Receiving Now | Quantity that arrived. | Yes | Number | Cannot exceed the outstanding quantity plus tolerance. |
| Rejected | Quantity refused on arrival. | No | Number | Not put into stock. |
| Batch # | Lot number. | For batch-tracked products | Text | Creates or tops up the stock batch. |
| Expiry | Best-before date. | For expiry-tracked products | Date | Must be after the manufacture date; feeds the Expiring Batches report. |
| Serial numbers | One per unit, separated by commas or spaces. | For serial-tracked products | Text | Each serial is unique company-wide. |
Accounting impact
- Debit Inventory, credit GRNI at the PO price (net of discount) × the PO exchange rate.
Permissions
These permission keys control access (granted to roles in Administration → Roles & Permissions):
- purchase.grn.read
- purchase.grn.create
Automation
- Emits purchase.receipt.confirmed and emails the buyer.