This route is live for a clinic’s own key, on any Team, Business (Pharmacy/Diagnostics editions)
or Enterprise plan with API access — no add-on or agreement needed, since it carries no patient
data. The developer dashboard’s own Partner codes page (for a workspace managing its codes across
every clinic it’s connected to, rather than one clinic uploading its own) is a separate path: it
checks a CSV file row by row before anything is sent, then uploads it and shows what matched, what is
waiting for a pharmacist’s confirmation and what did not match. It needs the Admin role or higher in
the workspace.
Recognized identifier systems
An identifier system not in this list is refused for the whole request — never a silent non-match.
Uploading a list
inventory.items:write (there is no separate “codes” permission — managing your own code list is treated
the same as managing the catalogue). Accepts up to 1,000 rows in one request.
code (your own value) and may supply any of barcode, nafdac_no, ndc, rxcui, name,
strength, form, pack_size. Uploading a code you’ve already sent updates it — a repeat is never rejected as a
duplicate, and always resolves to the newest values you sent.
How a row resolves
Once a code is
linked, checking availability by system: "partner", value: "SKU-10021" resolves
through your mapping to whichever of the connected pharmacy’s items it points at.
An unmapped or unconfirmed code answers
matched: false on availability — the same as any other code the
platform doesn’t recognize. It never answers as if the medicine were out of stock; “we don’t know what this code
is” and “they have none” must never look the same.