Overview
Cancels an existing booking. The cancellation behavior depends on your partner account’spaymentResponsibility:
CLEANOSresponsibility: The system cancels the booking and issues a refund if applicable.PARTNERresponsibility: The system cancels the booking only — no refund is processed by CleanLife. Your system is responsible for any refund to your customer.
Endpoint
Authentication
Requires a valid API Key with thepartner_bookings_cancel permission.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
bookingId | UUID | Yes | The booking ID returned at creation time. |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
reasonId | UUID | No | ID of a predefined cancellation reason from the CleanLife catalog. If omitted, no reason is recorded. |
notes | string | No | Free-text notes about the cancellation. |
Example Request
Success Response
HTTP Status:200 OK
Error Responses
| HTTP Status | Code | Description |
|---|---|---|
400 | VALIDATION_ERROR | Invalid path or body parameter |
401 | UNAUTHORIZED | Missing or invalid API key |
403 | FORBIDDEN | Missing partner_bookings_cancel permission |
404 | RESOURCE_NOT_FOUND | Booking not found or does not belong to your partner account |
422 | BOOKING_ALREADY_CANCELLED | Booking is already in canceled status |
Business Rules
-
Cannot cancel an already-cancelled booking. If the booking is already in
canceledstatus, the API returns422 BOOKING_ALREADY_CANCELLED. You can safely check for this error and treat it as a successful no-op. -
Refund behavior:
CLEANOSresponsibility: The service appointment is cancelled with actionCANCEL_AND_REFUND. The CleanLife system will initiate a refund if applicable.PARTNERresponsibility: The service appointment is cancelled with actionCANCEL_ONLY. No refund is initiated by CleanLife.
-
Webhook on cancellation. A
booking.cancelledwebhook event is sent after successful cancellation.
Notes
- There is no restriction on which booking statuses can be cancelled via this endpoint (other than already-cancelled bookings). You can cancel a booking in
waiting payment,in progress, orsuccessstatus. - If you need to cancel and then rebook for a different date, cancel the existing booking and create a new one.
Related Endpoints
GET /partners/bookings/:bookingId/status— Verify booking status before cancellingPOST /partners/bookings— Create a replacement booking