Reassign a sold ticket to another date or ticket type
Minimum role: ADMIN. Active workspace via the X-Workspace-Id header.
Moves an ALREADY SOLD ticket to another ticketTypeId and/or to the eventDateId date (at least one of the two is required). Intended for a postponement: moving buyers from the old date to the new one without refunding and reselling.
With only eventDateId, the target ticket type is resolved by NAME (the same type the ticket had, on the new date); if the target date doesn’t have exactly one type with that name, it responds 422 and you must pass an explicit ticketTypeId.
It does NOT charge or refund the price difference if the new type costs something else: the ticket’s unitPrice/subtotal keep the sale’s ORIGINAL price. If money needs adjusting, use POST /sales/{id}/refund separately.
It does NOT reissue the QR: ticketCode is always preserved (it is what the buyer already has printed, in Wallet and in their email).
It does NOT notify the buyer. This endpoint only moves data; to resend the updated ticket use POST /tickets/{ticketCode}/resend, and for a bulk postponement notice, use the communications module.
A ticket that is already checked in, or that belongs to a sale that is not CONFIRMED, responds 409 and is not reassigned.
NUMBERED SEATING (seats.io): if the target date has numbered seating, seatLabel is REQUIRED (409 SEAT_REQUIRED if missing) — the server never picks a seat on its own. The seat is validated and booked in seats.io before moving the ticket; if it is no longer available, it responds 409 SEAT_UNAVAILABLE without changing anything. If the ticket held a numbered seat on the source date, that seat is released after the move is confirmed.
/tickets/{ticketCode}AuthorizationAPI key · headerrequiredAPI key prefixed with Bearer . Alternative: the x-api-key header with the raw key. Available scopes: read and write (see /.well-known/oauth-protected-resource).
x-api-keyAPI key · headerrequiredRaw API key (without Bearer ), alternative to Authorization.
ticketCodestringrequiredX-Workspace-IdstringActive workspace to operate on. Optional: when omitted, the default workspace of the user who owns the key is used (pickActiveOrg).
application/jsoneventDateIdstringticketTypeIdstringseatLabelstringOK
dataSaleItemrequiredShow propertiesHide properties
idstringrequiredticketTypeIdstringrequiredquantityintegerrequiredunitPricenumberrequiredsubtotalnumberrequiredticketCodestringrequiredcheckedInAtstring | nullrequiredShow propertiesHide properties
stringnullseatLabelstring | nullrequiredShow propertiesHide properties
stringnullMissing or invalid credential.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyInsufficient role or resource not accessible.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyResource does not exist or is out of scope.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyConflict: the resource does not allow this operation in its current state.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyOperation error.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyThe external provider failed to complete the operation.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsany
