NETWORK · SUPPLIER PORTAL

Your factories, in your record.

The supplier you work with has 200 WhatsApp messages about a lot, a screenshot of a packing list in an email thread, a counter-proposal sitting in the procurement manager’s inbox, and a scorecard they’ve never seen. Your “system of record” knows none of it — it’s a fiction maintained by paraphrasing the conversations into the order after the fact. Audit pulls the email, if it can find it.

The Supplier Portal in TradeOS lets your manufacturers and suppliers work directly in your record — the same database, scoped to what they need to see. They counter-propose terms inside the PO. They mark production stages live. They issue invoices and see AR. Your scorecard of them is visible to them. Multi-tenant identity: one supplier login, many operator contexts, each one isolated. Data redaction enforced in the service layer, not the UI.

Book a demoSee pricing

Portal sections

Home, orders, production, finance, contracts, samples, and 4 more

Production stages

Scheduled, in production, QC, packed, ready, shipped

Multi-tenant identity

One login, many operator contexts

Free seats per tier

5 in Starter · unlimited in Enterprise

The real supplier dashboard — same composition every supplier sees. Greeting · action prompt · 4 KPIs · 5 cards arranged in two columns. Counter-proposals are real; scorecard is real; production stages are real.

THE 3 AM PROBLEM

What “supplier collaboration” really looks like today.

Operators don’t lack tools — they have too many. The supplier ends up choosing the channel that’s easiest for them (WhatsApp, a screenshot, a phone call) and the operator’s system of record decays into a fiction.

01 · STATUS LIVES IN 200 WHATSAPP MESSAGES

To know where the lot is, you scroll WhatsApp.

The factory replies with a photo and three emojis. Two days later you ask again. There’s no system of record — there’s a chat history and someone’s memory of it. Information gets paraphrased into the order in arrears, if at all.

WhatsApp · 247 msgsSystem of record
asked 3× this week·same lot

02 · COUNTER-PROPOSALS DON’T LIVE IN THE PO

“Can we ship May 12 instead of May 09?” lives in an email thread.

The supplier wants to negotiate a term. The operator gets an email. They reply. Three days later neither side remembers what was agreed, and the PO record still shows the original terms. Audit pulls the email; if it can find it.

Email threadPO record
“What did we agree on?”·re-email

03 · SCORECARDS BREED MISTRUST WHEN HIDDEN

Suppliers learn they were being measured during the QBR.

“You’re below 85% on QC pass” arrives in a quarterly business review. The supplier didn’t know that metric existed. Three months of bad faith built up because the operator never showed the score in real time. Trust breaks the same week.

Operator scorecardSupplier view
“first I’m hearing of this”·90 days late

WHAT SUPPLIERS DO IN THE PORTAL

Five things your suppliers actually do — in your record, not in WhatsApp.

Each maps to a real endpoint in the supplier portal API. Three additional capabilities — QC photo upload, lot notes, one-tap delay reporting — are on the roadmap with the buttons currently rendering as “Coming soon” in the production UI.

01 · RECEIVE POS

The PO arrives the moment the operator confirms it.

Full line-item detail, lead time, delivery date, document requirements (COC · SDS · COA). No PDF attachment to download — the PO is a row the supplier opens in the portal. The dashboard’s pending-PO count goes up by one; an entry appears in their action prompt; an email-style notification fires if they’re not actively in the portal.

PORD-2026-018
Lines4 · 300K units
Lead42 days
Statuspending_acceptance

02 · ACCEPT OR COUNTER-PROPOSE

Inline negotiation. POST /counter-propose.

The supplier accepts the PO as-is, declines, or counter-proposes a modified ship date / quantity / lead time / unit cost. The counter-proposal goes back to the operator with reason and timestamp; if accepted, the PO state machine advances; if declined, the supplier can iterate. Real endpoint at POST /api/portal/supplier/purchase-orders/:id/counter-propose.

ActionCounter-propose
FieldShip date
From → ToMay 09 → May 12
ReasonMaterial lead time

03 · TRACK PRODUCTION · 6 STAGES

Scheduled → In production → QC → Packed → Ready → Shipped.

Real lot status machine on production_lots.status with six progress stages. As status changes — operator updates manufacturing stage, QC decision passes or fails, lot is packed and released — both parties see the same record. The QC stage handles three sub-states: qc_pending, qc_passed, qc_failed.

LotPL-2026-071 · L3
StageIn production
Progress2 of 6 stages
QC dueApr 24

04 · VIEW PERFORMANCE SCORECARD

Same scorecard the operator uses to evaluate you.

Four rate metrics, displayed identically in the supplier’s portal and the operator’s manufacturer view: On-time dispatch rate, Inspection pass rate, CAPA closure rate, Certification compliance rate. Rolling windows configurable (90 days default). No hidden criteria; no QBR ambush.

On-time dispatch96%
Inspection pass94%
CAPA closure88%
Cert compliance100%

05 · ISSUE INVOICES + TRACK AR

Six Finance sub-tabs. Invoices, proformas, payments, AR aging.

The supplier issues an invoice or proforma against an accepted PO, sees payment status from the operator’s accounting events, tracks AR aging buckets, and downloads statements. Live data, same numbers the operator’s AP team is looking at — no waiting for the monthly statement email.

InvoiceINV-2026-114
Amount$186,420
TermsNet 30
StatusScheduled · May 28

10 SECTIONS · ONE PORTAL

Every section the operator has — scoped to what the supplier needs.

The supplier portal isn’t a “lite” version of the operator app. It’s a full 10-section workspace with its own dashboard, orders, production, products catalog, compliance certs, documents library, finance with 6 sub-tabs, messaging, tasks engine, and performance scorecard. Same data model; redaction enforced in the service layer.

01

Home

Greeting + action prompt + 4 KPIs + 5 dashboard cards (pending POs, lots needing attention, performance, compliance, recent activity).

02

Orders

Live POs, History, Claims, Analytics. Counter-propose, accept, decline. Each PO opens to a full lifecycle view with status machine.

03

Production

Lot board across all the operator’s orders assigned to this supplier. 6-stage status machine. QC sub-states. Operator-driven status updates.

04

Products

The supplier’s own catalog of items they make + “My Catalog” form for items linkable to operator products. Specs, dimensions, certifications attached.

05

Compliance

Certifications tracking — ISO, CE, FDA, country-specific certs. Expiry calendar. Document attachments. Per-operator “compliance attention” feed.

06

Documents

COC · SDS · COA · BOL · packing lists · audit reports. Versioned per lot, scoped per operator, drilling back to the order they relate to.

07

Finance · 6 sub-tabs

Overview · Invoices · Proformas · Payments · AR Aging · Statements. Same numbers the operator’s AP team sees on their side.

08

Messages

Threaded messaging scoped per operator connection. Attached to entity (order, lot, document). Notifications fan out to email if not in-portal.

09

Tasks

Same task engine as the operator, scoped per user (assignee / assigner / watcher). Counter-proposal acknowledgements, cert renewals, document requests.

10

Performance

4-metric scorecard (on-time dispatch, inspection pass, CAPA closure, cert compliance). Period selector. Per-operator view for suppliers serving multiple operators.

RD-2026-018 · SUPPLIER VIEWredactFor("order", row, "supplier")
What they seeWhat’s redacted
PO idRD-2026-018visible
Line items300K nitrile gloves · 8milvisible
Lead time42 daysvisible
Ship dateMay 09, 2026visible
Doc reqsCOC · SDS · COAvisible
End client▪▪▪▪▪▪▪▪▪▪redacted
Order value▪▪▪▪▪▪redacted
Cost basis▪▪▪▪▪▪redacted
Margin▪▪▪▪▪redacted
Other suppliers▪▪▪▪▪▪▪▪redacted
5 OF 10 FIELDS REDACTED→ enforced in the service layer · not the UI

DATA ISOLATION

What suppliers don’t see is the whole product.

A supplier portal that leaks the operator’s commercial position is a supplier portal you don’t ship. redactFor("order", row, "supplier") is a real function in portal-shell/redaction.ts that strips margin, cost, end-client, and other-supplier data before the row leaves the database. Same pattern for shipments, invoices, documents. There’s no Settings toggle, no UI permission to misconfigure.

×

Only their own relationship with you

Their lots, their POs, their docs, their scorecard. Nothing else on your record exists for them.

×

Never your other suppliers

Crescent doesn’t know you also work with Linhai or Sapphire on the same product line.

×

Never your end clients

The factory doesn’t know who the gloves go to. The BOL ships under a forwarder; the consignee is yours, not theirs.

×

Never margin, pricing, or aggregate business

Order value, cost basis, margin, total-of-business — none of it crosses the redact boundary.

×

Enforced at the service layer

Not the UI. The redactFor() happens before the row leaves the database — there is no Settings toggle to misconfigure, no CSV path that quietly leaks.

MULTI-TENANT IDENTITY

One supplier login. Many operator contexts. Each one isolated.

The external_memberships table joins one global users row to multiple external_organizations. A supplier admin who works with you and with another operator on TradeOS uses one login. The data isolation per operator is enforced architecturally; per-org roles (supplier_admin, supplier_user, qc, accounting, viewer) apply across all of that org’s operator connections.

01

One identity, many operators

A supplier admin doesn’t manage three logins for three operator portals. One global users row in the database, multiple external_memberships rows joining to their employer’s external_organization. The operator context switcher in the topnav switches scope.

02

Per-org roles

Five role types per portal kind. Supplier portal roles: supplier_admin, supplier_user, qc (QC inspector only), accounting (Finance section only), viewer. Role assigned per external_organization, not per operator-connection.

03

No cross-context leakage

When the supplier user is in your context, none of the other operator’s data is queryable. The external_memberships.status field (invited / active / suspended / revoked) gates access per relationship. Suspend the connection from your side, you stop appearing in their context switcher.

04

Standard auth foundation

The supplier portal uses the same global users table as the operator app (per migration 104). SSO, passkeys, password reset, MFA — all the same machinery. There is no separate external_users table to break the “one account, many contexts” mental model.

RADICAL TRANSPARENCY

Your scorecard of your supplier is visible to your supplier.

Hidden scorecards breed mistrust. Suppliers who discover they were being graded on criteria they didn’t know about feel betrayed. TradeOS shows the four rate metrics the operator computes to the supplier directly. They see the trend, the period, and how it compares to the prior window. Suppliers who know how they’re being scored can improve.

“The first time a supplier sees their scorecard, they get quiet. Two weeks later their inspection pass rate is up 4 points.”

“Three months in, they’re asking us to tighten the criteria — because they know how to beat them, and they want the rating.”

— HEAD OF OPERATIONS · MERIDIAN TRADING CO · 38 SUPPLIERS

Crescent Mfg · as scored by Redwood Distrib.SUPPLIER VIEW

PERIOD · TRAILING 90 DAYSUPDATED 02 MAY 2026

On-time dispatch rateLots shipped on or before promised dispatch date · trailing window

96%▲ 1.2

Inspection pass rateFirst-pass QC acceptance · includes AQL major findings

94%▲ 3.4

CAPA closure rateCorrective & preventive actions closed within target window

88%▼ 1.8

Cert compliance rateRequired certifications current as of inspection date

100%▲ 0.0

FOUR RATE METRICS · TRAILING WINDOWS · NO HIDDEN WEIGHTSEXPORT · NOTIFY ME

ON THE ROADMAP

What’s coming to the Supplier Portal.

The current portal is v1 — 10 sections shipped, counter-proposal flow live, scorecard visible, redaction enforced, multi-tenant identity. Several capabilities the marketing team would love to claim are explicitly on the roadmap and currently render as “Coming soon” in the production UI.

01

QC photo upload from the factory floor

The “Upload Photo” button on lot detail currently renders disabled with a “Coming soon” tooltip. Phase 5D backend service spec is drafted; UI build pending.

02

Inline lot notes and comments

The “Add Note” button is disabled. Supplier-to-operator messaging works at the order level; per-lot inline notes pending.

03

One-tap delay reporting from the UI

The backend endpoint exists (POST /api/portal/supplier/production/lots/:id/delays) and is fully tested. The “Report Delay” button on lot detail is disabled pending the UI design pass. Operator-side delay visibility on the dashboard is live.

04

Multi-language supplier portal strings

The platform’s i18n foundation has 122 locale files. Supplier-portal strings are populated in English only at v1; trade-domain translation pass for Mandarin, Vietnamese, Spanish, Turkish, Bahasa Melayu, Arabic (with RTL) ships with the next supplier portal release.

05

Offline-tolerant photo upload

Service worker shell + PWA manifest are live (you can install the portal to a phone home screen today). Photo upload queue with background sync pending alongside the QC photo upload feature itself.

06

Auto-pay rails on invoices

Suppliers issue invoices and track payment status today via the Finance section. Auto-pay rails — direct ACH / SWIFT settlement initiated from the portal — are slated for the post-launch wave.

07

Atlas in supplier WhatsApp

Atlas is live in the operator app. WhatsApp Business integration is a Business-tier feature on the integrations backlog; Atlas-via-WhatsApp scoped to supplier context ships after the integration lands.

08

Bot Studio · supplier event bots

Bot Studio framework not yet built. When it ships, supplier portal events (lot status changes, document uploads, delay reports) will be first-class subscribable triggers.

VS. ALTERNATIVES

Where the Supplier Portal fits versus the things suppliers already use.

CapabilityTradeOS SupplierWhatsApp + ExcelFlexport supplier portalSAP AribaCustom extranet
Counter-propose terms inside the PO record✓ POST endpoint— in emaillimitedDIY
Performance scorecard visible to the supplier✓ 4 rate metricsinternalSLA grades
Multi-tenant identity (one login, many operators)✓ external_memberships✓ chat— per-operator— per-tenant— per-portal
Data redaction enforced at service layer✓ redactFor()— group chat leakstenant-leveltenant-level— DIY
Six-stage production lifecycle visibility✓ 6 stages live— freeform3 stages✓ deepDIY
Free supplier seats per operator tier✓ 5 → ∞✓ chat is free— per-seat— per-seat✓ in-house
PWA installable to a phone home screen✓ manifest live✓ WA app— web only— desktop— rarely
QC photo upload from the factory flooron roadmap✓ chatdesktop onlydesktop only
Multi-language portal (translated, not MT)on roadmapuser typesEN + 4✓ 12+

WhatsApp is the actual incumbent — and it wins on familiarity for a reason. Suppliers are fluent in it. The Supplier Portal isn’t trying to replace WhatsApp by being more impressive; it’s trying to replace it by being more useful for the things WhatsApp is bad at: tracking what was agreed, scorecard visibility, document versioning on the right lot, and keeping the operator’s commercial position invisible. The roadmap items (QC photo upload, multi-language, offline queue) are flagged honestly so operators know what’s shipped today vs what’s planned.

FAQ

Questions operators ask the first time they see the portal.

The five things factory managers, ops leads, and trading-company owners hit us with on the demo call.

Five workflows ship in v1: (1) receive purchase orders the moment the operator confirms them, with full line-item detail, lead time, and document requirements; (2) accept or counter-propose terms via a real negotiation flow (POST /portal/supplier/purchase-orders/:id/counter-propose), no email back-and-forth; (3) track production progress through six stages — Scheduled → In production → QC → Packed → Ready → Shipped — visible to both parties on the same lot record; (4) view their own performance scorecard with the same numbers the operator sees; (5) issue invoices and proformas, track payments, view AR aging — six Finance sub-tabs in total. QC photo upload, lot notes, and one-tap delay reporting are on the roadmap (the buttons render as “Coming soon” in the current UI).

Send us your supplier list and one in-flight PO. We’ll set up a sandboxed Supplier Portal and walk one of your suppliers through it in 30 minutes.

Send a CSV of your top suppliers and one open PO. We’ll spin up a sandboxed Supplier Portal with your tenant’s branding, your supplier list as external_organizations, and walk a real supplier through receiving the PO, counter-proposing terms, marking production stages, and issuing an invoice. No demo data. Your suppliers, your PO.

Book a demoTalk to sales

See the full Network — 4 portals, one record →

Supplier Portal · Your factories, in your record. | TradeOS