Orders API
An order is a single purchase. These endpoints give you the order itself, the tickets on it, the payments and refunds against it, and any discounts applied. All require the read scope and are scoped to your organisation.
| Method | Path | Returns |
|---|---|---|
| GET | /v1/orders/{id} | A single order with its money breakdown and balance. |
| GET | /v1/orders/{id}/tickets | A paginated list of the order's tickets, with paid and check-in status. |
| GET | /v1/orders/{id}/payments | A paginated list of payments and refunds against the order. |
| GET | /v1/orders/{id}/discounts | A paginated list of discount codes applied to the order. |
| PATCH | /v1/orders/{id} | Update the order's back-office admin note. Requires the write:orders scope. |
Get one order
curl "https://developer.seaty.co.uk/v1/orders/889201" \
-H "Authorization: Bearer sk_live_your_key_here"
| Field | Type | Description |
|---|---|---|
id | integer | The order id. |
order_guid | string | null | The order's public reference. |
date | string | When the order was placed (ISO 8601). |
email | string | null | The buyer's email. |
attendee_name | string | null | The attendee name. |
event_date_id | integer | The date the order is for. |
allow_marketing | boolean | null | Marketing consent. |
ticket_count | integer | Number of tickets. |
tickets_subtotal | integer | Sum of ticket prices, in pence. |
discount_total | integer | Sum of discounts, in pence. |
total | integer | tickets_subtotal minus discount_total, in pence. |
amount_paid | integer | Total recorded as paid (excludes refunds), in pence. |
amount_refunded | integer | Total refunded, in pence. |
balance | integer | total minus net paid. Positive = still owed; negative = overpaid. |
notes | string | null | The order note as placed. Read-only. |
admin_notes | string | null | The back-office admin note. Writable via PATCH /v1/orders/{id}. |
event_name | string | null | The event name. |
date_of_event | string | null | The event date (ISO 8601). |
Reconciliation: amount_paid, amount_refunded and balance are the three numbers you need to answer "has this order been paid, and is anything outstanding?". They are computed from the payments linked to the order.
List an order's tickets
Includes both seated and general-admission tickets. Cancelled tickets are not listed (a refund for a cancelled ticket shows in the payments below).
curl "https://developer.seaty.co.uk/v1/orders/889201/tickets" \
-H "Authorization: Bearer sk_live_your_key_here"
| Field | Type | Description |
|---|---|---|
ticket_guid | string | The ticket's unique reference. |
ticket_name | string | The ticket/seat name. |
ticket_group | string | The seating group or block. |
ticket_category_id | integer | The category. Join to ticket categories for name and price. |
ticket_category_name | string | null | The category name, if available. |
section_name | string | null | The seating-plan section, if seated. Null for general admission. |
price | integer | Ticket price, in pence. |
discount | integer | null | Per-ticket discount, in pence. |
people | integer | How many people the ticket admits. |
payment_taken | boolean | Whether the ticket has been marked as paid. |
checked_in | boolean | Whether the ticket has been scanned in. |
checked_in_at | string | null | When it was last scanned in (ISO 8601). Null if never. |
List an order's payments
The read side of recording payments: every payment and refund against the order, most recent first.
curl "https://developer.seaty.co.uk/v1/orders/889201/payments" \
-H "Authorization: Bearer sk_live_your_key_here"
| Field | Type | Description |
|---|---|---|
id | integer | The payment id. |
guid | string | null | The payment's public reference. |
date | string | When the payment was made (ISO 8601). |
amount | integer | Amount in pence. Always positive: use is_refund to tell direction. |
is_refund | boolean | true if this is a refund. |
type_id | integer | null | Payment-method code (see Reference). |
method | string | A label for the method: cash, cheque, card, bank_transfer, or other (any internal code, e.g. a card payment taken through Seaty). |
source | string | Where it came from: online, admin or api. |
notes | string | null | Any note recorded with the payment. |
List an order's discounts
curl "https://developer.seaty.co.uk/v1/orders/889201/discounts" \
-H "Authorization: Bearer sk_live_your_key_here"
| Field | Type | Description |
|---|---|---|
code | string | null | The discount code used. |
name | string | null | The discount name. |
amount | integer | Amount taken off, in pence. |
percentage | integer | null | The percentage, if the code was percentage-based. |
The order's discount_total is the sum of these.
Update an order's admin notes
The one write on orders: set the back-office admin note (the same note your staff edit in the order tools). It does not touch the order itself, its tickets, or money. Requires the write:orders scope; a key without it gets 403 forbidden.
curl -X PATCH "https://developer.seaty.co.uk/v1/orders/889201" \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "admin_notes": "Chased for balance on 4 June" }'
| Body field | Type | Required | Description |
|---|---|---|---|
admin_notes | string | null | yes | The note to store. Send an empty string to clear it. Omit the field entirely and the request does nothing (422). |
The response is the full order, the same shape as GET /v1/orders/{id}, with the updated admin_notes. A 404 means the order is not in your organisation. The read-only notes field (the order note as placed) is unaffected.
Next
- Balance payments and refunds: record an external payment or refund against an event.
Need help? Email support@seaty.co.uk.