Apply a voucher

Applies a promo code to the cart and returns the updated cart with the discount reflected in receiptLines and total. Codes limited to one customer or one use per customer need a logged-in customer or the email field.

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:

Request

This endpoint expects an object.
codestringRequired0-15 characters
The promo code to apply, as entered by the customer.
emailstringOptionalformat: "^[^@\s]+@[^@\s]+\.[^@\s]+$"0-100 characters

Guest checkout email. Some promo codes are limited to one customer or one use per customer; without a logged-in customer, that check needs this email. Used only to validate the code — never stored.

Response

Voucher applied; updated cart returned.

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.