appointments

Book Appointment V2

Changed on

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

post/api/appointments/v2/book

Request

  • Base URL: https://api.corabea.it (the document declares no server; this is the origin it was published from)
  • URL: https://api.corabea.it/api/appointments/v2/book
  • Auth: HTTP bearer

Request body

availability_idstring required

Availability slot UUID to book

appointment_typestring required

Type of appointment (CALL_CONOSCITIVA, CALL_GRATUITA, INCONTRO_PSICOLOGO, INCONTRO_NUTRIZIONISTA)

coupon_idstring nullable

Optional Stripe coupon ID to apply to the payment

payment_sheetboolean

True when the client can present Stripe PaymentSheet; ignored when a coupon is applied

call_modality'phone' | 'video' nullable

Patient's choice of call mode, honoured only for the types in /config call_modality_choices and ignored otherwise; omitted means the configured default. 'phone' requires a phone number on the profile (422 otherwise).

location_type'online' | 'in_person' nullable

Where the patient meets: a customer care's opening offered both ways is booked in presenza (call conoscitiva only, a room is taken) or online. Omitted keeps the opening's own mode.

Example request

{
  "appointment_type": "CALL_CONOSCITIVA",
  "availability_id": "123e4567-e89b-12d3-a456-426614174000",
  "coupon_id": "coupon_abc123"
}

Response

Successful Response

payment_idstring nullable

Payment UUID when checkout is required

checkout_urlstring nullable

Stripe checkout URL when payment required

payment_intent_client_secretstring nullable

PaymentIntent client secret when the payment goes through the in-app PaymentSheet instead of Checkout

customer_idstring nullable

Stripe customer ID for PaymentSheet

ephemeral_keystring nullable

Ephemeral key secret of the customer for PaymentSheet

publishable_keystring nullable

Stripe publishable key for PaymentSheet

expires_atstring date-time nullable

Checkout lock expiry when payment required

amountinteger required

Amount in cents (0 for instant free booking)

currencystring

Currency code

appointment_idstring nullable

Confirmed appointment UUID when no Stripe step (e.g. CALL_GRATUITA)

titlestring nullable

Success title (set only on instant confirmation)

Example response

{
  "amount": 4900,
  "checkout_url": "https://checkout.stripe.com/c/pay/cs_test_...",
  "currency": "eur",
  "expires_at": "2025-11-20T10:15:00+00:00",
  "payment_id": "123e4567-e89b-12d3-a456-426614174002"
}

Changes

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status