---
title: "POST /providers/Microsoft.BillingBenefits/savingsPlanOrders/{savingsPlanOrderId}/savingsPlans/{savingsPlanId}/validate"
method: POST
path: "/providers/Microsoft.BillingBenefits/savingsPlanOrders/{savingsPlanOrderId}/savingsPlans/{savingsPlanId}/validate"
tags: ["SavingsPlanModels"]
---

# POST /providers/Microsoft.BillingBenefits/savingsPlanOrders/{savingsPlanOrderId}/savingsPlans/{savingsPlanId}/validate

`POST /providers/Microsoft.BillingBenefits/savingsPlanOrders/{savingsPlanOrderId}/savingsPlans/{savingsPlanId}/validate`

Validate savings plan patch.

## Path parameters

- `savingsPlanOrderId` string, required
- `savingsPlanId` string, required

## Parameters

- `../../../../../common-types/resource-management/v6/types.json#/components/parameters/ApiVersionParameter` — unresolved $ref

## Request body

- SavingsPlanUpdateValidateRequest
  - `benefits` SavingsPlanUpdateRequestProperties[]
    - `displayName` string — Display name
    - `appliedScopeType` 'Single' | 'Shared' | 'ManagementGroup' — Type of the Applied Scope.
    - `appliedScopeProperties` AppliedScopeProperties — Properties specific to applied scope type. Not required if not applicable.
      - `tenantId` string — Tenant ID where the benefit is applied.
      - `managementGroupId` string — Fully-qualified identifier of the management group where the benefit must be applied.
      - `subscriptionId` string — Fully-qualified identifier of the subscription.
      - `resourceGroupId` string — Fully-qualified identifier of the resource group.
      - `displayName` string — Display name
      - `benefitFilter` string — A filter string passed to downstream services to categorize and apply usage benefits to specific resource models. Expected format: "key/value" (e.g., "contractId/2025 H2CPU"). The value is not validated by BillingBenefits and is forwarded as-is.
    - `renew` boolean — Setting this to true will automatically purchase a new benefit on the expiration date time.
    - `renewProperties` RenewProperties
      - `purchaseProperties` PurchaseRequest
        - `sku` ResourceSku
          - `name` string
        - `properties` PurchaseRequestProperties
          - `displayName` string — Friendly name of the savings plan
          - `billingScopeId` string — Subscription that will be charged for purchasing the benefit
          - `term` 'P1M' | 'P1Y' | 'P3Y' | 'P5Y' — Represent benefit term in ISO 8601 format.
          - `billingPlan` 'P1M' — Represents the billing plan in ISO 8601 format. Required only for monthly billing plans.
          - `appliedScopeType` 'Single' | 'Shared' | 'ManagementGroup' — Type of the Applied Scope.
          - `commitment` Commitment
            - `currencyCode` string — The ISO 4217 3-letter currency code for the currency used by this purchase record.
            - `amount` number, double
          - `effectiveDateTime` string, date-time — DateTime of the savings plan starts providing benefit from.
          - `renew` boolean — Setting this to true will automatically purchase a new benefit on the expiration date time.
          - `renewAction` 'CreateNew' | 'RenewExisting' — Represents the renewal action for a reservation to be a new purchase or existing renewal.
          - `appliedScopeProperties` AppliedScopeProperties — Properties specific to applied scope type. Not required if not applicable.
            - `tenantId` string — Tenant ID where the benefit is applied.
            - `managementGroupId` string — Fully-qualified identifier of the management group where the benefit must be applied.
            - `subscriptionId` string — Fully-qualified identifier of the subscription.
            - `resourceGroupId` string — Fully-qualified identifier of the resource group.
            - `displayName` string — Display name
            - `benefitFilter` string — A filter string passed to downstream services to categorize and apply usage benefits to specific resource models. Expected format: "key/value" (e.g., "contractId/2025 H2CPU"). The value is not validated by BillingBenefits and is forwarded as-is.

## Response `200`

Azure operation completed successfully.

- SavingsPlanValidateResponse
  - `benefits` SavingsPlanValidResponseProperty[]
    - `valid` boolean — Indicates if the provided input was valid
    - `reasonCode` string — Failure reason code if the provided input was invalid
    - `reason` string — Failure reason if the provided input was invalid
  - `nextLink` string — Url to get the next page.

## Other responses

- `default` — An unexpected error response.

---

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