Skip to navigation

Add extras to a cart

Adds one or more extras (such as merchandise, drinks, or parking) to an existing cart in a single request. Pick each extra from the cart’s options.extras list and send its inventory item ID with one of its price option IDs and a quantity. The request is held as a unit: either every item is added and the repriced cart comes back, or nothing changes and one error is returned. When one item is at fault, the error’s param names it, for example items[1].priceOptionId; a refusal of the summed quantity (over a cap or the remaining availability) or by the venue’s system names no item.

  • Only Extra inventory items can be added to an existing cart
  • Each item names the occurrence it is for — the cart’s occurrence, or, for an extra with its own schedule (a guided tour, parking), the occurrence selected for it, starting within its requirements.occurrence, with a price option from that occurrence’s inventory items; items in one request may name different occurrences for that reason
  • Two items naming the same extra and price option, or an item naming an extra already on the cart, merge into one line with the quantities summed; caps apply to that summed quantity

Authentication

X-TT-API-Keystring
API Key authentication via header

Path parameters

cartIdstringRequiredformat: "(?i)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"

Headers

X-TT-PlatformenumRequired
Identifies the platform the request comes from.
Allowed values:
X-TT-RetailerstringRequired
Your retailer identifier, provided during onboarding. It must be allowed by your API key.

Request

This endpoint expects an object.
itemslist of objectsRequired

Response headers

X-RateLimit-Limitinteger
How many requests this API key may make for this retailer in the current window. Sent only when the request was counted against that limit. A response served from cache was not counted and repeats the value it was cached with.
X-RateLimit-Remaininginteger
How many requests this API key has left for this retailer in the current window. Sent only when the request was counted against that limit. A response served from cache was not counted and repeats the value it was cached with.

Response

Extras added to the cart.
idstring
Cart ID
expiresAtstring
UTC timestamp when the cart hold expires and inventory is released. Clients should display a countdown timer and warn users before expiration.
itemslist of objects

Items currently in the cart (held inventory). Each item’s priceOption carries the itemized fees[] disclosure. Protection and credits are NOT items — see receiptLines.

receiptLineslist of objects

Server-ordered display lines for receipt rendering. Iterate in sequence. Always includes SubtotalLine. Conditionally: VoucherLine, ProtectionLine, CreditLine. Fees are never a receipt line — they are disclosed per item on priceOption.fees.

totalobject

Monetary amount in minor units (cents for USD). Never uses floating point to avoid precision errors.

protectionobjectOptional
Protection covering all items. Null if not added.
optionsobjectOptional
Options that can be applied to this cart. Each key is present only when that option is available.
voucherobjectOptional
A promo code applied to a cart.
totalTaxesobjectOptional

Monetary amount in minor units (cents for USD). Never uses floating point to avoid precision errors.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
410
Gone Error
429
Too Many Requests Error