Skip to content

Storefront Orders

Storefront

Storefront Orders groups 1 operation on the storefront tier.

Storefront tier. Reachable anonymously; a public vnstss_ token may be sent to identify the storefront.

GET

/api/{version}/orders/{id}

The placed order. 404 when the id is unknown, the hash does not match, or the id names a cart that was never submitted. All three answer the same way on purpose: a differentiated response would turn this into an order-id oracle.

AuthenticationAnonymousStorefront tier. Reachable anonymously; a public vnstss_ token may be sent to identify the storefront.

Path parameters

NameTypeDescription
id
required
string (uuid)

Query parameters

NameTypeDescription
hash
optional
string

Responses

curl -X GET \
  'https://<your-shop-domain>/api/2026-04-01/orders/<id>' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer vnstss_<token>'
Response200example shape
{
  "order": {
    "id": "00000000-0000-0000-0000-000000000000",
    "number": "string",
    "status": "string",
    "date": "2026-04-01T12:00:00Z",
    "currency": "string",
    "price_includes_tax": true,
    "line_items": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "variant_id": "00000000-0000-0000-0000-000000000000",
        "product_id": "00000000-0000-0000-0000-000000000000",
        "title": "string",
        "sku": "string",
        "description": "string",
        "quantity": 1,
        "unit_price": 1,
        "unit_price_with_tax": 1,
        "line_total": 1
      }
    ],
    "subtotal": 1,
    "discount": 1,
    "discount_code": "string",
    "shipping_amount": 1,
    "shipping_method_name": "string",
    "total": 1,
    "comments": "string",
    "payment_type": "string",
    "tracking_url": "string",
    "shipping_address": {
      "id": "00000000-0000-0000-0000-000000000000",
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "department": "string",
      "vat_number": "string",
      "street": "string",
      "po_box": "string",
      "zip_code": "string",
      "location": "string",
      "email": "string",
      "phone_number": "string",
      "mobile_number": "string",
      "country_code": "string",
      "country_name": "string"
    },
    "billing_address": {
      "id": "00000000-0000-0000-0000-000000000000",
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "department": "string",
      "vat_number": "string",
      "street": "string",
      "po_box": "string",
      "zip_code": "string",
      "location": "string",
      "email": "string",
      "phone_number": "string",
      "mobile_number": "string",
      "country_code": "string",
      "country_name": "string"
    }
  }
}

Schemas

ApiErrorResponse

The error envelope every non-2xx response from this API uses. Documentation shape: actions build it as an anonymous object, so this type exists to give the OpenAPI document a schema to point at.

  • errorsstringnullable

    Human-readable description of what went wrong, e.g. Not Found, Invalid page_info.

  • codestringnullable

    Machine-readable error code. Only a few endpoints (checkout) emit one; omitted everywhere else.

StorefrontCheckoutAddressDto

  • idstring (uuid)nullable
  • first_namestringnullable
  • last_namestringnullable
  • companystringnullable
  • departmentstringnullable
  • vat_numberstringnullable

    Company VAT / UID number, when the tenant collects one at checkout.

  • streetstringnullable
  • po_boxstringnullable
  • zip_codestringnullable
  • locationstringnullable
  • emailstringnullable
  • phone_numberstringnullable
  • mobile_numberstringnullable
  • country_codestringnullable
  • country_namestringnullable

StorefrontOrderDto

Versioned (2026-04-01) storefront representation of a placed order — the receipt. Everything here is the order as charged: line prices are the ones the buyer paid, not the catalog's current ones, so a later price change never rewrites a past receipt. Money is decimal in currency; price_includes_tax says whether the figures are gross.

  • idstring (uuid)
  • numberstringnullable

    The shop's own order number. Null only for an order placed before one was assigned.

  • statusstringnullable

    Fulfilment status, e.g. Open. Same vocabulary as GET /customers/me/orders.

  • datestring (date-time)
  • currencystringnullable
  • price_includes_taxboolean

    When true, the line and total figures below are tax-inclusive.

  • line_itemsStorefrontOrderLineDto[]nullable
  • subtotalnumber (double)

    Sum of the lines before the order-level discount.

  • discountnumber (double)
  • discount_codestringnullable

    The coupon applied at checkout, or null.

  • shipping_amountnumber (double)
  • shipping_method_namestringnullable
  • totalnumber (double)

    Payable total, rounded the way the shop rounds this currency.

  • commentsstringnullable
  • payment_typestringnullable

    The payment method the buyer chose, e.g. Invoice. Null when none was recorded.

  • tracking_urlstringnullable

    Carrier tracking URL, once the shop has entered one. Null until the order ships — poll this read, there is no webhook for it.

StorefrontOrderLineDto

One line of a placed order. id addresses the line itself; product_id and variant_id point back into the catalog, and either may be null for a line whose product has since been deleted — a receipt outlives the catalog entry it was cut from.

  • idstring (uuid)
  • variant_idstring (uuid)nullable

    The variant (article) ordered — the id POST /cart/items takes, for a re-order.

  • product_idstring (uuid)nullable

    The product the variant belongs to.

  • titlestringnullable
  • skustringnullable
  • descriptionstringnullable
  • quantitynumber (double)
  • unit_pricenumber (double)

    Net unit price as charged.

  • unit_price_with_taxnumber (double)

    Gross unit price as charged.

  • line_totalnumber (double)

    Line total, following the order's price_includes_tax basis.

StorefrontOrderResponse

Envelope returned by GET /orders/{id} and GET /customers/me/orders/{id} — the same order shape whichever door the caller came in through.