> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # DeclineMultiServiceBooking # Package: bookings # Namespace: MultiServiceBookings # Method link: https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/decline-multi-service-booking.md ## Permission Scopes: Manage Bookings: SCOPE.DC-BOOKINGS.MANAGE-BOOKINGS ## Introduction Updates the status for all single-service bookings in a multi-service booking to `DECLINED`. Call this method to reject multi-service bookings that can't be accommodated or don't meet business requirements. --- ## REST API ### Schema ``` Method: declineMultiServiceBooking Description: Updates the status for all single-service bookings in a multi-service booking to `DECLINED`. Call this method to reject multi-service bookings that can't be accommodated or don't meet business requirements. ### Status requirements - __Original status__: All single-service bookings must have `PENDING`, `CREATED`, or `WAITING_LIST` status. - __Target status__: All bookings move to `DECLINED` together (all-or-nothing operation). ### Checkout restrictions Only call this method if the customer paid via a custom checkout. For Wix eCommerce checkouts, Wix Bookings automatically manages the bookings' statuses based on payment processing. ### Additional updates - __Payment status__: Updates if you specify a new `declineBookingsInfo.paymentStatus`. - __Customer notifications__: Send messages using `participantNotification`. - __Revision control__: Requires current revision numbers for all single-service bookings. Refer to [Decline Booking](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings/bookings-writer-v2/decline-booking.md) for more details about declining single-service bookings. URL: https://www.wixapis.com/_api/bookings-service/v2/multi_service_bookings/{multiServiceBookingId}/decline Method: POST Method parameters: param name: declineBookingsInfo | type: array | description: Information about the single-service bookings to decline. - name: bookingId | type: string | description: GUID of the single-service booking. - name: revision | type: string | description: Revision number, which increments by 1 each time the booking is updated. To prevent conflicting changes, the current revision must be specified when managing the booking. - name: paymentStatus | type: PaymentStatus | description: Payment status to set for the single-service booking. - enum: - UNDEFINED: Undefined payment status. - NOT_PAID: The booking isn't paid. - PAID: The booking is fully paid. - PARTIALLY_PAID: The booking is partially paid. - REFUNDED: The booking is refunded. - EXEMPT: The booking is free of charge. param name: doubleBooked | type: doubleBooked | description: Whether this booking has a conflict with at least 1 other confirmed booking. param name: flowControlSettings | type: DeclineBookingFlowControlSettings - name: withRefund | type: boolean | description: Whether to issue a refund when declining the booking. The refund will be issued only if the booking is refundable. Currently, a booking is considered refundable when it was paid by membership. If specifying `true`, the booking flow control settings will be set with a refund. If you specify `false` or an empty field, the booking flow control settings are set without refund. Default: `false`. param name: participantNotification | type: ParticipantNotification - name: notifyParticipants | type: boolean | description: Whether to send a message about the changes to the customer. Default: `false` - name: message | type: string | description: Custom message to send to the participants about the changes to the booking. - name: metadata | type: object | description: Information about the delivery channels used to send the notification. For example, `{"channels": "SMS" }`, `{"channels": "EMAIL" }`, or `{"channels": "EMAIL, SMS" }`. param name: returnFullEntity | type: returnFullEntity | description: Whether to return the declined single-service bookings. Return type: DeclineMultiServiceBookingResponse - name: multiServiceBooking | type: MultiServiceBooking | description: Declined multi-service booking. - name: id | type: string | description: Multi-service booking GUID. - name: bookings | type: array | description: The single-service bookings that make up the multi-service booking package. - name: bookingId | type: string | description: Single-service booking GUID. Always present. This value is identical to `booking.id`, which is only returned when `returnFullEntity` is `true`. - name: booking | type: Booking | description: Single-service booking entity. Only returned when `returnFullEntity` is `true`. - ONE-OF: - name: totalParticipants | type: integer | description: Total number of participants. When creating a booking, use this field only if the relevant service has fixed pricing and doesn't offer [variants and options](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md). - name: participantsChoices | type: ParticipantChoices | description: Information about the booked service choices and participant count for each choice. When creating a booking, use this field only if the booking includes multiple [service variants](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md). For example, use this for a spa package booking that includes different service levels: - 2 participants chose "Standard Package". - 1 participant chose "VIP Package". - name: serviceChoices | type: array | description: Information about the booked service choices. Includes the number of participants. - name: numberOfParticipants | type: integer | description: Number of participants for this [variant](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md). - name: choices | type: array | description: Service choices for these participants. - ONE-OF: - name: custom | type: string | description: Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list. Choices are specific values for an option the customer can choose to book. For example, the option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`. Each choice may have a different price. - name: duration | type: Duration | description: - name: minutes | type: integer | description: Duration of the service in minutes. Min: 1 minute, Max: 30 days, 23 hours, and 59 minutes - name: name | type: string | description: Name of the duration option. Defaults to the formatted duration e.g. "1 hour, 30 minutes". - name: optionId | type: string | description: GUID of the corresponding option for the choice. For example, the choice `child` could correspond to the option `ageGroup`. In this case, `optionId` is the GUID for the `ageGroup` option. - name: id | type: string | description: Booking GUID. - name: bookedEntity | type: BookedEntity | description: An object describing the bookable entity - either a specific time slot or a recurring schedule. The structure depends on the type of service being booked: __For appointment services__: Use `slot` to book a specific time slot with a service provider. Appointments are typically one-time sessions at a specific date and time. __For class services__: Use `slot` to book a specific class session. Classes are individual sessions that can have multiple participants. __For course services__: Use `schedule` to book an entire course consisting of multiple sessions over time. Courses are recurring, multi-session offerings. Choose the appropriate field based on your service type and booking requirements. - ONE-OF: - name: slot | type: BookedSlot | description: [Booked slot](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings-and-time-slots/time-slots/availability-calendar/query-availability.md). Specify `slot` when creating bookings for: - __Appointment-based services__: Individual sessions with service providers (consultations, treatments). Wix Bookings creates a new session when the booking is confirmed. - __Class services__: Group sessions at specific times (fitness classes, workshops). Wix Bookings links the booking to an existing scheduled session. For course services, specify `schedule` instead of `slot`. - name: serviceId | type: string | description: Service GUID. - name: scheduleId | type: string | description: Schedule GUID. - name: eventId | type: string | description: GUID of the corresponding [event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction.md). Available for both appointment and class bookings, not available for course bookings. For appointment-based services, Wix Bookings automatically populates `eventId` when the booking `status` changes to `CONFIRMED`. For class bookings, Wix Bookings automatically populates `eventId` upon booking creation. - name: startDate | type: string | description: The start time of this slot in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: endDate | type: string | description: The end time of this slot in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: timezone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database). For example, `America/New_York` or `UTC`. This is the time zone in which the slot was shown to the customer at the time of booking. Wix Bookings ensures that the slot is always displayed in this same time zone to the customer, including when they view or edit their booking in the future. - name: resource | type: BookedResource | description: [Primary resource](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction.md) for the booking. For example, the [staff member](https://dev.wix.com/docs/rest/business-solutions/bookings/staff-members/introduction.md) providing the service. - name: id | type: string | description: GUID of the booking's primary resource. - name: name | type: string | description: Resource's name at the time of booking. - name: email | type: string | description: Resource's email at the time of booking. - name: scheduleId | type: string | description: GUID of the schedule belonging to the booking's primary resource. - name: location | type: Location | description: Location where the session takes place. - name: id | type: string | description: Business location GUID. Available only for locations that are business locations, meaning the `location_type` is `"OWNER_BUSINESS"`. - name: name | type: string | description: Location name. - name: formattedAddress | type: string | description: The full address of this location. - name: formattedAddressTranslated | type: string | description: The full translated address of this location. - name: locationType | type: LocationType | description: Location type. - enum: - UNDEFINED: Undefined location type. - OWNER_BUSINESS: The business address, as set in the site’s general settings. - OWNER_CUSTOM: The address as set when creating the service. - CUSTOM: The address as set for the individual session. - name: resourceSelections | type: array | description: Information about how the customer has selected resources for the booking. Each resource type may have a different selection method. Check `resource` for resource details. - name: resourceTypeId | type: string | description: GUID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md). - name: selectionMethod | type: SelectionMethod | description: Information about how the customer has selected the resource for this resource type. - enum: - SPECIFIC_RESOURCE: The customer explicitly chose a particular resource. - ANY_RESOURCE: The customer explicitly chose "any available resource" for this resource type. - NO_SELECTION: The customer wasn't offered a resource selection or agreement option for this resource type. - name: schedule | type: BookedSchedule | description: [Booked schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction.md). Specify `schedule` when creating bookings for: - __Course services__: Multi-session offerings spanning weeks or months (educational courses, training programs). Wix Bookings enrolls participants in all sessions defined by the course schedule. - name: scheduleId | type: string | description: [Schedule GUID](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction.md). - name: serviceId | type: string | description: Booked service GUID. - name: location | type: Location | description: [Location](https://dev.wix.com/docs/rest/business-management/locations/introduction.md) where the schedule's sessions take place. - name: timezone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database). For example, `America/New_York` or `UTC`. This is the time zone in which the schedule was shown to the customer at the time of booking. Wix Bookings ensures that the schedule is always displayed in this same time zone to the customer, including when they view or edit their booking in the future. - name: firstSessionStart | type: string | description: Start time of the first session related to the booking in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: lastSessionEnd | type: string | description: End time of the last session related to the booking in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: title | type: string | description: Session title at the time of booking. If there is no pre-existing session, for example for appointment-based services, Wix Bookings sets `title` to the service name. - name: tags | type: array | description: List of tags for the booking. - "INDIVIDUAL": For bookings of appointment-based services. Including when the appointment is for a group of participants. - "GROUP": For bookings of individual class sessions. - "COURSE": For course bookings. - name: contactDetails | type: ContactDetails | description: Contact details of the site visitor or [member](https://dev.wix.com/docs/api-reference/crm/members-contacts/members/members/introduction.md) making the booking. - name: contactId | type: string | description: Contact GUID. - name: firstName | type: string | description: Contact's first name. When populated from a standard booking form, this property corresponds to the `name` field. - name: lastName | type: string | description: Contact's last name. - name: email | type: string | description: Contact's email. If no [contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v4/contact-object.md) with this email exist, a new contact is created. Used to validate coupon usage limitations per contact. If not specified, the coupon usage limitation will not be enforced. (Coupon usage limitation validation is not supported yet). - name: phone | type: string | description: Contact's phone number. - name: fullAddress | type: Address | description: Contact's full address. - ONE-OF: - name: streetAddress | type: StreetAddress | description: Street name, number and apartment number. - name: number | type: string | description: Street number. - name: name | type: string | description: Street name. - name: apt | type: string | description: Apartment number. - name: addressLine | type: string | description: Main address line, usually street and number, as free text. - name: country | type: string | description: Country code. - name: subdivision | type: string | description: Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). - name: city | type: string | description: City name. - name: postalCode | type: string | description: Zip/postal code. - name: addressLine2 | type: string | description: Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. - name: formattedAddress | type: string | description: A string containing the full address of this location. - name: hint | type: string | description: Free text to help find the address. - name: geocode | type: AddressLocation | description: Coordinates of the physical address. - name: latitude | type: number | description: Address latitude. - name: longitude | type: number | description: Address longitude. - name: countryFullname | type: string | description: Country full name. - name: subdivisions | type: array | description: Multi-level subdivisions from top to bottom. - name: code | type: string | description: Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). - name: name | type: string | description: Subdivision full name. - name: countryCode | type: string | description: Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. - name: status | type: BookingStatus | description: Booking status. A booking is automatically confirmed if the service allows it and an eCommerce order is created. It is automatically declined if there is a double booking and the customer hasn't paid or is eligible for an automatic refund. Currently, only payments with pricing plans are automatically refundable. - enum: - CREATED: The booking was created, but the customer hasn't completed the related eCommerce order yet. - CONFIRMED: The merchant has confirmed the booking and it appears in the business calendar. Merchants can set up their [services](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction.md) to automatically confirm all `PENDING` bookings. - CANCELED: The customer has canceled the booking. Depending on the relevant service's [policy snapshot](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policy-snapshots/introduction.md) they may have to pay a [cancellation fee](https://dev.wix.com/docs/rest/business-solutions/bookings/pricing/booking-fees/introduction.md). - PENDING: The merchant must manually confirm the booking before it appears in the business calendar. - DECLINED: The merchant has declined the booking before the customer was charged. - WAITING_LIST: Currently, you can't call [Register to Waitlist](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings/waitlist/register-to-waitlist.md) for course or appointment bookings, even though this is supported in live sites. - name: paymentStatus | type: PaymentStatus | description: The payment status of the booking. This field automatically syncs with the `paymentStatus` of the corresponding [eCommerce order](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/orders/introduction.md) when customers use Wix eCommerce checkout. ### Integration patterns __When using Wix eCommerce checkout__: Wix Bookings automatically syncs the payment status based on the eCommerce order's payment status. Do not manually update this field. __When using custom payment flows__: You can manually update the payment status with [Confirm Booking or Decline Booking](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/confirm-or-decline-booking.md) to reflect the customer's payment state. __For membership/pricing plan payments__: Wix Bookings automatically manages the payment status when customers pay with an active [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction.md) subscription. All payment statuses are supported for every booking `status`. - enum: - UNDEFINED: Undefined payment status. - NOT_PAID: The booking isn't paid. - PAID: The booking is fully paid. - PARTIALLY_PAID: The booking is partially paid. - REFUNDED: The booking is refunded. - EXEMPT: The booking is free of charge. - name: selectedPaymentOption | type: SelectedPaymentOption | description: Payment option selected by the customer. If the customer hasn't completed their checkout, they may still change the payment method. Must be one of the payment options offered by the [service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md), unless `skipSelectedPaymentOptionValidation` is `true`. When the customer pays with a [Wix eCommerce checkout](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/checkout/introduction.md), this field is required. Otherwise, the Create Booking call fails. For custom checkouts, you don't have to specify this field. - enum: - UNDEFINED: Undefined payment option. - OFFLINE: Offline payment. - ONLINE: Online payment. - MEMBERSHIP: Payment using a Wix Pricing Plan. - MEMBERSHIP_OFFLINE: Customers can pay only in person with a Wix Pricing Plan, while the Wix user must manually redeem the pricing plan in the dashboard. - name: createdDate | type: string | description: Date and time the booking was created in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: externalUserId | type: string | description: External user GUID that you can provide. - name: revision | type: string | description: Revision number to be used when updating, rescheduling, or cancelling the booking. Increments by 1 each time the booking is updated, rescheduled, or canceled. To prevent conflicting changes, the current revision must be specified when updating the booking. - name: createdBy | type: IdentificationData | description: GUID of the creator of the booking. If `appId` and another GUID are present, the other GUID takes precedence. - ONE-OF: - name: anonymousVisitorId | type: string | description: GUID of a site visitor that has not logged in to the site. - name: memberId | type: string | description: GUID of a site visitor that has logged in to the site. - name: wixUserId | type: string | description: GUID of a Wix user (site owner, contributor, etc.). - name: appId | type: string | description: GUID of an app. - name: contactId | type: string | description: GUID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system. - name: startDate | type: string | description: The start date of the booking in `YYYY-MM-DDThh:mm:ss.sssZ` format. For a slot, this is the start date of the slot. For a schedule, this is the start date of the first session. - name: endDate | type: string | description: The end date of the booking in `YYYY-MM-DDThh:mm:ss.sssZ` format. For a slot, this is the end date of the slot. For a schedule, this is the end date of the last session. - name: updatedDate | type: string | description: Date and time the booking was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: extendedFields | type: ExtendedFields | description: Custom field data for this object. Extended fields must be configured in the app dashboard before they can be accessed with API calls. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: doubleBooked | type: boolean | description: Whether this booking overlaps with another confirmed booking. Returned only if set to `true`. - name: formSubmissionId | type: string | description: GUID of the [form submission](https://dev.wix.com/docs/rest/crm/forms/form-submissions/introduction.md) associated with this booking. - name: formId | type: string | description: GUID of the [form](https://dev.wix.com/docs/rest/crm/forms/form-schemas/form-object.md) associated with this booking. The value depends on how the booking was created: - For bookings created with Create Booking or Bulk Create Booking, `formId` is identical to GUID of the booking form that's associated with the relevant service. - For bookings created via Create Multi Service Booking, `formId` is set to `00000000-0000-0000-0000-000000000000` (the default booking form GUID). - name: bookedAddOns | type: array | description: List of [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction.md) associated with the booking. - name: id | type: string | description: The GUID of the add-on. - name: groupId | type: string | description: The GUID of the add-on group. - name: durationInMinutes | type: integer | description: The add-on duration in minutes at the time of booking. Populated for duration-based add-ons. - name: quantity | type: integer | description: The quantity of booked add-ons. For duration-based add-ons, `quantity` is not applicable. If `quantity` is provided as `1` for a duration-based add-on, it will be accepted but the value will be cleared. If any other value is provided, an `INVALID_ARGUMENT` error will be returned with the message: "Invalid AddOn details: either duration or quantity must be set correctly". - name: name | type: string | description: Add-on `name` at the time of booking. - name: nameTranslated | type: string | description: Add-on name translated to the language the customer used during booking. - name: appId | type: string | description: GUID of the app that's associated with the booking. Inherited from the `appId` of the service associated with the booking. Bookings are displayed in Wix Bookings only if they are associated with the Wix Bookings app GUID or have no associated app GUID. For bookings from Wix apps, the following values apply: - Wix Bookings: `"13d21c63-b5ec-5912-8397-c3a5ddb27a97"` - Wix Services: `"cc552162-24a4-45e0-9695-230c4931ef40"` - Wix Meetings: `"6646a75c-2027-4f49-976c-58f3d713ed0f"` [Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix.md). - name: createdByAppId | type: string | description: GUID of the app that created the booking. This field is used for analytics, auditing, and tracking creation sources. This read-only field is automatically populated during booking creation by checking these sources in order: 1. The caller's App GUID from the request identity context (external app or server identity). 2. The booking's `appId` field (inherited from the service's `appId`). 3. The Wix Bookings App GUID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback. - name: depositSelected | type: boolean | description: Whether the customer chooses to pay only the deposit amount upfront. - `true`: The customer pays only the deposit amount upfront. - `false`: The customer pays the full price upfront. Used only when `selectedPaymentOption` is `ONLINE` and the [service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md) has a deposit amount set. When the service supports deposit payments and `fullUpfrontPaymentAllowed` is `false`, this field must be `true`. When the service supports deposit payments and `fullUpfrontPaymentAllowed` is `true`, this field can be `true` or `false`. Possible Errors: HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: DUPLICATE_BOOKING_INFO | Description: none HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: NOT_ALL_BOOKINGS_WERE_SENT | Description: none HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: REVISION_MISSING | Description: none HTTP Code: 403 | Status Code: PERMISSION_DENIED | Application Code: MULTI_SERVICE_BOOKING_INCLUDES_MULTIPLE_STAFF_MEMBERS | Description: none HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: BOOKING_NOT_FOUND | Description: none HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: MULTI_SERVICE_BOOKING_NOT_FOUND | Description: none HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: BOOKING_REVISION_MISMATCH | Description: none HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: ALL_BOOKINGS_ARE_ALREADY_DECLINED | Description: none HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: INVALID_BOOKING_STATUS | Description: none HTTP Code: 500 | Status Code: INTERNAL | Application Code: SOME_BOOKINGS_UPDATES_FAILED | Description: none ``` ### Examples ### Decline a multi-service booking ```curl curl -X POST \ 'https://www.wixapis.com/_api/bookings-service/v2/multi_service_bookings/msb-12345/decline' \ -H 'Content-Type: application/json' \ -H 'Authorization: ' \ -d '{ "declineBookingsInfo": [ { "bookingId": "booking-massage-456", "revision": 1, "paymentStatus": "REFUNDED" }, { "bookingId": "booking-facial-789", "revision": 1, "paymentStatus": "REFUNDED" } ], "participantNotification": { "notifyParticipants": true, "message": "Unfortunately, we cannot accommodate your spa package at this time. A full refund has been issued." }, "doubleBooked": false, "returnFullEntity": true, "flowControlSettings": { "skipRefundValidation": false } }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.bookings.MultiServiceBookings.declineMultiServiceBooking(multiServiceBookingId, options) Description: Updates the status for all single-service bookings in a multi-service booking to `DECLINED`. Call this method to reject multi-service bookings that can't be accommodated or don't meet business requirements. ### Status requirements - __Original status__: All single-service bookings must have `PENDING`, `CREATED`, or `WAITING_LIST` status. - __Target status__: All bookings move to `DECLINED` together (all-or-nothing operation). ### Checkout restrictions Only call this method if the customer paid via a custom checkout. For Wix eCommerce checkouts, Wix Bookings automatically manages the bookings' statuses based on payment processing. ### Additional updates - __Payment status__: Updates if you specify a new `declineBookingsInfo.paymentStatus`. - __Customer notifications__: Send messages using `participantNotification`. - __Revision control__: Requires current revision numbers for all single-service bookings. Refer to [Decline Booking](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings/bookings-writer-v2/decline-booking.md) for more details about declining single-service bookings. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: multiServiceBookingId Method parameters: param name: multiServiceBookingId | type: string | description: GUID of the multi-service booking to decline. | required: true param name: options | type: DeclineMultiServiceBookingOptions none - name: declineBookingsInfo | type: array | description: Information about the single-service bookings to decline. - name: bookingId | type: string | description: GUID of the single-service booking. - name: revision | type: string | description: Revision number, which increments by 1 each time the booking is updated. To prevent conflicting changes, the current revision must be specified when managing the booking. - name: paymentStatus | type: PaymentStatus | description: Payment status to set for the single-service booking. - enum: - UNDEFINED: Undefined payment status. - NOT_PAID: The booking isn't paid. - PAID: The booking is fully paid. - PARTIALLY_PAID: The booking is partially paid. - REFUNDED: The booking is refunded. - EXEMPT: The booking is free of charge. - name: participantNotification | type: ParticipantNotification | description: Information about whether to notify the customer and the message to send. - name: notifyParticipants | type: boolean | description: Whether to send a message about the changes to the customer. Default: `false` - name: message | type: string | description: Custom message to send to the participants about the changes to the booking. - name: metadata | type: object | description: Information about the delivery channels used to send the notification. For example, `{"channels": "SMS" }`, `{"channels": "EMAIL" }`, or `{"channels": "EMAIL, SMS" }`. - name: doubleBooked | type: boolean | description: Whether this booking has a conflict with at least 1 other confirmed booking. - name: returnFullEntity | type: boolean | description: Whether to return the declined single-service bookings. - name: flowControlSettings | type: DeclineBookingFlowControlSettings | description: Information about whether specific procedures of the standard Wix Bookings declining flow are changed. For example, whether to issue a refund upon cancellation. - name: withRefund | type: boolean | description: Whether to issue a refund when declining the booking. The refund will be issued only if the booking is refundable. Currently, a booking is considered refundable when it was paid by membership. If specifying `true`, the booking flow control settings will be set with a refund. If you specify `false` or an empty field, the booking flow control settings are set without refund. Default: `false`. Return type: PROMISE - name: multiServiceBooking | type: MultiServiceBooking | description: Declined multi-service booking. - name: _id | type: string | description: Multi-service booking GUID. - name: bookings | type: array | description: The single-service bookings that make up the multi-service booking package. - name: bookingId | type: string | description: Single-service booking GUID. Always present. This value is identical to `booking.id`, which is only returned when `returnFullEntity` is `true`. - name: booking | type: Booking | description: Single-service booking entity. Only returned when `returnFullEntity` is `true`. - ONE-OF: - name: totalParticipants | type: integer | description: Total number of participants. When creating a booking, use this field only if the relevant service has fixed pricing and doesn't offer [variants and options](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md). - name: participantsChoices | type: ParticipantChoices | description: Information about the booked service choices and participant count for each choice. When creating a booking, use this field only if the booking includes multiple [service variants](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md). For example, use this for a spa package booking that includes different service levels: - 2 participants chose "Standard Package". - 1 participant chose "VIP Package". - name: serviceChoices | type: array | description: Information about the booked service choices. Includes the number of participants. - name: numberOfParticipants | type: integer | description: Number of participants for this [variant](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction.md). - name: choices | type: array | description: Service choices for these participants. - ONE-OF: - name: custom | type: string | description: Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list. Choices are specific values for an option the customer can choose to book. For example, the option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`. Each choice may have a different price. - name: duration | type: Duration | description: - name: minutes | type: integer | description: Duration of the service in minutes. Min: 1 minute, Max: 30 days, 23 hours, and 59 minutes - name: name | type: string | description: Name of the duration option. Defaults to the formatted duration e.g. "1 hour, 30 minutes". - name: optionId | type: string | description: GUID of the corresponding option for the choice. For example, the choice `child` could correspond to the option `ageGroup`. In this case, `optionId` is the GUID for the `ageGroup` option. - name: _id | type: string | description: Booking GUID. - name: bookedEntity | type: BookedEntity | description: An object describing the bookable entity - either a specific time slot or a recurring schedule. The structure depends on the type of service being booked: __For appointment services__: Use `slot` to book a specific time slot with a service provider. Appointments are typically one-time sessions at a specific date and time. __For class services__: Use `slot` to book a specific class session. Classes are individual sessions that can have multiple participants. __For course services__: Use `schedule` to book an entire course consisting of multiple sessions over time. Courses are recurring, multi-session offerings. Choose the appropriate field based on your service type and booking requirements. - ONE-OF: - name: slot | type: BookedSlot | description: [Booked slot](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings-and-time-slots/time-slots/availability-calendar/query-availability.md). Specify `slot` when creating bookings for: - __Appointment-based services__: Individual sessions with service providers (consultations, treatments). Wix Bookings creates a new session when the booking is confirmed. - __Class services__: Group sessions at specific times (fitness classes, workshops). Wix Bookings links the booking to an existing scheduled session. For course services, specify `schedule` instead of `slot`. - name: serviceId | type: string | description: Service GUID. - name: scheduleId | type: string | description: Schedule GUID. - name: eventId | type: string | description: GUID of the corresponding [event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction.md). Available for both appointment and class bookings, not available for course bookings. For appointment-based services, Wix Bookings automatically populates `eventId` when the booking `status` changes to `CONFIRMED`. For class bookings, Wix Bookings automatically populates `eventId` upon booking creation. - name: startDate | type: string | description: The start time of this slot in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: endDate | type: string | description: The end time of this slot in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: timezone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database). For example, `America/New_York` or `UTC`. This is the time zone in which the slot was shown to the customer at the time of booking. Wix Bookings ensures that the slot is always displayed in this same time zone to the customer, including when they view or edit their booking in the future. - name: resource | type: BookedResource | description: [Primary resource](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction.md) for the booking. For example, the [staff member](https://dev.wix.com/docs/rest/business-solutions/bookings/staff-members/introduction.md) providing the service. - name: _id | type: string | description: GUID of the booking's primary resource. - name: name | type: string | description: Resource's name at the time of booking. - name: email | type: string | description: Resource's email at the time of booking. - name: scheduleId | type: string | description: GUID of the schedule belonging to the booking's primary resource. - name: location | type: Location | description: Location where the session takes place. - name: _id | type: string | description: Business location GUID. Available only for locations that are business locations, meaning the `location_type` is `"OWNER_BUSINESS"`. - name: name | type: string | description: Location name. - name: formattedAddress | type: string | description: The full address of this location. - name: formattedAddressTranslated | type: string | description: The full translated address of this location. - name: locationType | type: LocationType | description: Location type. - enum: - UNDEFINED: Undefined location type. - OWNER_BUSINESS: The business address, as set in the site’s general settings. - OWNER_CUSTOM: The address as set when creating the service. - CUSTOM: The address as set for the individual session. - name: resourceSelections | type: array | description: Information about how the customer has selected resources for the booking. Each resource type may have a different selection method. Check `resource` for resource details. - name: resourceTypeId | type: string | description: GUID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md). - name: selectionMethod | type: SelectionMethod | description: Information about how the customer has selected the resource for this resource type. - enum: - SPECIFIC_RESOURCE: The customer explicitly chose a particular resource. - ANY_RESOURCE: The customer explicitly chose "any available resource" for this resource type. - NO_SELECTION: The customer wasn't offered a resource selection or agreement option for this resource type. - name: schedule | type: BookedSchedule | description: [Booked schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction.md). Specify `schedule` when creating bookings for: - __Course services__: Multi-session offerings spanning weeks or months (educational courses, training programs). Wix Bookings enrolls participants in all sessions defined by the course schedule. - name: scheduleId | type: string | description: [Schedule GUID](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction.md). - name: serviceId | type: string | description: Booked service GUID. - name: location | type: Location | description: [Location](https://dev.wix.com/docs/rest/business-management/locations/introduction.md) where the schedule's sessions take place. - name: timezone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database). For example, `America/New_York` or `UTC`. This is the time zone in which the schedule was shown to the customer at the time of booking. Wix Bookings ensures that the schedule is always displayed in this same time zone to the customer, including when they view or edit their booking in the future. - name: firstSessionStart | type: string | description: Start time of the first session related to the booking in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: lastSessionEnd | type: string | description: End time of the last session related to the booking in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`. - name: title | type: string | description: Session title at the time of booking. If there is no pre-existing session, for example for appointment-based services, Wix Bookings sets `title` to the service name. - name: tags | type: array | description: List of tags for the booking. - "INDIVIDUAL": For bookings of appointment-based services. Including when the appointment is for a group of participants. - "GROUP": For bookings of individual class sessions. - "COURSE": For course bookings. - name: contactDetails | type: ContactDetails | description: Contact details of the site visitor or [member](https://dev.wix.com/docs/api-reference/crm/members-contacts/members/members/introduction.md) making the booking. - name: contactId | type: string | description: Contact GUID. - name: firstName | type: string | description: Contact's first name. When populated from a standard booking form, this property corresponds to the `name` field. - name: lastName | type: string | description: Contact's last name. - name: email | type: string | description: Contact's email. If no [contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v4/contact-object.md) with this email exist, a new contact is created. Used to validate coupon usage limitations per contact. If not specified, the coupon usage limitation will not be enforced. (Coupon usage limitation validation is not supported yet). - name: phone | type: string | description: Contact's phone number. - name: fullAddress | type: Address | description: Contact's full address. - ONE-OF: - name: streetAddress | type: StreetAddress | description: Street name, number and apartment number. - name: number | type: string | description: Street number. - name: name | type: string | description: Street name. - name: apt | type: string | description: Apartment number. - name: addressLine | type: string | description: Main address line, usually street and number, as free text. - name: country | type: string | description: Country code. - name: subdivision | type: string | description: Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). - name: city | type: string | description: City name. - name: postalCode | type: string | description: Zip/postal code. - name: addressLine2 | type: string | description: Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. - name: formattedAddress | type: string | description: A string containing the full address of this location. - name: hint | type: string | description: Free text to help find the address. - name: geocode | type: AddressLocation | description: Coordinates of the physical address. - name: latitude | type: number | description: Address latitude. - name: longitude | type: number | description: Address longitude. - name: countryFullname | type: string | description: Country full name. - name: subdivisions | type: array | description: Multi-level subdivisions from top to bottom. - name: code | type: string | description: Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). - name: name | type: string | description: Subdivision full name. - name: countryCode | type: string | description: Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. - name: status | type: BookingStatus | description: Booking status. A booking is automatically confirmed if the service allows it and an eCommerce order is created. It is automatically declined if there is a double booking and the customer hasn't paid or is eligible for an automatic refund. Currently, only payments with pricing plans are automatically refundable. - enum: - CREATED: The booking was created, but the customer hasn't completed the related eCommerce order yet. - CONFIRMED: The merchant has confirmed the booking and it appears in the business calendar. Merchants can set up their [services](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction.md) to automatically confirm all `PENDING` bookings. - CANCELED: The customer has canceled the booking. Depending on the relevant service's [policy snapshot](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policy-snapshots/introduction.md) they may have to pay a [cancellation fee](https://dev.wix.com/docs/rest/business-solutions/bookings/pricing/booking-fees/introduction.md). - PENDING: The merchant must manually confirm the booking before it appears in the business calendar. - DECLINED: The merchant has declined the booking before the customer was charged. - WAITING_LIST: Currently, you can't call [Register to Waitlist](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings/waitlist/register-to-waitlist.md) for course or appointment bookings, even though this is supported in live sites. - name: paymentStatus | type: PaymentStatus | description: The payment status of the booking. This field automatically syncs with the `paymentStatus` of the corresponding [eCommerce order](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/orders/introduction.md) when customers use Wix eCommerce checkout. ### Integration patterns __When using Wix eCommerce checkout__: Wix Bookings automatically syncs the payment status based on the eCommerce order's payment status. Do not manually update this field. __When using custom payment flows__: You can manually update the payment status with [Confirm Booking or Decline Booking](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/confirm-or-decline-booking.md) to reflect the customer's payment state. __For membership/pricing plan payments__: Wix Bookings automatically manages the payment status when customers pay with an active [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction.md) subscription. All payment statuses are supported for every booking `status`. - enum: - UNDEFINED: Undefined payment status. - NOT_PAID: The booking isn't paid. - PAID: The booking is fully paid. - PARTIALLY_PAID: The booking is partially paid. - REFUNDED: The booking is refunded. - EXEMPT: The booking is free of charge. - name: selectedPaymentOption | type: SelectedPaymentOption | description: Payment option selected by the customer. If the customer hasn't completed their checkout, they may still change the payment method. Must be one of the payment options offered by the [service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md), unless `skipSelectedPaymentOptionValidation` is `true`. When the customer pays with a [Wix eCommerce checkout](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/checkout/introduction.md), this field is required. Otherwise, the Create Booking call fails. For custom checkouts, you don't have to specify this field. - enum: - UNDEFINED: Undefined payment option. - OFFLINE: Offline payment. - ONLINE: Online payment. - MEMBERSHIP: Payment using a Wix Pricing Plan. - MEMBERSHIP_OFFLINE: Customers can pay only in person with a Wix Pricing Plan, while the Wix user must manually redeem the pricing plan in the dashboard. - name: _createdDate | type: Date | description: Date and time the booking was created in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: externalUserId | type: string | description: External user GUID that you can provide. - name: revision | type: string | description: Revision number to be used when updating, rescheduling, or cancelling the booking. Increments by 1 each time the booking is updated, rescheduled, or canceled. To prevent conflicting changes, the current revision must be specified when updating the booking. - name: createdBy | type: IdentificationData | description: GUID of the creator of the booking. If `appId` and another GUID are present, the other GUID takes precedence. - ONE-OF: - name: anonymousVisitorId | type: string | description: GUID of a site visitor that has not logged in to the site. - name: memberId | type: string | description: GUID of a site visitor that has logged in to the site. - name: wixUserId | type: string | description: GUID of a Wix user (site owner, contributor, etc.). - name: appId | type: string | description: GUID of an app. - name: contactId | type: string | description: GUID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system. - name: startDate | type: Date | description: The start date of the booking in `YYYY-MM-DDThh:mm:ss.sssZ` format. For a slot, this is the start date of the slot. For a schedule, this is the start date of the first session. - name: endDate | type: Date | description: The end date of the booking in `YYYY-MM-DDThh:mm:ss.sssZ` format. For a slot, this is the end date of the slot. For a schedule, this is the end date of the last session. - name: _updatedDate | type: Date | description: Date and time the booking was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: extendedFields | type: ExtendedFields | description: Custom field data for this object. Extended fields must be configured in the app dashboard before they can be accessed with API calls. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: doubleBooked | type: boolean | description: Whether this booking overlaps with another confirmed booking. Returned only if set to `true`. - name: formSubmissionId | type: string | description: GUID of the [form submission](https://dev.wix.com/docs/rest/crm/forms/form-submissions/introduction.md) associated with this booking. - name: formId | type: string | description: GUID of the [form](https://dev.wix.com/docs/rest/crm/forms/form-schemas/form-object.md) associated with this booking. The value depends on how the booking was created: - For bookings created with Create Booking or Bulk Create Booking, `formId` is identical to GUID of the booking form that's associated with the relevant service. - For bookings created via Create Multi Service Booking, `formId` is set to `00000000-0000-0000-0000-000000000000` (the default booking form GUID). - name: bookedAddOns | type: array | description: List of [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction.md) associated with the booking. - name: _id | type: string | description: The GUID of the add-on. - name: groupId | type: string | description: The GUID of the add-on group. - name: durationInMinutes | type: integer | description: The add-on duration in minutes at the time of booking. Populated for duration-based add-ons. - name: quantity | type: integer | description: The quantity of booked add-ons. For duration-based add-ons, `quantity` is not applicable. If `quantity` is provided as `1` for a duration-based add-on, it will be accepted but the value will be cleared. If any other value is provided, an `INVALID_ARGUMENT` error will be returned with the message: "Invalid AddOn details: either duration or quantity must be set correctly". - name: name | type: string | description: Add-on `name` at the time of booking. - name: nameTranslated | type: string | description: Add-on name translated to the language the customer used during booking. - name: appId | type: string | description: GUID of the app that's associated with the booking. Inherited from the `appId` of the service associated with the booking. Bookings are displayed in Wix Bookings only if they are associated with the Wix Bookings app GUID or have no associated app GUID. For bookings from Wix apps, the following values apply: - Wix Bookings: `"13d21c63-b5ec-5912-8397-c3a5ddb27a97"` - Wix Services: `"cc552162-24a4-45e0-9695-230c4931ef40"` - Wix Meetings: `"6646a75c-2027-4f49-976c-58f3d713ed0f"` [Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix.md). - name: createdByAppId | type: string | description: GUID of the app that created the booking. This field is used for analytics, auditing, and tracking creation sources. This read-only field is automatically populated during booking creation by checking these sources in order: 1. The caller's App GUID from the request identity context (external app or server identity). 2. The booking's `appId` field (inherited from the service's `appId`). 3. The Wix Bookings App GUID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback. - name: depositSelected | type: boolean | description: Whether the customer chooses to pay only the deposit amount upfront. - `true`: The customer pays only the deposit amount upfront. - `false`: The customer pays the full price upfront. Used only when `selectedPaymentOption` is `ONLINE` and the [service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md) has a deposit amount set. When the service supports deposit payments and `fullUpfrontPaymentAllowed` is `false`, this field must be `true`. When the service supports deposit payments and `fullUpfrontPaymentAllowed` is `true`, this field can be `true` or `false`. Possible Errors: HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: DUPLICATE_BOOKING_INFO | Description: none HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: NOT_ALL_BOOKINGS_WERE_SENT | Description: none HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: REVISION_MISSING | Description: none HTTP Code: 403 | Status Code: PERMISSION_DENIED | Application Code: MULTI_SERVICE_BOOKING_INCLUDES_MULTIPLE_STAFF_MEMBERS | Description: none HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: BOOKING_NOT_FOUND | Description: none HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: MULTI_SERVICE_BOOKING_NOT_FOUND | Description: none HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: BOOKING_REVISION_MISMATCH | Description: none HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: ALL_BOOKINGS_ARE_ALREADY_DECLINED | Description: none HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: INVALID_BOOKING_STATUS | Description: none HTTP Code: 500 | Status Code: INTERNAL | Application Code: SOME_BOOKINGS_UPDATES_FAILED | Description: none ``` ### Examples ### declineMultiServiceBooking ```javascript import { bookings } from '@wix/bookings'; async function declineMultiServiceBooking(multiServiceBookingId,options) { const response = await bookings.declineMultiServiceBooking(multiServiceBookingId,options); }; ``` ### declineMultiServiceBooking (with elevated permissions) ```javascript import { bookings } from '@wix/bookings'; import { auth } from '@wix/essentials'; async function myDeclineMultiServiceBookingMethod(multiServiceBookingId,options) { const elevatedDeclineMultiServiceBooking = auth.elevate(bookings.declineMultiServiceBooking); const response = await elevatedDeclineMultiServiceBooking(multiServiceBookingId,options); } ``` ### declineMultiServiceBooking (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { bookings } from '@wix/bookings'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { bookings }, // Include the auth strategy and host as relevant }); async function declineMultiServiceBooking(multiServiceBookingId,options) { const response = await myWixClient.bookings.declineMultiServiceBooking(multiServiceBookingId,options); }; ``` ---