Create booking ticket passes.

POST /api/digital-pass/booking-ticket-pass

Success: 200 OK

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

FieldTypeRequiredDescription
bookingRefinteger (int32)NoThe 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
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

FieldTypeDescription
passPortalDownloadLinkstringA 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

200 OK
{
  "passPortalDownloadLink": "string"
}

Errors

StatusMeaningWhen
400Bad requestThe 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.
404Not foundThree 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.
500Internal server errorThe 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.

This page as markdown · All pages · llms.txt