Create booking ticket passes.
POST /api/digital-pass/booking-ticket-pass
Success: 200 OK
- Products: Operator (
FOH), Digital Passes (DIGITALPASSES) (any one of these products, not all) - Features: Digital Passes - Ticket (
DIGITALPASSESTICKET), Front of House Generic Access (FOHGENERIC) (any one of these features, not all)
Overview
Creates one digital ticket pass per attendee on a booking — the wallet passes attendees add to their phones and present at the venue — and returns a single link from which they are all downloaded.
The booking must not have finished. The booking's end date and time is compared with the current UTC time, and a booking that has already ended is rejected with 404 and the message Booking identified by bookingRef … is no longer active. Generate the passes while the booking is still in the future or in progress; you cannot generate them retrospectively.
Send the X-Timezone header on every call. It is checked before anything else and must be an IANA timezone name such as Europe/London, America/New_York or UTC. A missing, empty or unrecognised value fails the request with 400 and no passes are created. The timezone governs how the start time is formatted on the face of each pass, so send the attendee's timezone rather than your server's.
One pass is produced per party member on the booking. The lead attendee's pass shows their real name; every other pass shows Guest 1, Guest 2 and so on, numbered in the order the party members are returned — the API does not accept individual guest names. If the booking has no party members recorded, this is not an error: a single pass is created using the booking reference as its barcode.
Each pass carries a scannable value of $T followed by that attendee's barcode. That is the string a reader at the venue decodes, so a scanner configured to expect a bare numeric booking reference will not match it.
Digital passes must be enabled and configured for the booking's site. If they are not, the request fails with 400 — see the Errors table for the exact messages.
Endpoint
POST {base_url}/api/digital-pass/booking-ticket-pass
{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
bookingRef | integer (int32) | No | The booking to issue passes for. This is the booking reference, not the booking id — the two are distinct values on a booking and only the reference is accepted here. Everything the passes need is derived from it: the site, the activity, the location, the start and end times, the lead attendee's name and the party members. Omitting it is treated as 0; no booking matches 0 and the request fails with 404. |
Sample request
curl -X POST '{base_url}/api/digital-pass/booking-ticket-pass' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Use-SSO: true' \
-H 'Content-Type: application/json' \
-d '{
"bookingRef": 1
}'Response fields
| Field | Type | Description |
|---|---|---|
passPortalDownloadLink | string | A single URL to the pass portal covering all the passes created by this call, not one link per attendee. Give it to the booker so the party can download their passes and add them to their phones' wallets. |
Sample response
{
"passPortalDownloadLink": "string"
}Errors
| Status | Meaning | When |
|---|---|---|
400 | Bad request | The X-Timezone header is missing (X-Timezone header is required), empty (X-Timezone header cannot be empty) or not a recognised IANA name (Invalid IANA timezone name in X-Timezone header: …). Also returned when the booking's site has no usable digital pass configuration: Digital Passes are disabled, Digital Passes Service URL is not configured or invalid, or Digital Passes API key is not configured. These are tenant configuration problems, not problems with your request — retrying will not help. |
404 | Not found | Three distinct causes, distinguishable only by the message. BookingRef … does not exist. — no booking has that reference. Booking identified by bookingRef … is no longer active. — the booking has already ended; note this is an expiry, not a missing record, and it is deliberately returned as 404 rather than 410. Booking data not found for bookingRef …. — the booking exists but its ticket data could not be assembled. |
500 | Internal server error | The external Digital Passes API rejected the request or returned a response that could not be parsed. No passes are created. Retry; if it persists the tenant's Digital Passes configuration or the upstream service needs investigating. |