API · Orders
Orders are completed ticket purchases. The API only returns orders that customers actually paid for — pending and abandoned orders are filtered out.
The status field reflects current state: paid, refund_pending, refunded, or partially_refunded.
GET /admin/orders
Returns paid orders in your account, with revenue stats for the period filter.
curl -H "Authorization: Bearer your-token-here" \
-H "Accept: application/json" \
https://app.usetix.io/admin/orders
Query parameters:
| Parameter | Description |
|---|---|
period |
One of today, week, month, year, all. Defaults to month. |
event_slug |
Filter to orders for a specific event. |
query |
Free-text search across order code, order public ID, ticket check-in code, ticket public ID, customer email, and Stripe payment intent ID. |
include_archived |
Set to 1 to include archived paid/refunded orders. Defaults to excluding archived orders. |
Response:
{
"orders": [
{
"public_id": "abcd1234efgh5678",
"order_code": "7K3Q9D2A",
"display_number": "7K3Q-9D2A",
"status": "paid",
"customer_name": "Jane Doe",
"customer_email": "jane@example.com",
"total": { "amount": "42.00", "currency": "EUR" },
"payment_provider": "stripe",
"paid_at": "2026-04-22T12:34:50Z",
"created_at": "2026-04-22T12:34:00Z",
"item_count": 2,
"attribution": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "spring-launch"
}
}
],
"stats": {
"order_count": 1,
"revenue": { "amount": "42.00", "currency": "EUR" }
}
}
GET /admin/orders/:public_id
Returns a single order with its line items.
curl -H "Authorization: Bearer your-token-here" \
-H "Accept: application/json" \
https://app.usetix.io/admin/orders/abcd1234efgh5678
Response:
{
"public_id": "abcd1234efgh5678",
"order_code": "7K3Q9D2A",
"display_number": "7K3Q-9D2A",
"status": "paid",
"customer_name": "Jane Doe",
"customer_email": "jane@example.com",
"total": { "amount": "42.00", "currency": "EUR" },
"payment_provider": "stripe",
"paid_at": "2026-04-22T12:34:50Z",
"created_at": "2026-04-22T12:34:00Z",
"item_count": 2,
"attribution": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "spring-launch",
"utm_term": "concert tickets berlin",
"utm_content": "ad-variant-a",
"ref": "partner:radiox"
},
"items": [
{
"public_id": "ord_item_xyz789",
"check_in_code": "9M5V2H8C",
"display_check_in_code": "9M5V-2H8C",
"ticket_title": "General Admission",
"event_id": 42,
"event_slug": "spring-showcase",
"redeemed": false,
"redeemed_at": null
}
]
}
Order fields
| Field | Type | Notes |
|---|---|---|
public_id |
string | Public order ID. Stable; safe to store as your correlation key. URL-safe random token. |
order_code |
string | Human-readable order code. Safe to show in admin/customer-facing UI. |
display_number |
string | Formatted order code for display, typically grouped as XXXX-XXXX. |
status |
string | paid, refund_pending, refunded, or partially_refunded. |
customer_name |
string | Buyer’s name as entered at checkout. |
customer_email |
string | Buyer’s email. |
total.amount |
string | Order total as decimal string. |
total.currency |
string | ISO 4217 code. |
payment_provider |
string | stripe or paypal. |
paid_at |
string | null | ISO 8601 UTC. null if status is no longer paid. |
created_at |
string | ISO 8601 UTC. When the order was first opened. |
item_count |
integer | Number of tickets in the order. |
attribution |
object | Marketing attribution captured at checkout. Always present; {} if the buyer arrived with no tracking parameters. See Attribution. |
items[].public_id |
string | Public ID of the order item (one per ticket). Used in scanner URLs and as the canonical queued-sync identifier. |
items[].check_in_code |
string | Human-readable ticket check-in code. Safe to show to staff and customers. |
items[].display_check_in_code |
string | Formatted check-in code for UI, typically grouped as XXXX-XXXX. |
items[].ticket_title |
string | Title of the ticket type at time of purchase. |
items[].event_id |
integer | Internal ID of the event this ticket belongs to. |
items[].event_slug |
string | Slug of the event. Useful for linking. |
items[].redeemed |
boolean | true once the QR code has been scanned at the door. |
items[].redeemed_at |
string | null | ISO 8601 UTC. null if not yet redeemed. |
Attribution
The attribution object captures where the buyer came from. UTM parameters and ref are read from the checkout page’s URL — and as a fallback the previous page’s URL via the Referer header — at the moment the buyer submits the order. There is no client-side persistence: the data only travels with the form submission itself. Practically this means last-click attribution — the source that delivered the buyer to the checkout page is what’s recorded.
| Field | Type | Notes |
|---|---|---|
utm_source |
string | omitted | e.g. "google", "facebook", "newsletter". |
utm_medium |
string | omitted | e.g. "cpc", "email", "social". |
utm_campaign |
string | omitted | Campaign name as set in the URL. |
utm_term |
string | omitted | Paid keyword, when supplied. |
utm_content |
string | omitted | Ad / creative variant, when supplied. |
ref |
string | omitted | Free-form referral code. Usetix’s own shop footer links append ref=shop:<subdomain> when a buyer clicks through to the marketing site, so signups originating from a specific shop carry that source. |
Only fields that were actually captured are included. Buyers who arrive with no tracking parameters get "attribution": {}.