A boundary, not an integrator.
cifraHQ owns the financial 'what'. P4W owns the physical 'where'. The contract between them is frozen and round-trip verified — it is not an integration project, it is the product.
Who owns what
- cifraHQ owns the "what". SKUs as entities (
Productwith discriminator), unit cost and perpetual valuation, purchase orders (PurchaseOrder), receipt as document (GoodsReceiptNote), GRNI accrual, accounts payable, accounting adjustment documents. - P4W owns the "where". Bins, zones, physical locations inside the warehouse, picks, packs, bin-to-bin movements, FIFO/FEFO per pick, handheld scan, labeling. Everything that happens below the
Warehouselevel. - No sub-warehouses in cifraHQ. Permanent. The only level is
Warehouse— below the warehouse is P4W territory. Prevents both products from trying to be the bin authority. - No product variants in cifraHQ. Permanent. Every attribute combination is its own SKU. The variant model conflicts directly with how P4W physically models stock — excluded by design.
- No hard kits in cifraHQ. Permanent. Only soft bundles (exploded at the invoice). Live physical kits belong on the shop floor — that is P4W.
What crosses the boundary
cifraHQ → P4W
SKU catalog, receipts to post, sales orders to pick, approved transfers. cifraHQ creates the work obligation; P4W executes it.
P4W → cifraHQ
Pick completion confirmations, available-quantity updates, physical adjustments with reason (damage, count difference), receipt completions with lot/serial resolved.
Round-trip verified
Phase 1c includes WMS sync round-trip verification at 5,000-tenant scale. Does not ship until reconciliation is clean.
The five happy paths
- Purchase and receipt. PO posted in cifraHQ; expected receipt dispatched to P4W. P4W confirms physical receipt with lot/serial. cifraHQ generates
GoodsReceiptNote, accruesGRNI, waits for the vendor bill. - Sale and pick. Approved SO in cifraHQ; pick instruction to P4W. P4W executes physical pick, confirms quantity and lot. cifraHQ generates
DeliveryNote, invoice, posts AR and updates inventory. - Transfer between warehouses.
WarehouseTransferposted in cifraHQ asShipment; P4W executes physical shipment.Receiptarrives when P4W confirms delivery to destination — in-transit window visible. - Physical count. cifraHQ prepares the count list; P4W executes the physical count with handheld. Variance returns to cifraHQ, generates auto-adjustment with reason.
- Assembly (production). Assembly order release in cifraHQ; P4W reserves components in bins, executes physical assembly, confirms finish. cifraHQ posts planned-vs-actual variance and updates finished-goods cost.
The product works without this integration
Not every customer needs P4 Warehouse. For mid-market distributors with one warehouse and simple flow, cifraHQ operates standalone on its own inventory model — adjustments, transfers, counts and production run fully in cifraHQ.
- Same model, no bins.
InboundAdjustment,OutboundAdjustment,WarehouseTransferandPhysicalCountexist and work — without bin detail. - Clean upgrade path. Activating P4W on a standalone tenant does not require data migration — the sync contract pauses local movements and authority of the
wheretransfers to P4W. - No penalty. The decision to use P4W is operational, not licensing. The product is complete in both modes.
The technical contract
- Contract frozen in Phase 1a. The P4W contract freezes as first module deliverable — contract ambiguity cascades into delays across all other modules. Zero contract changes after Phase 1a.
- Async messaging with retry. Hangfire jobs dispatch messages to the P4W endpoint; retry policy with exponential backoff. Hard failure only after retries exhausted — and in that case, dashboard alerts.
- Idempotent on both sides. Every message carries a unique identifier; re-applying the same message produces no duplicate effect. Enables replay without corruption.
- Daily reconciliation. A nightly Hangfire job compares inventory balances cifraHQ vs. P4W per SKU and warehouse. Discrepancies land on a dedicated dashboard with drill-down to the responsible message. (Payload format and specific endpoints: see integration guide.)
What this looks like without the boundary
| cifraHQ + P4W | ERP with its own WMS | |
|---|---|---|
| Bin authority | P4W explicit | ERP attempts, poorly |
| Sync contract | Frozen, round-trip verified | Ad-hoc, drift-prone |
| Physical pick | P4W handheld, fast | ERP UI, slow |
| Accounting valuation | Always in cifraHQ | Disputed between modules |
| Reconciliation | Daily job with alerts | Year-end project |
cifraHQ + P4W boundary demo
If you already run P4W or are evaluating it, we walk the full contract in a 60-minute technical session.