---
title: "Get an order"
method: GET
path: "/v1/commerce/orders/{orderId}"
tags: ["Commerce"]
---

# Get an order

`GET /v1/commerce/orders/{orderId}`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/commerce/orders/{orderId}`
- Auth: HTTP bearer

One order with every line item, tax line and refund. Needs orders.read.

## Path parameters

- `orderId` string, required

## Query parameters

- `accountId` string, required

## Response `200`

The order

- object
  - `order` CommerceOrder: An order with what an invoice needs. Every amount is in `currency`, the store currency.
    - `id` string
    - `accountId` string
    - `platform` 'shopify' | 'woocommerce'
    - `number` string: The number the merchant and buyer see.
    - `status` 'pending_payment' | 'on_hold' | 'awaiting_fulfillment' | 'partially_fulfilled' | 'in_transit' | 'delivered' | 'completed' | 'cancelled': Where the order stands. The raw platform value is returned next to it as platformStatus.
    - `platformStatus` string: Shopify fulfilment status (e.g. UNFULFILLED) or WooCommerce order status (e.g. processing).
    - `paymentStatus` 'pending' | 'authorized' | 'partially_paid' | 'paid' | 'partially_refunded' | 'refunded' | 'voided' | 'failed', nullable
    - `platformPaymentStatus` string, nullable: Shopify financial status. Null on WooCommerce, where payment is read from the order status.
    - `currency` string
    - `taxesIncluded` boolean: Whether line item and shipping amounts include tax. Always false on WooCommerce, whose API returns amounts before tax whatever the store displays (platformData.pricesIncludeTax).
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `paidAt` string, date-time, nullable: WooCommerce only; null on Shopify.
    - `cancelledAt` string, date-time, nullable: Shopify only; null on WooCommerce.
    - `cancelReason` string, nullable
    - `subtotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
      - `amount` string, required
      - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `discountTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
      - `amount` string, required
      - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `shippingTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
      - `amount` string, required
      - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `taxTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
      - `amount` string, required
      - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `total` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
      - `amount` string, required
      - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `refundedTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
      - `amount` string, required
      - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `discountCodes` string[]
    - `paymentMethods` string[]
    - `customer` object, nullable
      - `id` string, nullable: Null for guest checkouts.
      - `email` string, nullable
      - `phone` string, nullable
      - `firstName` string, nullable
      - `lastName` string, nullable
    - `billingAddress` CommerceAddress
      - `firstName` string, nullable
      - `lastName` string, nullable
      - `company` string, nullable
      - `phone` string, nullable
      - `line1` string, nullable
      - `line2` string, nullable
      - `city` string, nullable
      - `region` string, nullable
      - `postalCode` string, nullable
      - `countryCode` string, nullable: ISO 3166-1 alpha-2.
    - `shippingAddress` CommerceAddress
      - `firstName` string, nullable
      - `lastName` string, nullable
      - `company` string, nullable
      - `phone` string, nullable
      - `line1` string, nullable
      - `line2` string, nullable
      - `city` string, nullable
      - `region` string, nullable
      - `postalCode` string, nullable
      - `countryCode` string, nullable: ISO 3166-1 alpha-2.
    - `buyerNote` string, nullable
    - `lineItems` object[]
      - `id` string
      - `productId` string, nullable: Null when the product was deleted.
      - `variantId` string, nullable
      - `sku` string, nullable
      - `title` string
      - `variantTitle` string, nullable
      - `quantity` integer: As ordered; refunded units are listed under refunds.
      - `unitPrice` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `subtotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `discountTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `total` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `taxLines` CommerceTaxLine[]
        - `title` string
        - `ratePercent` number, nullable: Percent, e.g. 20 for 20%. Null when the platform does not say.
        - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
          - `amount` string, required
          - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `shippingLines` CommerceOrderChargeLine[]
      - `id` string
      - `title` string
      - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `discountTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `taxLines` CommerceTaxLine[]
        - `title` string
        - `ratePercent` number, nullable: Percent, e.g. 20 for 20%. Null when the platform does not say.
        - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
          - `amount` string, required
          - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `feeLines` CommerceOrderChargeLine[]: WooCommerce fees. Always empty on Shopify.
      - `id` string
      - `title` string
      - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `discountTotal` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `taxLines` CommerceTaxLine[]
        - `title` string
        - `ratePercent` number, nullable: Percent, e.g. 20 for 20%. Null when the platform does not say.
        - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
          - `amount` string, required
          - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `taxLines` CommerceTaxLine[]: Order tax by rate, line items and shipping together.
      - `title` string
      - `ratePercent` number, nullable: Percent, e.g. 20 for 20%. Null when the platform does not say.
      - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `refunds` object[]
      - `id` string
      - `createdAt` string, date-time, nullable
      - `note` string, nullable
      - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
        - `amount` string, required
        - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
      - `lineItems` object[]
        - `lineItemId` string
        - `quantity` integer
        - `amount` CommerceMoney: An exact amount of money. The amount is a decimal string so cents are never lost to floating point.
          - `amount` string, required
          - `currency` string, required: ISO 4217 code. Never null: the store currency is filled in when the platform omits it.
    - `fulfillments` object[]
      - `carrierName` string, nullable
      - `trackingNumber` string, nullable
      - `trackingUrl` string, nullable
    - `platformData` object, nullable: Platform-only fields. Null when the platform has none.

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: The store has not granted orders.read, or the platform has not yet approved Zernio's access to order and customer data (code insufficient_permissions; the message says which). GET /v1/commerce/store returns grantPermissionsUrl for the store owner to approve orders.read.
- `404`: Account not found (code account_not_found) or order not found (code resource_not_found).
- `429`: Rate limited, either by Zernio or by the platform. Retry later.

## Changes

- **2026-10-20** `c6dd037b213d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/commerce/orders/:orderId/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/4e74db179e73?raw)
