AI-native · Compounding & fulfillment pharmacies

One order,
one continuous flow.
Intake to recall.

Pharmacy Flow is the operating system for compounding and fulfillment pharmacies. Intake → clinical review → batch → QC → serialized pack → ship → recall, on one record whose lifecycle is enforced in the database — plus a public directory of who makes, compounds and dispenses every medicine, and an RFQ marketplace.

Directory listings
116,267
Medicines indexed
11,527
Compounding pharmacies
6,330
Free trial
14 days

Directory counts as shown on pharmacyflow.ai/directory, compiled from the FDA National Drug Code Directory and the NPPES registry. Trial length from the app's signup flow.

Pharmacy Flow dashboard: orders by stage, holds, inventory alerts and today's production for one facility

Real product capture on synthetic demo data, September 2026.

Who it's for

Built for pharmacies that make medicine, not just dispense it.

The same record structure runs a patient-specific 503A fill and a 503B office-stock batch. Pick your model to see how the flow applies.

Also: inventory management, WMS & control tower, local manufacturing and Europe.

One order, one continuous flow

Seven stages. One record. Nothing re-keyed.

Every screenshot below is the real product. The order that arrives at stage one is the same row that ships at stage six — and the same row a recall would find at stage seven.

  1. 1 · Intake
  2. 2 · Clinical
  3. 3 · Batch
  4. 4 · QC
  5. 5 · Serialized pack
  6. 6 · Ship
  7. 7 · Recall
1

Intake & eligibility

Orders arrive from the partner API, the partner portal, a subscription refill or a marketplace award. The API is idempotent on the partner's own order id, so a retry never creates a duplicate. Before an order is accepted, the ship-to state is checked against your licence table — no licence row, or an expired one, and the order is held rather than let through. A controlled-substance flag tightens the gate further.

  • ✓Statuses: Received → Eligibility → Clinical Review → In Production → Packed → Shipped, with On Hold and Cancelled as explicit branches
  • ✓Order routing to a facility by rule; brand and facility stamped on the row
  • ✓Partner webhook order.received / order.held sent from an outbox with retries
Orders workbench filtered by status with brand, facility, ship-to state and eligibility columns
Orders in production: each row linked to its prescription, patient, facility and hold reason
2

Clinical review

The prescription and the order are linked rows, not a free-text note. An order cannot move into production until its prescription is in a filled state; drug-utilisation review runs on the prescription and its findings sit on the record. Pharmacist actions that need a signature go through the approvals inbox, and each signature is applied only after the signer re-enters their password.

  • ✓Prescriptions, patients, subscriptions and customer-service cases in the same workspace
  • ✓Role permissions stored in Postgres; a technician cannot also release QA
  • ✓Every status change writes a history row with the acting user — the raw material for stage cycle times
3

Formulation & batch

A master formulation generates every strength and fill volume as a controlled variant with its own bill of materials and cost. Planning a batch consumes specific raw-material lots with quantities, so genealogy is a table you can query rather than a list you hope is complete. A batch enters production as In Process and only becomes Released after QC — and its beyond-use date can never exceed the shortest component expiry.

  • ✓Formulations, batches, cost & margin per variant (compounding software)
  • ✓Purchase orders, receiving, QA & putaway, FEFO lots and locations, inter-site transfers
  • ✓Demand & planning from order history (inventory)
Batch planner: choose a formulation variant, batch size and the raw-material lots to consume
Quality dashboard: open deviations, CAPA, change controls, environmental monitoring and QC tests
4

QC & release

The quality system is part of the same database as production, not a binder beside it. QC tests, deviations, CAPA, change control, environmental monitoring and document control each carry their own lifecycle; the finished lot's own status graph is enforced by a trigger, so a lot on hold cannot be picked, and a lot cannot be picked before it is released.

  • ✓Release signatures are Part 11-style: user identity plus a fresh password check at the moment of signing
  • ✓Approvals inbox and task inbox so nothing waits in email
  • ✓Read the security & compliance page for the full list of controls
5

Serialized fill, pack & verify

At the fill station the line claims a released finished lot (FEFO, atomic — the same unit can never be committed twice), mints a GS1 serial for the unit and writes a commissioning event. Pack and verify each add their own event. An order cannot reach Shipped unless pack-verify passed; that rule lives in the database, not in the screen.

  • ✓Production line, dispensing, pack verify and label printing as shop-floor screens sized for touch
  • ✓Per-unit journey: commissioned → packed → verified → shipped (how serialization works)
  • ✓A Control Tower dispatches receive / putaway / pick / pack tasks to people and machines through one task API (fulfillment automation)
Pack-verify station: scan the unit serial, confirm product and patient, pass or fail
Shipping and logistics: parcels by carrier, status, cold-chain flag and last scan
6

Ship & track

Parcels carry the carrier, tracking number and a cold-chain flag; temperature readings attach to the parcel. Carrier scans are de-duplicated and cascade to the order and its units, and a parcel on QA hold is never marked delivered. When delivery lands, the partner's webhook receives order.delivered.

  • ✓Returns & RMA with disposition; customer-service cases threaded to the order
  • ✓Cold-chain evidence per parcel (cold-chain guide)
  • ✓Partner-facing tracking in the white-label portal (mail-order)
7

Recall — per unit, not per guess

Because every unit is serialized and every batch records which raw lots it consumed, a recall starts from any handle — a raw-material lot, a batch, a finished lot or a single serial — and resolves to the exact units, orders, patients and parcels affected. Disposition is tracked per unit. Trace & Recall and Unit Trace are standard screens, not a services engagement.

  • ✓Recall by unit, lot or batch, with per-unit disposition
  • ✓Unit Trace: the EPCIS-style event ledger for any serial
  • ✓Event log across the tenant for audit
Recalls: scope a recall from a lot or batch and see the affected units, orders and parcels
The compliance spine

Enforced by the database, not by good intentions.

Most systems record compliance. Pharmacy Flow makes the wrong thing impossible at the row level, so an audit is a report and not a reconstruction. These are the mechanics, not slogans.

Security & compliance detail →
Postgres-enforced lifecycles

Order and finished-lot status graphs live in an allowed-transitions table. A BEFORE UPDATE trigger rejects any move not in the graph and enforces interlocks: Shipped needs pack-verify, Packed needs a released lot. Every change writes a history row.

Part 11 e-signatures bound to re-authentication

Signing an approval requires the signer's identity and a fresh password check at that moment. If re-authentication fails, no signature is applied. Signatures, approvals, events and audit rows are append-only.

DSCSA-style serialization

Each dispensed unit gets a GS1 SGTIN (GTIN + serial) at commissioning and an EPCIS-style event at fill, pack, verify and ship. Serial, order number, batch number and tracking number are unique by index and issued by database sequence.

Recall per unit

Batches record which raw-material lots they consumed and in what quantity; units record which finished lot they came from. A recall is a query across that graph, with per-unit disposition.

Fail-closed licence gate

API intake checks the ship-to state against your licence table and holds the order when no valid licence exists. Controlled-substance orders require a licence that explicitly allows them.

Tenant isolation & roles

Row-level security on every tenant table; role permissions stored in Postgres; anonymous writes revoked. Public endpoints are rate-limited by token bucket in the database.

Public directory & RFQ marketplace

Who makes it. Who compounds it. Who dispenses it near you.

A free, public directory of pharmacies and drug manufacturers, compiled from the FDA National Drug Code Directory and the NPPES national provider registry. Search a medicine, a brand, a pharmacy or a city — no account needed.

Listings
116,267
FDA NDC labelers
7,062
Compounding pharmacies
6,330
Medicines indexed
11,527

Counts as displayed on /directory; sources FDA NDC Directory and NPPES, last refreshed August 2026. Unclaimed listings are not verified by Pharmacy Flow and carry no pricing.

Directory page for semaglutide in Texas: FDA labelers, compounding pharmacies with it in a claimed catalog, and pharmacies nearby
/directory/drug/semaglutide?state=TX — made by, compounded by, dispensed near you.
Finance & insights

The numbers come from the same rows the floor writes.

Income statement, receivables and payables, a weekly business review and product, geography, growth and inventory analytics are SQL views over the operational tables — not an export. Cost & margin is computed per formulation variant from the component lots a batch actually consumed. AI Insights summarises what changed and why in plain language.

  • ✦Financial dashboard, income statement, AR, AP
  • ✦Weekly review and investor metrics
  • ✦Product, geographic, growth & retention, inventory trends
  • ✦Cost & margin per variant; operating-cost and labor inputs
Financial dashboard: revenue, gross margin, receivables and payables for the period
Partner portal home for a telehealth brand: orders, shipments, subscriptions, performance, billing and support
White-label partner portal

Every brand you fulfil for gets its own front door.

A telehealth or B2B partner logs into a portal scoped to their brand: submit orders, watch shipments, manage subscriptions, see performance, read statements and open support cases. They see only their rows. Everything they submit lands in the same order table your floor works from.

Portal screens: orders, submit, shipments, track, subscriptions, catalog, performance, billing, notifications, support, settings. Telehealth order API →

Pricing

Free to be listed. Free to try. Quoted to fit.

There is no published price list. The platform is priced per operation by facility count and order volume, and you can try all of it first.

Directory listing

Be found by buyers; publish your catalog; answer enquiries; bid on RFQs.

Free

No fee to be listed, no fee to claim.

Find your listing
Platform trial

Every module, your own organization, provisioned on signup or when you claim a listing.

14 days free

No card required to start.

Start a free trial
Platform subscription

Single site to multi-facility network, with the partner portal and API.

On request

By facility count and monthly volume.

Get a quote

What each option includes, module by module →

Frequently asked questions

What is Pharmacy Flow?+

A web-based operating system for compounding and fulfillment pharmacies. One record carries an order from intake and eligibility through clinical review, batch production, QC release, serialized pack-verify, shipping and, if ever needed, recall. It also publishes a free public directory of pharmacies and drug manufacturers with an RFQ marketplace.

Who is it for?+

503A compounding pharmacies, 503B outsourcing facilities, GLP-1 and telehealth fulfillment pharmacies, specialty, sterile, hormone-therapy, veterinary and mail-order pharmacies, and multi-site networks. See who it's for.

Is there a free trial?+

Yes. Signing up, or claiming your directory listing, provisions your own organization with a 14-day free trial of the full platform. There is no fee to be listed in the directory and no fee to claim a listing.

How much does it cost?+

Directory listings and claims are free. The platform is priced on request by facility count and order volume; there is no published price list. Pricing explains what is included; request a demo and we will quote it for your operation.

How is compliance enforced rather than just recorded?+

Order and lot status transitions are enforced by Postgres triggers from an allowed-transition table, with a history row per change. Electronic signatures require a fresh password re-authentication at the moment of signing. Every dispensed unit carries a GS1 serial with an EPCIS-style event for commission, pack, verify and ship, so a recall can be scoped per unit. Details on security & compliance.

Can telehealth partners submit orders automatically?+

Yes. The order API accepts orders per brand with idempotency on the partner's order id, checks the ship-to state against your licences before accepting, and pushes order.received or order.held events to the partner's webhook with retries.

See a real order run intake to carrier lane.

A working platform, not a slide deck. Book a walkthrough on your own workflow — or start with the directory and the free trial, no call needed.

Free 14-day trial on signup · Free to claim a listing · Log in