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

# Get order by ID

> Retrieve a specific order by its ID.

## Request

```http theme={null}
GET /orders/{id}
Authorization: Bearer {{token}}
x-shop-id: {{shopId}}
```

## Headers

| Header          | Type   | Description                                              |
| --------------- | ------ | -------------------------------------------------------- |
| `Authorization` | string | Provide the customer token in the format `Bearer <jwt>`. |
| `x-shop-id`     | string | Identify the shop that owns the order.                   |

## Path parameters

| Parameter | Type   | Description                      |
| --------- | ------ | -------------------------------- |
| `id`      | string | The ID of the order to retrieve. |

## Successful response

```json theme={null}
{
    "status": 200,
    "success": true,
    "message": "Order retrieved",
    "data": {
        "_id": "6938414ad9485f4d96134f8c",
        "user": "669d5dcf3cc9c8596ec0f302",
        "shop": "68b8f52575da81b332af29f1",
        "items": [
            {
                "product": "68bc52f0e15404b8e40a7c52",
                "variant": "692caacbb07303c9be5ea8f2",
                "name": "Classic Hoodie",
                "sku": "HOODIE-GREEN-M",
                "price": 25000,
                "quantity": 1,
                "variantAttributes": {
                    "color": "green"
                },
                "imageUrl": "https://cdn.salesive.com/products/hoodie.jpg",
                "_id": "6938414ad9485f4d96134f8d"
            }
        ],
        "status": "completed",
        "payment": {
            "_id": "693b7cb3e1906f5273e48135",
            "shop": "68b8f52575da81b332af29f1",
            "channel": "other",
            "transactionId": "9859451",
            "provider": "flutterwave",
            "amount": 19477.2,
            "total": 19876,
            "currency": "NGN",
            "status": "completed",
            "createdAt": "2025-12-12T02:23:47.841Z",
            "updatedAt": "2025-12-12T02:23:47.841Z"
        },
        "discount": 6250,
        "coupon": "690f5d8a088bef812956b384",
        "subtotal": 25000,
        "shippingCost": 727.2,
        "fee": 0,
        "tax": 0,
        "additionalInfo": [
            { "label": "Gift message", "value": "Happy birthday!" }
        ],
        "shipment": {
            "_id": "693aa5ed1141d1a105282ba2",
            "courier": {
                "id": "express_courier",
                "name": "Express Delivery",
                "image": "https://cdn.salesive.com/couriers/express.png"
            },
            "estimatedDelivery": "2025-12-14T11:07:24.000Z"
        },
        "orderId": 9,
        "createdAt": "2025-12-09T15:33:30.039Z",
        "updatedAt": "2026-02-16T12:13:31.035Z"
    }
}
```

## Error responses

### 401 Unauthorized

```json theme={null}
{
    "status": 401,
    "success": false,
    "message": "Authentication required",
    "data": {}
}
```

### 404 Not Found

```json theme={null}
{
    "status": 404,
    "success": false,
    "message": "Order not found",
    "data": null
}
```


## OpenAPI

````yaml GET /orders/{id}
openapi: 3.1.0
info:
  title: Salesive Store API
  description: >-
    REST interface for querying products, categories, and merchandising banners
    exposed by Salesive storefronts.
  version: 1.0.0
servers:
  - description: Production
    url: https://store.salesive.com/api/v1
security:
  - BearerAuth: []
    ShopIdHeader: []
paths:
  /orders/{id}:
    get:
      summary: Get order by ID
      description: >-
        Retrieve a specific order by its ID. The user must be authenticated and
        the order must belong to the authenticated user for the specified shop.
      parameters:
        - $ref: '#/components/parameters/XShopIdHeader'
        - name: id
          in: path
          required: true
          description: The ID of the order to retrieve
          schema:
            type: string
      responses:
        '200':
          description: Order retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '401':
          description: Unauthorized.
        '403':
          description: Access denied.
        '404':
          description: Order not found.
components:
  parameters:
    XShopIdHeader:
      name: x-shop-id
      in: header
      description: >-
        Optional identifier that scopes responses to a specific storefront when
        the referer cannot be inferred.
      required: false
      schema:
        type: string
  schemas:
    OrderResponse:
      type: object
      required:
        - status
        - success
        - message
        - data
      properties:
        status:
          type: integer
        success:
          type: boolean
        message:
          type: string
        data:
          $ref: '#/components/schemas/Order'
    Order:
      type: object
      required:
        - _id
        - orderId
        - user
        - shop
        - items
        - status
        - subtotal
        - shippingCost
        - total
      properties:
        _id:
          type: string
          description: Order identifier.
        orderId:
          type: integer
          description: Human-readable order number.
        user:
          type: string
          description: Identifier of the shopper who placed the order.
        shop:
          type: string
          description: Identifier of the shop associated with the order.
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        status:
          type: string
          enum:
            - pending
            - processing
            - paid
            - cancelled
            - refunded
          description: Current status of the order.
        subtotal:
          type: number
          description: Subtotal before shipping costs.
        shippingCost:
          type: number
          description: Shipping cost for the order.
        total:
          type: number
          description: Total order amount (subtotal + shippingCost).
        shippingAddress:
          nullable: true
          deprecated: true
          description: >-
            Legacy embedded address; absent on current orders — use the
            shipment's shippingAddress instead.
          allOf:
            - $ref: '#/components/schemas/OrderAddress'
        payment:
          type: string
          description: Payment identifier.
        shipment:
          type: string
          description: Shipment identifier.
        notes:
          type: string
          description: Additional order notes.
        additionalInfo:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalInfoItem'
          description: Custom labelled key/value info attached to the order.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    OrderItem:
      type: object
      required:
        - product
        - name
        - price
        - quantity
      properties:
        product:
          type: string
          description: Product identifier.
        variant:
          type: string
          description: Variant identifier if applicable.
        name:
          type: string
          description: Product name.
        sku:
          type: string
          description: Product SKU.
        price:
          type: number
          description: Unit price at time of order.
        quantity:
          type: integer
          minimum: 1
          description: Quantity ordered.
        variantAttributes:
          type: object
          additionalProperties:
            type: string
        imageUrl:
          type: string
          format: uri
    OrderAddress:
      type: object
      properties:
        fullName:
          type: string
        addressLine1:
          type: string
        addressLine2:
          type: string
        city:
          type: string
        state:
          type: string
        zipCode:
          type: string
        country:
          type: string
        phoneNumber:
          type: string
      nullable: true
      deprecated: true
      description: >-
        Legacy embedded order address — not populated on current orders (no live
        order carries it). The delivery address lives on the order's shipment:
        see the shipment's shippingAddress, or GET /shipping/shipments.
    AdditionalInfoItem:
      type: object
      required:
        - label
      properties:
        label:
          type: string
          maxLength: 100
          description: The name of the field (e.g. "Gift message").
        value:
          type: string
          maxLength: 2000
          description: The field value.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT issued by the Salesive Store API for authenticated shoppers.
    ShopIdHeader:
      type: apiKey
      in: header
      name: x-shop-id
      description: >-
        Optional storefront identifier sent as a header to scope responses to a
        specific shop. Try It requests remember this value once provided.

````