---
updatedAt: 2026-08-07T06:13:37.000Z
agentTools:
  projectIndex: https://docs.wodify.com/llms.txt
---

# Cancel Class Reservation

Cancels a class reservation for a client given the supplied ClassId and ClientId.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Classes",
    "description": "Endpoints for all Class-related actions.",
    "version": "1"
  },
  "paths": {
    "/classes/{class_id}/clients/{client_id}/cancel-reservation": {
      "put": {
        "tags": [
          "Class Reservations"
        ],
        "description": "Cancels a class reservation for a client given the supplied ClassId and ClientId.",
        "operationId": "Cancel_ClassReservation_Client",
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "description": "A valid api key. If you don&#39;t have one, please request one through the Web Integration screen.",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "class_id",
            "in": "path",
            "required": true,
            "description": "Id of the Class to cancel for the Client",
            "example": 0,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "client_id",
            "in": "path",
            "required": true,
            "description": "Id of the Client to cancel the Reservation for",
            "example": 1234567891234567,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Request_CancelReservation_Client"
              }
            }
          },
          "description": "Request structure for reservation cancellation"
        },
        "responses": {
          "200": {
            "description": "Created Class Reservation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClassReservationResponse"
                }
              }
            }
          }
        },
        "x-explorer-enabled": false,
        "summary": "Cancel Class Reservation"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.wodify.com/v1"
    }
  ],
  "components": {
    "schemas": {
      "ClassReservationResponse": {
        "description": "Response for /class/reservation methods",
        "type": "object",
        "properties": {
          "reservation_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Reservation&#39;s Id"
          },
          "client_id": {
            "type": "string",
            "default": "",
            "description": "ClientId"
          },
          "client": {
            "type": "string",
            "default": "",
            "description": "Client&#39;s Name"
          },
          "lead_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Lead&#39;s Id"
          },
          "lead": {
            "type": "string",
            "default": "",
            "description": "Lead&#39;s Name"
          },
          "dropin_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Drop In Identifier"
          },
          "dropin": {
            "type": "string",
            "default": "",
            "description": "Drop In Name"
          },
          "drop_in_email": {
            "type": "string",
            "default": "",
            "description": "Email of the Drop In"
          },
          "class_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Reservation&#39;s Class Id (Identifier)"
          },
          "class": {
            "type": "string",
            "default": "",
            "description": "Reservation&#39;s class name"
          },
          "utc_class_start_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2014-12-31T23:59:59.938Z",
            "description": "Date Time that the Class Starts (UTC)"
          },
          "utc_class_end_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2014-12-31T23:59:59.938Z",
            "description": "Date Time that the Class Ends (UTC)"
          },
          "local_class_start_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2014-12-31T23:59:59.938Z",
            "description": "Date Time that the Class Starts (Local)"
          },
          "local_class_end_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2014-12-31T23:59:59.938Z",
            "description": "Date Time that the Class Ends (Local)"
          },
          "program_id": {
            "type": "string",
            "default": "",
            "description": "Resrvation&#39;s Program Id (Identifier)"
          },
          "program": {
            "type": "string",
            "default": "",
            "description": "Reservation&#39;s Program Name"
          },
          "location_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Reservations Location Id (Identifier)"
          },
          "location_name": {
            "type": "string",
            "default": "",
            "description": "Reservation&#39;s Location Name"
          },
          "coaches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CoachQuery"
            },
            "description": "List of Coaches assigned to the class"
          },
          "reservation_status_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Reservation Status Id (Identifier)"
          },
          "reservation_status": {
            "type": "string",
            "default": "",
            "description": "Reservation Status"
          },
          "created": {
            "$ref": "#/components/schemas/Created"
          },
          "updated": {
            "$ref": "#/components/schemas/Updated"
          },
          "membership_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Id of the Membership used for the Reservation"
          },
          "membership": {
            "type": "string",
            "default": "",
            "description": "Membership used for the Reservation"
          },
          "is_cancelled_from_waitlist": {
            "type": "boolean",
            "example": false,
            "description": "Determines if the Reservation was cancelled from waitlist"
          },
          "is_late_cancellation": {
            "type": "boolean",
            "example": false,
            "description": "Determines if the Reservation is a Late Cancellation"
          },
          "wodify_validation_result": {
            "type": "string",
            "default": "",
            "description": "The purpose of this attribute is to save any UserException message, that is, and user friendly message that should be shown to the end user.\nAll methods should have, just like service actions:\n- an UserException with Abort Transaction = Yes, and a Log Error = No\n- an AllExceptions with Abort Transaction = Yes, and a Log Error = Yes\nWith this, any known issue that we don&#39;t consider an error log, like a business validation, we raise it to be catch in the UserException and we don&#39;t log it. Then, in the OnResponse of the full REST service, the Build_Response_JSON action will take care on the output json format.\nAn Exception will have the default formatted error message. If its an AllException, it will log the error so that we can fix it. If its a UserException, it will deliver as an error but it won&#39;t log it as an error.\nA success output will not have this attribute, the Build_Response_JSON will remove it from the final output."
          },
          "is_recurring": {
            "type": "boolean",
            "example": false,
            "description": "If true, reservation is a part of a recurring reservation"
          },
          "recurrence_description": {
            "type": "string",
            "default": "",
            "description": "If the class reservation is a part of a recurrence, the description of that recurrence"
          },
          "layout_item_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Layout Item Id"
          },
          "layout_item": {
            "type": "string",
            "default": "",
            "description": "Layout Item"
          },
          "layout_item_has_warning": {
            "type": "boolean",
            "example": false,
            "description": "True if the class layout item has a warning"
          },
          "layout_item_warning_message": {
            "type": "string",
            "default": "",
            "description": "Warning for the class layout item"
          }
        }
      },
      "CoachQuery": {
        "description": "Structure for returning coach class data",
        "type": "object",
        "properties": {
          "coach_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "User Id (Identifier) of the coach"
          },
          "coach": {
            "type": "string",
            "default": "",
            "description": "Name of the coach"
          },
          "payroll_position_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Payroll position Id of the coach"
          },
          "payroll_position": {
            "type": "string",
            "default": "",
            "description": "Name of the payroll position the coach is assigned to for the class"
          }
        }
      },
      "Created": {
        "description": "Record creation data.",
        "type": "object",
        "properties": {
          "created_by_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Unique ID of the user that created the record."
          },
          "created_by": {
            "type": "string",
            "default": "",
            "description": "Name of the user that created the record."
          },
          "created_on_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2014-12-31T23:59:59.938Z",
            "description": "Datetime on which the record was created."
          }
        }
      },
      "Request_CancelReservation_Client": {
        "description": "Body structure for cancelling a reservation",
        "type": "object",
        "properties": {
          "cancel_this_and_following": {
            "type": "boolean",
            "example": false,
            "description": "If true and the reservation is recurring, will cancel this reservation and all following reservations in the recurrence."
          }
        }
      },
      "Updated": {
        "description": "Update info",
        "type": "object",
        "properties": {
          "updated_by_id": {
            "type": "integer",
            "example": 1234567891234567,
            "format": "int64",
            "description": "Unique ID of the user that last updated the record."
          },
          "updated_by": {
            "type": "string",
            "default": "",
            "description": "Name of the user that most recently updated the record."
          },
          "updated_on_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2014-12-31T23:59:59.938Z",
            "description": "Datetime on which the record was last updated."
          }
        }
      }
    }
  }
}
```