---
title: "Purchase `ReservationOrder`"
method: PUT
path: "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}"
tags: ["Reservation, Purchase"]
---

# Purchase `ReservationOrder`

`PUT /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}`

Purchase `ReservationOrder` and create resource under the specified URI.

## Path parameters

- `reservationOrderId` string, required

## Query parameters

- `api-version` string, required

## Request body

- PurchaseRequest
  - `sku` SkuName
    - `name` string
  - `location` string — The Azure Region where the reserved resource lives.
  - `properties` PurchaseRequestProperties
    - `reservedResourceType` 'VirtualMachines' | 'SqlDatabases' | 'SuseLinux' | 'CosmosDb' | 'RedHat' | 'SqlDataWarehouse' | 'VMwareCloudSimple' | 'RedHatOsa' | 'Databricks' | 'AppService' | 'ManagedDisk' | 'BlockBlob' | 'RedisCache' | 'AzureDataExplorer' | 'MySql' | 'MariaDb' | 'PostgreSql' | 'DedicatedHost' | 'SapHana' | 'SqlAzureHybridBenefit' | 'AVS' | 'DataFactory' | 'NetAppStorage' | 'AzureFiles' | 'SqlEdge' | 'VirtualMachineSoftware' — The type of the resource that is being reserved.
    - `billingScopeId` string — Subscription that will be charged for purchasing Reservation
    - `term` 'P1Y' | 'P3Y' | 'P5Y' — Represent the term of Reservation.
    - `billingPlan` 'Upfront' | 'Monthly' — Represent the billing plans.
    - `quantity` integer — Quantity of the SKUs that are part of the Reservation. Must be greater than zero.
    - `displayName` string — Friendly name of the Reservation
    - `appliedScopeType` 'Single' | 'Shared' — Type of the Applied Scope.
    - `appliedScopes` string[] — List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.
    - `renew` boolean — Setting this to true will automatically purchase a new reservation on the expiration date time.
    - `reservedResourceProperties` object — Properties specific to each reserved resource type. Not required if not applicable.
      - `instanceFlexibility` 'On' | 'Off' — Turning this on will apply the reservation discount to other VMs in the same VM size group. Only specify for VirtualMachines reserved resource type.

## Response `200`

The resource has been created

- ReservationOrderResponse
  - `etag` integer
  - `id` string — Identifier of the reservation
  - `name` string — Name of the reservation
  - `properties` ReservationOrderProperties
    - `displayName` string — Friendly name for user to easily identified the reservation.
    - `requestDateTime` string, date-time — This is the DateTime when the reservation was initially requested for purchase.
    - `createdDateTime` string, date-time — This is the DateTime when the reservation was created.
    - `expiryDate` string, date — This is the date when the Reservation will expire.
    - `benefitStartTime` string, date-time — This is the DateTime when the reservation benefit started.
    - `originalQuantity` integer — Total Quantity of the SKUs purchased in the Reservation.
    - `term` 'P1Y' | 'P3Y' | 'P5Y' — Represent the term of Reservation.
    - `provisioningState` 'Creating' | 'PendingResourceHold' | 'ConfirmedResourceHold' | 'PendingBilling' | 'ConfirmedBilling' | 'Created' | 'Succeeded' | 'Cancelled' | 'Expired' | 'BillingFailed' | 'Failed' | 'Split' | 'Merged' — Represent the current state of the Reservation.
    - `billingPlan` 'Upfront' | 'Monthly' — Represent the billing plans.
    - `planInformation` ReservationOrderBillingPlanInformation — Information describing the type of billing plan for this reservation.
      - `pricingCurrencyTotal` Price
        - `currencyCode` string — The ISO 4217 3-letter currency code for the currency used by this purchase record.
        - `amount` number, double
      - `startDate` string, date — Date when the billing plan has started.
      - `nextPaymentDueDate` string, date — For recurring billing plans, indicates the date when next payment will be processed. Null when total is paid off.
      - `transactions` PaymentDetail[]
        - `dueDate` string, date — Date when the payment needs to be done.
        - `paymentDate` string, date — Date when the transaction is completed. Is null when it is scheduled.
        - `pricingCurrencyTotal` Price
          - `currencyCode` string — The ISO 4217 3-letter currency code for the currency used by this purchase record.
          - `amount` number, double
        - `billingCurrencyTotal` Price
          - `currencyCode` string — The ISO 4217 3-letter currency code for the currency used by this purchase record.
          - `amount` number, double
        - `billingAccount` string — Shows the Account that is charged for this payment.
        - `status` 'Succeeded' | 'Failed' | 'Scheduled' | 'Cancelled' — Describes whether the payment is completed, failed, cancelled or scheduled in the future.
        - `extendedStatusInfo` ExtendedStatusInfo
          - `statusCode` 'None' | 'Pending' | 'Processing' | 'Active' | 'PurchaseError' | 'PaymentInstrumentError' | 'Split' | 'Merged' | 'Expired' | 'Succeeded'
          - `message` string — The message giving detailed information about the status code.
    - `reservations` ReservationResponse[]
      - `location` string — The Azure Region where the reserved resource lives.
      - `etag` integer
      - `id` string — Identifier of the reservation
      - `name` string — Name of the reservation
      - `sku` SkuName
        - `name` string
      - `properties` ReservationsProperties — The properties of the reservations
        - `reservedResourceType` 'VirtualMachines' | 'SqlDatabases' | 'SuseLinux' | 'CosmosDb' | 'RedHat' | 'SqlDataWarehouse' | 'VMwareCloudSimple' | 'RedHatOsa' | 'Databricks' | 'AppService' | 'ManagedDisk' | 'BlockBlob' | 'RedisCache' | 'AzureDataExplorer' | 'MySql' | 'MariaDb' | 'PostgreSql' | 'DedicatedHost' | 'SapHana' | 'SqlAzureHybridBenefit' | 'AVS' | 'DataFactory' | 'NetAppStorage' | 'AzureFiles' | 'SqlEdge' | 'VirtualMachineSoftware' — The type of the resource that is being reserved.
        - `instanceFlexibility` 'On' | 'Off' — Turning this on will apply the reservation discount to other VMs in the same VM size group. Only specify for VirtualMachines reserved resource type.
        - `displayName` string — Friendly name for user to easily identify the reservation
        - `appliedScopes` string[] — List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.
        - `appliedScopeType` 'Single' | 'Shared' — Type of the Applied Scope.
        - `archived` boolean — Indicates if the reservation is archived
        - `capabilities` string — Capabilities of the reservation
        - `quantity` integer — Quantity of the SKUs that are part of the Reservation. Must be greater than zero.
        - `provisioningState` 'Creating' | 'PendingResourceHold' | 'ConfirmedResourceHold' | 'PendingBilling' | 'ConfirmedBilling' | 'Created' | 'Succeeded' | 'Cancelled' | 'Expired' | 'BillingFailed' | 'Failed' | 'Split' | 'Merged' — Represent the current state of the Reservation.
        - `effectiveDateTime` string, date-time — DateTime of the Reservation starting when this version is effective from.
        - `benefitStartTime` string, date-time — This is the DateTime when the reservation benefit started.
        - `lastUpdatedDateTime` string, date-time — DateTime of the last time the Reservation was updated.
        - `expiryDate` string, date — This is the date when the Reservation will expire.
        - `skuDescription` string — Description of the SKU in english.
        - `extendedStatusInfo` ExtendedStatusInfo
          - `statusCode` 'None' | 'Pending' | 'Processing' | 'Active' | 'PurchaseError' | 'PaymentInstrumentError' | 'Split' | 'Merged' | 'Expired' | 'Succeeded'
          - `message` string — The message giving detailed information about the status code.
        - `billingPlan` 'Upfront' | 'Monthly' — Represent the billing plans.
        - `displayProvisioningState` string — The provisioning state of the reservation for display, e.g. Succeeded
        - `provisioningSubState` string — The provisioning state of the reservation, e.g. Succeeded
        - `purchaseDate` string, date — This is the date when the Reservation was purchased.
        - `splitProperties` ReservationSplitProperties
          - `splitDestinations` string[] — List of destination Resource Id that are created due to split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
          - `splitSource` string — Resource Id of the Reservation from which this is split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
        - `mergeProperties` ReservationMergeProperties
          - `mergeDestination` string — Reservation Resource Id Created due to the merge. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
          - `mergeSources` string[] — Resource Ids of the Source Reservation's merged to form this Reservation. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
        - `swapProperties` ReservationSwapProperties
          - `swapSource` string — Resource Id of the Source Reservation that gets swapped. Format of the resource Id is /providers/microsoft.capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
          - `swapDestination` string — Reservation Resource Id that the original resource gets swapped to. Format of the resource Id is /providers/microsoft.capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
        - `appliedScopeProperties` AppliedScopeProperties
          - `tenantId` string — Tenant ID of the applied scope type
          - `managementGroupId` string — Management group ID of the format /providers/Microsoft.Management/managementGroups/{managementGroupId}
          - `displayName` string — Management group display name
        - `billingScopeId` string — Subscription that will be charged for purchasing Reservation
        - `renew` boolean — Setting this to true will automatically purchase a new reservation on the expiration date time.
        - `renewSource` string — Reservation Id of the reservation from which this reservation is renewed. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}.
        - `renewDestination` string — Reservation Id of the reservation which is purchased because of renew. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}.
        - `renewProperties` RenewPropertiesResponse
          - `purchaseProperties` PurchaseRequest
            - `sku` SkuName
              - …
            - `location` string — The Azure Region where the reserved resource lives.
            - `properties` PurchaseRequestProperties
              - …
          - `pricingCurrencyTotal` object — Amount that Microsoft uses for record. Used during refund for calculating refund limit. Tax is not included. This is locked price 30 days before expiry.
            - `currencyCode` string — The ISO 4217 3-letter currency code for the currency used by this purchase record.
            - `amount` number
          - `billingCurrencyTotal` object — Currency and amount that customer will be charged in customer's local currency for renewal purchase. Tax is not included.
            - `currencyCode` string — The ISO 4217 3-letter currency code for the currency used by this purchase record.
            - `amount` number
        - `term` 'P1Y' | 'P3Y' | 'P5Y' — Represent the term of Reservation.
        - `userFriendlyAppliedScopeType` string — The applied scope type of the reservation for display, e.g. Shared
        - `userFriendlyRenewState` string — The renew state of the reservation for display, e.g. On
        - `utilization` object — Reservation utilization
          - `trend` string — The number of days trend for a reservation
          - `aggregates` ReservationUtilizationAggregates[] — The array of aggregates of a reservation's utilization
            - `grain` number — The grain of the aggregate
            - `grainUnit` string — The grain unit of the aggregate
            - `value` number — The aggregate value
            - `valueUnit` string — The aggregate value unit
      - `type` string — Type of resource. "Microsoft.Capacity/reservationOrders/reservations"
      - `kind` 'Microsoft.Compute' — Resource Provider type to be reserved.
      - `systemData` SystemData — unresolved $ref
  - `type` string — Type of resource. "Microsoft.Capacity/reservations"
  - `systemData` SystemData — unresolved $ref

## Other responses

- `202` — The request is accepted and is being processed. Operation result link is in location header.
- `default` — Unexpected error

---

[API](https://skmtc.net/azure/apis/reservations-microsoft-capacity-reservations.md) · [All operations](https://skmtc.net/azure/apis/reservations-microsoft-capacity-reservations/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/azure/reservations-microsoft-capacity-reservations/revisions/1d4481f1bd1e/schema)
