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

# Pay Appointment V2

`POST /api/appointments/v2/pay`

Create payment checkout session for an existing appointment, requiring the tax deduction question to be answered.

## Request body

- PayAppointmentRequest — Pay existing appointment request model.
  - `appointment_id` string, required — Appointment UUID to pay
  - `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)
