Docs
Endpoints · Orders

GET/v1/orders

One order with its store, shopper, totals and lines.

What it does

One order, as the order.created webhook sends it: by PrintWisp's id (order) or by your order number (ref). A test key reads test orders and a live key real ones. A connected shop's key sees only its own shop's orders; any other key sees every order of the organisation. Money is a string with two decimals; null where the order did not carry it (an order you post keeps its own totals, so totals is null and each line's line_amount is what you sent).

Send the key: Authorization: Bearer sk_test_… or sk_live_…. Any method but GET or POST answers 405 method_not_allowed: “GET or POST.”

curl "https://printwisp.com/v1/orders?ref=WEB-10021" \
  -H "Authorization: Bearer $PRINTWISP_KEY"

# 200
{
  "order": "ord_7d1e4b9a2c6f0583",
  "order_ref": "WEB-10021",
  "livemode": true,
  "store": null,
  "source": "api",
  "status": null,
  "placed_at": "2026-10-05T04:31:00+00:00",
  "customer": { "name": "Jane Citizen", "email": "jane@example.com" },
  "shipping": { "name": null, "address": null, "method": null, "tracking": null },
  "totals": { "subtotal": null, "shipping": null, "tax": null, "total": null, "currency": null },
  "lines": [
    {
      "line": "oln_41aa8c3e9d2b7f16",
      "line_ref": "1",
      "design": "dsn_5c2a9e01b7d4f638",
      "sku": null,
      "qty": 1,
      "unit_price": null,
      "line_amount": "89.00",
      "currency": "AUD",
      "print_status": "ready",
      "components": [
        {
          "slot": "paper",
          "name": "Paper",
          "value": "Lustre 170 gsm",
          "code": "lustre_170",
          "ref": null,
          "chosen_by": "shop",
          "price": null
        }
      ],
      "fields": []
    }
  ]
}
<?php
$ch = curl_init('https://printwisp.com/v1/orders?ref=WEB-10021');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . getenv('PRINTWISP_KEY'), 'Content-Type: application/json'],
]);
$answer = json_decode(curl_exec($ch), true);
// Node (your server). The key never reaches a browser.
const r = await fetch('https://printwisp.com/v1/orders?ref=WEB-10021', {
  headers: { Authorization: 'Bearer ' + process.env.PRINTWISP_KEY },
});
const answer = await r.json();
import os, requests

r = requests.get(
    "https://printwisp.com/v1/orders?ref=WEB-10021",
    headers={"Authorization": f"Bearer {os.environ['PRINTWISP_KEY']}"},
)
answer = r.json()

Parameters

ParameterTypeDescription
orderstringPrintWisp's order id (ord_…). Give order or ref.
refstringYour order number, the order_ref you posted.
teststring1 reads a test order with a live key (one posted with "test": true). A test key always reads test orders.

Response

200 application/json. The order.

{
  "order": "ord_7d1e4b9a2c6f0583",
  "order_ref": "WEB-10021",
  "livemode": true,
  "store": null,
  "source": "api",
  "status": null,
  "placed_at": "2026-10-05T04:31:00+00:00",
  "customer": { "name": "Jane Citizen", "email": "jane@example.com" },
  "shipping": { "name": null, "address": null, "method": null, "tracking": null },
  "totals": { "subtotal": null, "shipping": null, "tax": null, "total": null, "currency": null },
  "lines": [
    {
      "line": "oln_41aa8c3e9d2b7f16",
      "line_ref": "1",
      "design": "dsn_5c2a9e01b7d4f638",
      "sku": null,
      "qty": 1,
      "unit_price": null,
      "line_amount": "89.00",
      "currency": "AUD",
      "print_status": "ready",
      "components": [
        {
          "slot": "paper",
          "name": "Paper",
          "value": "Lustre 170 gsm",
          "code": "lustre_170",
          "ref": null,
          "chosen_by": "shop",
          "price": null
        }
      ],
      "fields": []
    }
  ]
}

Errors

HTTPerrormessage
400missing_orderSend ?order=ord_… or ?ref=<order number>.
401unauthorizedSend Authorization: Bearer <secret key>. Keys are made in PrintWisp, on your store's Overview → API keys.
404order_not_foundNo order WEB-10021 for this key.
404order_not_foundNo order ord_t3a9c1e7b5d2f804 for this key (a live key reads real orders).
405method_not_allowedGET or POST.
{ "error": "missing_order", "message": "Send ?order=ord_… or ?ref=<order number>." }

← Every routeQuickstart →