Drops an extra from the cart and returns the cart repriced without it. The rest of the cart is untouched — the customer keeps the same hold and the same expiry.
- `itemId` is the `id` of the line on the cart response, not an inventory item ID. Two items of the same extra at different price options are separate lines with ids of their own
- Idempotent — an `itemId` the cart does not hold returns the current cart
- Only an `Extra` item can be removed. A cart is created from its admission items; one that should hold none is released with `DELETE /carts/{cartId}`
Response
Cart repriced without the item (or unchanged, if it did not hold it).
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.