Transactions — SanadiqCloud

Product version: 1.0.0+1
Last updated: 2026-08-13
Audience: Tenant Owners, Tenant Employees, Regular Users


A. Transaction Ledger Overview

The Transaction Ledger is the immutable record of every stock movement in your organization. Every time stock enters, leaves, or moves between inventories, a transaction is created. This ledger provides a complete audit trail for all inventory activity.

Transactions are append-only — they cannot be modified or deleted. If a mistake is made, you must create a reversing transaction to correct it.

Navigate to Inventory > Transactions to view the ledger.


B. Viewing the Transaction List

The transaction list shows:

Column Description
ID Transaction business identifier
Date Transaction timestamp
Type Receipt, Issue, Adjustment, or Transfer
Product Product name affected
Inventory Inventory where the transaction occurred
Change Quantity change (+ positive, - negative)
Before Stock level before the transaction
After Stock level after the transaction
Reference Link to source document (adjustment ID, transfer ID, etc.)
Performed By User who performed the action

The list is paginated (default 10 per page, max 100).


C. Filtering Transactions

Use the filters above the list to narrow results:

Filter Description
Transaction Type Filter by receipt, issue, adjustment, or transfer
Date Range Start date and end date
Inventory Filter to a specific inventory
Product Filter by product ID
Item Filter by specific inventory item
Reference Type Filter by source (adjustment, transfer, pick_list, bin_transfer, bin_placement, requisition, initial_stock, reversal, …)
Performed By Filter by user who performed the action
Search Free text search across notes and reference numbers

D. Understanding Transaction Types

Type Direction When Created Effect
receipt In Requisition accepted (inbound), or other inbound movements Increases quantity_on_hand
issue Out Stock issued for internal use, fulfillment, or disposal Decreases quantity_on_hand
adjustment Both Stock adjustment approved Increases or decreases from counted vs system
transfer_out Out Transfer shipped Decreases source warehouse on-hand
transfer_in In Transfer received Increases destination warehouse on-hand

Ledger quantity_change is signed: receipts and transfer_in are positive; issues, transfer_out, and item-deletion issues are negative.

Same-pool bin transfer writes a zero-qty row with reference_type bin_transfer (on-hand unchanged; physical_location_id = source bin, destination_physical_location_id = dest bin). Bin placement (assign stock to a bin at item create or later) writes a zero-qty adjustment with reference_type bin_placement. Pick list complete writes issue with reference_type pick_list. Deleting an item that still has quantity writes issue with reference_type item_deletion. Reversal writes a compensating row with reference_type reversal and parent_transaction_id pointing at the original. Empty warehouse/zone/bin create and rename do not write stock ledger rows. Shipped (in_transit) or completed transfers cannot be cancelled; use Reverse transfer (or reverse any transfer ledger row) so both transfer_in and transfer_out are undone and quantities restore.

Each transaction records quantity_before, quantity_change, and quantity_after for complete traceability.


E. Transaction Detail View

Click any transaction row to open the detail view:

  • Transaction ID, Type badge
  • Date and Time
  • Inventory and Warehouse context
  • Performed By with profile snippet

Quantities

Field Description
Product Product name and ID
Quantity Before Stock level before this transaction
Quantity Change The amount (+/-) that changed
Quantity After Stock level after this transaction
Unit Cost Cost per unit at time of transaction
Total Cost Total financial impact (unit cost × absolute quantity change)
Currency Transaction currency

Reference

Field Description
Reference Type Source document type (e.g., adjustment, transfer, pick_list, bin_transfer, requisition)
Reference ID UUID of the source document
Reference Number Business identifier of the source document
Reason Reason for the transaction
Notes Additional notes

Tracking

Field Description
Batch Number Batch identifier
Lot Number Lot identifier
Serial Number Serial number (if applicable)

F. Reading Transaction Lines

Each transaction represents a single stock movement for a single product at a specific inventory. The key fields for analysis:

  • quantity_change — Positive for receipts/increases, negative for issues/decreases
  • quantity_before and quantity_after — Enable precise inventory valuation at any point in time
  • reference_id — Links the transaction to its source document for cross-referencing
  • performed_by — Provides user accountability

The transaction ledger supports external audit requirements by maintaining an unbroken chain of all stock movements.


G. Reversing a Transaction

When a transaction is created in error, you can reverse it:

  1. Open the transaction detail view.
  2. Click Reverse.
  3. Provide a Reason for the reversal.
  4. Confirm.

On reversal:

  • A new transaction is created with the opposite quantity_change value
  • The new transaction's notes reference the original transaction ID
  • The original transaction remains unchanged (immutable ledger principle)
  • The stock levels are adjusted back to their pre-transaction state

Example: If a receipt of +50 units was made in error, the reversal creates an issue of -50 units, restoring the balance.

When to Reverse vs. Adjust

Scenario Action
Wrong product received Reverse the receipt, create a new receipt for the correct product
Quantity was wrong (too many) Create an adjustment to correct the count
Wrong source/destination in transfer Reverse the transfer, create a new transfer
Transaction was duplicated Reverse the duplicate transaction

Reversals maintain the audit trail. Never delete transactions — always reverse them.


Next: Suppliers — Managing supplier records
See also: Adjustments | Transfers | Pick Lists | Requisitions | Stock & Inventory