Skip to main content
Use orders when a clinician asks about an existing order, pharmacy availability or price. Shopping is optional; it is not a routine prerequisite for prescribing.

orders

Fetch orders and available pharmacies without changing a record. Fetch one order by ID:
Or fetch submitted orders for a synced patient:
The response contains an orders array, plus any warnings and review link. Select the intended order before requesting pharmacy options; don’t mix offers from different orders.

Compare pharmacies

Request options for the selected order, for example pickup near a postal code:
Read availablePharmacies.options and use nextOffset for the next page. Preserve sponsored and matching labels, price source and delivery estimates. A missing price is not zero, and an offer is not a guaranteed price. Without a pharmacy filter, results can include sponsored options. Order status can remain available when shopping is unavailable. Report the returned warning and keep the successful status result; don’t substitute another order’s offers or use a mutation to search for pharmacies.

Pharmacy changes

Use order only after the user explicitly chooses a destination for that order. Resolve the pharmacy ID from orders or another trusted source:
Send the pharmacy change separately from patient, prescription or submission changes. Clarify an ambiguous destination, but don’t ask for a pharmacy just because none was supplied. Omission keeps the existing assignment; pharmacy.none: true requests removal and should only be used when explicitly requested. Inspect applied and unapplied changes and the resulting pharmacy. Read the order again with orders to confirm the assignment. Photon decides whether the order can be routed or rerouted.

Explain the current status

If fulfillment is null or its history is empty, don’t claim the pharmacy received the prescription. Report the last confirmed milestone. Use webhooks when your integration needs ongoing updates.
Last modified on November 1, 2026