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.

How to use this page

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 DisputedResolved (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 DraftDone 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 DraftSubmittedApprovedIssued (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 (usersuser_contactsprofiles). 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

StateRaw valueWhat it means / what usually happens next
DraftdraftOrder captured (SE app/API) and still editable. Not exposed in this console.
LinesConfirmedlines_confirmedOrder lines are locked in. Next, the SE flags it ready for HO.
ReadyForHoready_for_hoQueued to go up to HO. No money check has run yet — an unpaid order reaches this state normally.
SubmittedToHosubmitted_to_hoSitting 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.
ApprovedForDespatchapproved_for_despatchHO has approved it. Stock reservation and picking follow.
InDespatchin_despatchMoving through a picking wave and package toward the customer.
CompletedcompletedFully despatched — the order's end state.
SuspendedsuspendedPaused pending attention; not a console-driven transition.
CancelledcancelledAbandoned. Reachable from any state except Completed via Cancel (reason required).

PaymentVoucherState — Payment Vouchers

StateRaw valueWhat it means / what usually happens next
DraftdraftVoucher created, not yet submitted.
SubmittedsubmittedSubmitted; awaiting allocation.
AllocatedallocatedAllocated to specific orders/ledger. Approve becomes available.
ApprovedapprovedHO approved the allocation; next it is deposited.
DepositeddepositedPhysically banked; awaiting the bank statement to confirm clearance.
ClearedclearedBank confirmed the funds cleared — successful end state.
OnHoldon_holdPaused pending investigation; not console-driven.
DishonoureddishonouredCheque/DD bounced. Can still be cancelled from the console.
SuspensesuspenseParked automatically by bank-reconciliation auto-match on an ambiguous match — see Suspense Voucher.
CancelledcancelledVoided via Cancel from Draft/Submitted/Dishonoured.

WaveState — Picking Waves

StateRaw valueWhat it means / what usually happens next
DraftdraftWave created; items not yet identified.
ItemsIdentifieditems_identifiedItems to pick are identified. Print labels becomes available.
LabelPrintinglabel_printingLabels are being generated/printed. Complete packing advances it.
PackingpackingItems are being physically packed. Send to branch or Despatch advance it.
AtBranchat_branchPacked goods reached the despatch branch. Despatch becomes available.
DespatcheddespatchedHanded to the carrier; cascades its packages and stock moves onward.
DonedoneClosed out via Mark done — end state.
CancelledcancelledAbandoned; only from Draft/ItemsIdentified.

PackageState — Packages

StateRaw valueWhat it means / what usually happens next
DraftdraftPackage shell created; contents still being assembled.
PackingpackingItems being packed into the box.
SealedsealedSealed via Seal, which also computes postage cost. Ready for despatch.
LabeledlabeledAddress label printed, recorded via Mark labelled. Optional — a sealed package that skips it still despatches with its wave.
DespatcheddespatchedHanded to the carrier — directly or via a wave's despatch cascade. Reached from Sealed or Labeled alike.
DelivereddeliveredConfirmed delivered via Record delivery.
ReturnedreturnedCame back undelivered, recorded with a return reason.
LostlostLost in transit, recorded via Record delivery.
CancelledcancelledVoided outside the normal delivery flow — no console action reaches this state.

CodLotState — COD Lots

StateRaw valueWhat it means / what usually happens next
DraftdraftLot created elsewhere; no console create action.
SubmittedsubmittedPackages finalised; awaiting deposit.
DepositeddepositedCash/cheque banked via Deposit (received amount and bank details recorded).
ClearedclearedBank confirmed clearing via Clear.
ReconciledreconciledEach item matched/settled via Reconcile — flags packages as COD received.

PadState — Discounts, Refunds & Charges

StateRaw valueWhat it means / what usually happens next
DraftdraftDrafted elsewhere; no console create action.
PendingApprovalpending_approvalAwaiting HO's Approve or Reject decision.
ApprovedapprovedApproved; if its reason requires it, a journal entry is posted automatically next.
PostedpostedA journal entry has been created and posted for this discount — end state.
CancelledcancelledVoided — also reused for a rejected PAD (there is no separate "Rejected" case).

RefundState — Discounts, Refunds & Charges

StateRaw valueWhat it means / what usually happens next
DraftdraftDrafted elsewhere; no console create action.
SubmittedsubmittedAwaiting HO's Approve or Reject decision.
ApprovedapprovedCleared for payout. Issue becomes available.
IssuedissuedPaid out (cheque or NEFT recorded) — end state.
RejectedrejectedDeclined with a reason — end state.

ChargeState — Discounts, Refunds & Charges

StateRaw valueWhat it means / what usually happens next
DraftdraftRecorded but not yet notified; no console create action.
NotifiednotifiedCustomer told about it. Can be Resolved or Cancelled, or move to Disputed.
DisputeddisputedCustomer has disputed it. Resolve or Cancel apply.
ResolvedresolvedHO decided to Levy (collect) or Waive it, with optional notes — end state.
CancelledcancelledVoided from Draft/Notified/Disputed.

JournalEntryState — Accounting

StateRaw valueWhat it means / what usually happens next
DraftdraftCreated by another service (for example a PAD approval); not yet posted.
PostedpostedDebit/credit balance re-validated and committed via Post — normal end state.
ReversedreversedReversed via Reverse: a brand-new, already-Posted entry with swapped debit/credit lines is created and linked back to this one.

GstEinvoiceState — Accounting

StateRaw valueWhat it means / what usually happens next
DraftdraftDrafted by GstEinvoiceService::createDraft(); no console create action.
SubmittedsubmittedTransient — Submit sends it to the GST portal and, on success, advances it to Done in the same request.
DonedoneIRN and acknowledgement recorded — the invoice is legally issued.
CancelledcancelledCancelled via Cancel (reason required); blocked once 24 hours have passed since acknowledgement — issue a credit note instead.

ClosingStockState — Closing Stock

StateRaw valueWhat it means / what usually happens next
DraftdraftStatement exists; counting hasn't started. No console create action.
InProgressin_progressStart Count has snapshotted stock into countable items; staff record physical counts.
CompletedcompletedComplete closed the count and created adjustment stock moves for any discrepancies.
AuditedauditedA different person has run Audit to sign it off — end state.

BankStatementStatus — Bank Reconciliation

StateRaw valueWhat it means / what usually happens next
UploadeduploadedStatement file received; no console upload action.
ParsingparsingLines are being extracted from the file automatically.
ParsedparsedLines are ready. Auto-match and Bifurcate become available.
ReconcilingreconcilingMatching is under way; Auto-match/Bifurcate/Close remain available.
ReconciledreconciledClose succeeded once every line was matched or bifurcated — end state.
FailedfailedParsing failed; no console recovery action documented.

StockMoveState — see Stock on Hand, Picking Waves & Closing Stock

Not browsable directly

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).

StateRaw valueWhat it means / what usually happens next
DraftdraftMove created but not yet confirmed.
ConfirmedconfirmedConfirmed as intended; not yet reserved.
ReservedreservedStock earmarked for a specific order — see Reservation.
PickedpickedPhysically picked from the shelf.
PackedpackedPicked stock packed into a package.
ShippedshippedHanded 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.
DonedoneFully completed. For a delivery move this is set when the package carrying it is marked delivered; also how closing-stock adjustments finish.
CancelledcancelledAbandoned.
SuspendedsuspendedPaused; 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.

Not every permission is wired to a console button

All of these permissions exist today and can be attached to a role, but they do not all do the same kind of work. The Console column tells you which is which, using three labels:

  • Built — the permission gates a screen or a button in this console. Grant it and the user gains that capability here.
  • API only — the permission gates a live endpoint used by the SE field app or another API client, but nothing in this console checks it. Granting it changes what the field app allows, not what the console shows.
  • Planned — the permission is seeded but nothing anywhere reads it yet. Granting it has no effect at all today.

Where a row carries no pill, the permission simply gates the screen it names. See Getting started for how permissions combine into your effective access, and each module's own page for the exact behaviour of the permissions that are wired up.

Module: admin

PermissionWhat it grantsConsole
admin.manage_usersManage UsersNot wired — Users is super-admin-only regardless of this permission.
admin.manage_rolesManage RolesNot wired — Roles is super-admin-only regardless of this permission.
admin.manage_geographyManage GeographyNot wired — Geography is super-admin-only regardless of this permission.
admin.manage_customer_scopeManage Customer ScopeNot wired to a separate gate — Customer Scope rows are managed under a super-admin-only user record.
admin.view_login_historyView Login HistoryAPI only — no login-history screen exists.
admin.view_system_configView System ConfigurationGates access to System Configuration.
admin.edit_system_configEdit System ConfigurationNot confirmed as a separate action gate — editing is enforced via is_editable per config on the same screen.
diagnostics.viewView DiagnosticsBuiltDiagnostics (scheduler runs / dropped records / health checks).

Module: user

PermissionWhat it grantsConsole
user.view_selfView one's own profilePlanned — self-service is an API/field-app concern, not a console screen.
user.edit_selfEdit one's own profilePlanned — API/field-app concern.
user.change_passwordChange one's own passwordPlanned — 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

PermissionWhat it grantsConsole
zone.viewView zonesNot wired — Zones is super-admin-only regardless of this permission.
zone.createCreate zonesNot wired — super-admin-only.
zone.editEdit zonesNot wired — super-admin-only.
zone.deleteDelete zonesNot wired — super-admin-only.

Module: region

PermissionWhat it grantsConsole
region.viewView regionsNot wired — Regions is super-admin-only regardless of this permission.
region.createCreate regionsNot wired — super-admin-only.
region.editEdit regionsNot wired — super-admin-only.
region.deleteDelete regionsNot wired — super-admin-only (deletion is additionally blocked in code if the region has active children or scope references).

Module: pincode

PermissionWhat it grantsConsole
pincode.viewView pincodesNot wired — Pincodes is super-admin-only regardless of this permission.
pincode.editEdit pincodesNot wired — super-admin-only.
pincode.importBulk import pincode dataNot 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

PermissionWhat it grantsConsole
customer.viewView customersGates access to Customers (together with customer.create).
customer.createCreate customersGates access to Customers (together with customer.view); also enables the New customer action.
customer.editEdit customersNot separately gated in this inventory — edit access follows page access.
customer.deleteDelete customersNot separately gated in this inventory — delete access follows page access.
customer.verifyVerify a customerAPI only — the is_verified flag is only editable via the plain edit form; no dedicated Verify action exists.
customer.view_financialView a customer's financial detailAPI only — decides whether a customer's financial fields are returned to the field app at all. No console screen checks it.
customer.manage_categoriesManage customer categoriesNot wired — Customer Categories is super-admin-only regardless of this permission.
customer.bulk_importBulk import customersAPI only — no bulk-import action exists.
customer.view_allView all customers regardless of scopeAPI 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.mergeMerge duplicate customersAPI only — no merge action exists.

Module: warehouse

PermissionWhat it grantsConsole
warehouse.viewView warehousesNot wired — Warehouses is super-admin-only regardless of this permission.
warehouse.createCreate warehousesNot wired — super-admin-only.
warehouse.editEdit warehousesNot wired — super-admin-only.
warehouse.deleteDelete warehousesNot wired — super-admin-only.
stock_location.viewView stock locationsNot wired — locations sit under the super-admin-only Warehouse record.
stock_location.createCreate stock locationsNot wired — super-admin-only.
stock_location.editEdit stock locationsNot wired — super-admin-only.
stock_location.deleteDelete stock locationsNot wired — super-admin-only.
stock_level.viewView stock levelsNot the same permission as Stock on Hand's own stock_on_hand.view — no resource matches this exact permission.
stock_level.editEdit stock levelsAPI only — no matching action.
stock_transfer.requestRequest a stock transferPlanned as a named gate — Stock Transfers does exist, but raising one is gated by stock_transfer.create instead; nothing checks this permission.
delivery_carrier.viewView delivery carriersNot wired — Delivery Carriers is super-admin-only regardless of this permission.
delivery_carrier.manageManage delivery carriersNot wired — super-admin-only.
delivery_route.viewView delivery routes and their stopsBuilt — gates Delivery Routes.
delivery_route.manageCreate, edit and delete delivery routes and stopsBuilt — gates the create/edit form and the Stops tab.

Module: inventory

PermissionWhat it grantsConsole
product.viewView productsGates access to Products.
product.createCreate productsBuilt — gates New product on Products.
product.editEdit productsBuilt — gates Edit (every product tab, including discount limits and delivery modes).
product.deleteDelete productsBuilt — gates Delete.
product.duplicateDuplicate a productBuilt — gates the Duplicate row action.
product_price.viewView product pricesBuilt — 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.manageManage product pricesBuilt — makes the Base Prices tab on a product editable.
stock_on_hand.viewView stock on handGates access to Stock on Hand.
stock_move.viewView stock movesBuilt — the Stock Moves list.
stock_move.createCreate stock movesBuilt — gates the Release for despatch action (D6).
stock_move.editEdit stock movesBuilt — the Cancel action.
stock_move.suspendSuspend a stock moveBuiltSuspend / Unsuspend actions.
stock_transfer.viewView stock transfersBuilt — the Stock Transfers list.
stock_transfer.createCreate stock transfersBuiltcreate a transfer (with its items).
stock_transfer.approveApprove stock transfersBuiltProcess / Dispatch / Cancel actions.
stock_transfer.receiveReceive stock transfersBuiltReceive / Complete actions.
closing_stock.viewView closing-stock statementsGates access to Closing Stock.
closing_stock.createStart/complete a stock countGates the Start Count and Complete actions.
closing_stock.reconcileReconcile a closing-stock discrepancyAPI only as a named gate — discrepancy handling happens inside the Complete action, which is gated by closing_stock.create instead.
closing_stock.auditAudit a closing-stock statementGates the Audit action.
stock_move_suspend_reason.viewView stock-move suspend reasonsBuilt — gates the Suspend Reasons list under Operational Configuration.
stock_move_suspend_reason.manageCreate, edit and deactivate suspend reasonsBuilt — gates their create/edit form.
closing_stock_reconciliation_reason.viewView closing-stock reconciliation reasonsBuilt — gates the Reconciliation Reasons list under Operational Configuration.
closing_stock_reconciliation_reason.manageCreate, edit and deactivate reconciliation reasonsBuilt — gates their create/edit form.

Module: sales

PermissionWhat it grantsConsole
sale_order.viewView sale ordersGates access to Sale Orders.
sale_order.createCreate sale ordersAPI only in this console — orders originate from the SE field app/API.
sale_order.editEdit sale ordersAPI only — no edit form in this console.
sale_order.submitSubmit a sale order to HOAPI only — earlier-stage transitions aren't exposed here.
sale_order.approveHO-approve a sale orderGates the HO Approve action.
sale_order.cancelCancel a sale orderGates the Cancel action.
sale_order.view_allView all sale orders regardless of scopeGrants 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_directlyGrant credit directlyAPI 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_approvalRequest credit approvalAPI only — lets the holder raise a credit request, which is created Pending and waits for credit.approve. No console screen.
credit.approveApprove a credit requestAPI only — no console queue exists for CreditRequestState.
discount.request_approvalRequest discount approvalAPI only.
discount.approveApprove a discount requestAPI only — no console queue exists for DiscountRequestState (distinct from PAD, which does have a queue).

Module: despatch

PermissionWhat it grantsConsole
box_type.viewView box typesBuilt — the Box Types list.
box_type.manageManage box typesBuiltcreate/edit box types + carrier compatibility.
carrier_rate.viewView carrier rate cardsBuilt — the Carrier Rate Cards list.
carrier_rate.manageManage carrier rate cardsBuiltcreate/edit/duplicate rate cards.
wave.viewView picking wavesGates access to Picking Waves.
wave.createCreate picking wavesAPI only — waves are created elsewhere; the list here is index-only.
wave.manageProgress or cancel a picking waveGates every wave transition action (Print labels, Complete packing, Send to branch, Despatch, Mark done, Cancel).
package.viewView packagesGates access to Packages.
package.trackUpdate a package's tracking/delivery stateGates Seal, Record delivery and Mark COD received.
return.viewView carrier return shipmentsAPI only — no resource exists for ReturnShipmentState.
return.manageManage carrier return shipmentsAPI only.
return.reconcileReconcile carrier return shipmentsAPI only.
cod_payment.viewView COD payment lotsGates access to COD Lots.
cod_payment.createCreate a COD payment lotAPI only — no create action; lots and their items originate elsewhere.
cod_payment.reconcileDeposit, clear or reconcile a COD lotGates Deposit, Clear and Reconcile.
carrier_complaint.viewView carrier complaints and their itemsBuilt — gates Carrier Complaints.
carrier_complaint.createFile a carrier complaintBuilt — gates New complaint.
carrier_complaint.manageSubmit, acknowledge, resolve and close complaintsBuilt — gates the four lifecycle actions.
carrier_return_reason.viewView carrier return reasonsBuilt — gates the Return Reasons list under Operational Configuration.
carrier_return_reason.manageCreate, edit and deactivate return reasonsBuilt — gates their create/edit form.
delivery_tracking.viewView GPS delivery tracking logsBuilt — gates the Tracking Logs tab on a package.
delivery_tracking.createRecord a GPS delivery tracking entryAPI only — recorded by the field app on delivery; no console button.

Module: billing

PermissionWhat it grantsConsole
payment.viewView payment vouchersGates access to Payment Vouchers.
payment.createCreate a payment voucherAPI only — the list is index-only; vouchers originate elsewhere.
payment.submitSubmit a payment voucherAPI only — no console action.
payment.allocateAllocate a payment voucherAPI only — no console action; see Allocation.
payment.approveApprove a payment voucherGates the Approve action.
payment.depositMark a payment voucher depositedAPI only — no console action.
payment.clearClear a payment voucherAPI only as a direct console action — clearing normally happens via bank-reconciliation auto-match instead.
payment.dishonourMark a payment voucher dishonouredAPI only — no console action.
payment.holdPlace a payment voucher on holdAPI only — no console action.
payment.cancelCancel a payment voucherGates the Cancel action.
payment.reallocateReallocate a payment voucherAPI only — no console action.
payment.account_allocateAllocate a payment to an account (not an order)API only — no console action.
payment.recovery.manageManage payment recoveryAPI only — no recovery screen exists.
payment_dishonour_reason.manageManage dishonour reasonsBuilt — gates creating and editing dishonour reasons under Billing Configuration.
bank_master.manageManage bank master dataAPI only — no bank-account management resource exists (only referenced via Bank Reconciliation's statement records).
journal.viewView journal entriesGates access to Accounting's Journal Entries.
journal.managePost or reverse a journal entryGates Post and Reverse.
gst_einvoice.viewView GST e-invoicesGates access to Accounting's GST E-invoices.
gst_einvoice.manageSubmit or cancel a GST e-invoiceGates Submit and Cancel.
bank_statement.uploadUpload a bank statementAPI only — no upload action exists; statements originate elsewhere.
bank_statement.viewView bank statementsGates access to Bank Reconciliation.
bank_statement.reconcileAuto-match or bifurcate a bank statementGates Auto-match and Bifurcate.
bank_statement.closeClose a bank statementGates Close.
pad.viewView post-approval discountsGates access to Discounts, Refunds & Charges's PADs.
pad.createCreate a PADAPI only — no create action; PADs are drafted elsewhere.
pad.submitSubmit a PAD for approvalAPI only — no console action.
pad.approveApprove or reject a PADGates Approve and Reject.
pad.cancelCancel a PADGates Cancel.
refund.viewView refund requestsGates access to Discounts, Refunds & Charges's Refunds.
refund.createCreate a refund requestAPI only — no create action.
refund.submitSubmit a refund requestAPI only — no console action.
refund.approveApprove or reject a refund requestGates Approve and Reject.
refund.issueIssue an approved refundGates Issue.
charge.viewView chargesGates access to Discounts, Refunds & Charges's Charges.
charge.createCreate a chargeAPI only — no create action; a charge must already be Notified or Disputed to appear here.
charge.notifyNotify a customer of a chargeAPI only — no console action.
charge.disputeMark a charge disputedAPI only — no console action.
charge.resolveResolve a chargeGates Resolve.
charge.cancelCancel a chargeGates Cancel.
charge_type.manageManage charge typesBuilt — gates creating and editing charge types under Billing Configuration.
payment_dishonour_reason.viewView payment dishonour reasonsBuilt — gates the Dishonour Reasons list under Billing Configuration.
charge_type.viewView charge typesBuilt — gates the Charge Types list under Billing Configuration.
pad_reason.viewView post-approval discount reasonsBuilt — gates the Discount Reasons list under Billing Configuration.
pad_reason.manageCreate, edit and deactivate discount reasonsBuilt — gates their create/edit form.

Module: purchasing

PermissionLabelConsole
vendor.viewView vendors/suppliersBuilt — gates Vendors.
vendor.manageCreate, edit and delete vendorsBuilt — gates the vendor form, delete and restore.
purchase_order.viewView purchase orders and their linesBuilt — gates Purchase Orders.
purchase_order.createCreate POs and manage their lines while draftBuilt — gates New purchase order and the Lines tab.
purchase_order.approveApprove a draft purchase orderBuilt — gates Approve.
purchase_order.cancelCancel a draft or approved purchase orderBuilt — gates Cancel.
goods_receipt.viewView goods receipts and their linesBuilt — gates Goods Receipts.
goods_receipt.createCreate GRNs and manage their lines while draftBuilt — gates New goods receipt and the Lines tab.
goods_receipt.receiveConfirm a draft GRN, posting the received stockBuilt — gates Receive.
vendor_bill.viewView vendor bills and their linesBuilt — gates Vendor Bills.
vendor_bill.createCreate bills, manage draft lines, cancel draftsBuilt — gates New vendor bill, the Lines tab and Cancel.
vendor_bill.postPost a draft bill, optionally posting a journal entryBuilt — gates Post. See System Configuration for the purchase.* keys.
vendor_payment.viewView vendor payments and their allocationsBuilt — gates Vendor Payments.
vendor_payment.createCreate payments, manage draft allocations, cancel draftsBuilt — gates New vendor payment, the Allocations tab and Cancel.
vendor_payment.confirmConfirm a fully-allocated draft vendor paymentBuilt — gates Confirm.

Module: reports

PermissionWhat it grantsConsole
dashboard.viewView DashboardBuilt — gates the Dashboard KPI widgets (Operations Overview, Order Pipeline, Daily Health Check).
report.viewView ReportsBuilt — gates the Reports screen.