Glossary & State Reference
One page to look things up: every term you'll meet in the console, the exact states and colours every module uses, and every permission a role can be given — grouped by module.
This is the consolidated reference, not a walkthrough. For step-by-step instructions on any module, follow the links to that module's own page — this page exists so you can jump straight to a definition, a state's meaning, or the permission a role needs, without re-reading a whole chapter.
Glossary
Terms are alphabetical. Where a term is documented in more depth elsewhere, its name links to that page.
- Advocate Association
- A directory of local bar/advocate associations (name, district, state) used to describe or group customers who are advocates. It is a simple standalone list — super_admin-only in today's console — with no relationship fields linking it back onto the customer form itself in this inventory.
- AIR
- All India Reporter Pvt. Ltd. — the legal-publishing company this portal runs. AIR sells law-report subscriptions ("Full Sets") to advocates, libraries, courts and institutions across India. Everything in this console exists to capture, approve, pay for, stock, despatch and account for those subscriptions.
- Allocation
- The act of assigning a received payment (a Payment Voucher) against specific sale orders or a customer's outstanding balance. A voucher moves to Allocated once this happens. In today's console, allocation itself (payment.allocate) is not a button you press — see Payment Vouchers.
- Audit (Closing Stock)
- The final sign-off step of a physical stock count: a different person from whoever created the statement confirms the counted, reconciled figures are correct, moving the statement to Audited. See Closing Stock.
- Available Stock
- The quantity of a product at a location that is free to promise to a new order — calculated as qty_on_hand − qty_reserved. It is a computed figure shown on the Stock on Hand screen, not a stored column.
- Bank Reconciliation
- The process of matching lines on an uploaded bank statement to the payment vouchers they correspond to, so every rupee that reached the bank is accounted for in AIR's own records. Driven from the Bank Reconciliation page via Auto-match, Bifurcate and Close.
- Bifurcation
- Splitting a single lump-sum bank-statement line from a payment gateway (Razorpay or CCAvenue) back out into the individual customer payments it represents, by fetching the gateway's own settlement report and recording each one. See Bank Reconciliation.
- Charge
- An amount billed to a customer outside the normal order flow — for example a bounced-cheque fee. Charges move through Notified → optionally Disputed → Resolved (Levied or Waived). See Discounts, Refunds & Charges.
- Closing Stock
- A periodic physical stock count of a warehouse location, captured as a statement that snapshots expected quantities, records the counted quantities, and reconciles any discrepancy before being audited. See Closing Stock.
- COD
- Cash on Delivery — a despatch paid for in cash at the point of delivery: the carrier (the postman on India Post, otherwise the courier rider) collects payment from the customer and remits it back to AIR. Packages sent this way are flagged is_cod and, once the postman's remittance is confirmed, cod_received. See Packages and COD Lots.
- COD Lot
- A batch of COD packages grouped together for the carrier's single bulk remittance, deposited, cleared and reconciled as one unit rather than package by package. See COD Lots.
- Credit Control
- The overall practice of limiting how much a customer can owe AIR before an order is held for review — enforced through each customer's Credit Limit and, in the sale-order lifecycle, the credit check that HO Approve runs before an order can be approved for despatch. It is also enforced at despatch time: before the nightly job reserves stock for a part, it runs a strictest-first ladder of checks — carrier serviceability, a pending return, unremitted COD packages, full-set and part-level payment, and the credit limit — and holds the move under the first one that fails. See Stock Moves → Why a move is held. The credit request/approval workflow itself (credit.request_approval, credit.approve) runs over the API rather than on a console screen, though an order's credit requests are visible on its detail page — see Sale Orders.
- Credit Limit
- A rupee ceiling set on a customer's record (credit_limit, toggled on with enforce_credit_limit) beyond which new orders are not allowed to proceed without approval. Set on the customer's Sales & Credit form section — see Customers.
- Customer
- A person or institution that buys AIR's subscriptions — an advocate, library, government office, company, etc. Every customer is also a User underneath (for login and contact details), but not every user is a customer: the distinguishing fact is the existence of a row in the customers table. See Customers.
- Customer Scope
- A direct, per-customer access grant to a staff user (customer_scopes: Owns/Manages/Views, with an optional expiry) that overrides the broader geography-based scoping below. Managed today on the individual user's record — see Users.
- Full Set
- AIR's core product: a law-report subscription made up of twelve monthly Parts, delivered one per month across the year. Most of what the Products and Sale Order modules manage is Full Sets and their constituent Parts. See Products.
- Gateway
- An online payment processor AIR accepts money through — currently Razorpay and CCAvenue. Gateway settlements arrive as bank-statement lines that need Bifurcation back into individual customer payments. See Bank Reconciliation and Payment Vouchers.
- Geography Scope
- An access grant that ties a staff user to a branch of the Region tree, so they only see customers and orders within that territory (unless overridden by a Customer Scope). Managed on the individual user's record — see Users and Geography.
- GST
- Goods and Services Tax — India's indirect tax, charged on AIR's invoices according to each customer's registration status. See Accounting.
- GST E-invoice
- An invoice that has been electronically reported to the GST portal and issued an IRN. E-invoices move Draft → Done via Submit, and can be Cancelled within 24 hours of acknowledgement. See Accounting.
- GSTIN
- A customer's or AIR's own GST Identification Number — a 15-character tax-registration number recorded on the customer record (gst_registration_number) and on every GST e-invoice raised for them. See Customers and Accounting.
- HO (Head Office)
- AIR's central office staff — the people who use this console. Field orders captured by Sales Executives flow up to HO for review and approval before stock is committed and despatched. "The HO console" is this application.
- IRN
- Invoice Reference Number — the unique number the government's GST portal returns once an e-invoice is successfully submitted, proving it was legally reported. See Accounting.
- Journal Entry
- A double-entry accounting record — a balanced set of debit and credit lines (they must sum to zero) posted to AIR's ledger. Journal entries in this system are mostly created automatically by other actions (for example approving a PAD that requires posting) rather than typed in by hand. See Accounting.
- Materialized Path
- A technique for storing a tree (here, the Region hierarchy — country → state → district → sub-district → town/village) as a path string plus a depth number on each row, so "give me everything under this region" is a single fast query instead of a recursive one. You won't see it as a form field — it's maintained automatically. See Geography.
- PAD (Post-Approval Discount)
- A discount granted to a customer after their sale order has already been approved — so it needs its own separate approval workflow, rather than being folded into the order itself. Approving one may automatically create and post a Journal Entry. See Discounts, Refunds & Charges.
- Package
- A physical parcel — one sealed box or envelope — containing the items being despatched to a customer, with its own tracking number, carrier and delivery outcome. One or more packages travel together inside a Picking Wave. See Packages.
- Part
- One monthly instalment of a Full Set — twelve Parts make up a year's subscription. See Products.
- Payment Voucher
- The record of a single payment received from a customer — by cash, cheque, DD, NEFT/RTGS/IMPS, a Gateway, COD or wallet. Vouchers move through a ten-state lifecycle from Draft to Cleared (or off to Dishonoured/Cancelled). See Payment Vouchers.
- Picking Wave
- A batch of stock moves grouped together to be picked, packed and despatched as one run — grouped by carrier, stock location and, for hand delivery, delivery route. A wave is the unit despatch staff work in: it holds the moves to pick and the Packages they are packed into, and it walks through its own eight-state lifecycle from Draft to Done. Waves are normally created automatically by the nightly job — see Background Schedulers — and driven by hand from Picking Waves.
- Permission
- A single named capability (for example payment.approve) that a Role can be granted. Permissions are fixed in code by AIR's developers; only roles are created and assigned by administrators. See Roles & Permissions and the Permission reference below.
- Pincode
- An Indian postal (PIN) code record — the office name, district, state, India Post region/circle and which delivery carriers can serve it. Pincodes attach to a Region and to customer addresses and warehouses. See Geography.
- Refund
- Money paid back to a customer, by cheque, NEFT or ledger adjustment. Requests move Draft → Submitted → Approved → Issued (or Rejected). See Discounts, Refunds & Charges.
- Region
- A node in AIR's geographic hierarchy — country, state, district, sub-district or town/village — organised as a tree via Materialized Path. Regions carry government codes, an optional assigned account holder/region user, and group under a Zone. See Geography.
- Reservation
- Setting aside a specific quantity of stock at a location for a specific sale order, so it can't be promised to anyone else. Shown as the qty_reserved figure on Stock on Hand, and as the Reserved state of a Stock Move.
- Reserved Stock
- The quantity of a product at a location currently held back for confirmed orders (qty_reserved) — subtracted from on-hand quantity to give Available Stock. See Stock on Hand.
- Role
- A named bundle of Permissions (for example "Cashier" or "Despatch Supervisor") that an administrator creates and then assigns to users, optionally with an expiry date. A user's effective access is the union of every permission across all of their active roles. See Roles & Permissions.
- Sale Executive (SE)
- A field-based salesperson who visits customers, captures orders and (where permitted) collects payment, via the separate SE mobile field app — not this console. Their captured orders and salesperson assignment do appear in this console's Sale Orders screens.
- Sale Order
- A customer's order for one or more subscriptions, and the central record of AIR's commercial workflow. It carries lines, a customer, a salesperson, and moves through a nine-state lifecycle (draft → lines confirmed → ready for HO → submitted to HO, where payment, credit and discount are settled and HO Approve enforces them → approved for despatch → in despatch → completed, plus suspended and cancelled). See Sale Orders.
- Stock Location
- A specific storage bin or area inside a Warehouse — Internal, Supplier, Customer, Production, Transit, Main Stock, Attached Stock, Loose Stock, Return Stock, Loss, or a View (a grouping location). Stock quantities are always recorded against a location, not just a warehouse. See Warehouses.
- Stock Move
- A single movement of a quantity of product between two stock locations (or into/out of stock), the low-level building block behind reservations, picking, packing, despatch and stock adjustments. There is no standalone screen for browsing stock moves directly in the console today — you see their effects through Picking Waves and Closing Stock.
- Stock on Hand
- The quantity of a product physically present at a stock location right now (qty_on_hand), before subtracting anything reserved. See Stock on Hand.
- Super Administrator
- Any user holding a role literally named
super_admin. Super administrators bypass every permission check and can see and do everything, including the several setup modules (Users, Roles, Geography, Warehouses, Carriers, Customer Categories) that today are only reachable by a super administrator, regardless of any other permission a role might carry. See Roles & Permissions. - Suspend Reason
- The explanation recorded when a sale order or a stock move is moved into a paused/Suspended state, so whoever picks it back up knows why it stopped. For stock moves this is one of nine seeded reasons — eight applied automatically by the nightly reservation job, one pickable by hand. See Stock Moves → Why a move is held, Operational Configuration and Sale Orders.
- Suspense Voucher
- A payment voucher automatically parked in the Suspense state by the bank-reconciliation auto-match process when it finds an ambiguous or duplicate instrument (same cheque/DD number and amount matched more than once). It is not a state you place a voucher into yourself. See Bank Reconciliation and Payment Vouchers.
- User
- The base account record used for logging in and holding contact details (users → user_contacts → profiles). Every person in the system — staff and customers alike — is a User first; whether they are additionally staff or a Customer is decided by which role-specific row (staff or customers) also exists for them. See Users.
- Warehouse
- A physical AIR facility that holds stock — Head Office or a Branch — made up of one or more Stock Locations. See Warehouses.
- Zone
- A broad territorial grouping that sits above the Region tree and can have an assigned user responsible for it — used to organise regions into larger sales/operations areas. See Geography.
State reference
Every colour below matches exactly how the console renders that state's badge. "What usually happens next" describes the normal path forward; a record can also be cancelled or suspended from many of these states — see each module's own page for the full picture and, where one exists, its transition diagram.
SaleOrderState — Sale Orders
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Order captured (SE app/API) and still editable. Not exposed in this console. |
| LinesConfirmed | lines_confirmed | Order lines are locked in. Next, the SE flags it ready for HO. |
| ReadyForHo | ready_for_ho | Queued to go up to HO. No money check has run yet — an unpaid order reaches this state normally. |
| SubmittedToHo | submitted_to_ho | Sitting in the HO review queue. Payment, credit (credit.approve) and discount (discount.approve) are settled here, and HO Approve — which refuses an unsettled order — becomes available. |
| ApprovedForDespatch | approved_for_despatch | HO has approved it. Stock reservation and picking follow. |
| InDespatch | in_despatch | Moving through a picking wave and package toward the customer. |
| Completed | completed | Fully despatched — the order's end state. |
| Suspended | suspended | Paused pending attention; not a console-driven transition. |
| Cancelled | cancelled | Abandoned. Reachable from any state except Completed via Cancel (reason required). |
PaymentVoucherState — Payment Vouchers
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Voucher created, not yet submitted. |
| Submitted | submitted | Submitted; awaiting allocation. |
| Allocated | allocated | Allocated to specific orders/ledger. Approve becomes available. |
| Approved | approved | HO approved the allocation; next it is deposited. |
| Deposited | deposited | Physically banked; awaiting the bank statement to confirm clearance. |
| Cleared | cleared | Bank confirmed the funds cleared — successful end state. |
| OnHold | on_hold | Paused pending investigation; not console-driven. |
| Dishonoured | dishonoured | Cheque/DD bounced. Can still be cancelled from the console. |
| Suspense | suspense | Parked automatically by bank-reconciliation auto-match on an ambiguous match — see Suspense Voucher. |
| Cancelled | cancelled | Voided via Cancel from Draft/Submitted/Dishonoured. |
WaveState — Picking Waves
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Wave created; items not yet identified. |
| ItemsIdentified | items_identified | Items to pick are identified. Print labels becomes available. |
| LabelPrinting | label_printing | Labels are being generated/printed. Complete packing advances it. |
| Packing | packing | Items are being physically packed. Send to branch or Despatch advance it. |
| AtBranch | at_branch | Packed goods reached the despatch branch. Despatch becomes available. |
| Despatched | despatched | Handed to the carrier; cascades its packages and stock moves onward. |
| Done | done | Closed out via Mark done — end state. |
| Cancelled | cancelled | Abandoned; only from Draft/ItemsIdentified. |
PackageState — Packages
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Package shell created; contents still being assembled. |
| Packing | packing | Items being packed into the box. |
| Sealed | sealed | Sealed via Seal, which also computes postage cost. Ready for despatch. |
| Labeled | labeled | Address label printed, recorded via Mark labelled. Optional — a sealed package that skips it still despatches with its wave. |
| Despatched | despatched | Handed to the carrier — directly or via a wave's despatch cascade. Reached from Sealed or Labeled alike. |
| Delivered | delivered | Confirmed delivered via Record delivery. |
| Returned | returned | Came back undelivered, recorded with a return reason. |
| Lost | lost | Lost in transit, recorded via Record delivery. |
| Cancelled | cancelled | Voided outside the normal delivery flow — no console action reaches this state. |
CodLotState — COD Lots
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Lot created elsewhere; no console create action. |
| Submitted | submitted | Packages finalised; awaiting deposit. |
| Deposited | deposited | Cash/cheque banked via Deposit (received amount and bank details recorded). |
| Cleared | cleared | Bank confirmed clearing via Clear. |
| Reconciled | reconciled | Each item matched/settled via Reconcile — flags packages as COD received. |
PadState — Discounts, Refunds & Charges
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Drafted elsewhere; no console create action. |
| PendingApproval | pending_approval | Awaiting HO's Approve or Reject decision. |
| Approved | approved | Approved; if its reason requires it, a journal entry is posted automatically next. |
| Posted | posted | A journal entry has been created and posted for this discount — end state. |
| Cancelled | cancelled | Voided — also reused for a rejected PAD (there is no separate "Rejected" case). |
RefundState — Discounts, Refunds & Charges
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Drafted elsewhere; no console create action. |
| Submitted | submitted | Awaiting HO's Approve or Reject decision. |
| Approved | approved | Cleared for payout. Issue becomes available. |
| Issued | issued | Paid out (cheque or NEFT recorded) — end state. |
| Rejected | rejected | Declined with a reason — end state. |
ChargeState — Discounts, Refunds & Charges
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Recorded but not yet notified; no console create action. |
| Notified | notified | Customer told about it. Can be Resolved or Cancelled, or move to Disputed. |
| Disputed | disputed | Customer has disputed it. Resolve or Cancel apply. |
| Resolved | resolved | HO decided to Levy (collect) or Waive it, with optional notes — end state. |
| Cancelled | cancelled | Voided from Draft/Notified/Disputed. |
JournalEntryState — Accounting
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Created by another service (for example a PAD approval); not yet posted. |
| Posted | posted | Debit/credit balance re-validated and committed via Post — normal end state. |
| Reversed | reversed | Reversed via Reverse: a brand-new, already-Posted entry with swapped debit/credit lines is created and linked back to this one. |
GstEinvoiceState — Accounting
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Drafted by GstEinvoiceService::createDraft(); no console create action. |
| Submitted | submitted | Transient — Submit sends it to the GST portal and, on success, advances it to Done in the same request. |
| Done | done | IRN and acknowledgement recorded — the invoice is legally issued. |
| Cancelled | cancelled | Cancelled via Cancel (reason required); blocked once 24 hours have passed since acknowledgement — issue a credit note instead. |
ClosingStockState — Closing Stock
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Statement exists; counting hasn't started. No console create action. |
| InProgress | in_progress | Start Count has snapshotted stock into countable items; staff record physical counts. |
| Completed | completed | Complete closed the count and created adjustment stock moves for any discrepancies. |
| Audited | audited | A different person has run Audit to sign it off — end state. |
BankStatementStatus — Bank Reconciliation
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Uploaded | uploaded | Statement file received; no console upload action. |
| Parsing | parsing | Lines are being extracted from the file automatically. |
| Parsed | parsed | Lines are ready. Auto-match and Bifurcate become available. |
| Reconciling | reconciling | Matching is under way; Auto-match/Bifurcate/Close remain available. |
| Reconciled | reconciled | Close succeeded once every line was matched or bifurcated — end state. |
| Failed | failed | Parsing failed; no console recovery action documented. |
StockMoveState — see Stock on Hand, Picking Waves & Closing Stock
These states are shown as coloured badges on the Stock Moves list, where you can also suspend, unsuspend or cancel a move. You otherwise meet them indirectly through Picking Waves despatching (which ships every underlying move) and Closing Stock completion (which marks its adjustment moves Done).
| State | Raw value | What it means / what usually happens next |
|---|---|---|
| Draft | draft | Move created but not yet confirmed. |
| Confirmed | confirmed | Confirmed as intended; not yet reserved. |
| Reserved | reserved | Stock earmarked for a specific order — see Reservation. |
| Picked | picked | Physically picked from the shelf. |
| Packed | packed | Picked stock packed into a package. |
| Shipped | shipped | Handed to despatch — set when a wave is despatched, but only once all of the move has actually left. A move split across packages that go out separately keeps its earlier state until the last part ships. |
| Done | done | Fully completed. For a delivery move this is set when the package carrying it is marked delivered; also how closing-stock adjustments finish. |
| Cancelled | cancelled | Abandoned. |
| Suspended | suspended | Paused; the trigger for this is not exposed in the console. |
Permission reference
Every permission that exists in the system, grouped by its module exactly as coded. Use this to work out which permission a role needs for a capability — then grant it via Roles & Permissions.
Module: admin
| Permission | What it grants | Console |
|---|---|---|
| admin.manage_users | Manage Users | Not wired — Users is super-admin-only regardless of this permission. |
| admin.manage_roles | Manage Roles | Not wired — Roles is super-admin-only regardless of this permission. |
| admin.manage_geography | Manage Geography | Not wired — Geography is super-admin-only regardless of this permission. |
| admin.manage_customer_scope | Manage Customer Scope | Not wired to a separate gate — Customer Scope rows are managed under a super-admin-only user record. |
| admin.view_login_history | View Login History | API only — no login-history screen exists. |
| admin.view_system_config | View System Configuration | Gates access to System Configuration. |
| admin.edit_system_config | Edit System Configuration | Not confirmed as a separate action gate — editing is enforced via is_editable per config on the same screen. |
| diagnostics.view | View Diagnostics | Built — Diagnostics (scheduler runs / dropped records / health checks). |
Module: user
| Permission | What it grants | Console |
|---|---|---|
| user.view_self | View one's own profile | Planned — self-service is an API/field-app concern, not a console screen. |
| user.edit_self | Edit one's own profile | Planned — API/field-app concern. |
| user.change_password | Change one's own password | Planned — nothing reads it. Changing your own password does not require it: a user who must reset gets a sign-in token limited to that one action, controlled by a separate token ability (password.change) rather than by this permission. |
Module: zone
| Permission | What it grants | Console |
|---|---|---|
| zone.view | View zones | Not wired — Zones is super-admin-only regardless of this permission. |
| zone.create | Create zones | Not wired — super-admin-only. |
| zone.edit | Edit zones | Not wired — super-admin-only. |
| zone.delete | Delete zones | Not wired — super-admin-only. |
Module: region
| Permission | What it grants | Console |
|---|---|---|
| region.view | View regions | Not wired — Regions is super-admin-only regardless of this permission. |
| region.create | Create regions | Not wired — super-admin-only. |
| region.edit | Edit regions | Not wired — super-admin-only. |
| region.delete | Delete regions | Not wired — super-admin-only (deletion is additionally blocked in code if the region has active children or scope references). |
Module: pincode
| Permission | What it grants | Console |
|---|---|---|
| pincode.view | View pincodes | Not wired — Pincodes is super-admin-only regardless of this permission. |
| pincode.edit | Edit pincodes | Not wired — super-admin-only. |
| pincode.import | Bulk import pincode data | Not wired in the console — the CSV import exists but only as an API endpoint; in the console pincodes are created one at a time. |
Module: customer
| Permission | What it grants | Console |
|---|---|---|
| customer.view | View customers | Gates access to Customers (together with customer.create). |
| customer.create | Create customers | Gates access to Customers (together with customer.view); also enables the New customer action. |
| customer.edit | Edit customers | Not separately gated in this inventory — edit access follows page access. |
| customer.delete | Delete customers | Not separately gated in this inventory — delete access follows page access. |
| customer.verify | Verify a customer | API only — the is_verified flag is only editable via the plain edit form; no dedicated Verify action exists. |
| customer.view_financial | View a customer's financial detail | API only — decides whether a customer's financial fields are returned to the field app at all. No console screen checks it. |
| customer.manage_categories | Manage customer categories | Not wired — Customer Categories is super-admin-only regardless of this permission. |
| customer.bulk_import | Bulk import customers | API only — no bulk-import action exists. |
| customer.view_all | View all customers regardless of scope | API only — lifts geography scoping so the user sees every customer, not just those in their regions. It applies to the field app and API only; this console's Customers list is not geography-scoped in the first place, so it makes no difference there. See Customers. |
| customer.merge | Merge duplicate customers | API only — no merge action exists. |
Module: warehouse
| Permission | What it grants | Console |
|---|---|---|
| warehouse.view | View warehouses | Not wired — Warehouses is super-admin-only regardless of this permission. |
| warehouse.create | Create warehouses | Not wired — super-admin-only. |
| warehouse.edit | Edit warehouses | Not wired — super-admin-only. |
| warehouse.delete | Delete warehouses | Not wired — super-admin-only. |
| stock_location.view | View stock locations | Not wired — locations sit under the super-admin-only Warehouse record. |
| stock_location.create | Create stock locations | Not wired — super-admin-only. |
| stock_location.edit | Edit stock locations | Not wired — super-admin-only. |
| stock_location.delete | Delete stock locations | Not wired — super-admin-only. |
| stock_level.view | View stock levels | Not the same permission as Stock on Hand's own stock_on_hand.view — no resource matches this exact permission. |
| stock_level.edit | Edit stock levels | API only — no matching action. |
| stock_transfer.request | Request a stock transfer | Planned as a named gate — Stock Transfers does exist, but raising one is gated by stock_transfer.create instead; nothing checks this permission. |
| delivery_carrier.view | View delivery carriers | Not wired — Delivery Carriers is super-admin-only regardless of this permission. |
| delivery_carrier.manage | Manage delivery carriers | Not wired — super-admin-only. |
| delivery_route.view | View delivery routes and their stops | Built — gates Delivery Routes. |
| delivery_route.manage | Create, edit and delete delivery routes and stops | Built — gates the create/edit form and the Stops tab. |
Module: inventory
| Permission | What it grants | Console |
|---|---|---|
| product.view | View products | Gates access to Products. |
| product.create | Create products | Built — gates New product on Products. |
| product.edit | Edit products | Built — gates Edit (every product tab, including discount limits and delivery modes). |
| product.delete | Delete products | Built — gates Delete. |
| product.duplicate | Duplicate a product | Built — gates the Duplicate row action. |
| product_price.view | View product prices | Built — shows the Base Prices tab on a product and cost-price changes in its History. (The list's current MRP isn't gated by it.) |
| product_price.manage | Manage product prices | Built — makes the Base Prices tab on a product editable. |
| stock_on_hand.view | View stock on hand | Gates access to Stock on Hand. |
| stock_move.view | View stock moves | Built — the Stock Moves list. |
| stock_move.create | Create stock moves | Built — gates the Release for despatch action (D6). |
| stock_move.edit | Edit stock moves | Built — the Cancel action. |
| stock_move.suspend | Suspend a stock move | Built — Suspend / Unsuspend actions. |
| stock_transfer.view | View stock transfers | Built — the Stock Transfers list. |
| stock_transfer.create | Create stock transfers | Built — create a transfer (with its items). |
| stock_transfer.approve | Approve stock transfers | Built — Process / Dispatch / Cancel actions. |
| stock_transfer.receive | Receive stock transfers | Built — Receive / Complete actions. |
| closing_stock.view | View closing-stock statements | Gates access to Closing Stock. |
| closing_stock.create | Start/complete a stock count | Gates the Start Count and Complete actions. |
| closing_stock.reconcile | Reconcile a closing-stock discrepancy | API only as a named gate — discrepancy handling happens inside the Complete action, which is gated by closing_stock.create instead. |
| closing_stock.audit | Audit a closing-stock statement | Gates the Audit action. |
| stock_move_suspend_reason.view | View stock-move suspend reasons | Built — gates the Suspend Reasons list under Operational Configuration. |
| stock_move_suspend_reason.manage | Create, edit and deactivate suspend reasons | Built — gates their create/edit form. |
| closing_stock_reconciliation_reason.view | View closing-stock reconciliation reasons | Built — gates the Reconciliation Reasons list under Operational Configuration. |
| closing_stock_reconciliation_reason.manage | Create, edit and deactivate reconciliation reasons | Built — gates their create/edit form. |
Module: sales
| Permission | What it grants | Console |
|---|---|---|
| sale_order.view | View sale orders | Gates access to Sale Orders. |
| sale_order.create | Create sale orders | API only in this console — orders originate from the SE field app/API. |
| sale_order.edit | Edit sale orders | API only — no edit form in this console. |
| sale_order.submit | Submit a sale order to HO | API only — earlier-stage transitions aren't exposed here. |
| sale_order.approve | HO-approve a sale order | Gates the HO Approve action. |
| sale_order.cancel | Cancel a sale order | Gates the Cancel action. |
| sale_order.view_all | View all sale orders regardless of scope | Grants full row visibility on Sale Orders; without it you only see orders in your geography/customer scope or where you are the salesperson. |
| credit.grant_directly | Grant credit directly | API only — a credit request raised by someone holding this is approved immediately, subject to the customer's credit limit, instead of queuing for someone else. Grant it sparingly. No console screen. |
| credit.request_approval | Request credit approval | API only — lets the holder raise a credit request, which is created Pending and waits for credit.approve. No console screen. |
| credit.approve | Approve a credit request | API only — no console queue exists for CreditRequestState. |
| discount.request_approval | Request discount approval | API only. |
| discount.approve | Approve a discount request | API only — no console queue exists for DiscountRequestState (distinct from PAD, which does have a queue). |
Module: despatch
| Permission | What it grants | Console |
|---|---|---|
| box_type.view | View box types | Built — the Box Types list. |
| box_type.manage | Manage box types | Built — create/edit box types + carrier compatibility. |
| carrier_rate.view | View carrier rate cards | Built — the Carrier Rate Cards list. |
| carrier_rate.manage | Manage carrier rate cards | Built — create/edit/duplicate rate cards. |
| wave.view | View picking waves | Gates access to Picking Waves. |
| wave.create | Create picking waves | API only — waves are created elsewhere; the list here is index-only. |
| wave.manage | Progress or cancel a picking wave | Gates every wave transition action (Print labels, Complete packing, Send to branch, Despatch, Mark done, Cancel). |
| package.view | View packages | Gates access to Packages. |
| package.track | Update a package's tracking/delivery state | Gates Seal, Record delivery and Mark COD received. |
| return.view | View carrier return shipments | API only — no resource exists for ReturnShipmentState. |
| return.manage | Manage carrier return shipments | API only. |
| return.reconcile | Reconcile carrier return shipments | API only. |
| cod_payment.view | View COD payment lots | Gates access to COD Lots. |
| cod_payment.create | Create a COD payment lot | API only — no create action; lots and their items originate elsewhere. |
| cod_payment.reconcile | Deposit, clear or reconcile a COD lot | Gates Deposit, Clear and Reconcile. |
| carrier_complaint.view | View carrier complaints and their items | Built — gates Carrier Complaints. |
| carrier_complaint.create | File a carrier complaint | Built — gates New complaint. |
| carrier_complaint.manage | Submit, acknowledge, resolve and close complaints | Built — gates the four lifecycle actions. |
| carrier_return_reason.view | View carrier return reasons | Built — gates the Return Reasons list under Operational Configuration. |
| carrier_return_reason.manage | Create, edit and deactivate return reasons | Built — gates their create/edit form. |
| delivery_tracking.view | View GPS delivery tracking logs | Built — gates the Tracking Logs tab on a package. |
| delivery_tracking.create | Record a GPS delivery tracking entry | API only — recorded by the field app on delivery; no console button. |
Module: billing
| Permission | What it grants | Console |
|---|---|---|
| payment.view | View payment vouchers | Gates access to Payment Vouchers. |
| payment.create | Create a payment voucher | API only — the list is index-only; vouchers originate elsewhere. |
| payment.submit | Submit a payment voucher | API only — no console action. |
| payment.allocate | Allocate a payment voucher | API only — no console action; see Allocation. |
| payment.approve | Approve a payment voucher | Gates the Approve action. |
| payment.deposit | Mark a payment voucher deposited | API only — no console action. |
| payment.clear | Clear a payment voucher | API only as a direct console action — clearing normally happens via bank-reconciliation auto-match instead. |
| payment.dishonour | Mark a payment voucher dishonoured | API only — no console action. |
| payment.hold | Place a payment voucher on hold | API only — no console action. |
| payment.cancel | Cancel a payment voucher | Gates the Cancel action. |
| payment.reallocate | Reallocate a payment voucher | API only — no console action. |
| payment.account_allocate | Allocate a payment to an account (not an order) | API only — no console action. |
| payment.recovery.manage | Manage payment recovery | API only — no recovery screen exists. |
| payment_dishonour_reason.manage | Manage dishonour reasons | Built — gates creating and editing dishonour reasons under Billing Configuration. |
| bank_master.manage | Manage bank master data | API only — no bank-account management resource exists (only referenced via Bank Reconciliation's statement records). |
| journal.view | View journal entries | Gates access to Accounting's Journal Entries. |
| journal.manage | Post or reverse a journal entry | Gates Post and Reverse. |
| gst_einvoice.view | View GST e-invoices | Gates access to Accounting's GST E-invoices. |
| gst_einvoice.manage | Submit or cancel a GST e-invoice | Gates Submit and Cancel. |
| bank_statement.upload | Upload a bank statement | API only — no upload action exists; statements originate elsewhere. |
| bank_statement.view | View bank statements | Gates access to Bank Reconciliation. |
| bank_statement.reconcile | Auto-match or bifurcate a bank statement | Gates Auto-match and Bifurcate. |
| bank_statement.close | Close a bank statement | Gates Close. |
| pad.view | View post-approval discounts | Gates access to Discounts, Refunds & Charges's PADs. |
| pad.create | Create a PAD | API only — no create action; PADs are drafted elsewhere. |
| pad.submit | Submit a PAD for approval | API only — no console action. |
| pad.approve | Approve or reject a PAD | Gates Approve and Reject. |
| pad.cancel | Cancel a PAD | Gates Cancel. |
| refund.view | View refund requests | Gates access to Discounts, Refunds & Charges's Refunds. |
| refund.create | Create a refund request | API only — no create action. |
| refund.submit | Submit a refund request | API only — no console action. |
| refund.approve | Approve or reject a refund request | Gates Approve and Reject. |
| refund.issue | Issue an approved refund | Gates Issue. |
| charge.view | View charges | Gates access to Discounts, Refunds & Charges's Charges. |
| charge.create | Create a charge | API only — no create action; a charge must already be Notified or Disputed to appear here. |
| charge.notify | Notify a customer of a charge | API only — no console action. |
| charge.dispute | Mark a charge disputed | API only — no console action. |
| charge.resolve | Resolve a charge | Gates Resolve. |
| charge.cancel | Cancel a charge | Gates Cancel. |
| charge_type.manage | Manage charge types | Built — gates creating and editing charge types under Billing Configuration. |
| payment_dishonour_reason.view | View payment dishonour reasons | Built — gates the Dishonour Reasons list under Billing Configuration. |
| charge_type.view | View charge types | Built — gates the Charge Types list under Billing Configuration. |
| pad_reason.view | View post-approval discount reasons | Built — gates the Discount Reasons list under Billing Configuration. |
| pad_reason.manage | Create, edit and deactivate discount reasons | Built — gates their create/edit form. |
Module: purchasing
| Permission | Label | Console |
|---|---|---|
| vendor.view | View vendors/suppliers | Built — gates Vendors. |
| vendor.manage | Create, edit and delete vendors | Built — gates the vendor form, delete and restore. |
| purchase_order.view | View purchase orders and their lines | Built — gates Purchase Orders. |
| purchase_order.create | Create POs and manage their lines while draft | Built — gates New purchase order and the Lines tab. |
| purchase_order.approve | Approve a draft purchase order | Built — gates Approve. |
| purchase_order.cancel | Cancel a draft or approved purchase order | Built — gates Cancel. |
| goods_receipt.view | View goods receipts and their lines | Built — gates Goods Receipts. |
| goods_receipt.create | Create GRNs and manage their lines while draft | Built — gates New goods receipt and the Lines tab. |
| goods_receipt.receive | Confirm a draft GRN, posting the received stock | Built — gates Receive. |
| vendor_bill.view | View vendor bills and their lines | Built — gates Vendor Bills. |
| vendor_bill.create | Create bills, manage draft lines, cancel drafts | Built — gates New vendor bill, the Lines tab and Cancel. |
| vendor_bill.post | Post a draft bill, optionally posting a journal entry | Built — gates Post. See System Configuration for the purchase.* keys. |
| vendor_payment.view | View vendor payments and their allocations | Built — gates Vendor Payments. |
| vendor_payment.create | Create payments, manage draft allocations, cancel drafts | Built — gates New vendor payment, the Allocations tab and Cancel. |
| vendor_payment.confirm | Confirm a fully-allocated draft vendor payment | Built — gates Confirm. |
Module: reports
| Permission | What it grants | Console |
|---|---|---|
| dashboard.view | View Dashboard | Built — gates the Dashboard KPI widgets (Operations Overview, Order Pipeline, Daily Health Check). |
| report.view | View Reports | Built — gates the Reports screen. |