Skip to main content

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 409 and the booking stays a draft.
  • The booking becomes confirmed, and the booking.created webhook 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โ€‹

ParameterTypeDescription
idintegerBooking ID of a draft

Request Bodyโ€‹

FieldTypeRequiredDescription
send_confirmationbooleanNoEmail the customer their confirmation (and the new-booking SMS). Default true.
send_waiversbooleanNoEmail 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โ€‹

StatusCodeWhen
409AVAILABILITY_CONFLICTThe draft was not holding its dates and something is no longer free. The booking stays a draft.
422NOT_A_DRAFTThe booking is not a draft.
403FORBIDDENThe booking belongs to a different business.
404NOT_FOUNDNo booking with that ID.