---
title: "Creates a Promotion"
method: POST
path: "/Promotion"
tags: ["Promotion"]
---

# Creates a Promotion

`POST /Promotion`

Creates an instance of Promotion

## Request body

- PromotionData
  - `$type` 'Asi.Soa.Commerce.DataContracts.PromotionData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.PromotionData, Asi.Contracts"
  - `BeginDate` string, date-time
  - `EndDate` string, date-time
  - `IsActive` boolean
  - `IsImplicit` boolean
  - `ItemClassPromotionDetails` ItemClassPromotionDetailDataCollection
    - `$type` 'Asi.Soa.Commerce.DataContracts.ItemClassPromotionDetailDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemClassPromotionDetailDataCollection, Asi.Contracts"
    - `$values` ItemClassPromotionDetailData[], required — The values for the collection
      - `$type` 'Asi.Soa.Commerce.DataContracts.ItemClassPromotionDetailData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemClassPromotionDetailData, Asi.Contracts"
      - `ItemClass` ItemClassSummaryData
        - `$type` 'Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts"
        - `ItemClassId` string
        - `Name` string
      - `PricingData` SpecialPriceRuleData
        - `$type` 'Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts"
        - `Amount` MonetaryAmountData
          - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
          - `Amount` object
          - `Currency` CurrencyData
            - `$type` 'Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts"
            - `CurrencyCode` string
            - `DecimalPositions` integer
          - `IsAmountDefined` boolean
        - `BeginDate` string, date-time
        - `CalculationType` 'FlatAmount' | 'NumericCalculation' | 'MapAlphabeticValue' | 'MapNumericValue' | 'MapNumericRange'
        - `Description` string
        - `EndDate` string, date-time
        - `IsMarkedForDelete` boolean
        - `Mapping` MapSourceData
          - `$type` 'Asi.Soa.Commerce.DataContracts.MapSourceData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.MapSourceData, Asi.Contracts"
          - `Calculation` CalculationData
            - `$type` 'Asi.Soa.Commerce.DataContracts.CalculationData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.CalculationData, Asi.Contracts"
            - `Constant` object
            - `Operator` 'Add' | 'Subtract' | 'Multiply' | 'Divide'
          - `RuleSourceEntity` string
          - `RuleSourceProperty` string
          - `ValueMappings` ValueMapDataCollection
            - `$type` 'Asi.Soa.Commerce.DataContracts.ValueMapDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueMapDataCollection, Asi.Contracts"
            - `$values` ValueMapData[], required — The values for the collection
              - …
          - `ValueRanges` ValueRangeMapDataCollection
            - `$type` 'Asi.Soa.Commerce.DataContracts.ValueRangeMapDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueRangeMapDataCollection, Asi.Contracts"
            - `$values` ValueRangeMapData[], required — The values for the collection
              - …
        - `Name` string
        - `Percent` object
        - `RuleType` 'Price' | 'DiscountPercent' | 'DiscountAmount' | 'MappedValue'
        - `SpecialPriceRuleId` string
  - `ItemPromotionDetails` ItemPromotionDetailDataCollection
    - `$type` 'Asi.Soa.Commerce.DataContracts.ItemPromotionDetailDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemPromotionDetailDataCollection, Asi.Contracts"
    - `$values` ItemPromotionDetailData[], required — The values for the collection
      - `$type` 'Asi.Soa.Commerce.DataContracts.ItemPromotionDetailData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemPromotionDetailData, Asi.Contracts"
      - `Item` ItemSummaryData
        - `$type` 'Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts"
        - `Description` string
        - `ItemClass` ItemClassSummaryData
          - `$type` 'Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts"
          - `ItemClassId` string
          - `Name` string
        - `ItemCode` string
        - `ItemId` string
        - `ItemStatus` 'Active' | 'Inactive' | 'NotAvailable' | 'MarkedForDeletion' | 'OutOfProduction'
        - `Name` string
      - `PricingData` SpecialPriceRuleData
        - `$type` 'Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts"
        - `Amount` MonetaryAmountData
          - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
          - `Amount` object
          - `Currency` CurrencyData
            - `$type` 'Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts"
            - `CurrencyCode` string
            - `DecimalPositions` integer
          - `IsAmountDefined` boolean
        - `BeginDate` string, date-time
        - `CalculationType` 'FlatAmount' | 'NumericCalculation' | 'MapAlphabeticValue' | 'MapNumericValue' | 'MapNumericRange'
        - `Description` string
        - `EndDate` string, date-time
        - `IsMarkedForDelete` boolean
        - `Mapping` MapSourceData
          - `$type` 'Asi.Soa.Commerce.DataContracts.MapSourceData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.MapSourceData, Asi.Contracts"
          - `Calculation` CalculationData
            - `$type` 'Asi.Soa.Commerce.DataContracts.CalculationData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.CalculationData, Asi.Contracts"
            - `Constant` object
            - `Operator` 'Add' | 'Subtract' | 'Multiply' | 'Divide'
          - `RuleSourceEntity` string
          - `RuleSourceProperty` string
          - `ValueMappings` ValueMapDataCollection
            - `$type` 'Asi.Soa.Commerce.DataContracts.ValueMapDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueMapDataCollection, Asi.Contracts"
            - `$values` ValueMapData[], required — The values for the collection
              - …
          - `ValueRanges` ValueRangeMapDataCollection
            - `$type` 'Asi.Soa.Commerce.DataContracts.ValueRangeMapDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueRangeMapDataCollection, Asi.Contracts"
            - `$values` ValueRangeMapData[], required — The values for the collection
              - …
        - `Name` string
        - `Percent` object
        - `RuleType` 'Price' | 'DiscountPercent' | 'DiscountAmount' | 'MappedValue'
        - `SpecialPriceRuleId` string
  - `MaximumDiscountsAllowedPerItemPromotion` integer
  - `OrderPromotionDetails` SpecialPriceRuleData
    - `$type` 'Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts"
    - `Amount` MonetaryAmountData
      - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
      - `Amount` object
      - `Currency` CurrencyData
        - `$type` 'Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts"
        - `CurrencyCode` string
        - `DecimalPositions` integer
      - `IsAmountDefined` boolean
    - `BeginDate` string, date-time
    - `CalculationType` 'FlatAmount' | 'NumericCalculation' | 'MapAlphabeticValue' | 'MapNumericValue' | 'MapNumericRange'
    - `Description` string
    - `EndDate` string, date-time
    - `IsMarkedForDelete` boolean
    - `Mapping` MapSourceData
      - `$type` 'Asi.Soa.Commerce.DataContracts.MapSourceData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.MapSourceData, Asi.Contracts"
      - `Calculation` CalculationData
        - `$type` 'Asi.Soa.Commerce.DataContracts.CalculationData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.CalculationData, Asi.Contracts"
        - `Constant` object
        - `Operator` 'Add' | 'Subtract' | 'Multiply' | 'Divide'
      - `RuleSourceEntity` string
      - `RuleSourceProperty` string
      - `ValueMappings` ValueMapDataCollection
        - `$type` 'Asi.Soa.Commerce.DataContracts.ValueMapDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueMapDataCollection, Asi.Contracts"
        - `$values` ValueMapData[], required — The values for the collection
          - `$type` 'Asi.Soa.Commerce.DataContracts.ValueMapData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueMapData, Asi.Contracts"
          - `DisplayText` string
          - `MappedAmount` MonetaryAmountData
            - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
            - `Amount` object
            - `Currency` CurrencyData
              - …
            - `IsAmountDefined` boolean
          - `Value` string
      - `ValueRanges` ValueRangeMapDataCollection
        - `$type` 'Asi.Soa.Commerce.DataContracts.ValueRangeMapDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueRangeMapDataCollection, Asi.Contracts"
        - `$values` ValueRangeMapData[], required — The values for the collection
          - `$type` 'Asi.Soa.Commerce.DataContracts.ValueRangeMapData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ValueRangeMapData, Asi.Contracts"
          - `AdditionalUnitAmount` MonetaryAmountData
            - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
            - `Amount` object
            - `Currency` CurrencyData
              - …
            - `IsAmountDefined` boolean
          - `BaseAmount` MonetaryAmountData
            - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
            - `Amount` object
            - `Currency` CurrencyData
              - …
            - `IsAmountDefined` boolean
          - `RangeBeginValue` object
    - `Name` string
    - `Percent` object
    - `RuleType` 'Price' | 'DiscountPercent' | 'DiscountAmount' | 'MappedValue'
    - `SpecialPriceRuleId` string
  - `PromotionApplicationLimit` PromotionApplicationLimitData
    - `$type` 'Asi.Soa.Commerce.DataContracts.PromotionApplicationLimitData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.PromotionApplicationLimitData, Asi.Contracts"
    - `MaximumDiscountAllowedOverall` integer
    - `MaximumDiscountAllowedPerCustomer` integer
    - `QualifiedCustomerPartyQuery` string
    - `RequiredMinimumPurchaseAmount` MonetaryAmountData
      - `$type` 'Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts"
      - `Amount` object
      - `Currency` CurrencyData
        - `$type` 'Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts"
        - `CurrencyCode` string
        - `DecimalPositions` integer
      - `IsAmountDefined` boolean
  - `PromotionCode` string
  - `PromotionDiscountType` 'ItemClassDiscount' | 'ItemDiscount' | 'OrderDiscount' | 'None' | 'RequiredPurchaseItemDiscount'
  - `PromotionId` string
  - `PromotionName` string
  - `PurchaseItemDetails` PurchaseItemDetailDataCollection
    - `$type` 'Asi.Soa.Commerce.DataContracts.PurchaseItemDetailDataCollection, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.PurchaseItemDetailDataCollection, Asi.Contracts"
    - `$values` PurchaseItemDetailData[], required — The values for the collection
      - `$type` 'Asi.Soa.Commerce.DataContracts.PurchaseItemDetailData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.PurchaseItemDetailData, Asi.Contracts"
      - `Item` ItemSummaryData
        - `$type` 'Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts"
        - `Description` string
        - `ItemClass` ItemClassSummaryData
          - `$type` 'Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts"
          - `ItemClassId` string
          - `Name` string
        - `ItemCode` string
        - `ItemId` string
        - `ItemStatus` 'Active' | 'Inactive' | 'NotAvailable' | 'MarkedForDeletion' | 'OutOfProduction'
        - `Name` string
  - `RequiredPurchaseItemQuantity` QuantityData
    - `$type` 'Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts"
    - `Amount` object
    - `Uom` UomSummaryData
      - `$type` 'Asi.Soa.Commerce.DataContracts.UomSummaryData, Asi.Contracts', required — The DataType must be "Asi.Soa.Commerce.DataContracts.UomSummaryData, Asi.Contracts"
      - `Description` string
      - `Name` string
      - `UomId` string
  - `RequiredPurchaseScopeType` 'None' | 'Cart' | 'Registrant' | 'Customer' | 'Organization'
  - `UpdateInformation` EntityUpdateInformationData
    - `$type` 'Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts', required — The DataType must be "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts"
    - `CreatedBy` string
    - `CreatedOn` string, date-time
    - `UpdatedBy` string
    - `UpdatedOn` string, date-time

## Response `200`

The request was successful.

## Other responses

- `201` — The resource was successfully created.
- `202` — The resource was asynchronously created.

---

[API](https://skmtc.net/imis/apis/accounting.md) · [All operations](https://skmtc.net/imis/apis/accounting/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/imis/accounting/revisions/67a8cf169a01/schema)
