Skip to content
SyncMyShop

Industries

Medical and lab supply integrations: UDI data, lots and expiry, and the right buyer for each product

A medical or lab supplier sells devices that carry a UDI, expire by lot and in many cases may only be sold to licensed buyers. The integration takes device data from GUDID and your ERP, decides per account what can be ordered, and records the lot, expiry and serial of every unit that ships.

What medical and lab suppliers run into

  • Who may buy. Prescription devices go only to licensed practitioners and the distribution chain. A store that shows every product to every login sells to the wrong buyer.
  • Every unit has a UDI. The label carries a device identifier and, depending on the device, a lot, a serial, an expiration date or a manufacturing date. Recalls and returns are traced on those.
  • Expiry by lot. Sterile and reagent products expire, and a hospital can refuse stock with less than its minimum shelf life left.
  • Product data with regulatory flags. Latex, sterile, MRI safety and storage temperature are facts with a source, not marketing copy.
  • Lab shipments. Chemicals need a safety data sheet; frozen samples and reagents go out on dry ice, which is a hazardous material by air.

The flows that matter most

Flow Owner What moves In depth
Device data GUDID, PIM or ERP device identifier, Rx flag, latex, sterile, storage, distribution status product data
Account eligibility ERP or CRM license status, catalog per account customer catalogs
Stock by lot and expiry ERP or WMS quantity per lot, expiration date, location stock and availability
Orders store, PunchOut, EDI 850 order lines, PO number, ship-to PunchOut catalogs
Fulfillment WMS, ERP lot, expiry and serial per shipped unit; 856 EDI integration
Hazardous shipments ERP, packing station SDS revision, dry ice weight per package this page, below

Device data from GUDID

The FDA's UDI rule makes the labeler, typically the manufacturer, put a UDI on labels and packages and submit the device to the Global Unique Device Identification Database. A UDI has two parts under 21 CFR 830.3: the device identifier, fixed per model and labeler, and the production identifier, which is the lot, serial, expiration date or manufacturing date that the label carries. Three issuing agencies are accredited by FDA: GS1, HIBCC and ICCBBA.

AccessGUDID publishes every record through a public API: GET /api/v3/devices/lookup.json?di=... returns the device, and parse_udi.json splits a full UDI into its parts. For a distributor this is a product data source that the manufacturer keeps current.

A GUDID device record mapped to store and warehouse rules Seven fields of a device record from the AccessGUDID API decide how the product is sold and picked. The prescription flag limits it to licensed accounts, the lot and expiration flags make the warehouse scan both at picking, the latex and sterile flags become product attributes, and the distribution status publishes or hides the product. AccessGUDID device record Store and warehouse deviceId 00614141209811 issuing agency GS1 rx true lotBatch true expirationDate true serialNumber false labeledContainsNRL true deviceSterile true deviceCommDistributionStatus In Commercial Distribution variant barcode 00614141209811 catalog licensed accounts only 21 CFR 801.109 pick: scan (10) lot required pick: scan (17) expiry required pick: scan (21) serial not on this label attribute: latex contains natural rubber latex attribute: sterile yes status published hidden when no longer distributed Rx only
Seven flags in a public device record set how the product is sold and picked.

The flags lotBatch, serialNumber, expirationDate and manufacturingDate say which production identifiers appear on the label. The integration turns them into picking rules: a device with lotBatch true cannot be packed without a lot scan. rx and otc decide the catalog. When deviceCommDistributionStatus changes, the product is hidden instead of staying on sale after the manufacturer stopped distributing it.

The same date in two formats

A GS1 UDI writes the expiry as YYMMDD after application identifier 17. An ICCBBA UDI can write it as YYYJJJ, a year and a day number. AccessGUDID's own example shows 014032 as February 1, 2014: day 32 is January's 31 days plus one. For a device expiring on March 31, 2027:

GS1     (01)00614141209811(17)270331(10)K2291
ICCBBA  expiry 027090 = 2027, day 31 + 28 + 31 = 90 = March 31

The integration stores both as 2027-03-31, the YYYY-MM-DD format FDA requires for dates on device labels, and compares expiry in that form. A parser that reads 027090 as a YYMMDD date finds month 70 and rejects the line, so the format is taken from the issuing agency of each UDI, which parse_udi returns as issuingAgency.

Lots, expiry and serials through the order

Stock in the store is the sum of sellable lots. A hospital account with a rule of, for example, at least 12 months of remaining shelf life at shipping sees only the lots that meet it; a clinic without the rule sees all of them. The arithmetic is the same as for any stock that counts, with expiry as one more filter.

At picking, the scan of the UDI fills the production identifiers on the fulfillment line. In NetSuite that is the inventory detail of the line, with issueinventorynumber for the lot or serial and expirationdate. A recall of lot K2291 then becomes a query:

Account Ship-to Shipped Lot K2291 units
North Valley Clinic Suite 200, Eugene OR 2026-08-14 40
Lakeside Surgical Center Dock 3, Boise ID 2026-09-02 120
Lakeside Surgical Center Dock 3, Boise ID 2026-09-23 60

220 units of the lot reached 2 accounts in 3 shipments. Without lot capture the same recall goes to every account that bought the item in that period.

For devices FDA designates as tracked under 21 CFR 821, a distributor has to give the manufacturer the UDI or lot or serial, the date received and the source on receipt, and a final distributor also reports the patient-side details on sale. Those are the same fields, sent to one more party.

Who may buy what

21 CFR 801.109 exempts a prescription device from the adequate-directions rule when it is held by the distribution chain or a licensed practitioner and sold only to or on the order of such a practitioner, with "Rx only" on the label. In the store that becomes a catalog question. On Shopify, catalogs are assigned per company location: 3 active catalogs in total below Plus, up to 25 per location and 10,000 per store on Plus. A supplier with an open catalog and an Rx catalog needs 2; the account's license status in the ERP decides which locations get the Rx catalog. A license that expires moves the location back to the open catalog on the next run, with the change in that run's diff.

Lab supply: SDS and dry ice

Lab chemicals fall under OSHA's Hazard Communication standard: a distributor sends the safety data sheet with the first shipment to a customer and with the first shipment after the sheet is revised. How the integration tracks which revision each customer received is on industrial and MRO supply.

Dry ice is UN 1845, class 9. By air, 49 CFR 173.217 requires the net mass of dry ice marked on each package and documentation with the number of packages and the dry ice in each. Up to 2.5 kg (5.5 lb) per package used as a refrigerant is excepted from the other requirements when the package is marked with "Dry ice", the contents and the net weight. A shipment of 4 boxes at 2.0 kg each is 8.0 kg of dry ice on 4 packages, each under the 2.5 kg limit; a box at 3.0 kg is not. The packing station records the weight per box, and the integration puts it on the label data and the shipping record.

Systems in medical and lab supply

System What it holds What to plan for
NetSuite lot and serial items, inventory detail per line, FEFO rotation concurrency 5 on Standard, shared with the WMS and EDI
Shopify catalogs per company location, quantity per location no lot or expiry field on InventoryItem
Coupa and SAP Ariba the buyer's requisition and approval OrderResponse within 60 seconds at Coupa
AccessGUDID public device records read per device identifier; the labeler maintains them

The EDI side, with the 850 in and the 856 with lot and expiry out, is on EDI integration. Expiry dates compared across time zones are on dates and time zones.

What this means for your integration

We build the integration on your ERP, your WMS and your store, with your rules: which products are Rx-only, which accounts hold a license, which lots each customer may receive, how a UDI is scanned at packing. Then we host and run it. Each run has a log and a diff, a fulfillment line without a required lot or expiry waits in a queue with the reason, and the shipped-lot records are there when a recall comes in.

All flows are on ecommerce ERP integration, and the related industries are food and beverage and industrial and MRO supply. The full list is under industries. Tell us which ERP and which buyers you work with, and you hear which of these flows saves the most work for you.

Frequently asked questions

Can we sell prescription devices online?

To the right accounts. Under 21 CFR 801.109 a prescription device is sold only to or on the order of a licensed practitioner, or held by someone lawfully in the distribution chain. The integration reads the rx flag per device and the license status per account from your ERP or CRM, and publishes Rx-only products only in catalogs assigned to accounts with a license on file.

Do we have to submit our products to GUDID?

The labeler does, which is typically the manufacturer. A distributor that only adds its own name and contact details to the label is not a labeler under 21 CFR 830.3. For a distributor GUDID is a source: the public AccessGUDID API returns the record for each device identifier, and the integration reads it into your product data.

Can we tell which customers received a recalled lot?

Yes, when the lot is captured at picking. The integration stores the lot, expiry and serial from the UDI scan on each fulfillment line, so a recall of one lot is a query over shipped lines that returns accounts, ship-to addresses, dates and quantities. Without the scan, the ERP only knows the item, and every customer who bought that item is on the list.

Do hospitals order through PunchOut or EDI?

Both are common. A buyer on Coupa or SAP Ariba punches out to your store over cXML and sends the approved order as an OrderRequest; a buyer ordering from its own ERP sends an X12 850. Both land in your ERP as the same sales order. See PunchOut catalogs and EDI integration.

How is dry ice handled on lab shipments?

As data on the shipment. By air, 49 CFR 173.217 requires the net mass of dry ice marked on each package, and the shipping documentation names UN 1845, class 9, the number of packages and the dry ice per package. The integration carries the dry ice weight per package from the packing station to the carrier label and the shipping record.

Tell us what you need

Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.

  • You know the price and the timeline before you commit to anything
  • We work out the connection that takes the work off your hands
  • We handle the build, hosting, monitoring and maintenance
  • Your team has less information to retype and fewer discrepancies to chase

Suppliers, products, orders per day, a rough estimate is fine.

Or email directly: carsten@syncmyshop.com