Cancel a booking
Allowed from active or unpaid ONLY — a checked-in booking cannot be cancelled; end it with check-out instead. Irreversible. Pending payments are voided. Authorized for the organizer, a caller presenting the booking's pinCode, or a project admin.
Authorization
bearerAuth Access token from POST /auth/accessToken
In: header
Path Parameters
MongoDB ObjectId
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/meetings/string/cancel" \ -H "Content-Type: application/json" \ -d '{}'{ "code": "KS000", "success": true, "message": "string", "data": { "_id": "string", "status": "unpaid", "meetingRoomId": "string", "meetingRoomName": "string", "deskId": "string", "title": "string", "body": "string", "startDateTime": "2019-08-24T14:15:22Z", "endDateTime": "2019-08-24T14:15:22Z", "pinCode": "string", "organizer": { "userId": "string", "email": "string", "name": "string", "displayName": "string", "checkInDateTime": "2019-08-24T14:15:22Z", "checkOutDateTime": "2019-08-24T14:15:22Z" }, "attendees": [ { "userId": "string", "email": "string", "name": "string", "type": "required", "responseStatus": "accepted", "checkInDateTime": "2019-08-24T14:15:22Z" } ], "payment": { "paymentId": "string", "invoiceNo": "string", "amount": 0, "summary": { "subtotal": 0, "total": 0, "discounts": [ { "code": "string", "value": "string", "name": "string" } ] }, "webPaymentUrl": "http://example.com", "webPaymentQr": "string" }, "paymentDueAt": "2019-08-24T14:15:22Z", "bookedVia": "webview", "bookedByUserId": "string", "billingSummaries": [ { "kind": "quote", "payment_id": "string", "amount": 0, "total": 0, "invoice_no": "string", "status": "string", "expiredAt": "2019-08-24T14:15:22Z" } ], "histories": [ { "action": "create", "at": "2019-08-24T14:15:22Z", "by": "string" } ], "seriesMasterId": "string", "occurrenceEventId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}Update or extend a booking PATCH
Only active or checked-in bookings. Start time cannot change after check-in. Extending a paid booking can return status "unpaid" with a payment object — same handling as a paid create. pinCode required when the caller is not the organizer. A change to startDateTime/endDateTime by a blocked organizer is refused 403 MEETING_049; an edit that keeps the time (title, body, attendees) is not.
Check in to a booking POST
Opens ~15 minutes before start (configurable per room). Only active bookings — paid bookings must complete payment first. Checking in stops the no-show auto-cancel timer. pinCode required when the caller is not the organizer.