---
title: "Offer Data Contract"
url: "https://api-catalog-test.8451.com/apis/kroger-ad-platform-api-1/docs/contracts/offer-data-contract"
image: "https://api-catalog-test.8451.com/_og/d/c_Ocean.takumi,title_Offer+Data+Contract,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiM4NDUxRUMifX19,p_Ii9hcGlzL2tyb2dlci1hZC1wbGF0Zm9ybS1hcGktMS9kb2NzL2NvbnRyYWN0cy9vZmZlci1kYXRhLWNvbnRyYWN0Ig,s_p0ncUr9hnr0eAtOm.png"
---

## [Data Enums](#data-enums)

### [Offer Types (enum)](#offer-types-enum)

-   MONEY\_OFF
-   FREE\_PRODUCT
-   BUY\_X\_GET\_X
-   BUY\_X\_GET\_Y\_FREE
-   BUY\_X\_GET\_Y\_MONEY\_OFF

### [Offer Targeting (enum)](#offer-targeting-enum)

-   TARGETED (default for TDC type)
-   GCP (“general coupon pool”)
-   NONTARGETED

## [Definitions](#definitions)

-   “Redemption” - products that are the target for reward (discount, free, “X” of “Buy X Get X”, or the “Y” in “Buy X Get Y”)
-   “Purchase” - products that are required to unlock the redemption reward (“X” in “Buy X Get Y”)

## [Contracts:](#contracts)

## [“Money Off” Offers](#money-off-offers)

`{ id:<uuid>, status: String, offerType: String, ("MONEY_OFF") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, rbpGroupIds: List<String>, redemptionDiscountValue: Float, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionLowestRetailSellingPrice: Float, redemptionExclusions: String<optional>, purchaseItemQuantity: Int, displayStartDate: String, displayEndDate: String, expirationDate: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, productAttributes: List<String>, stateExclusions: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }`

## [“Free Product” Offers](#free-product-offers)

`{ id:<uuid>, status: String, offerType: String, ("FREE_PRODUCT") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, rbpGroupIds: List<String>, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionItemQuantity: Int, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }`

## [“Buy X Get X” Offers](#buy-x-get-x-offers)

`{ id:<uuid>, status: String, offerType: String, ("BUY_X_GET_X") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, purchaseBrandNames: List<String>, purchaseProductNames: String, purchaseItemDescription: String<optional>, purchaseItemQuantity: Int, purchaseLowestRetailSellingPrice: Float, rbpGroupIds: List<String>, redemptionItemQuantity: Int, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }`

## [“Buy X Get Y Free” Offers](#buy-x-get-y-free-offers)

`{ id:<uuid>, status: String, offerType: String, ("BUY_X_GET_Y_FREE") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, purchaseBrandNames: List<String>, purchaseProductNames: String, purchaseItemDescription: String<optional>, purchaseItemQuantity: Int, purchaseLowestRetailSellingPrice: Float, purchaseExclusions: String<optional>, rbpGroupIds: List<String>, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionItemQuantity: Int, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, purchaseProductGroupId: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }`

## [“Buy X Get Y Money Off” Offers](#buy-x-get-y-money-off-offers)

`{ id:<uuid>, status: String, offerType: String, ("BUY_X_GET_Y_MONEY_OFF") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, purchaseBrandNames: List<String>, purchaseProductNames: String, purchaseItemDescription: String<optional>, purchaseItemQuantity: Int, purchaseLowestRetailSellingPrice: Float, purchaseExclusions: String<optional>, rbpGroupIds: List<String>, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionItemQuantity: Int, redemptionLowestRetailSellingPrice: Float, redemptionDiscountValue: Float, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, purchaseProductGroupId: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }`

## [DB Schema](#db-schema)

`_id: UUID _class: String couponDescription: String couponPackshot: String couponPackshotUrl: String createdBy: String createdOn: ISODate deleted: Boolean displayEndDate: String displayStartDate: String eCpn: String expirationDate: String externalDetails: { clipId: String barcode: String inmarPublishingId: String } locationGroupId: String longDescription: String modality: String name: String offerType: String purchaseBrandNames: Array purchaseProductNames: String purchaseExclusions: String purchaseItemDescription: String purchaseItemQuantity: Int32 purchaseLowestRetailSellingPrice: String purchaseProductGroupId: String rbpGroupIds: Array redemptionBrandNames: Array redemptionProductName: String redemptionDiscountValue: String redemptionExclusions: String redemptionItemDescription: String redemptionItemQuantity: Int32 redemptionLowestRetailSellingPrice: String redemptionProductGroupId: String redemptionPurchaseQuantity: Int32 stateExclusions: Array status: String targeting: String`