---
title: "Create Stay Booking"
method: POST
path: "/api/hotels/book"
tags: ["hotels"]
---

# Create Stay Booking

`POST /api/hotels/book`

## Request

- Base URL: `https://api.pointifytravels.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pointifytravels.com/api/hotels/book`
- Auth: none declared

Finalize a Duffel Stays booking from a quote_id + guest list.

Caller is the Next.js webhook handler after Stripe captures payment.
Do not call directly from the browser — payment must settle first.

## Request body

- StayBookingRequest
  - `quote_id` string, required
  - `email` string, required
  - `phone_number` string, required
  - `guests` StayBookingGuest[], required
    - `given_name` string, required
    - `family_name` string, required
    - `born_on` string, required
  - `accommodation_special_requests` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pointifytravels/apis/pointify-deal-engine.md) · [All operations](https://skmtc.dev/pointifytravels/apis/pointify-deal-engine/llms.txt) · [OpenAPI document](https://skmtc.dev/pointifytravels/apis/pointify-deal-engine/revisions/4350142a4216?raw)
