Cart
Agent-built named quote drafts: create, list, fetch (re-priced with drift flags), rename, archive, duplicate, accept prices.
📄️ List my carts
Paginated. 1-based page index.
📄️ Create a cart
The cart is auto-named from the agent's name: first 4 characters + an incremental 4-digit sequence per agent (e.g. `Pooj0001`, `Pooj0002`). Pass an explicit `name` to override. The cart can be renamed at any time via PATCH.
📄️ Fetch a cart with re-priced lines and drift flags
Fetch a cart with re-priced lines and drift flags
📄️ Archive a cart (soft-delete)
Archive a cart (soft-delete)
📄️ Rename / relabel a cart
Only the cart name and customer label are editable. Channel is fixed at creation and status is not changed here (use DELETE to archive).
📄️ Available extras for a cart
Per cart item, the meal plans and value-added services that can be selected (with availability windows and pricing metadata), plus the cart-level cancellation plans. This is the picker catalog behind the booking-review extras; selections are applied via the per-item meal/VAS/cancellation-plan endpoints.
📄️ Cart activity timeline
Chronological log of what happened to the cart.
📄️ Apply the agency's agent-cashback balance
A toggle, not an amount: applies the most that can be applied, min(balance, grand total). Unlike a coupon this is a POST-TAX reduction — `summary.grandTotal` is unchanged and `summary.amountPayable` carries what is now due. No balance is taken yet; it is reserved at checkout, when an amount is quoted to a payer. Rejects a cart that already has cashback applied, one with no agency, and an agency with no available balance.
📄️ Remove the applied agent cashback
Clears the applied cashback and returns any reserved balance to the agency. Refused with 409 once a payment order exists for this cart: an amount has already been quoted to a payer, and releasing the balance while that page is open would give the agency its money back AND collect the reduced amount.
📄️ Duplicate a cart with a new name
Clones items, meal selections, and VAS selections. Prices are re-snapshotted from today.
📄️ Accept current prices
Overwrites all snapshots with today's pricing. Use before sharing the cart with a customer.
📄️ Share a cart with a guest
Mints an opaque share token and sets the deal expiry (default 48h) plus an optional deposit split, and flips the cart to SHARED. Send the token in the public guest URL `GET /api/v1/shared-cart/{token}`. Re-sharing refreshes the token and expiry.
📄️ Set the agent this cart is being built for (B2B)
Key Account Managers build carts on behalf of the agents in the accounts they manage. The selected agent is credited with the resulting booking; the caller is recorded as the assisting user. Pick the account from GET /api/v1/team/accounts and the agent from GET /api/v1/team/accounts/{id}/agents. Restricted to Key Account Managers and CRS admins.