Place Orders

Optional integration for routing orders to a pharmacy

After writing prescriptions a provider can select a pharmacy and submit an order within the Photon App or Elements UI. Orders can also be submitted programmatically.

Typically partners automate Order requests to save provider time or ensure that a certain action is completed before fulfillment (e.g. charging a credit card). Orders may contain fill requests for multiple prescriptions. OTC medications may also be added at this step.


Prescriptions written with Photon are not assigned or sent to a specific pharmacy until an Order is placed. This action can be completed programmatically.

A preferred pharmacy can be specified if a patient choses, otherwise Photon will route the prescription to the the most optimal pharmacy.

Create an Order

A request to the createOrder mutation will place a new order in Photon. This will begin

Below is an example of how to create an order from a backend. Refer to authentication guide for instructions on how to authenticate these requests.

const graphQLClient = new GraphQLClient("", {
  headers: {
    authorization: "YOUR_AUTH_TOKEN",

const query = gql`
  mutation createOrder(
    $externalId: ID,
    $patientId: ID,
    $fills: [FillInput],
    $address: AddressInput,
    $pharmacyId: ID
) {
    externalId: $externalId,
    patientId: $patientId
    fills: $fills
    address: $address
    pharmacyId: $pharmacyId
  ) {

const variables = {
  externalId: "YOUR_ORDER_ID", // optional
  patientId: "pat_123",
  fills: [{ prescriptionId: "rx_456" }],
  pharmacyId: "phr_789",
  address: {
    street1: "123 Main St",
    postalCode: "11111",
    country: "USA",
    state: "NY",
    city: "Brooklyn",

const results = await graphQLClient.request(query, variables);