hotel-purchases

Create Hotel Purchase

Start a hotel purchase with auth-capture payment flow.

Two modes:

  • Saved card (payment_method_id provided): resolves Stripe customer, creates hotel purchase with off-session auth. Returns status "processing".
  • Inline pay (no payment_method_id): resolves user email for Stripe customer creation, creates hotel purchase with unconfirmed PI. Returns client_secret for frontend card entry.
post/hotel-purchases/

Request body

hotel_search_booking_session_idstring uuid nullable

Persisted hotel booking session that authoritatively owns replacement intent when provided.

hotel_purchase_idstring uuid required

Client-generated UUID for idempotency

quote_idstring required

Quote ID from /prices endpoint

hotel_negotiation_offer_idstring uuid nullable

Active hotel negotiation offer to redeem at its locked customer price.

payment_method_idstring nullable

Stripe payment method ID (pm_xxx). If absent, returns client_secret for inline card entry.

payment_method_typesstring[] nullable

How the deferred Stripe Elements group was configured, e.g. ['card'] (inline pay only). The PaymentIntent is created to match — Stripe rejects confirm on mismatch. Omitted = automatic payment methods.

validated_book_hashstring nullable

Prebook-validated ETG hash from /hotel-purchases/prebook

prebook_price_centsinteger nullable

Prebooked supplier price in cents

prebook_price_currencystring nullable

Prebooked supplier price currency

force_pay_nowboolean

If true, always use immediate charge (Path A) regardless of cancellation policy.

conv_trip_idstring uuid nullable

Brain trip document UUID from conversation card

replacement_for_booking_idstring nullable

Existing hotel booking ID that this new booking is intended to replace.

retail_total_amountinteger nullable

Expedia retail total in minor units (cents). For savings display in confirmation email.

retail_total_currencystring nullable

Currency of retail_total_amount (e.g., 'USD')

credit_amount_centsinteger nullable

Axel credit to apply (cents). None/omitted=no credit, >0=apply this amount.

Response

Successful Response

hotel_purchase_idstring uuid required
statusstring required
client_secretstring nullable
charge_modestring
credit_applied_centsinteger

Changes

No recorded changes to this endpoint across all 1 revision of this API.