Skip to navigation

Reservar una cita

Reserva una hora que GET /availability ofreció (service_id y starts_at, y staff_member_id si el cliente eligió con quién), o un lugar en una clase (class_session_id). Identifica al cliente con customer_id, o con customer.phone y customer.name para crearlo si no existe.

La política de pago del servicio decide qué pasa: sin pago la cita queda confirmed (o pending si el negocio acepta cada cita a mano); con anticipo, pago total o tarjeta en archivo queda pending con checkout_url, la hora apartada mientras el cliente paga, y se confirma al pagarse. Si alguien tomó la hora antes, responde 422 con code: slot_taken; si la clase se llenó, code: full.

Usa un Idempotency-Key único por cita.

Authentication

X-SECRET-KEYstring

Tu clave secreta de API.

Una llave de cuenta (sk_live_..., sk_test_...) opera sobre su propia cuenta y, con X-ACCOUNT-ID, sobre sus cuentas conectadas.

La llave también fija el ambiente: una sk_test_ solo lista y resuelve objetos de prueba (live_mode: false) y una sk_live_ solo objetos reales. Un ID del otro ambiente responde 404 (401 en /customers).

Una llave de organización (sk_org_live_..., sk_org_test_...) alcanza todas las cuentas de una organización y solo sirve para leer: saldos, movimientos y reportes. Para operar sobre una cuenta debe nombrarla con X-ACCOUNT-ID; omitirlo en una lectura devuelve todas las cuentas de la organización. Cualquier otro endpoint responde 403 con code: organization_key_unsupported.

Request

This endpoint expects an object.
service_idstringOptional

ID del servicio o del producto. Requerido salvo con class_session_id.

starts_atdatetimeOptional

El inicio exacto que ofreció GET /availability.

staff_member_idstringOptional

Con quién. Sin él, quien tenga menos citas ese día.

product_variant_idstringOptional

La variante del servicio, si tiene (su duración y precio mandan).

class_session_idstringOptional

Un lugar en esta sesión de clase, en vez de una hora.

customer_idstringOptional
customerobjectOptional
customer_notestringOptional
merchant_notestringOptional
protectionenumOptional

Con política card_on_file: card deja la tarjeta; deposit paga el monto de la protección como anticipo, para quien no tiene tarjeta.

Allowed values:
success_urlstringOptional

A dónde vuelve el cliente después de pagar. Por defecto, su página de la cita.

Response

Cita reservada
idstringOptional
account_idstringOptional

Cuenta (sucursal) de la cita.

statusenumOptional

pending mientras el cliente paga o el negocio decide; confirmed cuando la hora es del cliente.

sourceenumOptional

Por dónde entró la reserva.

starts_atdatetimeOptional
ends_atdatetimeOptional
customerobjectOptional
segmentslist of objectsOptional

Los tramos de la cita, uno por servicio (dos si el servicio tiene tiempo de proceso). Vacío en un lugar de una clase.

staff_member_idstring or nullOptional
resource_idstring or nullOptional
class_session_idstring or nullOptional

La sesión, si la cita es un lugar en una clase.

stayobject or nullOptional

Las noches en una habitación, si la reserva es una estadía de alojamiento.

payment_policyenumOptional
Allowed values:
currencystringOptional
total_in_centsintegerOptional
Lo que cuesta la cita.
paid_in_centsintegerOptional

Lo que el cliente ya pagó (anticipo, total o protección).

balance_in_centsintegerOptional

Lo que falta cobrar el día de la cita. 0 en una sesión de paquete o un saldo cobrado afuera.

balance_paid_outside_atdatetime or nullOptional

Cuándo el negocio marcó el saldo como cobrado fuera de Recurrente.

checkout_idstring or nullOptional
checkout_urlstring or nullOptional

Donde el cliente paga lo que la política pide, o deja su tarjeta.

balance_checkout_idstring or nullOptional
balance_checkout_urlstring or nullOptional

El link del saldo, después de POST /bookings/{booking_id}/balance_charge.

no_show_fee_checkout_idstring or nullOptional
El checkout del cargo por inasistencia, cobrado o rechazado.
booking_series_idstring or nullOptional

La serie que la reservó, si se repite.

access_urlstringOptional

La página del cliente para ver, pagar o cancelar su cita (link firmado).

customer_notestring or nullOptional
merchant_notestring or nullOptional
accepted_atdatetime or nullOptional
hold_expires_atdatetime or nullOptional

Hasta cuándo se aparta la hora si nadie paga.

cancelled_byenum or nullOptional
Allowed values:
cancellation_reasonstring or nullOptional
rescheduled_from_idstring or nullOptional

La cita que esta reemplazó al moverse de hora.

metadataobjectOptional
created_atdatetimeOptional

Errors

403
Forbidden Error
422
Unprocessable Entity Error