Inventory Visibility reservations

This article describes a typical use case for soft reservations and explains how to set them up in Inventory Visibility. It includes information about how to create soft reservations, offset them upon physical consumption, and adjust or unreserve specified inventory quantities.

Sample use case for soft reservation

Soft reservations help organizations achieve a single source of truth for available inventory, especially during the order fulfillment process. This functionality is useful for organizations where the following conditions exist:

  • The organization has at least two different systems that are directly taking outbound orders.
  • The organization is very strict and wants to prevent double-booking of product inventory, which can happen if multiple systems are able to overbook the last piece of stock. This situation is prevented when all order systems can make instant soft reservation API calls to Inventory Visibility, which provides a single source of truth for inventory availability.

Inventory Visibility soft reservation.

The previous illustration shows how soft reservation works and highlights the following operations:

  • Your initial inventory level is synced to Inventory Visibility from Microsoft Dynamics 365 Supply Chain Management.
  • Soft reservations are posted from each of your order channels or systems to Inventory Visibility. Inventory Visibility validates inventory availability and tries to make a soft reservation. If soft reservation succeeds, Inventory Visibility adds to the soft reserved quantity, deducts from the available for reservation (AFR) quantity, and respond with a soft reservation ID.
  • At this time, your physical inventory quantity remains the same.
  • You can then sync either single or aggregated soft-reserved orders (order lines) into Supply Chain Management to make hard reservations and release to the warehouse or update the final inventory quantity.
  • You can set the system to offset soft reservations when physical inventory is updated in Supply Chain Management.

Soft reservations are usually created, consumed, and canceled by using API calls to the Inventory Visibility service.


You can optionally set up Supply Chain Management (and other third-party systems) to automatically offset the quantity that has been reserved by using Inventory Visibility. The offset quantity is deleted from the reservation records in Inventory Visibility.

By default, the offset function is automatically turned on when you enable the soft reservation feature.

Turn on and set up the reservation feature

To turn on the reservation feature, follow these steps.

  1. Sign in to Power Apps and open Inventory Visibility.

  2. Open the Configuration page.

  3. On the Feature Management tab, turn on the OnHandReservation feature.

  4. Sign in to your Supply Chain Management environment.

  5. Go to the Feature management workspace and enable the Inventory Visibility integration with reservation offset feature (requires version 10.0.22 or later).

  6. Go to Inventory Management > Setup > Inventory Visibility integration parameters, open the Reservation offset tab and make the following settings:

    • Enable reservation offset – Set to Yes to enable this functionality.

    • Reservation offset modifier – Select the inventory transaction status that will offset reservations that are made in Inventory Visibility. This setting determines the order processing stage that triggers offsets. The stage is traced by the order's inventory transaction status. Select one of the following values:

      • On order – Orders that have an On order status will send an offset request when they're created. The offset quantity will be the quantity of the created order (line).
      • Reserve – Orders that have a Reserve status will send an offset request when they're either order reserved or physically reserved. When you offset at the Reserve status, the order will send an offset request at any new inventory status that's closest to reserved picked (for example, pick, packing-slip posted, or invoiced). This behavior occurs even if you skip the reservation in Supply Chain Management and continue to another inventory status (for example, if you skip from release to warehouse to pick and pack). The request will be triggered only once. If it's been triggered at pick, it won't duplicate the offset when a packing slip is posted. The offset quantity will be the same as the quantity of the inventory transaction status when the offset was triggered (in other words, Reserved ordered/Reserve Physical, or a later status, on the corresponding order line).
  7. Sign back in to the Inventory Visibility app, go to the Configuration page, and then, on the Soft Reservation tab, review the default soft reservation hierarchy. Add new dimensions to the hierarchy as required.

  8. In the Set Soft Reservation Mapping section, view the default settings. By default, the soft-reserved inventory quantities will be recorded against the softreservephysical physical measure of the data source iv. The Available for reservation calculated measure is mapped to availabletoreserve. If you want to update the availabletoreserve calculated measure, go to the Configuration page, and then, on the Calculated Measure tab, expand and modify the calculated measure.

For more information, see Configure Inventory Visibility.


The reservation hierarchy describes the sequence of dimensions that must be specified when reservations are made. It works in the same way that the index hierarchy works for on-hand queries, but it's used independently so that users can specify dimension details to make more precise reservations.

Your soft reservation hierarchy should contain SiteId and LocationId as components, because they construct the partition configuration of Inventory Visibility.

For more information about how to configure reservations, see Reservation configuration.

Use the reservation feature in Inventory Visibility

When you call the reservation API, the system marks the reservation of the specified goods and quantities.

Here's an example scenario and a sample API query body. The company Contoso sells product D0002 (Cabinet) from its e-commerce website. A customer places a sales order for a small red cabinet via the website. Contoso decides to fulfill this order by using the following dimensions:

  • Organization ID = usmf
  • Site = 1
  • Warehouse = 11
  • Product = D0002
  • Color = red
  • Size = small

Contoso has already set up an API connection to Inventory Visibility from its own e-commerce system. When the order is received, the system instantly triggers an API call to make a soft reservation for the cabinet in Inventory Visibility.

Create soft reservations using the reservation API

Reservations are made in the Inventory Visibility service by submitting a POST request to the service's URL, such as /api/environment/{environmentId}/onhand/reserve.

For a reservation, the request body must contain an organization ID, a product ID, reserved quantities, and dimensions.

When you call the reservation API, you can control the reservation validation by specifying the Boolean ifCheckAvailForReserv parameter in the request body. A value of True means that the validation is required, whereas a value of False means that the validation isn't required. The default value is True.

If you want to cancel a reservation or unreserve specified inventory quantities, set the quantity to a negative value, and set the ifCheckAvailForReserv parameter to False to skip the validation.

Here's an example of the request body that references the sales order in the previous context.

# Url

#Replace {endpoint} with your system endpoint.

# Method

# Header
# replace {access_token} with the one get from security service
Api-version: "1.0"
Content-Type: "application/json"
Authorization: "Bearer {access_token}"

# Body
    "id": "Testrequest-0005",
    "organizationId": "usmf",
    "productId": "D0002",
    "dimensions": {
        "SiteId": "1",
        "LocationId": "11",
        "ColorId": "red",
        "SizeId": "small"
    "quantityDataSource": "iv",
    "modifier": "softreservphysical",
    "quantity": 1,
    "ifCheckAvailForReserv": true

A successful soft reservation request returns a soft reservation ID for each reservation record. The soft reservation ID isn't a unique identifier for an individual soft reservation record, but a combination of the product ID and dimension values that are associated with the soft reservation request. You can record the soft reservation ID on the order line when you sync the successfully reserved orders to Supply Chain Management or another ERP system for offset.

Offset soft reservations in Supply Chain Management

You can offset a soft-reserved quantity after the quantity on an order is physically deducted in Supply Chain Management or another ERP system. Inventory Visibility offers out-of-box soft reservation offset integration with Supply Chain Management.

Follow these steps to offset a soft reservation.

  1. Sign in to Supply Chain Management.

  2. Go to Sales and marketing > Sales Orders > All Sales Orders.

  3. On the Action Pane, select New.

  4. Re-create the external sales order, and add a sales line that uses the exact same product ID, organization, site, warehouse, and dimensions values.

  5. On the Sales order lines FastTab, select the sales line that you just entered, and then, on the toolbar, select Inventory > Reservation ID.

  6. Follow one of these steps:

    • Copy the soft reservation ID in your soft reservation request response, and paste it into the Reservation ID field.
    • Leave the Reservation ID field blank, but select the Inventory service auto offset checkbox. The system will automatically determine which product and product dimensions to offset, based on the item ID and dimension values that are entered on the selected line.
  7. Select OK.

  8. While the same sales line is still selected, physically reserve the ordered quantity by selecting Inventory > Reservation on the toolbar of the Sales order lines FastTab.

  9. If you've previously set the Reservation offset modifier field to Reserved, the offset will be triggered when the order line has a status of Reserve physical or Reserve ordered. A batch job runs once a minute to sync offset requests from Supply Chain Management to Inventory Visibility.


For transaction statuses that include a specified reserve offset modifier, the transaction update will offset the corresponding reservation record when all the following conditions are met:

  • The reservation ID on the inventory transaction matches the reservation ID of the reservation record in Inventory Visibility.
  • The dimensions of the inventory transaction match the dimensions of the reservation record in Inventory Visibility.
  • Changes in inventory transaction status trigger offsets for reservations when the inventory transaction status reflects the fact that an order process has been completed or skipped.

Offset quantities follow the inventory quantities that are specified on the relevant inventory transactions. An offset will take effect only if reserved quantity remains in Inventory Visibility.

Cancel or revert a soft reservation

If an original order line is canceled or deleted, and you must revert the corresponding soft reservation, post a negative quantity that has the exact same information in your API query body.