---
title: "Book Concierge"
method: POST
path: "/api/concierge/book"
tags: ["concierge"]
---

# Book Concierge

`POST /api/concierge/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/concierge/book`
- Auth: none declared

Create the booking record. Assumes Stripe already collected payment —
we verify the PaymentIntent is 'succeeded' before writing anything.

## Request body

- ConciergeBookRequest
  - `source` string, required
  - `provider_price` number, required
  - `deal_snapshot` object, required: Full serialized deal (origin, destination, dates, URL, etc.)
  - `traveler_first_name` string, required
  - `traveler_last_name` string, required
  - `traveler_email` string, required
  - `traveler_phone` string, nullable
  - `stripe_payment_intent_id` string, required

## Response `200`

Successful Response

- ConciergeBookResponse
  - `booking_id` string, required
  - `confirmation_code` string, required
  - `status` string, required
  - `total_charged` number, required
  - `pointify_revenue` number, required
  - `agent_session_id` string, nullable

## 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)
