Orders API

Read a single order with its full money breakdown and balance, plus the tickets on it (with paid and check-in status), the payments and refunds against it, and the discount codes applied.

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.

MethodPathReturns
GET/v1/orders/{id}A single order with its money breakdown and balance.
GET/v1/orders/{id}/ticketsA paginated list of the order's tickets, with paid and check-in status.
GET/v1/orders/{id}/paymentsA paginated list of payments and refunds against the order.
GET/v1/orders/{id}/discountsA 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"
FieldTypeDescription
idintegerThe order id.
order_guidstring | nullThe order's public reference.
datestringWhen the order was placed (ISO 8601).
emailstring | nullThe buyer's email.
attendee_namestring | nullThe attendee name.
event_date_idintegerThe date the order is for.
allow_marketingboolean | nullMarketing consent.
ticket_countintegerNumber of tickets.
tickets_subtotalintegerSum of ticket prices, in pence.
discount_totalintegerSum of discounts, in pence.
totalintegertickets_subtotal minus discount_total, in pence.
amount_paidintegerTotal recorded as paid (excludes refunds), in pence.
amount_refundedintegerTotal refunded, in pence.
balanceintegertotal minus net paid. Positive = still owed; negative = overpaid.
notesstring | nullThe order note as placed. Read-only.
admin_notesstring | nullThe back-office admin note. Writable via PATCH /v1/orders/{id}.
event_namestring | nullThe event name.
date_of_eventstring | nullThe 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"
FieldTypeDescription
ticket_guidstringThe ticket's unique reference.
ticket_namestringThe ticket/seat name.
ticket_groupstringThe seating group or block.
ticket_category_idintegerThe category. Join to ticket categories for name and price.
ticket_category_namestring | nullThe category name, if available.
section_namestring | nullThe seating-plan section, if seated. Null for general admission.
priceintegerTicket price, in pence.
discountinteger | nullPer-ticket discount, in pence.
peopleintegerHow many people the ticket admits.
payment_takenbooleanWhether the ticket has been marked as paid.
checked_inbooleanWhether the ticket has been scanned in.
checked_in_atstring | nullWhen 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"
FieldTypeDescription
idintegerThe payment id.
guidstring | nullThe payment's public reference.
datestringWhen the payment was made (ISO 8601).
amountintegerAmount in pence. Always positive: use is_refund to tell direction.
is_refundbooleantrue if this is a refund.
type_idinteger | nullPayment-method code (see Reference).
methodstringA label for the method: cash, cheque, card, bank_transfer, or other (any internal code, e.g. a card payment taken through Seaty).
sourcestringWhere it came from: online, admin or api.
notesstring | nullAny 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"
FieldTypeDescription
codestring | nullThe discount code used.
namestring | nullThe discount name.
amountintegerAmount taken off, in pence.
percentageinteger | nullThe 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 fieldTypeRequiredDescription
admin_notesstring | nullyesThe 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


Need help? Email support@seaty.co.uk.