Confirm Booking
Confirm a draft booking. A draft is saved without telling anyone. Confirming it checks the items are still free, turns it into a confirmed booking and sends what a new booking sends.
POST /v1/bookings/{id}/confirm
Authenticationโ
Requires a valid API key with bookings:write scope.
What happensโ
- If the draft was not holding its dates, availability is checked again. When something has been booked in the meantime the request returns
409and the booking stays a draft. - The booking becomes
confirmed, and thebooking.createdwebhook fires once. - The shop gets its new-booking notification. The customer gets the confirmation email and the waiver link unless you switch them off.
A draft sends the customer nothing until it is confirmed. While it is a draft, send-confirmation, send-reminder, waiver-reminders and chase-consents return 422 with code DRAFT_NOT_CONFIRMED and the message "Confirm the draft before sending."
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | Booking ID of a draft |
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
send_confirmation | boolean | No | Email the customer their confirmation (and the new-booking SMS). Default true. |
send_waivers | boolean | No | Email the waiver link. Default true. |
Request Exampleโ
curl -X POST "https://app.equipdash.com/api/v1/bookings/123/confirm" \
-H "Authorization: Bearer eqd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"send_confirmation": true, "send_waivers": false}'
Success Responseโ
Returns 200 OK with the confirmed booking:
{
"data": {
"id": 123,
"status": "confirmed",
"draft": null
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-10-01T10:30:00+00:00"
}
}
The draft objectโ
Every booking response carries draft. It is null unless the booking is a draft:
"draft": {
"holds_dates": true,
"hold_until": "2026-10-04"
}
Errorsโ
| Status | Code | When |
|---|---|---|
409 | AVAILABILITY_CONFLICT | The draft was not holding its dates and something is no longer free. The booking stays a draft. |
422 | NOT_A_DRAFT | The booking is not a draft. |
403 | FORBIDDEN | The booking belongs to a different business. |
404 | NOT_FOUND | No booking with that ID. |