HomeModules
Modules
Seven stages, one chain of controlled transactions.
Corva's modules are not seven products stitched together. They are seven stages of one flow, each handing the next a record it can trust, and each writing state, ledger, audit and accounting in the same atomic transaction.
Jump to a stage
Receiving
Goods arrive and become trustworthy stock
A receipt is booked against its purchase order, so what you own is what somebody actually checked in. The unit cost travels with the goods from this moment on. It is captured here, not estimated later at month end.
- Receive against the purchase order, line by line
- Landed cost captured on the receipt itself
- Put-away to a location, recorded as a movement
- Every receipt is a named transaction. There is no “edit the quantity” path
- Stock: quantity on hand at a location
- Inventory ledger: one entry per movement
- Audit record: who received what, when
- Posting: inventory value recognized
Inventory
Quantities backed by a ledger, not an editable field
Every number you can see is derived from the movements behind it. Nothing sets a quantity directly: stock changes because a receipt, a reservation, a pick, a shipment or an explicit, authorized adjustment happened, and each of those leaves its own row.
- On-hand, reserved and available derived from movements
- Location-level detail with a full movement history
- Adjustments are named transactions requiring authority
- FIFO or weighted-average costing carried on the ledger
- Inventory ledger: the source of every quantity
- Cost layers: what each unit is carried at
- Audit record: reason and approver on adjustments
- Posting: value change where cost moves
Fulfillment
Allocation that cannot promise the same case twice
Reservation happens inside the transaction that claims the stock, and the database serializes competing claims. Two pickers racing for the last case do not both win it: one gets it, the other is told immediately, before a customer is promised anything.
- Allocate and reserve against real, available stock
- Concurrent claims serialized, with no oversell under load
- Picking recorded per line, per location
- Short-pick and release are recorded outcomes, not silent edits
- Reservation: stock committed to an order
- Order state: moved by rule, not by hand
- Inventory ledger: available quantity reduced
- Audit record: who allocated and picked
Packing
A shipment that says exactly what left the building
Cartons and their contents are recorded as they are packed, so the shipment document is a statement of fact rather than a copy of the order. When a customer asks what was in the box, the answer comes from the pack record, not from memory.
- Cartons built from picked lines, contents recorded
- Packed units stay linked to their own unit history
- Repack and unpack are recorded transactions
- The pack record is what shipping and billing read from
- Carton contents: what is in which box
- Order state: packed, ready to ship
- Audit record: who packed each carton
Shipping
Goods out, cost and revenue recognized in the same breath
Shipping is the moment operations and accounting have to agree, so Corva makes them agree by construction: the same transaction that moves the goods out records the cost of those goods and recognizes the sale.
- Ship from the pack record, so what left is what is billed
- Cost of goods sold recorded from the actual cost layers
- Revenue recognized under ASC 606 on transfer of control
- Carrier and tracking detail kept with the shipment
- Shipment: the permanent record of what left
- Inventory ledger: stock relieved
- Posting: two balanced postings: cost-out and revenue recognition
- Audit record: who shipped, under whose authority
Billing
Invoices built from what shipped, not what was hoped
An invoice is produced from the shipment record, which means the document you send and the goods that left are the same event seen twice. Corrections are issued as recorded credit documents. An invoice is never quietly rewritten.
- Invoice from the shipment, line by line
- Receivable raised as the invoice is issued
- Gapless document numbering, even under load
- Credits and adjustments are their own recorded documents
- Invoice: with a gapless document number
- Receivable: the open balance it creates
- Posting: receivable raised against the unbilled balance, plus tax. Revenue was recognized at shipment, not here
- Audit record: issue, credit and approval trail
Receivables
Payments that settle against real open balances
A payment is applied to the invoices it actually settles, so the open balance is always explainable line by line. The subledger and the general ledger are two views of the same postings rather than two systems to reconcile by hand.
- Apply payments to specific invoices and lines
- Open balances and aging derived from the ledger
- Write-offs and adjustments require authority and leave a record
- Subledger totals reconcile to the general ledger by construction
- Settlement: which payment cleared which invoice
- Receivable: remaining open balance
- Posting: balanced cash and receivable entries
- Audit record: who applied or wrote off
Every capability on this page is delivered by the same command envelope described on the platform page — which is why a module can be added without weakening the ones already there.
Which stage hurts most today?
Tell us where your operation and your books stop agreeing, and we'll tell you how Corva handles it.
hello@corvaerp.com