Partner API
The Ticketmaster Partner API, unlike the Discovery API, is not an open API. It is restricted to companies with whom Ticketmaster has existing, official distribution relationships.
The Ticketmaster Partner API lets clients reserve, purchase, and retrieve ticket and event information.
Release Notes
Click here to find the latest API feature releases.
Overview
Authentication
Clients will be provided an API key from Ticketmaster which should be added to every resource endpoint call.
The key can be sent as a query parameter “apikey” or as a header “x-api-key”.
Example (using apikey as query parameter): https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart?apikey=3QIvq55bS608ai6r8moig1WdW57bONry
Host and API endpoint information
Environment | Endpoint |
---|---|
Pre-prod | https://app.ticketmaster.com/partners-preprod/v1 |
Production | https://app.ticketmaster.com/partners/v1 |
All connections must be made over SSL using https.
Production environment testing
Here you can test API transactions for different scenarios like credit card and invoice payment, captcha, etc. The following event ids are available for use:
* 1AeZZfEGkD0xtGV: Use this event ID for production environment testing
Universal Ids
Partner API will now use Universal Ids for all its endpoints . The universal Ids can be fetched using the Discovery Feed or Discovery API .
Best Practices
Cleanup
If a user abandons a page/tab after a ticket reserve has been made, client applications should do their best to detect this and issue a DELETE /cart
request to free up allocated resources on the ticketing server. This should also be done if client apps no longer want to wait through a long, continuing polling process. This is necessary since ticket reserve requests that result in polling will eventually complete asynchronously and take up resources even if clients do not consume the next polling url.
Polling
Polling results from limited per-partner resources in the ticketing system. Clients should always be ready to handle polling responses. See polling for more details.
Terms and Conditions
By using the Ticketmaster Developer Portal, you understand and agree to our Terms of Use.
Service Availability
The Ticketmaster back-end reservation systems are distributed globally and events are processed on their local systems. These systems go into a nightly maintenance mode between 2AM and 4AM local time. This means a show playing at Madison Square Garden will not be transactable between 2AM-4AM Eastern Time. Use the timezone value from the event details response to note when these events may be unavailable for transactions.
Support/FAQs
You can visit our support/FAQ page here.
Contact
Ticketmaster Developer Program devportalinquiry@ticketmaster.com.
Event Click Tracking Url [GET]
This is only available for partners signed up for affiliate tracking through Impact Radius
/partners/v1/tracking?event_id={event_id}&apikey={apikey}
Polling: No
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
shared_id |
ImpactRadius SharedId field in reports (32 chars max) | string | “02a8127b-7a52” | No |
sub_id1,sub_id2,sub_id3 |
ImpactRadius SubId1, SubId2, SubId3 fields in reports(32 chars max each) | string | “02a8127b-7a52” | No |
Event Information
The event information and metadata can be fetched using the Discovery Feed or Discovery API .
Reserve tickets and create a Cart [POST]
Reserves the specified tickets. For integrations requiring captcha, send the captcha solution token in the json body. A hold time will be returned in the cart response that will indicate, in seconds, how long the cart is available for. This value may increase if the user moves through the cart process.
The endpoint allows the following reserves using the additional reserves section in the request.
- Ability to reserve non-adjacent seats.
- Ability to reserve seats in difference price levels.
- Ability to reserve seats in difference zones.
/partners/v1/events/{event_id}/cart?apikey={apikey}
Polling: Yes
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
Response structure:
Response structure for Resale Cart
Response structure for All-in Pricing Cart
More details on the all-in pricing changes in Partner API here.
Shipping Options [GET]
Get shipping options available for this event.
Specifying the “region” query parameter will return options available for users in the selected country.
/partners/v1/events/{event_id}/cart/shipping?apikey={apikey}&cart_id={cart_id}®ion={region}
Polling: No
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
cart_id |
Card identifier. Must be url encoded. | string | “bzJVZURoNit1UkhQQ25pcE5KSHh1K09SVE9lQ0k2RktwSEZFdnAwTlNJYS82ZE5WWldiREtSTQo%3D” | Yes |
region |
2-digit country codes found here: http://www.nationsonline.org/oneworld/country_code_list.htm. | string | “CA” | No . By default, it returns US shipping options for events in US, CA, AU, and NZ, and GB shipping options for events in GB and IE. |
Shipping Options [PUT]
Add a shipping option to the event. Note: some API users will be pre-configured for certain shipping options and may not need to perform this.
/partners/v1/events/{event_id}/cart/shipping?apikey={apikey}&cart_id={cart_id}
Polling: Yes
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
cart_id |
Card identifier. Must be url encoded. | string | “bzJVZURoNit1UkhQQ25pcE5KSHh1K09SVE9lQ0k2RktwSEZFdnAwTlNJYS82ZE5WWldiREtSTQo%3D” | Yes |
Response structure:
Add Billing Information [PUT]
Add customer and billing information to the order. The following payment methods are available:
- Credit cards (American Express, Visa, Mastercard, Discover)
- Debit cards (issued by the above card brands)
- Invoice
For Open Inventory Partners, credit card payments are supported in these markets: US, CA
For Channel Partners, invoice payment is supported in these markets: US, CA, UK, AU, NZ
Payment methods and required billing info are dependent on client configuration. Contact partnersupport@ticketmaster.com for your configuration.
https://app.ticketmaster.com/partners/v1/events/{event_id}/cart/payment?apikey={apikey}
Polling: No
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
Payment Tokenization
Partners can use a Braintree token to charge a user’s card or PayPal account. Braintree users can use the Grant API to share access to a payment method in their vault. Partners who don’t use Braintree can use with the Braintree client SDK or GraphQL API to create a token. Read Creating a Braintree token to learn more.
This request is used to add a Braintree token as payment method to the cart.
- All fields are required except where noted
This request is used to add a invoice payment method to the cart.
Polling: No
Authorization: Required
Commit Cart [PUT]
Finalize the purchase and commit the transaction. source_account_id
can be any unique identifier of the user (i.e. hash of member id). This is required for tracking bounces of ticket redemption emails.
/partners/v1/events/{event_id}/cart?apikey={apikey}
Polling: Yes
Authorization: Required for auto claim of ticket to member account
For now, the response is the same with or without the Authorization Header.
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
Properties
Response structure:
- (object) - response
redemption_url
(url) - link to claim your tickets on ticketmastergrand_total
(number) - Total value of the ordercurrency_code
(text) - Currency of the total value of the orderorder_token
(text) - Order Tokenorder_number
(text) - HOST order ID
Redemption Email
Once the purchase is successfully completed, Ticketmaster will send the buyer the redemption URL. it is recommended that partners display it to the buyer. The URL is active until the buyer redeems the ticket. Partners can store the URL, however be advised that anyone who has the URL can redeem the ticket and could result in a customer service issue. Ticketmaster also sends reminders to the buyer until the ticket has been redeemed. Requesting a copy of the URL is not standard practice and we do not recommend relying on this as part of the integration process.
Delete Cart [DELETE]
Each partner has a limited amount of reservation resources that can be simultaneously in use. If the user abandons the reservation process, it is a good practice to manually delete the cart to allow these resources to be re-allocated. Increased polling may occur if carts are not cleaned up. Not required if the user finalizes the transaction
/partners/v1/events/1AeZZfEGkD0xtGV/cart?apikey={apikey}&cart_id={cart_id}
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
event_id |
The 15-digit alphanumeric event ID. | string | “1AeZZfEGkD0xtGV” | Yes |
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
cart_id |
Card identifier. Must be url encoded. | string | “bzJVZURoNit1UkhQQ25pcE5KSHh1K09SVE9lQ0k2RktwSEZFdnAwTlNJYS82ZE5WWldiREtSTQo%3D” | Yes |
Polling [GET]
Resource endpoints that have polling enabled may alternatively return a json response with a polling url and wait time, along with http status code=202. This is used to inform client applications of long-waiting operations and queuing restrictions for particular actions in the Ticketmaster system.
Client applications may receive the following json response for any resource marked “Polling: Yes”.
Client applications should call polling_url with a GET request after waiting 4 seconds. It is possible that this request may also result in another polling response.
Clients can test polling by issuing the following header: X-TM-FORCE-POLLING: true
to any of the endpoints marked “Polling: Yes”.
The output of the original action will eventually be returned in the body of the response.
/partners/v1/polling-status?token={token}&cart_id={cart_id}&apikey={apikey}
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
cart_id |
Card identifier. Must be url encoded. | string | “bzJVZURoNit1UkhQQ25pcE5KSHh1K09SVE9lQ0k2RktwSEZFdnAwTlNJYS82ZE5WWldiREtSTQo%3D” | Yes |
token |
token | string | “0ee566f7-cbfe-43f4-93b9-117c8d69f3d0” | Yes |
Order management [GET]
Get detailed information about an order using order token. For specifically-enabled accounts only.
/partners/v1/orders?order_token={order_token}?apikey={apikey}
OR using Cart Id. For specifically-enabled accounts only.
/partners/v1/orders?cart_id={cart_id}&event_id={event_id}&apikey={apikey}
Polling: Yes
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
order_token |
An order token | string | “28a67e13-7233-45a5lsGPQy0MZ3J7ZOQRjcW52NHhG083D” | No |
cart_id |
A cart id | string | “28a67e13-7233-45a5ls-22763vacd “ | No |
event_id |
EventId | string | “1AeZZfEGkD0xtGV” | Yes, if using cart_id to find orders. |
Response Sample for Host orders
NOTES:
1. ETickets Ready: The Host supports a feature called eTickets Ready which allows clients to control when consumers can view eTickets (i.e., mobile and print-at-home tickets) on TM. An event programmer (EP) can set a visibility date for eTickets as an offset from the event date/time in minutes. For instance, if a client doesn’t want fans to view their tickets until 72 hours before the event, then an EP would set the visibility time to 4,320 minutes (# of days x 24 hours x 60 minutes/hour). It is the responsibility of consumer-facing apps to honor the setting and only render the tickets at the appropriate time. To that end, the Order Management API will return the barcode_display_date along with the order details when an event is enabled for eTickets Ready. If a ticketing source system has the ability to delay the delivery of tickets until a specific time, then it should implement the barcode_display_date.
2. Safetix: To support SafeTix events, the response will include a ‘delivery’ object indicating the the “service_level”: “SAFETIX”
Response Sample for MFX orders
Response Sample for Universe orders
Mobile Ticket Display Requirements
Ticket Attributes:
The following attributes should appear on each ticket:
Attribute | Description | Data Source |
---|---|---|
Event name | Name of event | Discovery API |
Venue | Name of venue | Discovery API |
Event Date | The event start date in local date | Discovery API |
Event Time | The event start time in local time | Discovery API |
Seat Section | The section of the seat | Order Management API |
Seat Row | The row of the seat | Order Management API |
Seat Number | The seat number | Order Management API |
Portal | The venue entry and exit information for the seat | Order Management API |
Order Number | The order number | Order Management API |
Ticket Text | Information about the seat (only applicable when eventSource=MFX) | Order Management API |
Barcode Display Format:
If the event is using a static barcode, render the barcode for each ticket in barcode_display_format.
If the event is using a SafeTix rotating barcode, use the Secure Entry SDK to render the token in secure_entry_data for each ticket.
Channel Indicator
For Ticketmaster US, CA, IE, AU and NZ events using a mobile QR code, you will need to append the channel indicator for Distributed Commerce to the barcode_id. The channel indicator helps Ticketmaster clients to identify the sales channel for mobile QR codes in reporting. You can either append the letter ‘i’ or ‘I’ as the 17th character to the barcode_id to identify Distributed Commerce as the sales channel for the ticket.
The channel indicator is not required for the following types of events:
- Ticketmaster events located outside of US, CA, IE, AU and NZ (when eventSource = MFX)
- Ticketmaster events using SafeTix
- Universe (when eventSource = Universe)
Unredeemed orders [GET]
Retrieve unredeemed orders within a given time period. Some orders may have had bad email addresses, or emails that went to spam. Use your app’s notification features to notify the user of an unredeemed order. This endpoint requires IP-address whitelisting. Please contact us for details.
/partners/v1/orders/unredeemed?apikey={apikey}
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
days_from_purchase |
Number of days since purchase was made. This or days_before_event is required. | string | ”” | No |
days_before_event |
Number of days before event date. | string | ”” | No |
Order Redemption Status [GET]
Retrieve the redemption status of an order. The response will indicate if the tickets are “redeemed” or “available”. This endpoint is available For specifically-enabled accounts only.
/partners/v1/status?token={token}&apikey={apikey}
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
token |
An order token | string | “28a67e13-7233-45a5lsGPQy0MZ3J7ZOQRjcW52NHhG083D” | Yes |
Update : The redemption status of an order now also includes the voided status of each seat in an order. The voided status is true if the ticket has been voided. Below is a sample of the new response format.
Refund orders [POST]
For specifically-enabled accounts.
Cancel an order that you previously created. When an order is canceled, the seats will be returned to inventory and placed on sale again, but you must return the funds to the credit or debit card that was originally charged. You can only cancel the full order, and you can only cancel one order at a time.
/partners/v1/refund?apikey={apikey}&order_token={order_token}
Polling: Yes
Parameters
Parameter | Description | Type | Example | Required |
---|---|---|---|---|
apikey |
Your API Key | string | “GkB8Z037ZfqbLCNtZViAgrEegbsrZ6Ne” | Yes |
order_token |
An order token | string | “28a67e13-7233-45a5lsGPQy0MZ3J7ZOQRjcW52NHhG083D” | Yes |
dc_extra_notes |
A note for the refund. | string (Maximum of 80 chars) | “Refund approved by John Smith on 3/1/24.” | No |
Error Responses
message | http_code | Note |
---|---|---|
Order not found | 404 | Unable to find order number |
Order is not eligible for a refund | 403 | Order does not pass the refund eligibility checks |
Error Responses
Client or API-side errors will generate a json-formatted response body as well as standard HTTP status codes.
Example:
message | code | http_code | Note |
---|---|---|---|
Unauthorized access | 10004 | 401 | Captcha solution token required |
Event is not API transactable | 90001 | 403 | Event type is not supported through this API. Offer redirect to https://www.ticketmaster.com/event/{eventId} |
No inventory found to match request | 20052 | 400 | Example of sold-out tickets, per ticket id. Can also occur if the number of available continuous seats cannot be fulfilled |
Unauthorized Access | 10004 | 401 | Missing captcha token |
Invalid captcha solution | 10031 | 400 | Invalid captcha solution |
Payment Not Accepted | 20122 | 400 | |
Please enter a valid security code | 20152 | 400 | Invalid CVV/Security code on back of credit card |
Ticketing system is down/unavailable/niterun | 20001 | 503 | Typically the niterun hours are 2am - 4am local time |
Invalid cart | 90003 | 400 | cart_id parameter is invalid or stale |
Invalid Delivery Method ID | 10104 | 400 | |
Event had no visible/usable ticket types for the current channel | 20046 | 400 | API user is not configured to sell the specified ticket types |
Payment method has no funds available | 20129 | 400 | |
Connection error to upstream service | 502 | 502 | |
Upstream service timeout | 504 | 504 | |
Payment has been rejected, retry permitted. | 20130 | 400 |
Clients can reference the code field when communicating and debugging errors with Ticketmaster. We will automatically be notified of any internal, unrecoverable errors.
Cart
- (object) - Cart Response
cart_id
(string) - Cart IDcart
(object) - Carthold_time
(number) - Cart expiry time in secondsitems
(array) - Items- {arrayitemobject} - item
item
(object) - This item could be of type “Tickets, Delivery or Processing”.They are described in detail below.
- {arrayitemobject} - item
totals
(object) - Totalscurrency_code
(text) - Currency Eg. “USD”fee
(number) - Total Fees (Includes Fees and Delivery)grand
(number) - Grand total (This value is equal to the merchandise + fees + taxes.)merchandise
( number) - Total base value of the items. Excludes fees, taxes, and deliverydelivery
(number) - Total Delivery chargetax
(number) - Total Taxunpaid
(number) - Total Unpaid balanceupsell
(number) - Upsell
Cart Item - Tickets
- (object) - Tickets
id
(number) - Item idtype
(text) - Type ‘ticket’x_num
(number) - For Host-based inventory onlyevent_id
(text) - Event Id Eg. “3F004CBB88958BF9”num_seats
(number) - Number of seatsrow
(text) - Name of Row Eg. “I”section
(text) - Section Name Eg. “MEZZ” for Mezzaninestart_seat_number
(number) - Begin Seat Numberend_seat_number
(number) - End Seat Numberis_ga
(boolean=true/false) - true if general admission else false.totals
(object) - Totalscurrency_code
(text) - Currency Eg. “USD”fee
(number) - Total Feesgrand
(number) - Grand totalmerchandise
( number) - Total base value of the items. Excludes fees, taxes, and deliverytax
(number) - Total Tax
areas
(array) - Areas- {arrayitemobject} - area
description
(text) - Description of the area or price level Eg. “100 Level” or “Price Level 6”id
(number) - Area ID
- {arrayitemobject} - area
tickets
(array) - Tickets- {arrayitemobject} - Ticket
description
(text) - Offer nameid
(text) - Ticket type IDquantity
(number) - Number of tickets reservedinventory_type
(string) - Primary or Resalecharges
(array) - Charges- {arrayitemobject} - Charge
price
(number)quantity
(number)tax
(number)type
(text) - Type of charge Eg. distance, face_value, facility, service etc.
- {arrayitemobject} - Charge
- {arrayitemobject} - Ticket
Cart Item - Delivery
- (object) - Delivery
id
(number) - Item idtype
(text) - Type ‘delivery’carrier
(string) - e.g. “TICKETMASTER”service_level
(string) - Type of Delivery. e.g.”ETICKET”description
(object) - Descriptionlong
(text) - Eg. “Get in with:”short
(text) - Eg. “etickets”eta
(text) - Eg. “etickets”
totals
(object) - Totalscurrency_code
(text) - Currency Eg. “USD”fee
(number) - Total Feesgrand
(number) - Grand totalmerchandise
( number) - Total base value of the items. Excludes fees, taxes, and deliverytax
(number) - Total Tax
Cart Item - Processing
- (object) - Processing
id
(number) - Item idtype
(text) - Type ‘processing’totals
(object) - Totalscurrency_code
(text) - Currency Eg. “USD”fee
(number) - Total Feesgrand
(number) - Grand totalmerchandise
( number) - Total base value of the items. Excludes fees, taxes, and deliverytax
(number) - Total Tax
Payment Section - This section is added to Cart Response after adding billing
payments
(array) - Payments- {arrayitemobject} - Payment
id
(number) - Item idpayment_id
(number) - Payment Idtype
- Type of Payment (INVOICE,CC)amount
- Amount chargedcard
(object) - Card (This included only if Payment type is not Invoice)expire_month
(number) - Expiration monthexpire_year
(number) - Expiration yearissuer
(text) - Issuer of cardnumber
(text) - Last Four Digits for CC used.
- {arrayitemobject} - Payment
Payment Request
payment
(object) - Paymentfirst_name
(string) - First name of buyer. Max length : 50 characterslast_name
(string) - Last name of buyer. Max length : 50 charactershome_phone
(string) - Phone numbertype
(string) - Valid values: CC, INVOICE, APPLE_PAY, GOOGLE_WALLETemail_address
(string) - Email address of user. Max length : 128 charactersamount
(number) - Amount to be chargedreference
(string) - Required for type=INVOICE only. Your numeric string-quoted reference number for this invoice transaction.address
(object) - Addressline1
(string) - Address line 1line2
(string) - Address line 2unit
(string) - Unit numbercity
(string) - Citycountry
(object) - Countrycode
(string) - Required, use ISO country abbreviations http://www.nationsonline.org/oneworld/country_code_list.htm
region
(object) - Regionabbreb
(string) Region abbreviation
postal_code
(string) - Postal/Zip code
card
(object) - Card information is used only for(Wallet,Member Id Payment).Data is different based on the Type of Payment used(Described in detail below).
Wallet Token Payment (Wallet anonymous)
card
(object) - Cardnumber
(string) - Wallet Token generatedcin
(string) - Cvv number
Member Id Payment (Wallet)
card
(object) - Cardcin
(string) - Encrypted cvv number (CC type only)encryption_key
(string) - Encryption certificate id (see certificate docs earlier, CC type only)
Order Response Structure
- (object) - Order Response
customer_email
(string) - Customer Email IDthird_party_source
(string) - Name of the Partner who placed the orderdelivery
(object) - Delivery method for the ordercarrier
(string) -service_level
(string)description
(object)short
(string) - Description of the Ticket delivery method.
tickets
(array) - List of Tickets purchased- {ticketitemobject} - Ticket
- {barcodedateobject} - Barcode Display date object is used when there are delivery delays for an event.
format
(text) -Format of the display datevalue
(text) - Value of teh barcode display date
barcode_display_format
(array) - Barcode Display format array.- {barcode_display_format_object} - Barcode Display format object.
delivery_method
(text) - Delivery Method of the Barcode (Mobile or Print at Home)render_type
(text) - Render type of the Barcode (ex QR Code and/or Interleaved 2 of 5)
- {barcode_display_format_object} - Barcode Display format object.
barcode_id
(string) - Barcode id of this ticketdisplay_id
(string) - Ticketmaster order number for this ticket Eg. 1-23454/NY1event_code
(string) - Event code as programmed in the host system.event_host
(string) - Host of the event Eg. NY1, UK2 etc.event_id
(string) - Ticketmaster event ID.is_ga
(boolean=true/false) - true if the ticket is for General Admission.is_national_vip
(boolean) -order_date
(string) - Date the order was placedorder_number
(string) - Ticketmaster order number Eg. 1-23454/NY1portal
(string) -row
(string) - Row of the seatseat_id
(string) - Id of the seatseat_name
(string) - Description/Name of the seat if applicable.section
(string) - Section of the ticketvoided
(boolean) - True if the seat/ticket is canceled/refunded.charges
(array) - Charges- {chargeitemobject} - Charge
description
(text) - Description of the charge Eg. Price, Facility fee, Service charge etc.sub_type
(text) - Subtype of the chargetype
(string) - Type of charge Eg. price, fee, tax etcamount
(object)amount
(number) - Amount chargedcurrency
(text) - Currency Eg. “USD”
- {chargeitemobject} - Charge
secure_entry_data
(object) Only applicable for Safetix enabled eventsrender_type
(string)segment_type
(string)token
(string) - Secure Entry Token
- {barcodedateobject} - Barcode Display date object is used when there are delivery delays for an event.
- {ticketitemobject} - Ticket
voided
(boolean=true/false) - true if the ticket is voided/refunded.additional_info
(object) - Only applicable for Safetix enabled eventssafetix_delivery_delay_date
(string) - Delivery Delay Date for SafeTix-enabled events (only applicable to partners who want to sell SafeTix-enabled events before completing the SafeTix integration)
device_id
(string) - Only applicable for Safetix enabled events. Id of the device used for purchase.device_type
(string) - Only applicable for Safetix enabled events. Type of the device used.device_os
(string) - Only applicable for Safetix enabled events. IOS /ANDROID devicenfc_capable_device
(boolean) - Only applicable for Safetix enabled events.third_party_account_id
(string) - Only applicable for Safetix enabled events. Third Party account id sent in when adding payment.
Notes
Customer Information
We use the following pieces of customer information when placing an order through the API.
- First name
- Last name
- Email - We use email to send the customer their claim link.
- Phone number
- Zip code - this piece of data becomes optional when we get email address because we just need a third piece of data for the box office to use in case there are two customers with same name.
- Address - In case the customer selects mail option for ticket delivery.
When a customer clicks on their claim link, they will be asked to log into their TM account or create one.
Note: Required Customer Data in API For claim process, the API requires:
- email_address
- first_name
- last_name
Extra Information
Partners can send in extra information about the purchase using the dc_extra_notes variable when adding payment.
Partner Channel Source (Reseller) Information
Partners can send the reseller name using the new field called “partner_channel_source” to Commit Cart endpoint. We recommend using a consistent name for each reseller for accurate sales reporting.
Co-Branding Partner Name and Logo Information
In the claim flow, to co-brand the claim page and email, partners can share with us the image and name that needs to be used. The image is uploaded on to our CDN and the URL is shared back with the partner. Partner can then use that URL in our commit cart request with attributes_overrides.
Based on the image URL received in the request, we customize the claim page and the email with specific partner name and image.
Fees and Taxes Information
Fee/Tax | Description | Visible in Top Picks and/or Availability API | Per Ticket/Per Order | API Field Name |
---|---|---|---|---|
Face Value | The established price or base ticket price. Ticketmaster collects the face value and remits it to the client. | Yes | Per Ticket | “faceValue” |
Face Value Tax | City, state, and local taxes assessed on the face value. | Yes | Per Ticket | “reason”: “face_value_tax”, “type”: “tax” |
Facility Fee | A facility charge assessed by clients to help them operate and invest in their venues. Ticketmaster does not share in facility charges. | Yes | Per Ticket | “reason”: “facility”, “type”: “fee” |
Service Fee | Ticketmaster adds a service fee (also known as a convenience charge) to the face value price, or in the case of a resale ticket to the listing price, of each ticket. The fee varies by event based on agreement with each client and is typically shared with the client. | Yes | Per Ticket | “reason”: “service”, “type”: “fee” |
Service Tax | City, state, and local taxes assessed on the service fee. | Yes | Per Ticket | “reason”: “service_tax”, “type”: “tax” |
Service Tax 2 | City, state, and local taxes assessed on the service fee, typically used where there is more than one taxing entity in the same jurisdiction (e.g. City of Chicago and Cook County). | Yes | Per Ticket | “reason”: “service_tax_2”, “type”: “tax” |
Order Processing Fee (Primary Tickets) | The order processing fee offsets the costs the cost of ticket handling, shipping, order processing and support. The fee is typically shared with Ticketmaster clients. | Yes | Per Order | “reason”: “order_processing”, “type”: “fee” |
Order Processing Fee (Resale Tickets) | The resale order processing fee is not available in our TopPicks & Availability API. It is added to the cart only when the cart is reserved. It will come up as a separate line item. | No | Per Order | “type”: “processing”, “totals”: {“currency_code”: “USD”,”delivery”: 0, “fee”: 2.95,”grand”: 2.95,”merchandise”: 0,”tax”: 0, “unpaid”: 2.95, “upsell”: 0 } |
Delivery Fee | Delivery options are determined by Ticketmaster clients and can vary by event. Ticketmaster offers a variety of ticket delivery options that vary in price, dependent on the delivery method chosen. Delivery options may include mobile tickets, print-at-home, US mail or UPS. | Yes | Per Order | “reason”: “delivery”, “type”: “fee” |
All-in Pricing
All-in pricing will be indicated in the Discovery API and Partner API for certain Ticketmaster or Live Nation events that require enforcement of all-in pricing. All-in pricing is set at the event-level.
All Partners:
- In the Discovery API, there is an
allInclusivePricing
field for events. If set to true, then all-in pricing is being applied to that event.
Channel Partners:
- In the Availability API Event Inventory and Seat Availability responses, there is an
allInclusivePricing
field to indicate if all-in pricing is being applied to that event. - Partners can see an event’s all-in pricing status from either Discovery API or Availability API responses.
Open Inventory Affiliate Partners:
- In the Top Picks API, there is an
allInclusivePricing
field in theeventDetails
object. If set to true, then all-in pricing is being applied to that event. - In order to match Ticketmaster.com’s all-in pricing experience, we have also made various changes to the fees in the API so that it is easier for you to display this in your own UI.
- Under the offers object in Top Picks, if all-in pricing is true:
- TotalPrice: should be the sum of faceValue + any fees programmed on the event. Order Processing Fee will not be included in the calculation of this value.
- Facility fee: will no longer appear in the charges array and will be automatically rolled into the service fee.
- Taxes will no longer appear in the charges array in Top Picks; in line with the Ticketmaster.com experience, these should be shown to the user at checkout.
- For Live Nation owned and operated venues or select Ticketmaster all-in pricing events (eg. if the event is using all-in pricing but not at the state mandated level), the order processing fee will always be $0.
- In Partner API Reserve endpoint, if all-in pricing is true, these changes are made to the charges array:
- Service fee: Value is now the sum of all service and facility fees. Service fee does not include tax.
- Tax: Value is now the sum of all taxes for a ticket:
service_tax
,service_tax_2
,face_value_tax
- Facility fee: Now suppressed from the charges array.
- Note: All-in pricing totals can still be retrieved from the totals object in the cart.
Canada All-in Pricing Considerations
- Your implementation for all-in pricing in Canada may differ from US all-in pricing event implementation.
- In the Canadian market, all-in pricing applies to all events in this country and the all-in pricing field (allInclusivePricing) will NOT be set to true, even though Canada utilizes all-in pricing. Partners should not key off this field to determine if all-in pricing is used.
- This field applies only to US events and will always be listed as false for Canadian events in Discovery, Top Picks and Availability APIs.
- Canadian all-in pricing is composed of:
- In Top Picks API, all-in pricing functions as it does for the US (e.g. the service fee is combined with facility fee into a single “service fee” line and totalPrice excludes tax)
- In Reserve, unlike the all-in pricing implementation in the US, there are no changes for Canadian all-in pricing. The Reserve response is the same structure as US and CA events when all-in pricing is not enabled (see here for Reserve details). This is to mimic Ticketmaster.com in Canada where Checkout does NOT roll up the facility fee into the service fee.
- In the Availability API, there are no changes for Canadian all-in pricing. The Availability API returns the same response as US and CA events when all-in pricing is not enabled.
Market-level signals for all-in pricing:
- Discovery, Top Picks and Availability APIs will also support state-level or market-level required mandates for all-in pricing.
- The following US states with all-in pricing legislation will have the allInclusivePricing field set to true given their respective mandate:
- California: Live
- Colorado: Live August 7, 2024
- Connecticut: Live
- Maryland: Live
- Minnesota: Live January 1, 2025
- New York: Live
- North Carolina: Live January 1, 2025
- Tennessee: Live
- For other countries, the allInclusivePricing field will always be set to false and should not be used as an indicator that all-in pricing applies to this market. Other countries that mandate all-in pricing and are supported in our API:
- Canada: Live on all events
API Launch Guide
Channel Partners
Service | Description |
---|---|
Event Discovery | Discovery API (search for events, venues, attractions) |
Event Inventory API (Discover events available to transact on) | |
Seat Inventory | Availability API (pricing and allocated seat inventory per offer) |
Purchase | Reserve Tickets (reserve specified tickets) |
Shipping Options (select delivery method) | |
Payments (Invoice) | |
Ticket Delivery | Order Management API (partner receives order/barcode and delivers the ticket to the fan) |
Sample Workflow
- Call Event Inventory to retrieve the list of events that can be sold
https://app.ticketmaster.com/partners/v1/events?apikey={api_key}
- Call Discovery API to get the details of an event
https://app.ticketmaster.com/discovery/v2/events/1AeZZfEGkD0xtGV.json?apikey={api_key}
- Call Availability to get the ticket types, prices and seats that you can sell for the event
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/availability?apikey={api_key}
- Call Partner API to create Cart
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart?apikey={api_key}
{ "reserve" : { "tickets":[ { "id": "000002040006", "quantity": 1, "price" : {"id" : 3 } } ] "areas" : [ { "id" : 2 } ], "section": "CLB239", "row": "C", "begin_seat": 17, "end_seat" : 18, "accept_best_available": false } }
- Call the shipping endpoint to get the shipping options available for the event
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart/shipping?apikey={api_key}&cart_id={Cart Id from the response in step 4}
- Choose and add the shipping option
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart/shipping?apikey={api_key}&cart_ id={Cart Id from the response in step 4}
{"shipping_id": "shipping_id"} // This value is picked up from the response in step 5
- Add the payment information to the cart along with the Customer Information
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart/payment?apikey={api_key}
{ "cart_id": "cart_id created in step 4", "payment": { "address": { "city": "Los Angeles", "country": { "code": "US" }, "line1": "123 Main Street", "line2": "", "postal_code": "90210", "region": { "abbrev": "CA" } }, "amount": "177.45", "email_address": "dc-eng@ticketmaster.com", "first_name": "John", "home_phone": "212-867-5309", "last_name": "Doe", "reference": "15278303", //Required for type=INVOICE only. The value should be a positive integer 16 characters long. "type": "INVOICE" }
- Commit the cart
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart?apikey={api_key}
{ "cart_id" : " cart_id created in step 4 " }
- Ticket Delivery : Order Management returns the detailed order information for ticket delivery, including TM order number and barcode ID
https://app.ticketmaster.com/partners/v1/orders?order_token={order_token received in step 9}&apikey={api_key}
Polling - Some requests may return a polling response when the Ticketmaster system is under heavy load, so you will need to design your system to handle polling requests’)
Open Inventory Partners
Native API Integrations
Service | Description |
---|---|
Event Discovery | Discovery Feed (same as Discovery API content but in a download formats) |
Seat Inventory | Top Picks API (seat recommendations based on availability and pricing) |
Inventory Status API (event-level ticket availability signal) | |
Purchase | Reserve Tickets (reserve specified tickets) |
Shipping Options (select delivery method) | |
Payments (payment tokens for credit cards) | |
Ticket Delivery | Ticketmaster claim process (fans receive tickets via Ticketmaster claim E-mail) |
Sample Workflow
- Call Discovery API (or Discovery Feed) to retrieve events that can be sold
https://app.ticketmaster.com/discovery-feed/v2/events?apikey={api_key}
This API response will give you links to download the complete list of events for a country in CSV,XML and JSON format. Once you have the list of events you can pick the event id you want to transact on.
- Call Discovery API to get the details of an event
https://app.ticketmaster.com/discovery/v2/events/1AeZZfEGkD0xtGV.json?apikey={api_key}
- Call Top Picks to get seat recommendations based on availability, pricing and ticket type ids for cart creation
https://app.ticketmaster.com/top-picks/v1/events/1AeZZfEGkD0xtGV?apikey={api_key}
- Call Partner API to create Cart
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart?apikey={api_key}
{ "reserve" : { "tickets":[ { "id": "000002040006", "quantity": 1, "price" : {"id" : 3 } } ] "areas" : [ { "id" : 2 } ], "section": "CLB239", "row": "C", "begin_seat": 17, "end_seat" : 18, "accept_best_available": false } }
- Call the shipping endpoint to get the shipping options available for the event
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart/shipping?apikey={api_key}&cart_id={Cart Id from the response in step 4}
- Choose and add the shipping option
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart/shipping?apikey={api_key}&cart_ id={Cart Id from the response in step 4}
{"shipping_id": "shipping_id"} // This value is picked up from the response in step 5
- Use Braintree Client SDK to generate the payment token
https://developer.ticketmaster.com/products-and-docs/apis/partner/billing/#braintree-token
You will need a real CC to use in the production environment. Please follow the documentation above as to how to integrate with the Braintree SDK and generate a payment token
- Add the payment information to the cart along with the Customer Information
Once you get the payment token please add the payment to your Cart
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart/payment?apikey={api_key}
{
"cart_id":"cart_id created in step 4",
"payment":{
"address":{
"city":"",
"country":{
"code":"US"
},
"line1":"123 Main Street",
"line2":"",
"postal_code":"",
"region":{
"abbrev":"CA"
}
},
"amount":"69.00",
"card":{
"number":"braintree-token",
"expireMonth":12,
"expireYear":2024,
"Issuer":"VISA"
},
"email_address":"jdoe@ticketmaster.com",
"first_name":"John",
"last_name":"Doe",
"home_phone":"212-867-5309",
"type":"BRAINTREE"
}
}
- Commit the cart
https://app.ticketmaster.com/partners/v1/events/1AeZZfEGkD0xtGV/cart?apikey=lBpFEb6wtX2hQywjmPvvkzLOGfU0VKKk
{ "cart_id" : " cart_id created in step 4 " }
- Ticket Delivery: Ticketmaster claim E-mail
Polling - Some requests may return a polling response when the Ticketmaster system is under heavy load, so you will need to design your system to handle polling requests’)
Link-Over API Integrations
Service | Description |
---|---|
Event Discovery | Discovery API (search for events, venues, attractions) |
Discovery Feed (same as Discovery API content but in a download formats) |
*Once you have an affiliate publisher ID, you will wrap destination URLs in an Impact Radius wrapper to ensure proper tracking and receive credit for the purchase.
Onboarding Process
Impact Radius is a third-party provider who manages our tracking, reporting and payments. Once authorized, you will be provided the information you need to create an account. Please reach out to us about whether you’re appropriate for the program!
For more details about our Affiliate program, please click here.
Distributed Commerce Partner Certification Checklist
- Arrange a meeting to walk through your purchase flow with the Distributed Commerce team.
- Ensure that you can make all applicable calls for your use case to the Partner API successfully
- Ensure that you have considered the Partner API Best Practices below.
- Place five test orders on a test event or live event (live events require client/TM approval) and send the Host order numbers to partnersupport@ticketmaster.com for verification. After the orders have been placed, submit a sample monthly settlement report to verify the report is formatted properly with the correct test orders.
- After the orders have been verified, the Distributed Commerce team will request refunds as needed.
- Submit another sample monthly settlement report with the canceled orders to verify the orders appear in the report.
Partner API Best Practices
FAQs can be found here
- Price level ID is not being used in the Availability for mapping inventory and pricing data in your system. This value is not static.
- Polling has been implemented.
- Nightly Maintenance Windows have been considered. Systems go into nightly maintenance from 2am-4am local time for the event. For example, if a fan is trying to buy an event for NY between 2am-4am EST, the system will be down for maintenance.
- Seat Selection: We do not recommend providing a specific seat selection experience similar to ticketmaster.com - this is to avoid high occurrence of no inventory found errors.
- Unless the inventory is exclusive, the seats may not be available (a fan in another channel may be shopping those same seats).
- Instead of specific seat selection, we suggest providing a list view similar view to ticketmaster.com and offer section and rows.
- Review common error responses here and determine how best to surface errors to your customers.
- If you intend to use images from the Discovery API, most images for events/artists are landscape format, so you may need to consider how to render that in your UI.
- If you are using the claims process, ensure that the claim link is appearing in the relevant places in your UI and/or confirmation email.
- When adding payment information, update the field called “dc_extra_notes,” with the order number that a fan will receive from you when their order is confirmed. This is to help the box offices troubleshoot issues when fans provide a partner’s order number. Please see the documentation here.