Purchase
Void a Purchase Without Losing the Audit Trail
Purchase void is a whole-document reversal. Posnic keeps the purchase, records who voided it and why, reverses received tracked stock, and removes the cancelled document from purchase input credit.
- Menu path
- Purchase -> Purchases -> open purchase -> More -> Void
- Verified from
- Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
frontend/static/script/js/modules/js/receiving_add.js renderPurchaseDoc voidPurchase voidConfirm, api/src/controllers/receivings.controller.js void, api/src/models/receiving.model.js voidReceiving, api/src/routes/receivings.routes.js POST /:id/void
Choose Void Only for a Whole-Document Error
| Situation | Correct action | Reason |
|---|---|---|
| The entire purchase should never have been recorded | Void | Reverses the whole document while retaining evidence. |
| Some received goods are being sent back | Return items | Preserves valid purchase lines and records only returned quantities. |
| The supplier will not deliver an outstanding balance | Cancel remaining | Closes the undelivered balance without reversing stock already received. |
| A description, date or other editable field is wrong | Edit after checking consequences | A whole stock reversal is disproportionate to a paperwork correction. |
| A duplicate purchase exists | Verify both documents, then void only the duplicate | The valid purchase must remain as supplier and stock evidence. |
Prepare Evidence Before Voiding
- Stop any receiving, supplier return or stock-count work involving the same purchase.
- Open Purchase -> Purchases and select the document from the list.
- Confirm purchase number, supplier, branch, bill date, status, items, quantities, tax and total.
- For a received or partially received purchase, record the current available quantity of every tracked item.
- Download or print the purchase when shop policy requires a pre-void copy.
- Obtain manager or owner approval and write a precise business reason before opening Void.
- Check that no supplier return has already corrected the same quantities.
Permission and Status Boundaries
| Boundary | Current behavior | Operator implication |
|---|---|---|
| Permission | The API requires Purchase / Receiving Delete access. | Read or Write access alone cannot void a purchase. |
| Reason | Both browser and API reject a blank reason. | Use a specific explanation such as duplicate supplier invoice number, not a vague word such as mistake. |
| Already cancelled | The server rejects another void. | Do not attempt to repeat or recreate the reversal. |
| Received or Partial | Only quantities actually received are reversed from tracked stock. | Compare cumulative received quantities, not merely ordered quantities. |
| Open order | No stock entered, so void is bookkeeping only. | The record is cancelled without an inventory movement. |
| After void | The cancelled purchase cannot be received or edited. | Treat it as a closed audit record. |
Void the Confirmed Purchase
- Open More on the verified purchase and select Void.
- Read the warning in the red confirmation strip and verify its purchase number matches the document.
- Enter the approved reason in Reason (required). The interface accepts up to 200 characters.
- Recheck the reason for supplier invoice number, duplicate reference or other identifying detail.
- Select Void purchase once. Do not double-click or repeat after a slow response.
- Wait for Posnic to report Purchase voided - stock reversed, record kept.
- If you are uncertain at any point, select Cancel; it closes the strip without changing the purchase.
Understand Exactly What Changes
| Record | Current implementation | What to verify |
|---|---|---|
| Purchase document | The document remains and status becomes Cancelled. | Find the same purchase number in the Cancelled filter. |
| Audit fields | Posnic stores voided by, user ID, void time and the trimmed reason. | Open the document and confirm the visible void notice and reason. |
| Tracked inventory | Available quantity falls by the quantity actually received on each valid item line. | Compare item quantities before and after. |
| Stock ledger | A Void Purchase / Void entry is always written for each reversed tracked line. | Match reference, opening balance, negative count and closing balance. |
| Untracked items | No available-quantity or stock-log movement is made. | Use the retained purchase and physical count as evidence. |
| Purchase tax | Cancelled purchases are excluded from Tax Payable input-credit aggregation. | Re-run the relevant purchase and tax period reports. |
| Supplier history | The purchase remains part of the supplier's documentary history as cancelled. | Confirm it is not silently missing or still treated as active. |
Reconcile Immediately After Void
- Filter Purchases to Cancelled and reopen the same purchase number.
- Confirm status, void reason, voided by and void time are present and correct.
- For each tracked item, confirm available quantity decreased by the cumulative quantity that purchase had received.
- Open Inventory Logs and find Void Purchase entries carrying the purchase reference.
- Confirm each log's opening balance, negative count and closing balance agree mathematically.
- Review Purchase Reports, supplier history and Tax Payable for the affected date range.
- Attach the approval and retained purchase copy to the supplier or accounting record required by shop policy.
Do Not Repair a Wrong Void Blindly
The current implementation has no unvoid action. A replacement purchase may be appropriate only after stock, supplier balance and tax have been reconciled and a manager has documented the correction.
- Do not edit the cancelled document; the server intentionally blocks it.
- Do not use Stock Adjustment alone to make the quantity look correct while leaving supplier and tax records wrong.
- Do not create a replacement purchase until you know whether the original stock reversal completed for every tracked line.
- Record the cancelled purchase number in the replacement purchase note or external approval trail.
- Reconcile the replacement purchase and the cancelled original together in inventory, supplier and tax reports.
Troubleshooting and Controls
| Problem | Likely cause | Controlled response |
|---|---|---|
| Void is missing | User lacks Purchase Delete access or the action menu is not open on the intended document. | Review the employee permission matrix; do not share an administrator login. |
| Reason is rejected | The field is blank or whitespace. | Enter a concrete business reason and retry once. |
| Purchase still looks active | Request failed or the list has stale data. | Refresh once, filter by purchase number and verify status before another action. |
| Stock did not reverse | Item is untracked, item reference is invalid, or a line never entered stock. | Compare item tracking and received quantity with the stock log before correcting anything. |
| Stock became negative | Current stock was lower than the received quantity being reversed. | Freeze movement for that item and reconcile subsequent sales, transfers, returns and counts with a manager. |
| Tax report still includes it | Wrong report period, stale report, or cancellation was not completed. | Confirm Cancelled status, refresh the exact bill period and escalate with purchase number and screenshots. |
| Void was selected on the wrong purchase | Document identity was not checked before confirmation. | Preserve all evidence and complete a manager-led stock, supplier and tax reconciliation before replacement entry. |