API ReferenceEndpointsOrders

Orders

Orders represent completed purchases. They carry items, customer, shipping/billing addresses, totals, payment status, and fulfillment status. Use these endpoints to list/get orders, mark as fulfilled, cancel, and issue refunds. Draft orders (created via the API) let you build orders programmatically without going through the storefront checkout flow.

List guest order downloads

Unauthenticated. Returns download links for an order placed as a guest. Identity is verified by email + orderNumber lookup against the store; no Bearer token is required.

POST
/vc/{connectionId}/orders/guest/downloads
X-Sales-Channel-Origin<token>

For /api/vc/{connectionId}/* routes the connectionId (vc_*) is in the URL path — not a header. Live-mode requests must also send a matching Origin header.

In: header

Path Parameters

connectionIdstring

Sales-channel connection ID (vc_*)

Header Parameters

origin?string
emailstring

Email used at checkout.

Formatemail
orderNumberstring

Human-readable order number from the order confirmation.

curl -X POST "https://api.brainerce.com/api/vc/string/orders/guest/downloads" \  -H "origin: string" \  -H "Content-Type: application/json" \  -d '{    "email": "[email protected]",    "orderNumber": "1042"  }'
[
  {
    "productName": "Wallpaper pack",
    "fileName": "wallpapers.zip",
    "downloadUrl": "https://api.brainerce.com/api/stores/clst_abc/downloads/eyJ...",
    "downloadsUsed": 0,
    "downloadLimit": 5,
    "expiresAt": "string"
  }
]

Create order

POST
/vc/{connectionId}/orders
X-Sales-Channel-Origin<token>

For /api/vc/{connectionId}/* routes the connectionId (vc_*) is in the URL path — not a header. Live-mode requests must also send a matching Origin header.

In: header

Path Parameters

connectionIdstring

Header Parameters

originstring
authorizationstring
itemsarray<VcOrderItemDto>

Lines to order.

customerVcOrderCustomerDto
shippingAddressVcOrderAddressDto
billingAddress?VcOrderAddressDto
couponCode?string

Coupon code to apply to the order.

notes?string

Buyer note for the merchant.

curl -X POST "https://api.brainerce.com/api/vc/string/orders" \  -H "origin: string" \  -H "authorization: string" \  -H "Content-Type: application/json" \  -d '{    "items": [      {        "productId": "clprd_abc123",        "quantity": 2,        "price": "19.90"      }    ],    "customer": {      "email": "string"    },    "shippingAddress": {      "firstName": "string",      "lastName": "string",      "line1": "string",      "city": "string",      "postalCode": "string",      "country": "IL"    }  }'
{
  "orderId": "clord_abc123",
  "orderNumber": "ORD-20260907-0012",
  "status": "pending",
  "total": "46.96",
  "message": "Order created successfully"
}

List orders with pagination

GET
/v1/orders
AuthorizationBearer <token>

Admin API key (server-to-server). Issue via the dashboard at Settings → Authentication → API Keys. Plain-text key is shown once — store in a secret manager. Format: Authorization: Bearer brainerce_xxxxxxxxx.

In: header

Query Parameters

page?number
limit?number
status?string
sortBy?string
sortOrder?string
curl -X GET "https://api.brainerce.com/api/v1/orders?page=0&limit=0&status=string&sortBy=string&sortOrder=string"
{
  "data": [
    {
      "id": "string",
      "storeId": "string",
      "externalId": "string",
      "orderNumber": "string",
      "platform": "string",
      "sourceName": "string",
      "totalAmount": "string",
      "subtotal": "string",
      "taxAmount": "string",
      "taxBreakdown": {
        "subtotal": 0,
        "shippingNet": 0,
        "totalTax": 0,
        "total": 0,
        "pricesIncludeTax": true,
        "breakdown": [
          {
            "name": "VAT",
            "rate": 17,
            "amount": 12.45
          }
        ],
        "currency": "string"
      },
      "shippingAmount": "string",
      "discountAmount": "string",
      "couponCode": "string",
      "couponDiscount": "string",
      "coupon": {
        "title": "string",
        "type": "string",
        "value": "string"
      },
      "surchargeAmount": "string",
      "appliedSurcharges": [
        {
          "key": "string",
          "name": "string",
          "value": {},
          "amount": 0
        }
      ],
      "customFieldValues": {},
      "adminFieldValues": {},
      "ruleDiscountAmount": "string",
      "appliedRules": [
        {
          "id": "string",
          "name": "string",
          "type": "string",
          "discountAmount": "string"
        }
      ],
      "currency": "string",
      "status": "string",
      "financialStatus": "string",
      "statusLabel": {
        "id": "string",
        "name": "string",
        "color": "string",
        "canonicalStatus": "string",
        "isSystem": true
      },
      "notes": "string",
      "paymentMethod": "string",
      "isTestOrder": true,
      "customer": {
        "email": "string",
        "name": "string"
      },
      "shippingAddress": {
        "firstName": "string",
        "lastName": "string",
        "name": "string",
        "company": "string",
        "line1": "string",
        "line2": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "postalCode": "string",
        "phone": "string"
      },
      "billingAddress": {
        "firstName": "string",
        "lastName": "string",
        "name": "string",
        "company": "string",
        "line1": "string",
        "line2": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "postalCode": "string",
        "phone": "string"
      },
      "items": [
        {
          "productId": "string",
          "variantId": "string",
          "sku": "string",
          "name": "string",
          "quantity": 0,
          "price": "string",
          "unitPrice": "string",
          "totalPrice": "string",
          "image": "string"
        }
      ],
      "createdAt": "2019-08-24T14:15:22Z",
      "syncWarning": "string",
      "paymentStatus": "string",
      "paymentProviderType": "string",
      "paymentProviderName": "string",
      "paymentId": "string",
      "paymentExternalId": "string",
      "paymentAmount": "string",
      "paymentCurrency": "string",
      "paymentRefundedAmount": "string",
      "invoiceUrl": "string",
      "invoiceNumber": "string",
      "numberOfPayments": 0,
      "paymentCapabilities": {
        "refund": true,
        "manualRefundUrl": "string"
      },
      "refunds": [
        {
          "id": "string",
          "amount": "string",
          "reason": "string",
          "status": "string",
          "type": "string",
          "source": "string",
          "createdAt": "2019-08-24T14:15:22Z"
        }
      ],
      "tenders": [
        {
          "id": "string",
          "type": "string",
          "amountBase": "string",
          "currencyBase": "string",
          "giftCard": {
            "id": "string",
            "codeLast4": "string"
          }
        }
      ],
      "isRead": true,
      "downloadMeta": {
        "files": [
          {
            "fileId": "string",
            "productId": "string",
            "productName": "string",
            "fileName": "string",
            "downloadsUsed": 0,
            "downloadLimit": 0,
            "expiresAt": "2019-08-24T14:15:22Z"
          }
        ]
      },
      "trackingNumber": "string",
      "trackingUrl": "string",
      "carrier": "string",
      "shippingSelection": {
        "carrier": "string",
        "service": "string",
        "methodName": "string",
        "amount": "string"
      },
      "deliveryType": "string",
      "pickupLocationData": {
        "name": "string",
        "line1": "string",
        "line2": "string",
        "city": "string",
        "region": "string",
        "postalCode": "string",
        "country": "string",
        "phone": "string",
        "rateName": "string"
      }
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 137,
    "totalPages": 7
  }
}

{
  "statusCode": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid or expired credential",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders"
}

{
  "statusCode": 403,
  "code": "INSUFFICIENT_SCOPE",
  "message": "API key does not have the required scope: products:write",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders"
}

Create a new order

Honors Idempotency-Key header: retries with the same key return the original response. See /docs/api/idempotency.

POST
/v1/orders
AuthorizationBearer <token>

Admin API key (server-to-server). Issue via the dashboard at Settings → Authentication → API Keys. Plain-text key is shown once — store in a secret manager. Format: Authorization: Bearer brainerce_xxxxxxxxx.

In: header

Header Parameters

Idempotency-Key?string

Client-supplied key (a UUID v4 is the recommended form, max 255 characters) that makes this mutation safe to retry.

  • Replay window: 24 hours. The first response for a key is cached; a retry inside the window with the same request body returns the original status and body without re-running the handler.
  • Reusing a key with a different body returns 409 Conflict with code: "IDEMPOTENCY_KEY_REUSED". The request fingerprint (method + path + body hash) is compared against the stored one; a mismatch is refused rather than served the old response.
  • Keys are scoped to the calling credential and store — two API keys may safely use the same key value.
  • Error responses are cached too, so a retry of a request that failed validation returns the same 400 immediately.
  • Sending this header on a GET returns 400 with code: "IDEMPOTENCY_KEY_NOT_SUPPORTED" — GETs are already idempotent.
  • Support is per-route and this parameter is the authoritative signal: a key sent to a route that does not declare it is accepted and silently ignored.

See /docs/api/idempotency.

Lengthlength <= 255
itemsarray<CreateOrderItemDto>

Line items being purchased (maximum 500)

customer?CreateOrderCustomerDto

Customer details for the order. Optional for guest orders.

customerId?string

Existing Brainerce customer ID (mutually exclusive with customer)

externalId?string

External system identifier for this order (idempotency aid for migrations).

status?string

Initial order status. Most callers should NOT set this, because the system manages status transitions through the payment + fulfillment pipeline. Setting to a paid-looking status (e.g. SHIPPED, DELIVERED) without going through payment will be rejected: the controller currently forces the status to PENDING on creation regardless of caller input, to prevent payment-bypass.

Value in"PENDING" | "PROCESSING" | "SHIPPED" | "DELIVERED" | "CANCELLED" | "REFUNDED"
currency?string

Currency code (ISO-4217). Defaults to the store currency.

discountAmount?number

Total discount amount applied

couponCode?string

Applied coupon code (snapshot)

shippingAmount?number

Shipping amount

taxAmount?number

Tax amount

paymentMethod?string

Payment method identifier

notes?string

Free-form notes attached to the order

sourceName?string

Source name (e.g. "web", "pos", "import")

shippingAddress?object

Optional shipping address. Shape matches the standard OrderAddress payload.

Empty Object

billingAddress?object

Optional billing address. Shape matches the standard OrderAddress payload.

Empty Object

curl -X POST "https://api.brainerce.com/api/v1/orders" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "items": [      {        "productId": "prd_01H...",        "quantity": 1,        "price": 19.99      }    ]  }'
{
  "id": "string",
  "storeId": "string",
  "externalId": "string",
  "orderNumber": "string",
  "platform": "string",
  "sourceName": "string",
  "totalAmount": "string",
  "subtotal": "string",
  "taxAmount": "string",
  "taxBreakdown": {
    "subtotal": 0,
    "shippingNet": 0,
    "totalTax": 0,
    "total": 0,
    "pricesIncludeTax": true,
    "breakdown": [
      {
        "name": "VAT",
        "rate": 17,
        "amount": 12.45
      }
    ],
    "currency": "string"
  },
  "shippingAmount": "string",
  "discountAmount": "string",
  "couponCode": "string",
  "couponDiscount": "string",
  "coupon": {
    "title": "string",
    "type": "string",
    "value": "string"
  },
  "surchargeAmount": "string",
  "appliedSurcharges": [
    {
      "key": "string",
      "name": "string",
      "value": {},
      "amount": 0
    }
  ],
  "customFieldValues": {},
  "adminFieldValues": {},
  "ruleDiscountAmount": "string",
  "appliedRules": [
    {
      "id": "string",
      "name": "string",
      "type": "string",
      "discountAmount": "string"
    }
  ],
  "currency": "string",
  "status": "string",
  "financialStatus": "string",
  "statusLabel": {
    "id": "string",
    "name": "string",
    "color": "string",
    "canonicalStatus": "string",
    "isSystem": true
  },
  "notes": "string",
  "paymentMethod": "string",
  "isTestOrder": true,
  "customer": {
    "email": "string",
    "name": "string"
  },
  "shippingAddress": {
    "firstName": "string",
    "lastName": "string",
    "name": "string",
    "company": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postalCode": "string",
    "phone": "string"
  },
  "billingAddress": {
    "firstName": "string",
    "lastName": "string",
    "name": "string",
    "company": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postalCode": "string",
    "phone": "string"
  },
  "items": [
    {
      "productId": "string",
      "variantId": "string",
      "sku": "string",
      "name": "string",
      "quantity": 0,
      "price": "string",
      "unitPrice": "string",
      "totalPrice": "string",
      "image": "string"
    }
  ],
  "createdAt": "2019-08-24T14:15:22Z",
  "syncWarning": "string",
  "paymentStatus": "string",
  "paymentProviderType": "string",
  "paymentProviderName": "string",
  "paymentId": "string",
  "paymentExternalId": "string",
  "paymentAmount": "string",
  "paymentCurrency": "string",
  "paymentRefundedAmount": "string",
  "invoiceUrl": "string",
  "invoiceNumber": "string",
  "numberOfPayments": 0,
  "paymentCapabilities": {
    "refund": true,
    "manualRefundUrl": "string"
  },
  "refunds": [
    {
      "id": "string",
      "amount": "string",
      "reason": "string",
      "status": "string",
      "type": "string",
      "source": "string",
      "createdAt": "2019-08-24T14:15:22Z"
    }
  ],
  "tenders": [
    {
      "id": "string",
      "type": "string",
      "amountBase": "string",
      "currencyBase": "string",
      "giftCard": {
        "id": "string",
        "codeLast4": "string"
      }
    }
  ],
  "isRead": true,
  "downloadMeta": {
    "files": [
      {
        "fileId": "string",
        "productId": "string",
        "productName": "string",
        "fileName": "string",
        "downloadsUsed": 0,
        "downloadLimit": 0,
        "expiresAt": "2019-08-24T14:15:22Z"
      }
    ]
  },
  "trackingNumber": "string",
  "trackingUrl": "string",
  "carrier": "string",
  "shippingSelection": {
    "carrier": "string",
    "service": "string",
    "methodName": "string",
    "amount": "string"
  },
  "deliveryType": "string",
  "pickupLocationData": {
    "name": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "region": "string",
    "postalCode": "string",
    "country": "string",
    "phone": "string",
    "rateName": "string"
  }
}

{
  "statusCode": 400,
  "code": "VALIDATION_FAILED",
  "message": "name should not be empty, price must be a positive number",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders"
}

{
  "statusCode": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid or expired credential",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders"
}

{
  "statusCode": 403,
  "code": "INSUFFICIENT_SCOPE",
  "message": "API key does not have the required scope: products:write",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders"
}

Get a single order by ID

GET
/v1/orders/{id}
AuthorizationBearer <token>

Admin API key (server-to-server). Issue via the dashboard at Settings → Authentication → API Keys. Plain-text key is shown once — store in a secret manager. Format: Authorization: Bearer brainerce_xxxxxxxxx.

In: header

Path Parameters

idstring

Order ID

curl -X GET "https://api.brainerce.com/api/v1/orders/string"
{
  "id": "string",
  "storeId": "string",
  "externalId": "string",
  "orderNumber": "string",
  "platform": "string",
  "sourceName": "string",
  "totalAmount": "string",
  "subtotal": "string",
  "taxAmount": "string",
  "taxBreakdown": {
    "subtotal": 0,
    "shippingNet": 0,
    "totalTax": 0,
    "total": 0,
    "pricesIncludeTax": true,
    "breakdown": [
      {
        "name": "VAT",
        "rate": 17,
        "amount": 12.45
      }
    ],
    "currency": "string"
  },
  "shippingAmount": "string",
  "discountAmount": "string",
  "couponCode": "string",
  "couponDiscount": "string",
  "coupon": {
    "title": "string",
    "type": "string",
    "value": "string"
  },
  "surchargeAmount": "string",
  "appliedSurcharges": [
    {
      "key": "string",
      "name": "string",
      "value": {},
      "amount": 0
    }
  ],
  "customFieldValues": {},
  "adminFieldValues": {},
  "ruleDiscountAmount": "string",
  "appliedRules": [
    {
      "id": "string",
      "name": "string",
      "type": "string",
      "discountAmount": "string"
    }
  ],
  "currency": "string",
  "status": "string",
  "financialStatus": "string",
  "statusLabel": {
    "id": "string",
    "name": "string",
    "color": "string",
    "canonicalStatus": "string",
    "isSystem": true
  },
  "notes": "string",
  "paymentMethod": "string",
  "isTestOrder": true,
  "customer": {
    "email": "string",
    "name": "string"
  },
  "shippingAddress": {
    "firstName": "string",
    "lastName": "string",
    "name": "string",
    "company": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postalCode": "string",
    "phone": "string"
  },
  "billingAddress": {
    "firstName": "string",
    "lastName": "string",
    "name": "string",
    "company": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postalCode": "string",
    "phone": "string"
  },
  "items": [
    {
      "productId": "string",
      "variantId": "string",
      "sku": "string",
      "name": "string",
      "quantity": 0,
      "price": "string",
      "unitPrice": "string",
      "totalPrice": "string",
      "image": "string"
    }
  ],
  "createdAt": "2019-08-24T14:15:22Z",
  "syncWarning": "string",
  "paymentStatus": "string",
  "paymentProviderType": "string",
  "paymentProviderName": "string",
  "paymentId": "string",
  "paymentExternalId": "string",
  "paymentAmount": "string",
  "paymentCurrency": "string",
  "paymentRefundedAmount": "string",
  "invoiceUrl": "string",
  "invoiceNumber": "string",
  "numberOfPayments": 0,
  "paymentCapabilities": {
    "refund": true,
    "manualRefundUrl": "string"
  },
  "refunds": [
    {
      "id": "string",
      "amount": "string",
      "reason": "string",
      "status": "string",
      "type": "string",
      "source": "string",
      "createdAt": "2019-08-24T14:15:22Z"
    }
  ],
  "tenders": [
    {
      "id": "string",
      "type": "string",
      "amountBase": "string",
      "currencyBase": "string",
      "giftCard": {
        "id": "string",
        "codeLast4": "string"
      }
    }
  ],
  "isRead": true,
  "downloadMeta": {
    "files": [
      {
        "fileId": "string",
        "productId": "string",
        "productName": "string",
        "fileName": "string",
        "downloadsUsed": 0,
        "downloadLimit": 0,
        "expiresAt": "2019-08-24T14:15:22Z"
      }
    ]
  },
  "trackingNumber": "string",
  "trackingUrl": "string",
  "carrier": "string",
  "shippingSelection": {
    "carrier": "string",
    "service": "string",
    "methodName": "string",
    "amount": "string"
  },
  "deliveryType": "string",
  "pickupLocationData": {
    "name": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "region": "string",
    "postalCode": "string",
    "country": "string",
    "phone": "string",
    "rateName": "string"
  }
}

{
  "statusCode": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid or expired credential",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

{
  "statusCode": 403,
  "code": "INSUFFICIENT_SCOPE",
  "message": "API key does not have the required scope: products:write",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

{
  "statusCode": 404,
  "code": "RESOURCE_NOT_FOUND",
  "message": "Resource not found",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

Update an order

Supports Idempotency-Key header for safe retries.

PATCH
/v1/orders/{id}
AuthorizationBearer <token>

Admin API key (server-to-server). Issue via the dashboard at Settings → Authentication → API Keys. Plain-text key is shown once — store in a secret manager. Format: Authorization: Bearer brainerce_xxxxxxxxx.

In: header

Path Parameters

idstring

Order ID

Header Parameters

Idempotency-Key?string

Client-supplied key (a UUID v4 is the recommended form, max 255 characters) that makes this mutation safe to retry.

  • Replay window: 24 hours. The first response for a key is cached; a retry inside the window with the same request body returns the original status and body without re-running the handler.
  • Reusing a key with a different body returns 409 Conflict with code: "IDEMPOTENCY_KEY_REUSED". The request fingerprint (method + path + body hash) is compared against the stored one; a mismatch is refused rather than served the old response.
  • Keys are scoped to the calling credential and store — two API keys may safely use the same key value.
  • Error responses are cached too, so a retry of a request that failed validation returns the same 400 immediately.
  • Sending this header on a GET returns 400 with code: "IDEMPOTENCY_KEY_NOT_SUPPORTED" — GETs are already idempotent.
  • Support is per-route and this parameter is the authoritative signal: a key sent to a route that does not declare it is accepted and silently ignored.

See /docs/api/idempotency.

Lengthlength <= 255
status?string

New order status

curl -X PATCH "https://api.brainerce.com/api/v1/orders/string" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "storeId": "string",
  "externalId": "string",
  "orderNumber": "string",
  "platform": "string",
  "sourceName": "string",
  "totalAmount": "string",
  "subtotal": "string",
  "taxAmount": "string",
  "taxBreakdown": {
    "subtotal": 0,
    "shippingNet": 0,
    "totalTax": 0,
    "total": 0,
    "pricesIncludeTax": true,
    "breakdown": [
      {
        "name": "VAT",
        "rate": 17,
        "amount": 12.45
      }
    ],
    "currency": "string"
  },
  "shippingAmount": "string",
  "discountAmount": "string",
  "couponCode": "string",
  "couponDiscount": "string",
  "coupon": {
    "title": "string",
    "type": "string",
    "value": "string"
  },
  "surchargeAmount": "string",
  "appliedSurcharges": [
    {
      "key": "string",
      "name": "string",
      "value": {},
      "amount": 0
    }
  ],
  "customFieldValues": {},
  "adminFieldValues": {},
  "ruleDiscountAmount": "string",
  "appliedRules": [
    {
      "id": "string",
      "name": "string",
      "type": "string",
      "discountAmount": "string"
    }
  ],
  "currency": "string",
  "status": "string",
  "financialStatus": "string",
  "statusLabel": {
    "id": "string",
    "name": "string",
    "color": "string",
    "canonicalStatus": "string",
    "isSystem": true
  },
  "notes": "string",
  "paymentMethod": "string",
  "isTestOrder": true,
  "customer": {
    "email": "string",
    "name": "string"
  },
  "shippingAddress": {
    "firstName": "string",
    "lastName": "string",
    "name": "string",
    "company": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postalCode": "string",
    "phone": "string"
  },
  "billingAddress": {
    "firstName": "string",
    "lastName": "string",
    "name": "string",
    "company": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postalCode": "string",
    "phone": "string"
  },
  "items": [
    {
      "productId": "string",
      "variantId": "string",
      "sku": "string",
      "name": "string",
      "quantity": 0,
      "price": "string",
      "unitPrice": "string",
      "totalPrice": "string",
      "image": "string"
    }
  ],
  "createdAt": "2019-08-24T14:15:22Z",
  "syncWarning": "string",
  "paymentStatus": "string",
  "paymentProviderType": "string",
  "paymentProviderName": "string",
  "paymentId": "string",
  "paymentExternalId": "string",
  "paymentAmount": "string",
  "paymentCurrency": "string",
  "paymentRefundedAmount": "string",
  "invoiceUrl": "string",
  "invoiceNumber": "string",
  "numberOfPayments": 0,
  "paymentCapabilities": {
    "refund": true,
    "manualRefundUrl": "string"
  },
  "refunds": [
    {
      "id": "string",
      "amount": "string",
      "reason": "string",
      "status": "string",
      "type": "string",
      "source": "string",
      "createdAt": "2019-08-24T14:15:22Z"
    }
  ],
  "tenders": [
    {
      "id": "string",
      "type": "string",
      "amountBase": "string",
      "currencyBase": "string",
      "giftCard": {
        "id": "string",
        "codeLast4": "string"
      }
    }
  ],
  "isRead": true,
  "downloadMeta": {
    "files": [
      {
        "fileId": "string",
        "productId": "string",
        "productName": "string",
        "fileName": "string",
        "downloadsUsed": 0,
        "downloadLimit": 0,
        "expiresAt": "2019-08-24T14:15:22Z"
      }
    ]
  },
  "trackingNumber": "string",
  "trackingUrl": "string",
  "carrier": "string",
  "shippingSelection": {
    "carrier": "string",
    "service": "string",
    "methodName": "string",
    "amount": "string"
  },
  "deliveryType": "string",
  "pickupLocationData": {
    "name": "string",
    "line1": "string",
    "line2": "string",
    "city": "string",
    "region": "string",
    "postalCode": "string",
    "country": "string",
    "phone": "string",
    "rateName": "string"
  }
}

{
  "statusCode": 400,
  "code": "VALIDATION_FAILED",
  "message": "name should not be empty, price must be a positive number",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

{
  "statusCode": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid or expired credential",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

{
  "statusCode": 403,
  "code": "INSUFFICIENT_SCOPE",
  "message": "API key does not have the required scope: products:write",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

{
  "statusCode": 404,
  "code": "RESOURCE_NOT_FOUND",
  "message": "Resource not found",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/orders/{id}"
}

Get customer orders

GET
/v1/customers/{id}/orders
AuthorizationBearer <token>

Admin API key (server-to-server). Issue via the dashboard at Settings → Authentication → API Keys. Plain-text key is shown once — store in a secret manager. Format: Authorization: Bearer brainerce_xxxxxxxxx.

In: header

Path Parameters

idstring

Customer ID

Query Parameters

page?number
limit?number
curl -X GET "https://api.brainerce.com/api/v1/customers/string/orders?page=0&limit=0"
{
  "data": [
    {
      "id": "string",
      "externalId": "string",
      "orderNumber": "#1001",
      "status": "string",
      "totalAmount": "string",
      "currency": "string",
      "subtotal": "string",
      "discountAmount": "string",
      "couponCode": "string",
      "couponDiscount": "string",
      "ruleDiscountAmount": "string",
      "appliedDiscounts": [
        {}
      ],
      "shippingAmount": "string",
      "taxAmount": "string",
      "shippingAddress": {},
      "billingAddress": {},
      "items": [
        {
          "productId": "string",
          "variantId": "string",
          "sku": "string",
          "name": "string",
          "quantity": 0,
          "price": "string",
          "unitPrice": "string",
          "totalPrice": "string",
          "image": "string",
          "customizations": {},
          "modifiers": [
            {
              "modifierId": "string",
              "groupId": "string",
              "groupName": "string",
              "name": "string",
              "priceDelta": "string",
              "freeApplied": true,
              "effectivePrice": "string"
            }
          ]
        }
      ],
      "paymentMethod": "string",
      "financialStatus": "string",
      "fulfillmentStatus": "string",
      "trackingNumber": "string",
      "trackingUrl": "string",
      "carrier": "string",
      "shippedAt": "2019-08-24T14:15:22Z",
      "deliveredAt": "2019-08-24T14:15:22Z",
      "statusHistory": [
        {}
      ],
      "platform": "string",
      "createdAt": "2019-08-24T14:15:22Z",
      "notes": "string",
      "hasDownloads": true
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 137,
    "totalPages": 7
  }
}

{
  "statusCode": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid or expired credential",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/customers/{id}/orders"
}

{
  "statusCode": 403,
  "code": "INSUFFICIENT_SCOPE",
  "message": "API key does not have the required scope: products:write",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/customers/{id}/orders"
}

{
  "statusCode": 404,
  "code": "RESOURCE_NOT_FOUND",
  "message": "Resource not found",
  "timestamp": "2026-08-23T10:15:00.000Z",
  "path": "/api/v1/customers/{id}/orders"
}

On this page

No Headings