Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

WSD Extra Service API

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.

Parent Topic:REST API reference

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

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}

Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

Supported request parameters

NameDescription
api\_versionOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String
sys\_idSys\_id of the reservation record for which to return the extra service request details.Data type: String Table: Workplace Reservation \[sn\_wsd\_rsv\_reservation\]
NameDescription
None 
NameDescription
None 

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.

HeaderDescription
AcceptData format of the response body. Supported types: application/json or application/xml. Default: application/json
HeaderDescription
None 

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.

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

Response body parameters

NameDescription
resultDetails about the specified extra service request.Data type: Object
"result": {
  "reservableId": "String",
  "reservationId": "String",
  "serviceCategories": {Object},
  "serviceTimes": {Object}
}
result.reservableIdSys\_id of the workplace location that the reservation is created against. Data type: String Table: Workplace Location \[sn\_wsd\_core\_workplace\_location\]
result.reservationIdSys\_id of the reservation for which to return the extra service request details. Data type: String Table: Workplace Reservation \[sn\_wsd\_rsv\_reservation\].
result.serviceCategoriesDetails about the service category of the associated extra services.Data type: Object
"serviceCategories": {
  "String": {
    "categoryFriendlyName": "String",
    "categoryCurrencyCode": "String",
    "comment": "String",
    "flexibleServices": [Array],
    "serviceTimes": {Object}
  }
}
result.serviceCategories.categoryFriendly​NameUser friendly name of the category of the workplace service or extra service, such as Space arrangement. Data type: String
result.serviceCategories.​categoryCurrencyCodeCurrency code used to calculate the cost of the workplace service item or extra service.Data type: String
result.serviceCategories.commentComments about the service category. Data type: String
result.serviceCategories.flexibleServicesDetails 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.​capacityCapacity requested when requesting the workplace service item.Data type: Number
result.serviceCategories.flexibleServices.​capacityEnabledFlag that indicates whether the user creating the reservation can specify the capacity of the workplace.Possible values: - true: User can specify the capacity. - false: User can't specify the capacity. Data type: Boolean
result.serviceCategories.flexibleServices.​categorySys\_id of the category of the workplace service or extra service associated with the reservation.Data type: String
result.serviceCategories.flexibleServices.​categoryCommentAdditional comments about the category.Data type: String
result.serviceCategories.flexibleServices.​categoryFriendlyNameUser friendly name of the category of the workplace service or extra service, such as Space arrangement.Data type: String
result.serviceCategories.flexibleServices.​commentAdditional comments about the workplace service item or extra service. Data type: String
result.serviceCategories.flexibleServices.​currencyCodeCurrency code used to calculate the cost of the associated workplace service item or extra service.Data type: String
result.serviceCategories.flexibleServices.​deliveryTimeDelivery 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.​flexibleServiceIdSys\_id of the extra service or workplace service item. Data type: String Table: Workplace Service Item \[sn\_wsd\_case\_workplace\_service\_item\]
result.serviceCategories.flexibleServices.​flexibleServiceNameName of the associated extra service or workplace service item.Data type: String
result.serviceCategories.flexibleServices.​maxCapacityMaximum capacity of the workplace that can be requested.Data type: Number
result.serviceCategories.flexibleServices.​quantityNumber of extra service items requested. Data type: Number
result.serviceCategories.flexibleServices.​quantityEnabledFlag that indicates whether the user creating the reservation can specify the quantity of service items.Possible values: - true: User can specify the quantity. - false: User can't specify the quantity. Data type: Boolean
result.serviceCategories.flexibleServices.​requestIdSys\_id of the extra service or workplace service item.Data type: String Table: Request Service \[sn\_wsd\_case\_service\_item\_request\]
result.serviceCategories.flexibleServices.​serviceItemImageFile name of the thumbnail image of the workplace service item.Data type: String
result.serviceCategories.flexibleServices.​servicePriceCost of the workplace service item or extra service.Data type: String
result.serviceCategories.flexibleServices.​serviceTimesDetails 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.endCleanupDate and time when the clean-up of the workplace service item will end.Data type: String
result.serviceCategories.flexibleServices.​serviceTimes.endPreparationDate and time when the preparation of the workplace service item will end.Data type: String
result.serviceCategories.flexibleServices.​serviceTimes.startCleanupDate and time when the clean-up of the workplace service item will start.Data type: String
result.serviceCategories.flexibleServices.​serviceTimes.startPreparationDate and time when the preparation of the workplace service item will start.Data type: String
result.serviceCategories.flexibleServices.stateDetails about the current state of the associated workplace service item.Data type: Object
"state": {
  "display_value": "String",
  "value": "String"
}
result.serviceCategories.flexibleServices.state.​display\_valueDisplay value of the state of the workplace service item, such as Open.Data type: String
result.serviceCategories.flexibleServices.state.​valueInternal value of the state of the workplace service item, such as Open.Data type: String
result.serviceCategories.flexibleServices.​subCategoryDetails about the subcategory of the associated workplace service item.Data type: Object
"subCategory": {
  "display_value": "String",
  "value": "String"
}
result.serviceCategories.flexibleServices.​subCategory.display\_valueDisplay 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.valueInternal 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\_priceTotal cost of the workplace service item or extra service for the reservation.Data type: Number
result.serviceTimesDetails 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.endCleanupDate and time when the clean up of the workplace service item will end.Data type: String
result.serviceTimes.endPreparationDate and time when the preparation of the workplace service item will end.Data type: String
result.serviceTimes.startCleanupDate and time when the clean up of the workplace service item will start.Data type: String
result.serviceTimes.startPreparationDate 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

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

Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

Supported request parameters

NameDescription
api\_versionOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String
NameDescription
None 
NameDescription
reservationDateTimeChangedFlag 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 wasn't changed. Data type: Boolean Default: false
reservableIdRequired.Sys\_id of the workplace location that the reservation is created against. Data type: String Table: Workplace Location \[sn\_wsd\_core\_workplace\_location\]
reservationIdRequired. Sys\_id of the reservation for which to add the extra service requests.Data type: String Table: Workplace Reservation \[sn\_wsd\_rsv\_reservation\]
serviceCategoriesRequired. 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.categoryRequired. Sys\_id or name of the workplace service to add to the reservation.Data type: String Table: Workplace Service \[sn\_wsd\_case\_workplace\_service\]
serviceCategories.commentRequired. Comments about the service category. Data type: String
serviceCategories.flexibleServicesRequired. 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.cancelFlagFlag 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.commentRequired.Additional comments about the workplace service item or extra service. Data type: String
serviceCategories.flexibleServices.​deliveryTimeRequired. 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.​extraServiceRequestIdSys\_id of the existing extra service request. Provide this parameter to update an existing extra service request.Data type: String Table: Request Service Items \[sn\_wsd\_case\_service\_item\_request\]
serviceCategories.flexibleServices.​flexibleServiceIdRequired. Sys\_id of the extra service or workplace service item.Data type: String Table: Workplace Service Item \[sn\_wsd\_case\_workplace\_service\_item\]
serviceCategories.flexibleServices.​quantityRequired. Number of extra service items requested. Data type: Number

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.

HeaderDescription
AcceptData format of the request body. Supported types: application/json, application/xml or, text/xml. Default: application/json
Content-TypeData format of the request body. Only supports application/json.
HeaderDescription
None 

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.

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

Response body parameters

NameDescription
resultReturn results for the request.Data type: Object
"result": {
  "extraServiceRequests": [Array],
  "reservableId": "String",
  "reservationId": "String",
  "success": Boolean
}
result.extraServiceRequestsDetails about the added or cancelled extra service request.Data type: Array of Object
"extraServiceRequests": [
  {
    "flexibleServiceId": "String",
    "requestId": "String"
    }
]
result.extraServiceRequests.flexibleServiceIdSys\_id of the extra service item request that was added to the reservation.Data type: String Table: Workplace Service Item \[sn\_wsd\_case\_workplace\_service\_item\]
result.extraServiceRequests.requestIdSys\_id of the extra service item that was added to the request.Data type: String Table: Request Service Items \[sn\_wsd\_case\_service\_item\_request\]
result.reservableIdSys\_id of the workplace location that the reservation is created against. Data type: String Table: Workplace Location \[sn\_wsd\_core\_workplace\_location\]
result.reservationIdSys\_id of the reservation for which the extra service request was added.Data type: String Table: Workplace Reservation \[sn\_wsd\_rsv\_reservation\]
result.successFlag that indicates whether the extra service request was successfully added to the reservation.Possible values: - true: Successfully added. - false: Operation failed. 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
  }
}