Understanding Stock Transaction Types
Every time inventory moves in AccuArk, a stock transaction is recorded in the inventory_stock_transactions table. Each transaction captures what happened, when, where, by whom, and how much stock was affected. This article explains every transaction type the system creates.
Transaction Type Reference
The following table lists all stock transaction types, their effect on inventory, and what triggers them:
| Transaction Type | Stock Effect | Triggered By |
|---|---|---|
| Purchase | Positive (adds stock) | Receiving items on a Purchase Order. Each received line item creates a Purchase transaction at the PO's location and zone. |
| PurchaseOrderReturn | Negative (removes stock) | Returning items on a Purchase Order. When you click the return button on a received PO line and enter a return quantity, stock is reversed and a negative transaction is logged. |
| Move | Paired positive and negative | Transferring stock between locations or zones via the Stock Move form. Two transactions are created atomically: one negative at the source location/zone and one positive at the destination. |
| Adjustment | Positive, negative, or zero | Manual stock adjustments. Direction depends on the reason code: Increase (+) adds stock, Decrease (-) removes stock, No Change (N) records a cost-only correction with zero quantity. |
| Void | Reversal of original | Voiding a previous adjustment or stock move. The void transaction creates the opposite effect of the original to restore stock to its pre-transaction state. |
| Sale | Negative (removes stock) | Completing a sale at the Point of Sale. Each sold line item creates a Sale transaction that deducts stock from the selling location. For Virtual Kits, individual component items are deducted. |
| Return | Positive (adds stock) | Processing a customer return at the Point of Sale. The returned quantity is added back to inventory at the return location. |
| ReturnCanceled | Negative (removes stock) | Cancelling a previously processed customer return. Reverses the stock that was added back during the original return. |
| Refund | Varies | Processing a refund at the Point of Sale. May or may not affect stock depending on whether the items are being physically returned. |
| AssemblyBuild | Paired: components negative, assembly positive | Building assembly items via the Assembly Build form. Component items are deducted from stock and the finished assembly quantity is added to stock. |
| AssemblyBreak | Paired: assembly negative, components positive | Disassembling a built assembly. The reverse of AssemblyBuild: assembly stock is removed and component items are returned to stock. |
| Service | Zero or informational | Service-type items recorded for tracking purposes. Service items do not track physical stock so this is primarily for audit logging. |
| Other | Varies | Miscellaneous transactions that do not fit other categories. Used by system processes or custom integrations. |
Fields Recorded on Every Transaction
Each stock transaction record captures a comprehensive set of data for audit and reporting:
| Field | Description |
|---|---|
| Transaction ID | Unique auto-generated identifier for this transaction |
| Item ID | The inventory item affected |
| Transaction Type | One of the types listed above |
| Linked Transaction ID | Reference to a related transaction (e.g., the PO ID for Purchase transactions, the original transaction ID for Void transactions) |
| Quantity | The number of units affected. Positive for stock additions, negative for stock removals. |
| Cost at Time | The item cost at the time of the transaction, preserving historical cost data |
| Price at Time | The item price at the time of the transaction |
| Date/Time | The exact timestamp when the transaction was recorded |
| Location | The primary location where the transaction occurred |
| From Location | For moves: the source location |
| To Location | For moves: the destination location |
| From Zone | For moves: the source zone within the source location |
| To Zone | For moves: the destination zone within the destination location |
| User | The user who performed or triggered the transaction |
| Reference | Optional reference number (PO number, adjustment reference, etc.) |
| Notes | Free-text notes added by the user |
| Vendor | For purchase-related transactions: the vendor on the PO |
| Bill | For purchase-related transactions: the linked accounts payable bill |
| Void Flag | Whether this transaction has been voided |
How Transactions Link Together
Many transactions reference related records through the Linked Transaction ID field:
- Purchase and PurchaseOrderReturn transactions link to the Purchase Order ID, allowing you to trace any stock addition or return back to the original order
- Move transactions are created in pairs. Each pair shares a reference, and the from/to location and zone fields identify which is the source and which is the destination
- Void transactions link back to the original transaction they reversed, creating a clear audit chain
- Sale and Return transactions link to the POS transaction or invoice that generated them
- AssemblyBuild and AssemblyBreak create multiple linked transactions: one for the finished assembly and one for each component consumed or returned
Transaction Immutability
Stock transactions in AccuArk are immutable once saved. They cannot be edited or deleted. If a transaction was made in error, the correct approach is to void it, which creates a new reversing transaction rather than modifying the original. This design ensures a complete and tamper-proof audit trail.
Tips
- Use the Linked Transaction ID to trace a transaction back to its source document (PO, sale, adjustment)
- Cost at Time is valuable for historical reporting because it captures what the cost was when the transaction occurred, even if the item cost has changed since then
- Void transactions always come in pairs — the original marked as voided, plus a new reversing transaction. Both remain visible in the history for full transparency
- Move transactions always come in pairs — look for matching references to see both sides of a transfer