# Models

## The Contract object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"Contract":{"type":"object","properties":{"Id":{"type":"string","description":"Unique identifier for the contract."},"CampaignId":{"type":"string","description":"Unique identifier for the campaign this contract is associated with."},"Status":{"type":"string","description":"The current status of the contract (e.g., ACTIVE, PENDING, EXPIRED, TERMINATED)."},"StartDate":{"type":"string","format":"date-time","description":"The date and time the contract becomes effective (ISO 8601)."},"EndDate":{"type":"string","format":"date-time","description":"The date and time the contract expires (ISO 8601). Empty if the contract has no end date."},"BrandSignatory":{"type":"string","description":"Name of the brand representative who signed the contract."},"BrandSignatoryDate":{"type":"string","format":"date-time","description":"Date and time the brand signatory signed the contract (ISO 8601)."},"PartnerSignatory":{"type":"string","description":"Name of the partner representative who signed the contract."},"PartnerSignatoryDate":{"type":"string","format":"date-time","description":"Date and time the partner signatory signed the contract (ISO 8601)."},"DateCreated":{"type":"string","format":"date-time","description":"Date and time the contract was created (ISO 8601)."},"DateLastUpdated":{"type":"string","format":"date-time","description":"Date and time the contract was last updated (ISO 8601)."},"Terms":{"$ref":"#/components/schemas/Terms","description":"The payout terms defined in this contract."},"HasCampaignTerms":{"type":"boolean","description":"Whether this contract includes campaign-level term overrides. Returned by List Contracts. Use Retrieve a Contract to get the full CampaignTerms details."},"CampaignTerms":{"type":"array","description":"Campaign-level payout term overrides applied on top of the base contract terms. Returned by Retrieve a Contract only.","items":{"$ref":"#/components/schemas/CampaignTerm"}},"PdfUri":{"type":"string","description":"API resource path for downloading a PDF copy of the contract."},"Uri":{"type":"string","description":"Unique reference to the contract object in the impact.com API."}}},"Terms":{"type":"object","description":"The payout terms defined in the contract.","properties":{"TemplateTermName":{"type":"string","description":"Display name of the payout template these terms are based on."},"Currency":{"type":"string","description":"ISO 4217 currency code for payouts under this contract."},"TemplateId":{"type":"string","description":"Unique identifier of the contract template the terms are based on."},"VersionId":{"type":"string","description":"Version identifier of the contract template revision used."},"Name":{"type":"string","description":"Display name of the terms."},"Labels":{"type":"array","description":"Brand-applied labels grouping the contract by traits like commission tier.","items":{"type":"string"}},"EventPayouts":{"type":"array","description":"Payout rules for each tracked event type.","items":{"$ref":"#/components/schemas/EventPayout"}},"SpecialTermsList":{"type":"array","description":"Any special terms or conditions appended to the contract.","items":{"$ref":"#/components/schemas/SpecialTerm"}},"ChangeNotificationPeriod":{"type":"string","description":"Number of days advance notice required before the brand can modify the contract terms."},"ReturnPolicy":{"type":"string","description":"The return policy applied to this contract (e.g., ALWAYS_OK, NO_RETURNS)."},"MaxReturnPercentage":{"type":"string","description":"The maximum percentage of actions that can be reversed as returns."},"CustomCreativePayer":{"type":"string","description":"Who pays for custom creative assets (e.g., ADVERTISER, PUBLISHER)."},"ActionLimit":{"type":"string","description":"Maximum number of actions allowed before payouts cap, per ActionLimitPeriod."},"ActionLimitPeriod":{"type":"string","description":"Period over which ActionLimit is measured (e.g., DAY, WEEK, MONTH)."},"SpendLimit":{"type":"string","format":"decimal","description":"Maximum spend allowed before payouts cap, per SpendLimitPeriod."},"SpendLimitPeriod":{"type":"string","description":"Period over which SpendLimit is measured (e.g., DAY, WEEK, MONTH)."},"MinEarningPerClick":{"type":"string","format":"decimal","description":"Minimum earnings per click guaranteed by the contract."},"ContractStartSlottingFee":{"type":"string","format":"decimal","description":"Slotting fee paid at the start of the contract."}}},"EventPayout":{"type":"object","description":"Payout rules for a specific tracked event type.","properties":{"EventTypeId":{"type":"string","description":"Unique identifier for the event type (action tracker)."},"EventTypeName":{"type":"string","description":"Display name of the event type."},"EventCategory":{"type":"string","description":"Category of the event (e.g., SALE, LEAD, CLICK)."},"DefaultPayoutRate":{"type":"string","description":"The default payout rate applied when no adjustment rules are matched."},"PayoutLevel":{"type":"string","description":"Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM)."},"DefaultPayout":{"type":"string","format":"decimal","description":"Default payout amount for events of this type, before any adjustments."},"PayoutGroups":{"type":"array","description":"Conditional payout groups that apply different rates based on rule matches. Returned only when ?IRVersion=15 or later is used.","items":{"$ref":"#/components/schemas/PayoutGroup"}},"PayoutRestrictions":{"type":"array","description":"Conditional restrictions that prevent payout when their rules match.","items":{"$ref":"#/components/schemas/PayoutRestriction"}},"Limits":{"type":"array","description":"Payout caps that limit how much the partner can earn for this event type within a period.","items":{"$ref":"#/components/schemas/Limit"}},"PayoutAdjustments":{"type":"array","description":"Conditional rules that adjust the default payout rate up or down.","items":{"$ref":"#/components/schemas/PayoutAdjustment"}},"PerformanceBonus":{"$ref":"#/components/schemas/PerformanceBonus","description":"Tiered bonus payout that activates when a revenue or action threshold is reached."},"Locking":{"$ref":"#/components/schemas/Locking","description":"Rules governing when an action locks and can no longer be modified."},"PayoutScheduling":{"$ref":"#/components/schemas/PayoutScheduling","description":"Rules governing when a locked action is scheduled for payout."},"CreditPolicy":{"type":"string","description":"Attribution policy determining which partner receives credit for the conversion (e.g., LAST_REFERRER, FIRST_REFERRER)."},"ValidReferrals":{"type":"array","description":"The referral types and attribution windows that qualify for credit.","items":{"$ref":"#/components/schemas/ValidReferral"}}}},"PayoutGroup":{"type":"object","description":"A ranked group of item-matching rules with an associated payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout group."},"Rank":{"type":"string","description":"The priority rank of this group. Lower ranks are evaluated first."},"Rules":{"type":"array","description":"Item-matching conditions that must be met for this group's payout to apply.","items":{"$ref":"#/components/schemas/Rule"}},"PayoutRate":{"type":"string","description":"Percentage payout rate applied when the group matches."},"Payout":{"type":"string","format":"decimal","description":"Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both."},"Limits":{"type":"array","description":"Payout caps that limit this group's earnings within a period.","items":{"$ref":"#/components/schemas/Limit"}}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}},"Limit":{"type":"object","description":"A cap on payouts within a period.","properties":{"Type":{"type":"string","description":"What is being limited (e.g., ACTION, PAYOUT)."},"Value":{"type":"string","description":"The numeric limit value."},"LimitBy":{"type":"string","description":"Dimension the limit applies to (e.g., CUSTOMER, ITEM)."},"Period":{"type":"string","description":"Time period over which the limit resets (e.g., DAY, MONTH)."},"WeekendOverrideValue":{"type":"string","description":"Override value applied on weekends."}}},"PayoutRestriction":{"type":"object","description":"A rule that prevents payout for an action when its conditions match.","properties":{"Id":{"type":"string","description":"Unique identifier of this payout restriction."},"Rules":{"type":"array","description":"Conditions that must all match for the restriction to apply.","items":{"$ref":"#/components/schemas/Rule"}},"ZeroPayoutHideReport":{"type":"string","description":"Whether to hide the action from reports when payout is zero due to this restriction."}}},"PayoutAdjustment":{"type":"object","description":"A conditional rule that adjusts the default payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout adjustment rule."},"Rules":{"type":"array","description":"Conditions that must be met for this adjustment to apply.","items":{"$ref":"#/components/schemas/Rule"}},"Direction":{"type":"string","description":"Whether this adjustment increases or decreases the payout (INCREASE, DECREASE)."},"Rate":{"type":"string","description":"The adjustment rate applied to the payout when conditions are met."}}},"PerformanceBonus":{"type":"object","description":"Tiered bonus payout that activates when a revenue or action threshold is reached.","properties":{"Type":{"type":"string","description":"The type of performance bonus (e.g., SUBSEQUENT_ACTIONS, ALL_ACTIONS)."},"Basis":{"type":"string","description":"The metric used to measure performance (e.g., REVENUE, ACTIONS)."},"Period":{"type":"string","description":"The time period over which performance is measured (e.g., CALENDAR_MONTH, CALENDAR_YEAR)."},"Tiers":{"type":"array","description":"The threshold tiers and their associated bonus payout rates.","items":{"$ref":"#/components/schemas/PerformanceBonusTier"}}}},"PerformanceBonusTier":{"type":"object","description":"A single threshold tier within a performance bonus structure.","properties":{"RevenueThreshold":{"type":"string","description":"The revenue amount that must be reached to unlock this tier's bonus rate."},"PayoutRate":{"type":"string","description":"The bonus payout rate applied once the revenue threshold is reached."}}},"Locking":{"type":"object","description":"Rules governing when an action locks and can no longer be modified.","properties":{"Basis":{"type":"string","description":"The basis for the locking schedule (e.g., TRACKED, CLEARED)."},"Period":{"type":"string","description":"The unit of the locking period (e.g., MONTH, DAY)."},"MonthOffset":{"type":"string","description":"Number of months after the basis date before locking occurs."},"DayOffset":{"type":"string","description":"Number of days after the month offset before locking occurs."}}},"PayoutScheduling":{"type":"object","description":"Rules governing when a locked action is scheduled for payout.","properties":{"Basis":{"type":"string","description":"The basis for the payout schedule (e.g., LOCKED, CLEARED)."},"Period":{"type":"string","description":"The payout period frequency (e.g., END_OF_DAY, END_OF_WEEK, END_OF_MONTH)."}}},"ValidReferral":{"type":"object","description":"A referral type and attribution window that qualifies for conversion credit.","properties":{"Type":{"type":"string","description":"The type of referral that qualifies (e.g., CLICKS, IMPRESSIONS)."},"Window":{"type":"string","description":"The length of the attribution window."},"WindowUnit":{"type":"string","description":"The unit of the attribution window (e.g., DAY, HOUR)."}}},"SpecialTerm":{"type":"object","description":"A special term or condition appended to the contract.","properties":{"TermsName":{"type":"string","description":"Display name of the special term."},"TermsType":{"type":"string","description":"The type of special term (e.g., CUSTOM, PROMOTIONAL_RESTRICTION)."},"TermsContent":{"type":"string","description":"The full text or HTML content of the special term."}}},"CampaignTerm":{"type":"object","description":"A campaign-level payout term override applied on top of the base contract terms.","properties":{"Id":{"type":"string","description":"Unique identifier for the campaign term."},"Name":{"type":"string","description":"Display name of the campaign term."},"StartDate":{"type":"string","format":"date-time","description":"Date and time the campaign term becomes effective (ISO 8601)."},"EndDate":{"type":"string","format":"date-time","description":"Date and time the campaign term expires (ISO 8601)."},"EventPayouts":{"type":"array","description":"Item-level payout rules applied by this campaign term.","items":{"$ref":"#/components/schemas/CampaignTermEventPayout"}}}},"CampaignTermEventPayout":{"type":"object","description":"Payout rules for a specific event type within a campaign term.","properties":{"EventTypeId":{"type":"string","description":"Unique identifier for the event type this payout applies to."},"PayoutLevel":{"type":"string","description":"Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM)."},"PayoutGroups":{"type":"array","description":"Ordered groups of item-matching rules and their associated payout rates.","items":{"$ref":"#/components/schemas/PayoutGroup"}}}}}}}
```

## The Terms object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"Terms":{"type":"object","description":"The payout terms defined in the contract.","properties":{"TemplateTermName":{"type":"string","description":"Display name of the payout template these terms are based on."},"Currency":{"type":"string","description":"ISO 4217 currency code for payouts under this contract."},"TemplateId":{"type":"string","description":"Unique identifier of the contract template the terms are based on."},"VersionId":{"type":"string","description":"Version identifier of the contract template revision used."},"Name":{"type":"string","description":"Display name of the terms."},"Labels":{"type":"array","description":"Brand-applied labels grouping the contract by traits like commission tier.","items":{"type":"string"}},"EventPayouts":{"type":"array","description":"Payout rules for each tracked event type.","items":{"$ref":"#/components/schemas/EventPayout"}},"SpecialTermsList":{"type":"array","description":"Any special terms or conditions appended to the contract.","items":{"$ref":"#/components/schemas/SpecialTerm"}},"ChangeNotificationPeriod":{"type":"string","description":"Number of days advance notice required before the brand can modify the contract terms."},"ReturnPolicy":{"type":"string","description":"The return policy applied to this contract (e.g., ALWAYS_OK, NO_RETURNS)."},"MaxReturnPercentage":{"type":"string","description":"The maximum percentage of actions that can be reversed as returns."},"CustomCreativePayer":{"type":"string","description":"Who pays for custom creative assets (e.g., ADVERTISER, PUBLISHER)."},"ActionLimit":{"type":"string","description":"Maximum number of actions allowed before payouts cap, per ActionLimitPeriod."},"ActionLimitPeriod":{"type":"string","description":"Period over which ActionLimit is measured (e.g., DAY, WEEK, MONTH)."},"SpendLimit":{"type":"string","format":"decimal","description":"Maximum spend allowed before payouts cap, per SpendLimitPeriod."},"SpendLimitPeriod":{"type":"string","description":"Period over which SpendLimit is measured (e.g., DAY, WEEK, MONTH)."},"MinEarningPerClick":{"type":"string","format":"decimal","description":"Minimum earnings per click guaranteed by the contract."},"ContractStartSlottingFee":{"type":"string","format":"decimal","description":"Slotting fee paid at the start of the contract."}}},"EventPayout":{"type":"object","description":"Payout rules for a specific tracked event type.","properties":{"EventTypeId":{"type":"string","description":"Unique identifier for the event type (action tracker)."},"EventTypeName":{"type":"string","description":"Display name of the event type."},"EventCategory":{"type":"string","description":"Category of the event (e.g., SALE, LEAD, CLICK)."},"DefaultPayoutRate":{"type":"string","description":"The default payout rate applied when no adjustment rules are matched."},"PayoutLevel":{"type":"string","description":"Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM)."},"DefaultPayout":{"type":"string","format":"decimal","description":"Default payout amount for events of this type, before any adjustments."},"PayoutGroups":{"type":"array","description":"Conditional payout groups that apply different rates based on rule matches. Returned only when ?IRVersion=15 or later is used.","items":{"$ref":"#/components/schemas/PayoutGroup"}},"PayoutRestrictions":{"type":"array","description":"Conditional restrictions that prevent payout when their rules match.","items":{"$ref":"#/components/schemas/PayoutRestriction"}},"Limits":{"type":"array","description":"Payout caps that limit how much the partner can earn for this event type within a period.","items":{"$ref":"#/components/schemas/Limit"}},"PayoutAdjustments":{"type":"array","description":"Conditional rules that adjust the default payout rate up or down.","items":{"$ref":"#/components/schemas/PayoutAdjustment"}},"PerformanceBonus":{"$ref":"#/components/schemas/PerformanceBonus","description":"Tiered bonus payout that activates when a revenue or action threshold is reached."},"Locking":{"$ref":"#/components/schemas/Locking","description":"Rules governing when an action locks and can no longer be modified."},"PayoutScheduling":{"$ref":"#/components/schemas/PayoutScheduling","description":"Rules governing when a locked action is scheduled for payout."},"CreditPolicy":{"type":"string","description":"Attribution policy determining which partner receives credit for the conversion (e.g., LAST_REFERRER, FIRST_REFERRER)."},"ValidReferrals":{"type":"array","description":"The referral types and attribution windows that qualify for credit.","items":{"$ref":"#/components/schemas/ValidReferral"}}}},"PayoutGroup":{"type":"object","description":"A ranked group of item-matching rules with an associated payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout group."},"Rank":{"type":"string","description":"The priority rank of this group. Lower ranks are evaluated first."},"Rules":{"type":"array","description":"Item-matching conditions that must be met for this group's payout to apply.","items":{"$ref":"#/components/schemas/Rule"}},"PayoutRate":{"type":"string","description":"Percentage payout rate applied when the group matches."},"Payout":{"type":"string","format":"decimal","description":"Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both."},"Limits":{"type":"array","description":"Payout caps that limit this group's earnings within a period.","items":{"$ref":"#/components/schemas/Limit"}}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}},"Limit":{"type":"object","description":"A cap on payouts within a period.","properties":{"Type":{"type":"string","description":"What is being limited (e.g., ACTION, PAYOUT)."},"Value":{"type":"string","description":"The numeric limit value."},"LimitBy":{"type":"string","description":"Dimension the limit applies to (e.g., CUSTOMER, ITEM)."},"Period":{"type":"string","description":"Time period over which the limit resets (e.g., DAY, MONTH)."},"WeekendOverrideValue":{"type":"string","description":"Override value applied on weekends."}}},"PayoutRestriction":{"type":"object","description":"A rule that prevents payout for an action when its conditions match.","properties":{"Id":{"type":"string","description":"Unique identifier of this payout restriction."},"Rules":{"type":"array","description":"Conditions that must all match for the restriction to apply.","items":{"$ref":"#/components/schemas/Rule"}},"ZeroPayoutHideReport":{"type":"string","description":"Whether to hide the action from reports when payout is zero due to this restriction."}}},"PayoutAdjustment":{"type":"object","description":"A conditional rule that adjusts the default payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout adjustment rule."},"Rules":{"type":"array","description":"Conditions that must be met for this adjustment to apply.","items":{"$ref":"#/components/schemas/Rule"}},"Direction":{"type":"string","description":"Whether this adjustment increases or decreases the payout (INCREASE, DECREASE)."},"Rate":{"type":"string","description":"The adjustment rate applied to the payout when conditions are met."}}},"PerformanceBonus":{"type":"object","description":"Tiered bonus payout that activates when a revenue or action threshold is reached.","properties":{"Type":{"type":"string","description":"The type of performance bonus (e.g., SUBSEQUENT_ACTIONS, ALL_ACTIONS)."},"Basis":{"type":"string","description":"The metric used to measure performance (e.g., REVENUE, ACTIONS)."},"Period":{"type":"string","description":"The time period over which performance is measured (e.g., CALENDAR_MONTH, CALENDAR_YEAR)."},"Tiers":{"type":"array","description":"The threshold tiers and their associated bonus payout rates.","items":{"$ref":"#/components/schemas/PerformanceBonusTier"}}}},"PerformanceBonusTier":{"type":"object","description":"A single threshold tier within a performance bonus structure.","properties":{"RevenueThreshold":{"type":"string","description":"The revenue amount that must be reached to unlock this tier's bonus rate."},"PayoutRate":{"type":"string","description":"The bonus payout rate applied once the revenue threshold is reached."}}},"Locking":{"type":"object","description":"Rules governing when an action locks and can no longer be modified.","properties":{"Basis":{"type":"string","description":"The basis for the locking schedule (e.g., TRACKED, CLEARED)."},"Period":{"type":"string","description":"The unit of the locking period (e.g., MONTH, DAY)."},"MonthOffset":{"type":"string","description":"Number of months after the basis date before locking occurs."},"DayOffset":{"type":"string","description":"Number of days after the month offset before locking occurs."}}},"PayoutScheduling":{"type":"object","description":"Rules governing when a locked action is scheduled for payout.","properties":{"Basis":{"type":"string","description":"The basis for the payout schedule (e.g., LOCKED, CLEARED)."},"Period":{"type":"string","description":"The payout period frequency (e.g., END_OF_DAY, END_OF_WEEK, END_OF_MONTH)."}}},"ValidReferral":{"type":"object","description":"A referral type and attribution window that qualifies for conversion credit.","properties":{"Type":{"type":"string","description":"The type of referral that qualifies (e.g., CLICKS, IMPRESSIONS)."},"Window":{"type":"string","description":"The length of the attribution window."},"WindowUnit":{"type":"string","description":"The unit of the attribution window (e.g., DAY, HOUR)."}}},"SpecialTerm":{"type":"object","description":"A special term or condition appended to the contract.","properties":{"TermsName":{"type":"string","description":"Display name of the special term."},"TermsType":{"type":"string","description":"The type of special term (e.g., CUSTOM, PROMOTIONAL_RESTRICTION)."},"TermsContent":{"type":"string","description":"The full text or HTML content of the special term."}}}}}}
```

## The EventPayout object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"EventPayout":{"type":"object","description":"Payout rules for a specific tracked event type.","properties":{"EventTypeId":{"type":"string","description":"Unique identifier for the event type (action tracker)."},"EventTypeName":{"type":"string","description":"Display name of the event type."},"EventCategory":{"type":"string","description":"Category of the event (e.g., SALE, LEAD, CLICK)."},"DefaultPayoutRate":{"type":"string","description":"The default payout rate applied when no adjustment rules are matched."},"PayoutLevel":{"type":"string","description":"Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM)."},"DefaultPayout":{"type":"string","format":"decimal","description":"Default payout amount for events of this type, before any adjustments."},"PayoutGroups":{"type":"array","description":"Conditional payout groups that apply different rates based on rule matches. Returned only when ?IRVersion=15 or later is used.","items":{"$ref":"#/components/schemas/PayoutGroup"}},"PayoutRestrictions":{"type":"array","description":"Conditional restrictions that prevent payout when their rules match.","items":{"$ref":"#/components/schemas/PayoutRestriction"}},"Limits":{"type":"array","description":"Payout caps that limit how much the partner can earn for this event type within a period.","items":{"$ref":"#/components/schemas/Limit"}},"PayoutAdjustments":{"type":"array","description":"Conditional rules that adjust the default payout rate up or down.","items":{"$ref":"#/components/schemas/PayoutAdjustment"}},"PerformanceBonus":{"$ref":"#/components/schemas/PerformanceBonus","description":"Tiered bonus payout that activates when a revenue or action threshold is reached."},"Locking":{"$ref":"#/components/schemas/Locking","description":"Rules governing when an action locks and can no longer be modified."},"PayoutScheduling":{"$ref":"#/components/schemas/PayoutScheduling","description":"Rules governing when a locked action is scheduled for payout."},"CreditPolicy":{"type":"string","description":"Attribution policy determining which partner receives credit for the conversion (e.g., LAST_REFERRER, FIRST_REFERRER)."},"ValidReferrals":{"type":"array","description":"The referral types and attribution windows that qualify for credit.","items":{"$ref":"#/components/schemas/ValidReferral"}}}},"PayoutGroup":{"type":"object","description":"A ranked group of item-matching rules with an associated payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout group."},"Rank":{"type":"string","description":"The priority rank of this group. Lower ranks are evaluated first."},"Rules":{"type":"array","description":"Item-matching conditions that must be met for this group's payout to apply.","items":{"$ref":"#/components/schemas/Rule"}},"PayoutRate":{"type":"string","description":"Percentage payout rate applied when the group matches."},"Payout":{"type":"string","format":"decimal","description":"Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both."},"Limits":{"type":"array","description":"Payout caps that limit this group's earnings within a period.","items":{"$ref":"#/components/schemas/Limit"}}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}},"Limit":{"type":"object","description":"A cap on payouts within a period.","properties":{"Type":{"type":"string","description":"What is being limited (e.g., ACTION, PAYOUT)."},"Value":{"type":"string","description":"The numeric limit value."},"LimitBy":{"type":"string","description":"Dimension the limit applies to (e.g., CUSTOMER, ITEM)."},"Period":{"type":"string","description":"Time period over which the limit resets (e.g., DAY, MONTH)."},"WeekendOverrideValue":{"type":"string","description":"Override value applied on weekends."}}},"PayoutRestriction":{"type":"object","description":"A rule that prevents payout for an action when its conditions match.","properties":{"Id":{"type":"string","description":"Unique identifier of this payout restriction."},"Rules":{"type":"array","description":"Conditions that must all match for the restriction to apply.","items":{"$ref":"#/components/schemas/Rule"}},"ZeroPayoutHideReport":{"type":"string","description":"Whether to hide the action from reports when payout is zero due to this restriction."}}},"PayoutAdjustment":{"type":"object","description":"A conditional rule that adjusts the default payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout adjustment rule."},"Rules":{"type":"array","description":"Conditions that must be met for this adjustment to apply.","items":{"$ref":"#/components/schemas/Rule"}},"Direction":{"type":"string","description":"Whether this adjustment increases or decreases the payout (INCREASE, DECREASE)."},"Rate":{"type":"string","description":"The adjustment rate applied to the payout when conditions are met."}}},"PerformanceBonus":{"type":"object","description":"Tiered bonus payout that activates when a revenue or action threshold is reached.","properties":{"Type":{"type":"string","description":"The type of performance bonus (e.g., SUBSEQUENT_ACTIONS, ALL_ACTIONS)."},"Basis":{"type":"string","description":"The metric used to measure performance (e.g., REVENUE, ACTIONS)."},"Period":{"type":"string","description":"The time period over which performance is measured (e.g., CALENDAR_MONTH, CALENDAR_YEAR)."},"Tiers":{"type":"array","description":"The threshold tiers and their associated bonus payout rates.","items":{"$ref":"#/components/schemas/PerformanceBonusTier"}}}},"PerformanceBonusTier":{"type":"object","description":"A single threshold tier within a performance bonus structure.","properties":{"RevenueThreshold":{"type":"string","description":"The revenue amount that must be reached to unlock this tier's bonus rate."},"PayoutRate":{"type":"string","description":"The bonus payout rate applied once the revenue threshold is reached."}}},"Locking":{"type":"object","description":"Rules governing when an action locks and can no longer be modified.","properties":{"Basis":{"type":"string","description":"The basis for the locking schedule (e.g., TRACKED, CLEARED)."},"Period":{"type":"string","description":"The unit of the locking period (e.g., MONTH, DAY)."},"MonthOffset":{"type":"string","description":"Number of months after the basis date before locking occurs."},"DayOffset":{"type":"string","description":"Number of days after the month offset before locking occurs."}}},"PayoutScheduling":{"type":"object","description":"Rules governing when a locked action is scheduled for payout.","properties":{"Basis":{"type":"string","description":"The basis for the payout schedule (e.g., LOCKED, CLEARED)."},"Period":{"type":"string","description":"The payout period frequency (e.g., END_OF_DAY, END_OF_WEEK, END_OF_MONTH)."}}},"ValidReferral":{"type":"object","description":"A referral type and attribution window that qualifies for conversion credit.","properties":{"Type":{"type":"string","description":"The type of referral that qualifies (e.g., CLICKS, IMPRESSIONS)."},"Window":{"type":"string","description":"The length of the attribution window."},"WindowUnit":{"type":"string","description":"The unit of the attribution window (e.g., DAY, HOUR)."}}}}}}
```

## The PayoutAdjustment object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"PayoutAdjustment":{"type":"object","description":"A conditional rule that adjusts the default payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout adjustment rule."},"Rules":{"type":"array","description":"Conditions that must be met for this adjustment to apply.","items":{"$ref":"#/components/schemas/Rule"}},"Direction":{"type":"string","description":"Whether this adjustment increases or decreases the payout (INCREASE, DECREASE)."},"Rate":{"type":"string","description":"The adjustment rate applied to the payout when conditions are met."}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}}}}}
```

## The Rule object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}}}}}
```

## The PerformanceBonus object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"PerformanceBonus":{"type":"object","description":"Tiered bonus payout that activates when a revenue or action threshold is reached.","properties":{"Type":{"type":"string","description":"The type of performance bonus (e.g., SUBSEQUENT_ACTIONS, ALL_ACTIONS)."},"Basis":{"type":"string","description":"The metric used to measure performance (e.g., REVENUE, ACTIONS)."},"Period":{"type":"string","description":"The time period over which performance is measured (e.g., CALENDAR_MONTH, CALENDAR_YEAR)."},"Tiers":{"type":"array","description":"The threshold tiers and their associated bonus payout rates.","items":{"$ref":"#/components/schemas/PerformanceBonusTier"}}}},"PerformanceBonusTier":{"type":"object","description":"A single threshold tier within a performance bonus structure.","properties":{"RevenueThreshold":{"type":"string","description":"The revenue amount that must be reached to unlock this tier's bonus rate."},"PayoutRate":{"type":"string","description":"The bonus payout rate applied once the revenue threshold is reached."}}}}}}
```

## The PerformanceBonusTier object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"PerformanceBonusTier":{"type":"object","description":"A single threshold tier within a performance bonus structure.","properties":{"RevenueThreshold":{"type":"string","description":"The revenue amount that must be reached to unlock this tier's bonus rate."},"PayoutRate":{"type":"string","description":"The bonus payout rate applied once the revenue threshold is reached."}}}}}}
```

## The Locking object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"Locking":{"type":"object","description":"Rules governing when an action locks and can no longer be modified.","properties":{"Basis":{"type":"string","description":"The basis for the locking schedule (e.g., TRACKED, CLEARED)."},"Period":{"type":"string","description":"The unit of the locking period (e.g., MONTH, DAY)."},"MonthOffset":{"type":"string","description":"Number of months after the basis date before locking occurs."},"DayOffset":{"type":"string","description":"Number of days after the month offset before locking occurs."}}}}}}
```

## The PayoutScheduling object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"PayoutScheduling":{"type":"object","description":"Rules governing when a locked action is scheduled for payout.","properties":{"Basis":{"type":"string","description":"The basis for the payout schedule (e.g., LOCKED, CLEARED)."},"Period":{"type":"string","description":"The payout period frequency (e.g., END_OF_DAY, END_OF_WEEK, END_OF_MONTH)."}}}}}}
```

## The ValidReferral object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"ValidReferral":{"type":"object","description":"A referral type and attribution window that qualifies for conversion credit.","properties":{"Type":{"type":"string","description":"The type of referral that qualifies (e.g., CLICKS, IMPRESSIONS)."},"Window":{"type":"string","description":"The length of the attribution window."},"WindowUnit":{"type":"string","description":"The unit of the attribution window (e.g., DAY, HOUR)."}}}}}}
```

## The SpecialTerm object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"SpecialTerm":{"type":"object","description":"A special term or condition appended to the contract.","properties":{"TermsName":{"type":"string","description":"Display name of the special term."},"TermsType":{"type":"string","description":"The type of special term (e.g., CUSTOM, PROMOTIONAL_RESTRICTION)."},"TermsContent":{"type":"string","description":"The full text or HTML content of the special term."}}}}}}
```

## The CampaignTerm object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"CampaignTerm":{"type":"object","description":"A campaign-level payout term override applied on top of the base contract terms.","properties":{"Id":{"type":"string","description":"Unique identifier for the campaign term."},"Name":{"type":"string","description":"Display name of the campaign term."},"StartDate":{"type":"string","format":"date-time","description":"Date and time the campaign term becomes effective (ISO 8601)."},"EndDate":{"type":"string","format":"date-time","description":"Date and time the campaign term expires (ISO 8601)."},"EventPayouts":{"type":"array","description":"Item-level payout rules applied by this campaign term.","items":{"$ref":"#/components/schemas/CampaignTermEventPayout"}}}},"CampaignTermEventPayout":{"type":"object","description":"Payout rules for a specific event type within a campaign term.","properties":{"EventTypeId":{"type":"string","description":"Unique identifier for the event type this payout applies to."},"PayoutLevel":{"type":"string","description":"Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM)."},"PayoutGroups":{"type":"array","description":"Ordered groups of item-matching rules and their associated payout rates.","items":{"$ref":"#/components/schemas/PayoutGroup"}}}},"PayoutGroup":{"type":"object","description":"A ranked group of item-matching rules with an associated payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout group."},"Rank":{"type":"string","description":"The priority rank of this group. Lower ranks are evaluated first."},"Rules":{"type":"array","description":"Item-matching conditions that must be met for this group's payout to apply.","items":{"$ref":"#/components/schemas/Rule"}},"PayoutRate":{"type":"string","description":"Percentage payout rate applied when the group matches."},"Payout":{"type":"string","format":"decimal","description":"Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both."},"Limits":{"type":"array","description":"Payout caps that limit this group's earnings within a period.","items":{"$ref":"#/components/schemas/Limit"}}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}},"Limit":{"type":"object","description":"A cap on payouts within a period.","properties":{"Type":{"type":"string","description":"What is being limited (e.g., ACTION, PAYOUT)."},"Value":{"type":"string","description":"The numeric limit value."},"LimitBy":{"type":"string","description":"Dimension the limit applies to (e.g., CUSTOMER, ITEM)."},"Period":{"type":"string","description":"Time period over which the limit resets (e.g., DAY, MONTH)."},"WeekendOverrideValue":{"type":"string","description":"Override value applied on weekends."}}}}}}
```

## The CampaignTermEventPayout object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"CampaignTermEventPayout":{"type":"object","description":"Payout rules for a specific event type within a campaign term.","properties":{"EventTypeId":{"type":"string","description":"Unique identifier for the event type this payout applies to."},"PayoutLevel":{"type":"string","description":"Whether the payout is calculated at the order level or per item (e.g., ORDER, ITEM)."},"PayoutGroups":{"type":"array","description":"Ordered groups of item-matching rules and their associated payout rates.","items":{"$ref":"#/components/schemas/PayoutGroup"}}}},"PayoutGroup":{"type":"object","description":"A ranked group of item-matching rules with an associated payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout group."},"Rank":{"type":"string","description":"The priority rank of this group. Lower ranks are evaluated first."},"Rules":{"type":"array","description":"Item-matching conditions that must be met for this group's payout to apply.","items":{"$ref":"#/components/schemas/Rule"}},"PayoutRate":{"type":"string","description":"Percentage payout rate applied when the group matches."},"Payout":{"type":"string","format":"decimal","description":"Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both."},"Limits":{"type":"array","description":"Payout caps that limit this group's earnings within a period.","items":{"$ref":"#/components/schemas/Limit"}}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}},"Limit":{"type":"object","description":"A cap on payouts within a period.","properties":{"Type":{"type":"string","description":"What is being limited (e.g., ACTION, PAYOUT)."},"Value":{"type":"string","description":"The numeric limit value."},"LimitBy":{"type":"string","description":"Dimension the limit applies to (e.g., CUSTOMER, ITEM)."},"Period":{"type":"string","description":"Time period over which the limit resets (e.g., DAY, MONTH)."},"WeekendOverrideValue":{"type":"string","description":"Override value applied on weekends."}}}}}}
```

## The PayoutGroup object

```json
{"openapi":"3.1.0","info":{"title":"Partner Contracts API","version":"16"},"components":{"schemas":{"PayoutGroup":{"type":"object","description":"A ranked group of item-matching rules with an associated payout rate.","properties":{"Id":{"type":"string","description":"Unique identifier for the payout group."},"Rank":{"type":"string","description":"The priority rank of this group. Lower ranks are evaluated first."},"Rules":{"type":"array","description":"Item-matching conditions that must be met for this group's payout to apply.","items":{"$ref":"#/components/schemas/Rule"}},"PayoutRate":{"type":"string","description":"Percentage payout rate applied when the group matches."},"Payout":{"type":"string","format":"decimal","description":"Fixed payout amount applied when the group matches. Either PayoutRate or Payout is returned, not both."},"Limits":{"type":"array","description":"Payout caps that limit this group's earnings within a period.","items":{"$ref":"#/components/schemas/Limit"}}}},"Rule":{"type":"object","description":"A single condition within a payout adjustment or payout group.","properties":{"Variable":{"type":"string","description":"The attribute being evaluated (e.g., DERIVED_BROWSER, CUSTOMER_STATUS, ITEM_SKU, ITEM_CATEGORY)."},"Operator":{"type":"string","description":"The comparison operator (e.g., IS, IS_NOT, CONTAINS)."},"Values":{"type":"array","description":"The values to compare against.","items":{"type":"string"}}}},"Limit":{"type":"object","description":"A cap on payouts within a period.","properties":{"Type":{"type":"string","description":"What is being limited (e.g., ACTION, PAYOUT)."},"Value":{"type":"string","description":"The numeric limit value."},"LimitBy":{"type":"string","description":"Dimension the limit applies to (e.g., CUSTOMER, ITEM)."},"Period":{"type":"string","description":"Time period over which the limit resets (e.g., DAY, MONTH)."},"WeekendOverrideValue":{"type":"string","description":"Override value applied on weekends."}}}}}}
```


---

# 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/partner-api-reference/reference/contracts/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.
