Customer portalyour customers and their auditors, self-served.
A branded portal where your customers see only their orders, their lots, their CoAs and their pack docs. Their auditor logs in to see the same view, read-only, with no email chain.
Stop emailing PDFs. Give your customers a window.
Customer service spends hours every week answering "where's our order?", "can you resend the CoA?", "what lot was in the shipment?". The V5 customer portal answers all three in real time — under your brand, your domain, your terms — and never leaks a row that isn't theirs.
One secure sign-in, everything about their account in one place
Your customer's nominated contacts sign in to V5 Ultimate and land on a tabbed dashboard scoped to their account — orders, shipments, on-hand inventory, quality documents, complaints and integrations. They never see another customer's data, your costs, or your internal workflows.
- Tabs for Overview, Orders & shipments, Inventory, Quality, New complaint, Integrations and Help
- Filter orders by status — draft, confirmed, picking, packed, partial, shipped, closed, cancelled
- Footer reminds them it's running on a 21 CFR Part 11 & ISO 9001 platform
- You can "View as customer" from the admin side to see exactly what they see
Invite the right people, give each the right access
Every customer record holds as many contacts as you need. Tag each one with a role — buyer, AP, QA, receiving — and invite them to the portal in one click. Roles drive what they see and which notifications they receive, so AP only gets invoices and QA only gets CoAs and complaints.
- Unlimited contacts per customer, archive without losing history
- Per-role notification routing for orders, shipments and quality
- One-click "Invite" sends a secure activation link
- Revoke or re-activate access any time
They see exactly what you expose. Not one row more.
Row-level security scopes every query at the database — not in application code, where a single missed WHERE can leak the whole multi-tenant table. There is no admin button to override it.
- →Open orders, promise dates, in-progress batches
- →Shipment ETAs and carrier tracking
- →Lots & serials shipped to them — only theirs
- →CoA, SDS, allergen, kosher / halal certs by SKU
- →Recall notifications scoped to their lots
- →Their own POs, contracts, terms
- →Any row of any other customer — enforced at the DB
- →Your COGS, margin, supplier names or prices
- →Internal deviations, CAPAs, non-conformances
- →Your other lots, batches or WOs
- →Operator names or kiosk-level activity
- →Anything your tenant admin hasn't ticked 'expose'
- →Per-document expose toggle (CoA yes, deviation no)
- →Per-customer feature flags (trace, portal API, SMS)
- →Per-user role within their own org (admin / viewer)
- →Auditor read-only role with scoped one-time token
- →Quiet-hours and channel preferences per recipient
- →Audit trail of every view, download, attempted access
Customer pastes a lot. Portal returns the chain. Scoped to what they're entitled to see.
LOT-PA4-26-0218 · ‘arrived June 4, our QC needs the CoA + source batch’
Shipment SHP-22914 → Pack-out WO-PCK-44182 → Bulk WO-MFG-44159 → BMR-44159.v3 → CoA-B44871 (signed)
Rendered from the immutable eBMR snapshot. Original SHA-256 verified. ‘Re-issued 2026-06-04’ stamp.
| Spec | Range | Result | Pass |
|---|---|---|---|
| Assay | 98.0–102.0% | 99.4% | ✓ |
| Moisture | ≤ 0.50% | 0.31% | ✓ |
| pH (10% sol.) | 5.5–7.5 | 6.2 | ✓ |
| Heavy metals | ≤ 10 ppm | < 2 ppm | ✓ |
| TAMC | ≤ 1000 cfu/g | 12 cfu/g | ✓ |
| E. coli | absent / 10g | absent | ✓ |
Re-issued to portal · 2026-06-04 09:17 · viewer m.tan@northvale
The CoA they see in 2028 is byte-identical to the one you released today.
The portal does not render from a separate template engine that can change between then and now. It renders from the immutable eBMR snapshot taken at release — the same snapshot QA signed. A re-issue stamp makes clear when they re-pulled it; the underlying record is hash-verified.
- Renders by SKU, lot, serial, shipment, or PO
- SDS, allergen, kosher / halal, organic — same snapshot model
- 18-month-old CoA? Same document, plus a re-issue stamp
- No 'we couldn't find the CoA we sent in 2023' findings
The email chain that used to take a week is now a link.
Token authorizes one audit, not the workspace. Expires by date and on submit.
Customer auditors and 3rd-party regulators don't need an app account.
Every view, every blocked attempt, every signature is logged with full context.
An auditor fail still auto-opens a finding and a linked CAPA on your side.
Every view, every download, every blocked request — audited.
When a customer's auditor asks "who saw that CoA, when?" you answer in three clicks. Cross-tenant access attempts are recorded too — useful evidence that your isolation works. Channel preferences live per recipient: email, SMS, quiet hours per timezone, one-click opt-out.
Customers who want to wire your data into theirs don't need a meeting. They need a key.
curl https://portal.northvalepharma.com/api/v1/orders \
-H "Authorization: Bearer pk_live_…" \
-H "Accept: application/json"
# 200 OK
[
{ "po": "PO-2026-3318",
"status": "in_production",
"promise_date": "2026-06-18",
"lots": ["LOT-PA4-26-0218"] },
{ "po": "PO-2026-3307",
"status": "qc_release_pending",
"coa_url": "/api/v1/coa/CoA-B44871" }
]POST https://erp.northvalepharma.com/v5-hook
X-V5-Signature: t=…,v1=…
Content-Type: application/json
{ "event": "shipment.dispatched",
"id": "evt_2026_06_02_44918",
"shipment": {
"id": "SHP-22914",
"po": "PO-2026-3284",
"carrier": "UPS",
"tracking": "1Z9V8…",
"lots": ["LOT-PA4-26-0218"]
} }Same RLS as the UI. A key cannot see another tenant.
Generate, rotate, scope, revoke — all in the portal admin.
Failed deliveries retry with backoff; dead letters surface.
Hand it to their dev team. Done in an afternoon.
Three of the most common customers, one portal model.
Stops calling for CoAs — pulls them by lot from the portal. 80% drop in inbound 'where's my doc' tickets in the first month.
Branded portal with the manufacturer's logo. Retailer QA sees only their lots. Trace queries answer in seconds, not days.
Brand owner sees their batches, certificates and compliance state. Cannot see other customers of the same co-manufacturer.
Edge cases your compliance lead asks about.
The questions always come up.
Is the portal a separate product?
No — it's a view on the same database, scoped by row-level security. The documents customers see are the live documents in your QMS, not exports that drift out of sync.
Can customers download data via API?
Yes — a scoped REST + webhook API per customer for orders, shipments, CoAs and trace queries. Same auth model as the UI: a customer key cannot reach another tenant's row.
How is this different from emailing PDFs?
PDFs in inboxes are lost in hours; portal access is queryable forever, signature-verified, and audit-logged. Findings like 'we couldn't find the CoA we sent in 2023' disappear.
Do we own the customer's portal data?
Yes. The portal is a view on your tenant. If a customer churns, their access is revoked; the data stays with you, including the audit trail of every view.
Your brand. Their window. Your audit trail.
A read-only window for every customer and every auditor — branded, isolated at the database, audit-logged forever.
Just ask V5 — it knows the product cold.
Pick a question or type your own. V5 answers grounded in how customer portal — orders, traceability, certificates, notifications | v5 ultimate actually behaves on the floor.
The rest of the platform this plugs into.
V5 isn't a bolt-on. Every module shares the same data, the same audit trail, the same operator. Pick where to look next.
MES
Operator-led execution: scan-gated dispense, step-by-step kiosk, equipment + scale integration, live yield. Built for regulated process & discrete manufacturing.
WMS
Receiving, putaway, transfers, cycle counts, picks, pack & ship — all lot-aware, bin-accurate, FEFO/FIFO-enforced and barcode-driven.
QMS
Built-in QMS: deviations, CAPA, supplier scorecards, in-process AQL, release-by-exception. Aligned with 21 CFR 211/820, ISO 13485 and 111.
Got questions, or want to see it on your shop floor?
Ask V5 — our code-aware assistant — or spin up a workspace. Both are free.

