Skip to main content

Integration workflows

Create a reservation safely

  1. Fetch services and providers.
  2. Fetch availability for the intended time range.
  3. Select a returned slot and retain its availabilityId, serviceId, providerId, start, and end.
  4. Resolve or create the customer.
  5. Submit one reservation using the exact slot identity.
  6. Handle 403 by refreshing availability.

Reservation creation re-runs the availability engine. It is not an administrative bypass.

Reschedule through the API

Send one or more of start, end, and providerId to reservations/edit/. The endpoint dispatches the coordinated reschedule flow, preserving notification, history, Google Calendar, Zoom, and webhook behavior.

Both timestamps must form a valid interval. The public edit operation is intended for trusted integrations; use current availability before selecting the new values.

Add custom data

Mutation endpoints accept resource-specific core fields. Reservation custom fields may be sent inside data or as additional top-level keys. Core reservation keys are:

  • serviceId
  • customerId
  • providerId
  • start
  • end
  • status

Idempotency

The API does not expose an idempotency-key contract. External systems should store returned IDs and avoid retrying successful create requests blindly.

Event-driven synchronization

Use API reads for reconciliation and webhooks for low-latency changes. Webhook delivery is synchronous and has no retry queue in version 4, so receivers should still run periodic reconciliation for critical data.