---
title: "Book Appointment V2"
method: POST
path: "/api/appointments/v2/book"
tags: ["appointments"]
---

# Book Appointment V2

`POST /api/appointments/v2/book`

Book an appointment and create Stripe checkout session, requiring the tax deduction question to be answered.

## Request body

- BookAppointmentRequest — Book appointment request model.
  - `availability_id` string, required — Availability slot UUID to book
  - `appointment_type` string, required — Type of appointment (CALL_CONOSCITIVA, CALL_GRATUITA, INCONTRO_PSICOLOGO, INCONTRO_NUTRIZIONISTA)
  - `coupon_id` string, nullable — Optional Stripe coupon ID to apply to the payment

## Response `201`

Successful Response

- BookAppointmentResponse — Book appointment response: Stripe checkout when payment required, or instant confirm for CALL_GRATUITA.
  - `payment_id` string, nullable — Payment UUID when checkout is required
  - `checkout_url` string, nullable — Stripe checkout URL when payment required
  - `expires_at` string, date-time, nullable — Checkout lock expiry when payment required
  - `amount` integer, required — Amount in cents (0 for instant free booking)
  - `currency` string — Currency code
  - `appointment_id` string, nullable — Confirmed appointment UUID when no Stripe step (e.g. CALL_GRATUITA)
  - `title` string, nullable — Success title (set only on instant confirmation)

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/corabea/apis/corabea-api.md) · [All operations](https://skmtc.dev/corabea/apis/corabea-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/corabea/corabea-api/revisions/13c1bce1bdc4/schema)
