> ## Documentation Index
> Fetch the complete documentation index at: https://partner.headout.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Launch checklist

[Download checklist](https://docs.google.com/document/d/1NBzJgmNBtBNfTOdQkgy6W5shKvIe4HzirkPVXNmnZPM/edit?usp=sharing)

## Before you build

### Access and setup

* Sandbox API credentials received
* Production API access process understood
* Webhook endpoint planned
* Currency strategy finalized

### Product understanding

* Reviewed product / variant model
* Reviewed cancellation & reschedule flags
* Understood `hasInstantConfirmation` behavior
* Noted sandbox auto-complete product IDs

## While building

### Product and inventory

* Fetch and cache active cities
* Fetch products using the [List products](/docs/api-partner/v2/products/list) endpoint
* Fetch product details by ID using [Get product](/docs/api-partner/v2/products/get)
* Treat each variant as a separate SKU
* Fetch inventory in real time
* Do not cache inventory responses

### Pax types and pricing

* Render paxTypes dynamically — see [Pax Types](https://docs.google.com/spreadsheets/d/1KYpqKTNvp17WV-huEURDxfcqwF2Iz_Cu357QFAZfVco/edit?gid=0#gid=0)
* Support paxType changes per slot
* Enforce MSP using `headoutSellingPrice` — see [MSP Limitation Product List](https://docs.google.com/spreadsheets/d/1KYpqKTNvp17WV-huEURDxfcqwF2Iz_Cu357QFAZfVco/edit?gid=2019530709#gid=2019530709)
* Use `netPrice` for booking creation
* Validate total price = pax × price

### Guest details

* Render input fields dynamically — see [Input Fields](https://docs.google.com/spreadsheets/d/1KYpqKTNvp17WV-huEURDxfcqwF2Iz_Cu357QFAZfVco/edit?gid=1706272551#gid=1706272551)
* Support all data types
* Respect `PRIMARY_CUSTOMER`, `ALL_CUSTOMER`, and `BOOKING` field levels
* Create one guest object per pax
* Ensure exactly one primary guest

### Booking flow

* Create booking in `UNCAPTURED` (optional)
* Collect payment before moving to `PENDING`
* Treat `PENDING` as confirmed
* Handle price mismatch errors
* Allow all valid status transitions

### Cancellation and reschedule

* Read cancel / reschedule flags from [Get product](/docs/api-partner/v2/products/get)
* Surface correct policy per variant
* Integrate [Cancel booking](/docs/api-partner/v2/bookings/cancel)
* Integrate [Reschedule booking](/docs/api-partner/v2/bookings/reschedule)
* Handle not-allowed cases gracefully

## Test in sandbox

* Test full booking flow using sandbox products for multiple input fields and pax types
* Validate auto-complete behavior for listed product IDs — see [Fulfilment on Sandbox](https://docs.google.com/spreadsheets/d/1KYpqKTNvp17WV-huEURDxfcqwF2Iz_Cu357QFAZfVco/edit?gid=1429412760#gid=1429412760)
* Verify webhook delivery
* Verify voucher rendering
* Verify QR and PDF/HTML ticket handling
* Verify [Cancel booking](/docs/api-partner/v2/bookings/cancel) and [Reschedule booking](/docs/api-partner/v2/bookings/reschedule)

## Test before launch

<Warning>Only use cancellable products in production testing. See [Cancellable Products on Production](https://docs.google.com/spreadsheets/d/1KYpqKTNvp17WV-huEURDxfcqwF2Iz_Cu357QFAZfVco/edit?gid=875548056#gid=875548056).</Warning>

* Place limited live bookings
* Validate `PENDING → COMPLETED` flow
* Validate delayed ticket generation
* Test cancellation on allowed products
* Test reschedule on allowed products
* Verify webhook behavior in prod
* Verify voucher updates correctly

## Go live

* Communication opt-in / opt-out finalized
* Support escalation flow aligned
* If you are going live with a static product list, update it one last time
