# Get order

> Returns information about a specific order.

Breadcrumb: API › Get order
Docs index: https://docs.cevoid.com/developers/llms.txt

`GET https://api.cevoid.com/v2/orders/{id}`

Returns information about a specific order.

## Authorizations

Bearer token in the Authorization header: `Authorization: Bearer <key>` (API key).

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | `string` | Yes | Cevoid order ID. Length: `1 to 255`. Example: `ord_abc123`. |

## Response

### 200: Successful response

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `object` | Yes | Requested resource. |
| `data.id` | `string` | Yes | Cevoid order ID. Example: `ord_abc123`. |
| `data.ingestion_mode` | `enum<string>` | No | Processing mode of the latest order write. Historical mode suppresses automatic Flows. Live mode allows new lifecycle transitions to trigger Flows. Absent for orders without a live or historical mode. Allowed values: `live`, `historical`. Example: `live`. |
| `data.source` | `object` | Yes |  |
| `data.source.type` | `enum<string>` | No | System that owns this order. Absent when the order has no connected source. Allowed values: `SHOPIFY`, `WOOCOMMERCE`, `MYSTORE`, `NORDISK_EHANDEL`, `VISKAN`, `CENTRA`, `PUBLIC_API`, `OTHER`. Example: `PUBLIC_API`. |
| `data.source.connection_id` | `string` | No | Stable source namespace for the order. Absent when the order has no connected source. Example: `erp-production`. |
| `data.source.external_order_id` | `string` | Yes | Order identifier in the source system. Example: `order_123`. |
| `data.order_number` | `string` | No | Customer-facing order number. Example: `#1001`. |
| `data.buyer` | `object` | No | Buyer identity. Absent when the order carries no buyer information. |
| `data.buyer.email` | `string` | No | Buyer email as supplied by the source system. Example: `buyer@example.com`. |
| `data.buyer.external_customer_id` | `string` | No | Customer identifier in the source system. Example: `customer_123`. |
| `data.buyer.profile_id` | `string` | No | Cevoid profile ID. Absent when no profile is linked to the order. Example: `prf_sarah`. |
| `data.placed_at` | `string<date-time>` | Yes | ISO 8601 timestamp when the order was placed. Example: `2026-07-24T09:00:00.000Z`. |
| `data.currency` | `string` | Yes | Three-letter uppercase ISO currency code. Example: `USD`. |
| `data.money` | `object` | Yes |  |
| `data.money.total` | `number` | Yes | Current declared order total. Example: `55`. |
| `data.money.sub_total` | `number` | Yes | Current merchandise subtotal. Example: `50`. |
| `data.money.discount` | `number` | No | Current order-level discount total. Example: `5`. |
| `data.money.tax` | `number` | No | Current order-level tax total. Example: `5`. |
| `data.money.shipping` | `number` | No | Current order-level shipping total. Example: `5`. |
| `data.money.refunded` | `number` | No | Cumulative refunded amount. Example: `0`. |
| `data.fulfillment_status` | `enum<string>` | Yes | Current order fulfillment state. Allowed values: `PENDING`, `PARTIALLY_FULFILLED`, `FULFILLED`, `DELIVERED`. Example: `PENDING`. |
| `data.financial_status` | `enum<string>` | Yes | Current order payment state. Allowed values: `PENDING`, `PAID`, `PARTIALLY_REFUNDED`, `REFUNDED`. Example: `PAID`. |
| `data.fulfilled_at` | `string<date-time>` | No | ISO 8601 timestamp when the order was fulfilled. Example: `2026-07-25T10:00:00.000Z`. |
| `data.delivered_at` | `string<date-time>` | No | ISO 8601 timestamp when the order was delivered. Example: `2026-07-26T14:00:00.000Z`. |
| `data.cancelled` | `boolean` | Yes | Whether the order is cancelled. Example: `false`. |
| `data.cancelled_at` | `string<date-time>` | No | ISO 8601 timestamp when the order was cancelled. Example: `2026-07-24T10:00:00.000Z`. |
| `data.paid_at` | `string<date-time>` | No | ISO 8601 timestamp when the order was paid. Example: `2026-07-24T09:00:01.000Z`. |
| `data.last_refunded_at` | `string<date-time>` | No | ISO 8601 timestamp of the most recent refund. Example: `2026-07-28T11:00:00.000Z`. |
| `data.market_id` | `string` | No | Cevoid market ID. Example: `mar_us`. |
| `data.lines` | `object[]` | Yes |  |
| `data.lines[].external_line_id` | `string` | Yes | Stable line identifier within the source order. Example: `line_1`. |
| `data.lines[].product_id` | `string` | No | Product identifier in the source catalog. Absent when the line names no product. Example: `product_123`. |
| `data.lines[].variant_id` | `string` | No | Variant identifier in the source catalog. Example: `variant_456`. |
| `data.lines[].sku` | `string` | No | Merchant SKU snapshot. Example: `TSHIRT-BLACK-M`. |
| `data.lines[].quantity` | `integer` | Yes | Absolute ordered quantity. Range: `0 <= x`. Example: `1`. |
| `data.lines[].unit_price` | `number` | Yes | Price per unit in the order currency. Example: `50`. |
| `data.lines[].discount` | `number` | No | Discount allocated to this line. Example: `0`. |
| `data.lines[].refund` | `number` | No | Cumulative amount refunded for this line. Example: `0`. |
| `data.lines[].returned_units` | `integer` | No | Absolute number of returned units. Range: `0 <= x`. Example: `0`. |
| `data.lines[].fulfillment_status` | `enum<string>` | Yes | Current fulfillment state for this line. Allowed values: `PENDING`, `PARTIALLY_FULFILLED`, `FULFILLED`, `DELIVERED`. Example: `PENDING`. |
| `data.lines[].delivered_at` | `string<date-time>` | No | ISO 8601 timestamp when this line was delivered. Example: `2026-07-26T14:00:00.000Z`. |
| `data.lines[].removed_at` | `string<date-time>` | No | Time the line was removed from the order. Example: `2026-07-27T14:00:00.000Z`. |
| `data.created_at` | `string<date-time>` | Yes | ISO 8601 timestamp when Cevoid created the order. Example: `2026-07-24T09:00:01.000Z`. |
| `data.updated_at` | `string<date-time>` | Yes | ISO 8601 timestamp when Cevoid last updated the order. Example: `2026-07-24T09:00:01.000Z`. |
| `data.removed_at` | `string<date-time>` | No | Time the order was deleted. Example: `2026-08-01T09:00:00.000Z`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |

```json
{
  "data": {
    "id": "ord_abc123",
    "ingestion_mode": "live",
    "source": {
      "type": "PUBLIC_API",
      "connection_id": "erp-production",
      "external_order_id": "order_123"
    },
    "order_number": "#1001",
    "buyer": {
      "email": "buyer@example.com",
      "external_customer_id": "customer_123",
      "profile_id": "prf_sarah"
    },
    "placed_at": "2026-07-24T09:00:00.000Z",
    "currency": "USD",
    "money": {
      "sub_total": 50,
      "discount": 5,
      "tax": 5,
      "shipping": 5,
      "total": 55,
      "refunded": 0
    },
    "fulfillment_status": "PENDING",
    "financial_status": "PAID",
    "paid_at": "2026-07-24T09:00:01.000Z",
    "cancelled": false,
    "market_id": "mar_us",
    "lines": [
      {
        "external_line_id": "line_1",
        "product_id": "product_123",
        "variant_id": "variant_456",
        "sku": "TSHIRT-BLACK-M",
        "quantity": 1,
        "unit_price": 50,
        "discount": 0,
        "refund": 0,
        "returned_units": 0,
        "fulfillment_status": "PENDING"
      }
    ],
    "created_at": "2026-07-24T09:00:01.000Z",
    "updated_at": "2026-07-24T09:00:01.000Z"
  }
}
```

### 401: Unauthorized

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | No | Optional machine-readable error details. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `number` | Yes | HTTP status code for the error response. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable description of the error. Example: `Route not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers: the same as 200.

```json
{
  "status": 401,
  "code": "unauthorized",
  "message": "Unauthorized",
  "request_id": "req_abc123"
}
```

### 403: Forbidden

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "status": 403,
  "code": "forbidden",
  "message": "Forbidden",
  "request_id": "req_abc123"
}
```

### 404: Not found

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 404,
  "code": "not_found",
  "message": "Route not found",
  "request_id": "req_abc123"
}
```

### 422: Validation error

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 422,
  "code": "validation_error",
  "message": "Validation error",
  "request_id": "req_abc123"
}
```

### 429: Too many requests

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | Yes | Machine-readable rate-limit details. |
| `additional_data.retry_after_seconds` | `integer` | Yes | Range: `0 <= x`. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `integer` | Yes | HTTP status code. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable error description. Example: `Resource not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |
| `Retry-After` | `integer` | Seconds to wait before retrying the request |

```json
{
  "status": 429,
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded",
  "request_id": "req_abc123",
  "additional_data": {
    "retry_after_seconds": 1
  }
}
```

### 500: Internal server error

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "status": 500,
  "code": "internal_server_error",
  "message": "Internal server error",
  "request_id": "req_abc123"
}
```

## Request example

```bash
curl 'https://api.cevoid.com/v2/orders/ord_abc123' \
  -H "Authorization: Bearer ${CEVOID_API_KEY}"
```

---

Canonical: https://docs.cevoid.com/developers/api/orders/get-order
