---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# WSD Extra Service API

# WSD Extra Service API {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 10 minutes to read

The Workplace Service Delivery (WSD) Extra Service API provides endpoints to retrieve extra services, such as location layouts and standard services of a workplace location.
To access this API, the caller must have the sn_wsd_core.workplace_user role.

This API runs in the `sn_wsd_rsv` namespace. To access this API the Workplace
Reservation Management (sn_wsd_rsv) plugin must be activated.

For additional information on Workplace Reservation Management, see [Workplace Reservation
Management](https://www.servicenow.com/docs/access?context=workplace-rsv-mgmt-feat&version=xanadu&pubname=xanadu-employee-service-management&ft:locale=en-US).

## WSD Extra Service Request - PATCH
/api/sn_wsd_rsv/wsd_extra_service_request/reservation/{sys_id} {#ariaid-title2}

Returns the extra service requests that are associated to a single
reservation.
Note:  
This endpoint does not work for group or multi reservations.

### URL format

Versioned URL:
/api/sn_wsd_rsv/{api_version}/wsd_extra_service_request/reservation/{sys_id}

Default URL:
/api/sn_wsd_rsv/wsd_extra_service_request/reservation/{sys_id}

### Supported request parameters

{#wsd_ex_serv_req-GET-reserv__entry__2}{#wsd_ex_serv_req-GET-reserv__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| sys_id | Sys_id of the reservation record for which to return the extra service request details. Located in the Workplace Reservation \[sn_wsd_rsv_reservation\] table. Data type: String |
[Table 1. Path parameters]

{#wsd_ex_serv_req-GET-reserv__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 2. Query parameters]

{#wsd_ex_serv_req-GET-reserv__entry__12}

| Name | Description |
|-|-|
| None |   |
[Table 3. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#wsd_ex_serv_req-GET-reserv__entry__16}{#wsd_ex_serv_req-GET-reserv__accept-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
[Table 4. Request headers]

{#wsd_ex_serv_req-GET-reserv__entry__20}

| Header | Description |
|-|-|
| None |   |
[Table 5. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#wsd_ex_serv_req-GET-reserv__entry__24}{#wsd_ex_serv_req-GET-reserv__entry-200-status-code}{#wsd_ex_serv_req-GET-reserv__entry-401-status-code}{#wsd_ex_serv_req-GET-reserv__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. Reservation sys_id is missing, invalid, or does not exist. |
| 401 | Unauthorized. The user credentials are incorrect or have not been passed. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 6. Status codes]

### Response body parameters

{#wsd_ex_serv_req-GET-reserv__entry__34}

| Name | Description |
|-|-|
| result | Details about the specified extra service request. Data type: Object { "result": { "reservableId": "String", "reservationId": "String", "serviceCategories": {Object}, "serviceTimes": {Object} } } |
| result.reservableId | Sys_id of the workplace location that the reservation is created against. Located in the Workplace Location \[sn_wsd_core_workplace_location\] table. Data type: String |
| result.reservationId | Sys_id of the reservation for which to return the extra service request details. Located in the Workplace Reservation \[sn_wsd_rsv_reservation\] table. Data type: String |
| result.serviceCategories | Details about the service category of the associated extra services. Data type: "serviceCategories": { "String": { "categoryFriendlyName": "String", "categoryCurrencyCode": "String", "comment": "String", "flexibleServices": [Array], "serviceTimes": {Object} } } |
| result.serviceCategories.categoryFriendly​Name | User friendly name of the category of the workplace service or extra service, such as Space arrangement. Data type: String |
| result.serviceCategories.​categoryCurrencyCode | Currency code used to calculate the cost of the workplace service item or extra service. Data type: String |
| result.serviceCategories.comment | Comments about the service category. Data type: String |
| result.flexibleServices | Details about each of the workplace service items or extra service requested for the reservation. Data type: Array of Objects "flexibleServices": [ { "capacity": Number, "capacityEnabled": Boolean, "category": "String", "categoryComment": "String", "categoryFriendlyName": "String", "comment": "String", "currencyCode": "String", "deliveryTime": "String", "flexibleServiceId": "String", "flexibleServiceName": "String", "maxCapacity": Number, "quantity": Number, "quantityEnabled": Boolean, "requestId": "String", "serviceItemImage": "String", "servicePrice": Number, "serviceTimes": {Object}, "state": {Object}, "subCategory": {Object}, "totalPrice": Number, } ] |
| result.serviceCategories.flexibleServices.​capacity | Capacity requested when requesting the workplace service item. Data type: Number |
| result.serviceCategories.flexibleServices.​capacityEnabled | Flag that indicates whether the user creating the reservation can specify the capacity of the workplace. Valid values: * true: User can specify the capacity. * false: User cannot specify the capacity. Data type: Boolean |
| result.serviceCategories.flexibleServices.​category | Sys_id of the category of the workplace service or extra service associated with the reservation. Data type: String |
| result.serviceCategories.flexibleServices.​categoryComment | Additional comments about the category. Data type: String |
| result.serviceCategories.flexibleServices.​categoryFriendlyName | User friendly name of the category of the workplace service or extra service, such as Space arrangement. Data type: String |
| result.serviceCategories.flexibleServices.​comment | Additional comments about the workplace service item or extra service. Data type: String |
| result.serviceCategories.flexibleServices.​currencyCode | Currency code used to calculate the cost of the associated workplace service item or extra service. Data type: String |
| result.serviceCategories.flexibleServices.​deliveryTime | Delivery time of the workplace service item or extra service. Data type: String Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z |
| result.serviceCategories.flexibleServices.​flexibleServiceId | Sys_id of the extra service or workplace service item. Located in the \[sn_wsd_case_workplace_service_item\] table. Data type: String |
| result.serviceCategories.flexibleServices.​flexibleServiceName | Name of the associated extra service or workplace service item. Data type: String |
| result.serviceCategories.flexibleServices.​maxCapacity | Maximum capacity of the workplace that can be requested. Data type: Number |
| result.serviceCategories.flexibleServices.​quantity | Number of extra service items requested. Data type: Number |
| result.serviceCategories.flexibleServices.​quantityEnabled | Flag that indicates whether the user creating the reservation can specify the quantity of service items. Valid values: * true: User can specify the quantity. * false: User cannot specify the quantity. Data type: Boolean |
| result.serviceCategories.flexibleServices.​requestId | Sys_id of the extra service or workplace service item. Located in the \[sn_wsd_case_service_item_request\] table. Data type: String |
| result.serviceCategories.flexibleServices.​serviceItemImage | File name of the thumbnail image of the workplace service item. Data type: String |
| result.serviceCategories.flexibleServices.​servicePrice | Cost of the workplace service item or extra service. Data type: String |
| result.serviceCategories.flexibleServices.​serviceTimes | Details about the time it takes to prepare and cleanup the workplace service item. Data type: Object "serviceTimes": { "endCleanup": "String", "endPreparation": "String", "startCleanup": "String", "startPreparation": "String" } |
| result.serviceCategories.flexibleServices.​serviceTimes.endCleanup | Date and time when the clean-up of the workplace service item will end. Data type: String |
| result.serviceCategories.flexibleServices.​serviceTimes.endPreparation | Date and time when the preparation of the workplace service item will end. Data type: String |
| result.serviceCategories.flexibleServices.​serviceTimes.startCleanup | Date and time when the clean-up of the workplace service item will start. Data type: String |
| result.serviceCategories.flexibleServices.​serviceTimes.startPreparation | Date and time when the preparation of the workplace service item will start. Data type: String |
| result.serviceCategories.flexibleServices.state | Details about the current state of the associated workplace service item. Data type: Object "state": { "display_value": "String", "value": "String" } |
| result.serviceCategories.flexibleServices.state.​display_value | Display value of the state of the workplace service item, such as Open. Data type: String |
| result.serviceCategories.flexibleServices.state.​value | Internal value of the state of the workplace service item, such as Open. Data type: String |
| result.serviceCategories.flexibleServices.​subCategory | Details about the subcategory of the associated workplace service item. Data type: Object "subCategory": { "display_value": "String", "value": "String" } |
| result.serviceCategories.flexibleServices.​subCategory.display_value | Display value of the subCategory for the workplace service item or extra service, such as such as chair layout, drinks, or IT support. Data type: String |
| result.serviceCategories.flexibleServices.​subCategory.value | Internal value of the subcategory of the workplace service item or extra service, such as chair_layout, drinks, or IT_support. Data type: String |
| result.serviceCategories.flexibleServices.​total_price | Total cost of the workplace service item or extra service for the reservation. Data type: Number |
| result.serviceTimes | Details about the time it takes to prepare and cleanup the workplace service item. Data type: Object "serviceTimes": { "endCleanup": "String", "endPreparation": "String", "startCleanup": "String", "startPreparation": "String" } |
| result.serviceTimes.endCleanup | Date and time when the clean up of the workplace service item will end. Data type: String |
| result.serviceTimes.endPreparation | Date and time when the preparation of the workplace service item will end. Data type: String |
| result.serviceTimes.startCleanup | Date and time when the clean up of the workplace service item will start. Data type: String |
| result.serviceTimes.startPreparation | Date and time when the preparation of the workplace service item will start. Data type: String |
[ ]

### cURL request

This code example shows how to request the details of the extra services or workplace
service items for a reservation.

    curl "http://instance.servicenow.com/api/sn_wsd_rsv/wsd_extra_service_request/reservation/383e36c1536f01103cf7ddeeff7b1245" \
    --request GET \
    --header "Accept:application/json" \
    --user "username": "password"

Return results:

    {
      "result": {
        "reservationId": "383e36c1536f01103cf7ddeeff7b1245",
        "serviceTimes": {
          "startPreparation": "2022-05-17T11:45:00ZZ",
          "endPreparation": "2022-05-17T12:00:00ZZ",
          "startCleanup": "2022-05-17T13:00:00ZZ",
          "endCleanup": "2022-05-17T13:15:00ZZ"
        },
        "reservableId": "02000d4edb7650106c731dcd13961914",
        "serviceCategories": {
          "50723fbf07100110c9b36b6e0ad300b4": {
            "serviceTimes": {
              "startPreparation": "2022-05-17T11:45:00Z",
              "endPreparation": "2022-05-17T12:00:00Z",
              "startCleanup": "2022-05-17T13:00:00Z",
              "endCleanup": "2022-05-17T13:15:00Z"
            },
            "flexibleServices": [
              {
                "requestId": "743eb605536f01103cf7ddeeff7b126b",
                "category": "50723fbf07100110c9b36b6e0ad300b4",
                "categoryComment": "test2",
                "subCategory": {
                  "value": "chair_layout",
                  "display_value": "Chair layout"
                },
                "categoryFriendlyName": "Space arrangement",
                "servicePrice": 0,
                "serviceItemImage": "4c6a0d7107600110c9b36b6e0ad300fc.iix",
                "currencyCode": "GBP",
                "totalPrice": 0,
                "flexibleServiceId": "21e2c08407600110c9b36b6e0ad3007c",
                "flexibleServiceName": "Theater Style",
                "deliveryTime": "2022-05-17 12:00:00",
                "comment": "test1",
                "quantity": 1,
                "capacity": 1,
                "quantityEnabled": false,
                "capacityEnabled": true,
                "maxCapacity": null,
                "state": {
                  "value": "2",
                  "display_value": "Work in Progress"
                },
                "serviceTimes": {
                  "startPreparation": "2022-05-17T11:45:00Z",
                  "endPreparation": "2022-05-17T12:00:00Z",
                  "startCleanup": "2022-05-17T13:00:00Z",
                  "endCleanup": "2022-05-17T13:15:00Z"
                }
              }
            ],
            "comment": "test2",
            "categoryFriendlyName": "Space arrangement",
            "categoryCurrencyCode": "GBP"
          }
        }
      }
    }

## WSD Extra Service Request - PATCH /api/sn_wsd_rsv/wsd_extra_service_request/submit {#ariaid-title3}

Adds an new or updates an existing extra service request to a specified single
reservation.
Note:  
This endpoint does not work for group or multi reservations.

### URL format

Versioned URL:
/api/sn_wsd_rsv/{api_version}/wsd_extra_service_request/submit

Default URL:
/api/sn_wsd_rsv/wsd_extra_service_request/submit

### Supported request parameters

{#wsd_ex_serv_req-POST-submit__entry__2}{#wsd_ex_serv_req-POST-submit__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 7. Path parameters]

{#wsd_ex_serv_req-POST-submit__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 8. Query parameters]

{#wsd_ex_serv_req-POST-submit__entry__10}

| Name | Description |
|-|-|
| reservationDateTimeChanged | Flag that indicates whether the reservation date and time has changed. Valid values: * true: The reservation date and time was changed. * false: The reservation date and time was not changed. {#wsd_ex_serv_req-POST-submit__ul_w3q_ckc_2cc} Data type: Boolean Default: false |
| reservableId | Required. Sys_id of the workplace location that the reservation is created against. Located in the Workplace Location \[sn_wsd_core_workplace_location\] table. Data type: String |
| reservationId | Required. Sys_id of the reservation for which to add the extra service requests. Located in the Workplace Reservation \[sn_wsd_rsv_reservation\] table. Data type: String |
| serviceCategories | Required. List of workplace service items or extra services to add to the reservation. Data type: Array of Objects "serviceCategories": [ { "category": "String", "comment": "String", "flexibleServices": [Array] } ] |
| serviceCategories.category | Required. Sys_id or name of the workplace service to add to the reservation. Located in the Workplace Service \[sn_wsd_case_workplace_service\] table. Data type: String |
| serviceCategories.comment | Required. Comments about the service category. Data type: String |
| serviceCategories.flexibleServices | Required. Details about each of the workplace service items or extra service to add to or cancel from the reservation. Data type: Array of Objects "flexibleServices": [ { "cancelFlag": Boolean, "comment": "String", "deliveryTime": "String", "extraServiceRequestId": "String", "flexibleServiceId": "String", "quantity": Number } ] |
| serviceCategories.flexibleServices.cancelFlag | Flag that indicates whether to cancel the specified extra service request. Possible values: * true: Delete the associated extra service request. * false: No operation. Data type: Boolean Default: false |
| serviceCategories.flexibleServices.comment | Required. Additional comments about the workplace service item or extra service. Data type: String |
| serviceCategories.flexibleServices.​deliveryTime | Required. Delivery time of the workplace service item or extra service. Data type: String Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z |
| serviceCategories.flexibleServices.​extraServiceRequestId | Sys_id of the existing extra service request. Provide this parameter to update an existing extra service request. Located in the Request Service Items \[sn_wsd_case_service_item_request\] table. Data type: String |
| serviceCategories.flexibleServices.​flexibleServiceId | Required. Sys_id of the extra service or workplace service item. Located in the Workplace Service Item \[sn_wsd_case_workplace_service_item\] table. Data type: String |
| serviceCategories.flexibleServices.​quantity | Required. Number of extra service items requested. Data type: Number |
[Table 9. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#wsd_ex_serv_req-POST-submit__entry__38}{#wsd_ex_serv_req-POST-submit__accept-reserv-entry}{#wsd_ex_serv_req-POST-submit__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the request body. Supported types: application/json, application/xml or, text/xml. Default: application/json |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 10. Request headers]

{#wsd_ex_serv_req-POST-submit__entry__44}

| Header | Description |
|-|-|
| None |   |
[Table 11. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#wsd_ex_serv_req-POST-submit__entry__48}{#wsd_ex_serv_req-POST-submit__entry-200-status-code}{#wsd_ex_serv_req-POST-submit__entry-400-status-code}{#wsd_ex_serv_req-POST-submit__entry-401-status-code}{#wsd_ex_serv_req-POST-submit__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 401 | Unauthorized. The user credentials are incorrect or have not been passed. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 12. Status codes]

### Response body parameters

{#wsd_ex_serv_req-POST-submit__entry__58}

| Name | Description |
|-|-|
| result | Return results for the request. Data type: Object "result": { "extraServiceRequests": [Array], "reservableId": "String", "reservationId": "String", "success": Boolean } |
| result.extraServiceRequests | Details about the added or cancelled extra service request. Data type: Array of Object "result": { "extraServiceRequests": [ { "flexibleServiceId": "String", "requestId": "String" } ] } |
| result.extraServiceRequests.flexibleServiceId | Sys_id of the extra service item request that was added to the reservation. Located in the Workplace Service Item \[sn_wsd_case_workplace_service_item\] table. Data type: String |
| result.extraServiceRequests.requestId | Sys_id of the extra service item that was added to the request. Located in the Request Service Items \[sn_wsd_case_service_item_request\] table. Data type: String |
| result.reservableId | Sys_id of the workplace location that the reservation is created against. Located in the Workplace Location \[sn_wsd_core_workplace_location\] table. Data type: String |
| result.reservationId | Sys_id of the reservation for which the extra service request was added. Located in the Workplace Reservation \[sn_wsd_rsv_reservation\] table. Data type: String |
| result.success | Flag that indicates whether the extra service request was successfully added to the reservation. Possible values: * true: Successfully added. * false: Operation failed. {#wsd_ex_serv_req-POST-submit__ul_gwq_mdf_xtb} Data type: Boolean |
[ ]

### cURL request

The following code example shows how to add an extra service item request to a
reservation.

    curl "http://instance.servicenow.com/api/sn_wsd_rsv/wsd_extra_service_request/submit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Concept-Type:application/json" \
    --user 'username':'password'

Return results:

    {
      "result": {
        "reservationId": "2dc2efdf531701103cf7ddeeff7b1227",
        "reservableId": "02000d4edb7650106c731dcd13961914",
        "extraServiceRequests": [
          {
            "requestId": "bea46dbc53e701103cf7ddeeff7b1236",
            "flexibleServiceId": "e2ecf7b307500110c9b36b6e0ad30033"
          }
    ],
        "success": true
      }
    }


