> ## Documentation Index
> Fetch the complete documentation index at: https://docs.endl.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an order

> The endpoint you poll. Returns the order and every item on it.

**Compare `voucher_count` against `qty` on every poll that reaches a terminal state.** An item can reach `FULFILLED` having produced fewer vouchers than ordered; the shortfall carries a refund obligation.



## OpenAPI

````yaml api-reference/endl-giftcard-api.json GET /orders/{order_id}
openapi: 3.1.0
info:
  title: Endl Giftcard API
  version: '1'
  description: >-
    Order gift cards, poll them to completion, and retrieve the redemption
    material.


    Five endpoints, one signing scheme, and one rule that governs everything
    else: **an order is a fulfilment instruction, and it is accepted before it
    is finished.**


    This is a separate service from the Endl Partner API. It does not use
    `API-KEY`, it is not under `/api/v0`, and it does not take an `Api-Version`
    header. Requests are signed with HMAC-SHA256.
servers:
  - url: https://api-sandbox.endl.io/giftcards
    description: Sandbox — confirm the host with Endl
security: []
paths:
  /orders/{order_id}:
    get:
      tags:
        - Orders
      summary: Get an order
      description: >-
        The endpoint you poll. Returns the order and every item on it.


        **Compare `voucher_count` against `qty` on every poll that reaches a
        terminal state.** An item can reach `FULFILLED` having produced fewer
        vouchers than ordered; the shortfall carries a refund obligation.
      parameters:
        - $ref: '#/components/parameters/Timestamp'
        - name: order_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The order id returned by create.
          example: 9f1c8a44-2b7e-4d31-9a6f-5c0e7b2d81a3
      responses:
        '200':
          description: The order.
          content:
            application/json:
              example:
                order_id: 9f1c8a44-2b7e-4d31-9a6f-5c0e7b2d81a3
                partner_order_ref: ORD-10294
                state: FULFILLED
                amount_minor: '100000'
                currency: INR
                created_at: '2026-09-21T09:20:00.000Z'
                items:
                  - item_id: 2c81a0f4-9c33-4f02-b0b7-1d5e9f2a44c8
                    canonical_sku: BIGBASKET--IN--INR
                    denomination_minor: '50000'
                    currency: INR
                    qty: 2
                    state: FULFILLED
                    state_reason: null
                    voucher_count: 2
                    retrieved: false
        '401':
          description: Missing headers, an unknown key id, or an inactive key.
          content:
            application/json:
              example:
                code: AUTH_INVALID_KEY
                message: credential could not be verified
        '403':
          description: Authenticated, but the key lacks the scope this route needs.
          content:
            application/json:
              example:
                code: SCOPE_FORBIDDEN
                message: key lacks the required scope
        '404':
          description: >-
            Unknown id, malformed id, or an order belonging to someone else —
            deliberately indistinguishable.
          content:
            application/json:
              example:
                code: ORDER_NOT_FOUND
                message: order not found
        '429':
          description: >-
            Rate limited. Honour the `Retry-After` header, in whole seconds,
            never below 1.
          content:
            application/json:
              example:
                code: RATE_LIMITED
                message: rate limit exceeded
        '500':
          description: Unexpected server error. Retry with exponential backoff.
          content:
            application/json:
              example:
                code: INTERNAL_ERROR
                message: unexpected error
      security:
        - apiKeyId: []
        - signature: []
components:
  parameters:
    Timestamp:
      name: X-Timestamp
      in: header
      required: false
      description: >-
        Unix seconds. Optional, carried for symmetry — send the same value as
        the `t=` inside `X-Signature`, which is the one actually validated.
      schema:
        type: string
      example: '1758470400'
  securitySchemes:
    apiKeyId:
      type: apiKey
      in: header
      name: X-Api-Key-Id
      description: >-
        Your key id, verbatim. Public — it identifies the credential. The secret
        is never transmitted.
    signature:
      type: apiKey
      in: header
      name: X-Signature
      description: >-
        `t=<unix-seconds>,v1=<hex64>` — HMAC-SHA256 over the canonical string.
        See [Signing requests](/giftcards/authentication).

````