# Models

## The Deal object

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Deals","version":"v14"},"components":{"schemas":{"Deal":{"type":"object","properties":{"Id":{"type":"integer","description":"The unique identifier for the deal."},"Name":{"type":"string","description":"The display name of the deal."},"Description":{"type":"string","nullable":true,"description":"A description of the deal that may be shown to partners."},"CampaignId":{"type":"integer","description":"The unique identifier of the campaign the deal belongs to."},"State":{"type":"string","description":"The current state of the deal.","enum":["ACTIVE","EXPIRED","PENDING"]},"Type":{"type":"string","description":"The type of deal — what it offers.","enum":["GENERAL_SALE","FREE_SHIPPING","GIFT_WITH_PURCHASE","REBATE","BOGO"]},"Scope":{"type":"string","description":"What the deal applies to.","enum":["CATEGORY","ENTIRE_STORE","PRODUCT"]},"Products":{"type":"array","description":"The products this deal applies to, when Scope is PRODUCT.","items":{"type":"object","properties":{"ProductName":{"type":"string","description":"The name of the product."},"ProductImageUrl":{"type":"string","format":"uri-reference","description":"URL of the product image."},"ProductBeforePriceAmount":{"type":"number","format":"decimal","description":"The product's price before the deal is applied."},"ProductBeforePriceCurrency":{"type":"string","description":"Three-letter ISO 4217 currency code for the before-price amount."},"ProductAfterPriceAmount":{"type":"number","format":"decimal","description":"The product's price after the deal is applied."},"ProductAfterPriceCurrency":{"type":"string","description":"Three-letter ISO 4217 currency code for the after-price amount."}}}},"Categories":{"type":"string","nullable":true,"description":"Comma-separated list of categories the deal applies to, when Scope is CATEGORY."},"DiscountType":{"type":"string","description":"How the discount is calculated.","enum":["FIXED","PERCENT","PERCENT_RANGE","PERCENT_MAXIMUM"],"nullable":true},"DiscountAmount":{"type":"number","format":"decimal","nullable":true,"description":"The flat discount amount, when DiscountType is FIXED."},"DiscountCurrency":{"type":"string","nullable":true,"description":"Three-letter ISO 4217 currency code for the discount amount."},"MinimumPurchaseAmount":{"type":"number","format":"decimal","description":"Minimum amount the consumer needs to spend for the deal to apply."},"MinimumPurchaseAmountCurrency":{"type":"string","description":"Currency of the deal's minimum purchase amount (ISO 4217)."},"MaximumSavingsAmount":{"type":"number","format":"decimal","description":"Maximum amount a consumer can save when the deal applies."},"MaximumSavingsCurrency":{"type":"string","description":"Currency of the deal's maximum savings (ISO 4217)."},"DiscountPercent":{"type":"number","format":"float","nullable":true,"description":"The discount percentage, when DiscountType is PERCENT."},"DiscountMaximumPercent":{"type":"number","format":"float","nullable":true,"description":"The maximum discount percentage, when DiscountType is PERCENT_MAXIMUM."},"DiscountPercentRangeStart":{"type":"number","format":"float","nullable":true,"description":"The lower bound of the discount range, when DiscountType is PERCENT_RANGE."},"DiscountPercentRangeEnd":{"type":"number","format":"float","nullable":true,"description":"The upper bound of the discount range, when DiscountType is PERCENT_RANGE."},"Gift":{"type":"string","nullable":true,"description":"The gift offered, when Type is GIFT_WITH_PURCHASE."},"RebateAmount":{"type":"number","format":"decimal","nullable":true,"description":"The rebate amount, when Type is REBATE."},"RebateCurrency":{"type":"string","nullable":true,"description":"Three-letter ISO 4217 currency code for the rebate amount."},"DefaultPromoCode":{"type":"string","nullable":true,"description":"The default promo code partners can promote for this deal."},"StartDate":{"type":"string","format":"date-time","nullable":true,"description":"The date and time the deal becomes active."},"EndDate":{"type":"string","format":"date-time","nullable":true,"description":"The date and time the deal expires."},"SynchAdsPromoCodes":{"type":"boolean","description":"Whether to synchronize promo codes with ads."},"RestrictedMediaPartners":{"type":"array","description":"Partner IDs that are restricted from promoting this deal.","items":{"type":"string"}},"RestrictedMediaPartnerGroups":{"type":"array","description":"Partner group IDs that are restricted from promoting this deal.","items":{"type":"string"}},"Uri":{"type":"string","format":"uri-reference","description":"The unique reference to this deal in the impact.com API."},"BogoBuyQuantity":{"type":"integer","description":"Quantity the customer must buy in a BOGO deal."},"BogoBuyScope":{"type":"string","nullable":true,"description":"Whether the \"buy\" requirement is a specific product or category.","enum":["PRODUCT","CATEGORY"]},"BogoBuyName":{"type":"string","nullable":true,"description":"Name of the item the customer must buy in a BOGO deal."},"BogoBuyImageUrl":{"type":"string","format":"uri","description":"If `Type` is `BOGO`, the \"buy\" product image URL."},"BogoGetQuantity":{"type":"integer","description":"Quantity the customer receives in a BOGO deal."},"BogoGetScope":{"type":"string","nullable":true,"description":"Whether the \"get\" item is a specific product or category in a BOGO deal.","enum":["PRODUCT","CATEGORY"]},"BogoGetName":{"type":"string","nullable":true,"description":"Name of the item the customer receives in a BOGO deal."},"BogoGetImageUrl":{"type":"string","format":"uri","description":"If `Type` is `BOGO`, the \"get\" product image URL."},"BogoGetDiscountType":{"type":"string","nullable":true,"description":"How the discount on the \"get\" item is calculated in a BOGO deal.","enum":["FREE","AMOUNT","PERCENT"]},"BogoGetDiscountAmount":{"type":"number","format":"decimal","nullable":true,"description":"The flat discount amount on the \"get\" item in a BOGO deal."},"BogoGetDiscountCurrency":{"type":"string","nullable":true,"description":"Three-letter ISO 4217 currency code for the BOGO get discount amount."},"BogoGetDiscountPercent":{"type":"number","format":"float","nullable":true,"description":"The discount percentage on the \"get\" item in a BOGO deal."},"PurchaseLimitQuantity":{"type":"integer","description":"Maximum number of times the deal can be applied per order."}}}}}}
```

## The DealCreate object

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Deals","version":"v14"},"components":{"schemas":{"DealCreate":{"type":"object","required":["CampaignId","Name","Scope","Type"],"properties":{"CampaignId":{"type":"integer","description":"The unique identifier of the campaign the deal belongs to."},"Name":{"type":"string","description":"The display name of the deal."},"Scope":{"type":"string","description":"What the deal applies to.","enum":["PRODUCT","CATEGORY","ENTIRE_STORE"]},"Type":{"type":"string","description":"The type of deal.","enum":["BOGO","GENERAL_SALE","FREE_SHIPPING","GIFT_WITH_PURCHASE","REBATE"]},"Description":{"type":"string","description":"A description of the deal that may be shown to partners."},"StartDate":{"type":"string","format":"date-time","description":"The date and time the deal becomes active."},"EndDate":{"type":"string","format":"date-time","description":"The date and time the deal expires."},"SynchAdsPromoCodes":{"type":"boolean","description":"Whether to synchronize promo codes with ads.","default":false},"ProductName":{"type":"string","description":"Required if Scope is PRODUCT."},"Categories":{"type":"string","description":"Required if Scope is CATEGORY."},"RestrictedMediaPartners":{"type":"string","description":"Comma-separated list of Partner IDs."},"RestrictedMediaPartnerGroups":{"type":"string","description":"Comma-separated list of Partner Group IDs."},"DefaultPromoCode":{"type":"string","description":"The default promo code partners can promote for this deal."},"DiscountType":{"type":"string","description":"How the discount is calculated.","enum":["FIXED","PERCENT","PERCENT_RANGE","PERCENT_MAXIMUM"]},"DiscountAmount":{"type":"number","format":"decimal","description":"The flat discount amount, when DiscountType is FIXED."},"DiscountCurrency":{"type":"string","description":"Three-letter ISO 4217 currency code for the discount amount."},"DiscountPercent":{"type":"number","format":"float","description":"The discount percentage, when DiscountType is PERCENT."},"Gift":{"type":"string","description":"The gift offered, when Type is GIFT_WITH_PURCHASE."},"RebateAmount":{"type":"number","format":"decimal","description":"The rebate amount, when Type is REBATE."},"RebateCurrency":{"type":"string","description":"Three-letter ISO 4217 currency code for the rebate amount."},"BogoBuyName":{"type":"string","description":"Name of the item the customer must buy in a BOGO deal."},"BogoBuyQuantity":{"type":"integer","description":"Quantity the customer must buy in a BOGO deal."},"BogoBuyScope":{"type":"string","description":"Whether the \"buy\" requirement is a specific product or category.","enum":["PRODUCT","CATEGORY"]},"BogoGetName":{"type":"string","description":"Name of the item the customer receives in a BOGO deal."},"BogoGetQuantity":{"type":"integer","description":"Quantity the customer receives in a BOGO deal."},"BogoGetScope":{"type":"string","description":"Whether the \"get\" item is a specific product or category.","enum":["PRODUCT","CATEGORY"]},"BogoGetDiscountType":{"type":"string","description":"How the discount on the \"get\" item is calculated.","enum":["FREE","AMOUNT","PERCENT"]},"BogoGetDiscountAmount":{"type":"number","format":"decimal","description":"The flat discount amount on the \"get\" item."},"BogoGetDiscountPercent":{"type":"number","format":"float","description":"The discount percentage on the \"get\" item."}}}}}}
```

## The DealUpdate object

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Deals","version":"v14"},"components":{"schemas":{"DealUpdate":{"type":"object","description":"Fields available for updating an existing deal. All fields are optional; only provided fields are updated.\n\n**Note:** The following fields appear on the deal object but **cannot be updated via API** — they are managed in the impact.com platform: `Seasonal`, `DealType`, `DefaultPromoCode`, `MinimumPurchaseAmount`, `MaximumSavingsAmount`, `LimitedTimeDeal`, `RestrictedMediaPartners`, `RestrictedMediaPartnerGroups`.","properties":{"Description":{"type":"string","description":"A description of the deal that may be shown to partners."},"StartDate":{"type":"string","format":"date-time","description":"The date and time the deal becomes active."},"EndDate":{"type":"string","format":"date-time","description":"The date and time the deal expires."},"Name":{"type":"string","description":"The display name of the deal."},"SynchAdsPromoCodes":{"type":"boolean","description":"Whether to synchronize promo codes with ads."},"DealScope":{"type":"string","description":"To what extent the deal applies to the store. Enum values: `PRODUCT`, `CATEGORY`, `ENTIRE_STORE`."},"DiscountType":{"type":"string","description":"What kind of discount a consumer receives. Use only if `DealType=GENERAL_SALE`. Enum values: `FIXED`, `PERCENT`, `PERCENT_RANGE`, `PERCENT_MAXIMUM`."},"DiscountAmount":{"type":"number","format":"decimal","description":"Deal's discount amount. Required when `DiscountType=FIXED`."},"DiscountPercent":{"type":"number","format":"float","description":"Deal's discount percent. Required when `DiscountType=PERCENT`."},"DiscountPercentRangeStart":{"type":"number","format":"float","description":"Beginning of the discount range. Required when `DiscountType=PERCENT_RANGE`."},"DiscountPercentRangeEnd":{"type":"number","format":"float","description":"End of the discount range. Required when `DiscountType=PERCENT_RANGE`."},"DiscountMaximumPercent":{"type":"number","format":"float","description":"Maximum discount percent. Required when `DiscountType=PERCENT_MAXIMUM`."},"Gift":{"type":"string","description":"Name of the gift that comes with a purchase. Required when `DealType=GIFT_WITH_PURCHASE`."},"RebateAmount":{"type":"number","format":"decimal","description":"Purchase rebate amount. Required when `DealType=REBATE`."},"BogoBuyName":{"type":"string","description":"Name of the \"buy\" product. Required when `DealType=BOGO`."},"BogoBuyQuantity":{"type":"integer","description":"\"Buy\" product quantity available. Required when `DealType=BOGO`."},"BogoBuyScope":{"type":"string","description":"\"Buy\" product scope. Required when `DealType=BOGO`. Enum values: `PRODUCT`, `CATEGORY`."},"BogoBuyImageFileName":{"type":"string","description":"URL to the \"buy\" product's image. Used when `DealType=BOGO`."},"BogoGetName":{"type":"string","description":"\"Get\" product name. Required when `DealType=BOGO`."},"BogoGetQuantity":{"type":"integer","description":"\"Get\" product quantity available. Required when `DealType=BOGO`."},"BogoGetScope":{"type":"string","description":"\"Get\" product scope. Required when `DealType=BOGO`. Enum values: `PRODUCT`, `CATEGORY`."},"BogoGetDiscountType":{"type":"string","description":"\"Get\" product discount type. Required when `DealType=BOGO`. Enum values: `FREE`, `AMOUNT`, `PERCENT`."},"BogoGetDiscountAmount":{"type":"number","format":"decimal","description":"\"Get\" product discount amount. Required when `DealType=BOGO` and `BogoGetDiscountType=AMOUNT`."},"BogoGetDiscountPercent":{"type":"number","format":"float","description":"\"Get\" product discount percentage. Required when `DealType=BOGO` and `BogoGetDiscountType=PERCENT`."},"BogoGetImageFileName":{"type":"string","description":"URL to the \"get\" product's image. Used when `DealType=BOGO`."},"ProductName":{"type":"string","description":"Product's name. Required when `DealScope=PRODUCT`."},"ProductFileName":{"type":"string","description":"Product's image file name. Used when `DealScope=PRODUCT`."},"RegularPrice":{"type":"number","format":"decimal","description":"Product's original price. Used when `DealScope=PRODUCT`."},"DealPrice":{"type":"number","format":"decimal","description":"Product's deal price. Used when `DealScope=PRODUCT`."},"PurchaseLimitQuantity":{"type":"integer","description":"Maximum quantity of \"buy\" product purchasable in one transaction. Enter `0` for no limit. Used when `DealScope=PRODUCT`."},"Categories":{"type":"string","description":"Comma-separated list of deal categories. Used when `DealScope=CATEGORY`."}}}}}}
```

## The SuccessUriResponse object

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Deals","version":"v14"},"components":{"schemas":{"SuccessUriResponse":{"type":"object","properties":{"Status":{"type":"string","description":"Indicates whether the operation was successful."},"Uri":{"type":"string","format":"uri-reference","description":"The unique reference to the affected deal."}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://integrations.impact.com/brand-api-reference/reference/deals/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
