Sign Customiser

Queue the established CSV export for an inclusive UTC creation-date range. The email recipient is the authenticated Store's contact email and cannot be overridden.

POST/api/v3/orders/export

Overview

The range may contain at most 366 days and 1,000 orders, and its estimated CSV size must stay within the export ceiling; choose a shorter range when either bound is exceeded. Unlike the v3 read projection, the frozen CSV contract still includes cached legacy order rows. Requires orders:write. Supply an Idempotency-Key; replaying the same request does not queue or email a second export.

Authorisation

Bearer token required. Include it in theAuthorization header.

Required scope: orders:write

Request body

created_fromstringbody
created_tostringbody

Request body example

application/json
{
  "created_from": "2026-07-01",
  "created_to": "2026-07-19"
}
Queue an order CSV export
curl https://web.signcustomiser.com/api/v3/orders/export \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "created_from": "2026-07-01",
  "created_to": "2026-07-19"
}'
Response202
{
  "data": {
    "object": "order_export",
    "status": "queued",
    "recipient_email": "orders@example.com",
    "created_from": "2026-07-01",
    "created_to": "2026-07-19"
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/orders/export",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
Response400
{
  "type": "https://www.signcustomiser.com/help/api/problems/malformed_json",
  "title": "Malformed JSON",
  "status": 400,
  "code": "malformed_json",
  "detail": "The request body is not valid JSON.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response401
{
  "type": "https://www.signcustomiser.com/help/api/problems/missing_api_key",
  "title": "Missing API key",
  "status": 401,
  "code": "missing_api_key",
  "detail": "Provide a store API key as a bearer token.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response403
{
  "type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
  "title": "Insufficient scope",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "This operation requires the orders:write scope.",
  "required_scopes": [
    "orders:write"
  ],
  "granted_scopes": [
    "orders:read"
  ],
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response409
{
  "type": "https://www.signcustomiser.com/help/api/problems/idempotency_key_conflict",
  "title": "Idempotency key conflict",
  "status": 409,
  "code": "idempotency_key_conflict",
  "detail": "This Idempotency-Key was already used for a different request body on this operation.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response422
{
  "type": "https://www.signcustomiser.com/help/api/problems/export_too_large",
  "title": "Order export too large",
  "status": 422,
  "code": "export_too_large",
  "detail": "The selected range exceeds an order or estimated CSV size limit. Choose a shorter range and try again.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response429
{
  "type": "https://www.signcustomiser.com/help/api/problems/rate_limited",
  "title": "Too many requests",
  "status": 429,
  "code": "rate_limited",
  "detail": "You have exceeded the request limit for this API key.",
  "retry_after": 600,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}