Changelog

What's new in the Ticketero API. New endpoints, fields, webhooks and breaking changes, most recent first.

Buyer API

Idempotent ticket orders

  • New POST /orders/create accepts an optional Idempotency-Key header. Retrying with the same key never creates a second order: if the first request created the order you get the original response back, with an Idempotent-Replayed: true header. Keys are scoped to your account and kept for 24 hours.
  • New 409 responses with a data.code when a key clashes: IDEMPOTENCY_IN_PROGRESS (the first request is still running, retry with the same key), IDEMPOTENCY_KEY_REUSED (same key, different ticket, event or quantity) and IDEMPOTENCY_OUTCOME_UNKNOWN (do not retry, contact support). See Retry safely.
  • Heads-up when you lock first and send no header, the requestId of the lock is used as the key. That requestId must be a real lock: an invented value can be rejected, so send the header instead.
  • Heads-up POST /orders/status takes as confirmation the requestId returned by POST /orders/create, not the one from the lock. Earlier guides suggested reusing the lock requestId.
Seller API

Tickets lock during a sale

  • New every ticket payload now carries a locked boolean (GET /broker/tickets, GET /broker/tickets/{ticket_id}). It is true while a buyer checkout is holding that listing.
  • Breaking writes on a locked ticket are rejected with 409 and { “locked”: true }. Affects PUT /broker/tickets/{ticket_id}, PATCH /price, /stock, /status and DELETE /broker/tickets/{ticket_id}. The lock clears on its own when the sale completes or the checkout expires.
  • Heads-up sync jobs should skip listings whose locked is true instead of retrying in a loop. A queued retry on the next cycle is enough. See Locked tickets.
Buyer API

Attendee address and phone

  • New required_purchase_fields now carries two extra keys on every ticket: address_required and phone_required. When either is “1”, send address and phone on each paxes entry of POST /orders/create. address is a single-line text field, and paxes[].phone is the attendee’s phone, separate from delivery.phone.
  • Improved deliveryMethods and tgDeliveryMethod now always return standard labels (Direct Transfer, E-Ticket, Mobile Ticket, Mobile Entry, Instant Download, Email, Physical). Tickets that used to expose raw internal keys are mapped to these labels.
  • Heads-up read required_purchase_fields as an open object. Keys are added over time and unknown keys must not break your parser.
Seller API

Order checkout grouping code

  • New a short 6-character order code identifying the buyer’s checkout is now returned on every order object: GET /broker/orders, GET /broker/orders/{id} and the order.* webhooks. Orders bought together in one checkout share the same code, so you can group a multi-ticket purchase. May be null.
  • Improved POST /broker/webhooks/{id}/test now sends a full synthetic order.created payload (a complete order shape with fake values and data.test: true) instead of a bare stub, so you can validate your parser end-to-end.
Seller APIBuyer API

Ticket category & external IDs

  • New optional category field on tickets. Set it on POST/PUT /broker/tickets and read it back wherever a ticket’s seating is returned, including the Buyer API seats object.
  • New external_id is now returned on Seller order objects (GET /broker/orders, GET /broker/orders/{id}), in order webhooks, and on each successful row of POST /broker/tickets/bulk.
  • New the ticket.disabled webhook payload now carries external_id alongside ticket_id.
  • New persist the ticket_id returned by POST /broker/tickets and reuse it as-is on every later call to that ticket.
Seller API

Richer order details

  • New order objects (and the order.* webhooks) now include the buyer recipient and the full event/venue snapshot, so you can fulfill straight from the webhook without a follow-up GET.
Seller API

Seller API launch

  • New the Seller API is live. Publish and manage inventory, fulfill orders, track payments and receive signed webhooks.
Buyer API

Buyer API launch

  • New the Buyer API is live. Search events, browse tickets, reserve seats and complete purchases.