# Set Up Postbacks for Partners

You can set up postbacks for your partners that trigger real-time HTTP notifications (postbacks) directly from our platform to your partner’s system every time an event occurs. This way, you can avoid the need to implement additional pixels or build custom server-side integrations.

By using the partner and Optimize media source integrations, you streamline your technical stack and ensure data consistency without modifying your website's code.

### Choose your partner postback configuration

#### Partner integration postbacks

The partner tracking integration allows you to set up a partner’s postbacks to sync conversion data with their own system without placing additional pixels or tags on the site, reducing development effort, maintenance, and the risk of tracking conflicts.

These postbacks allow partners to access the necessary conversion data via a reliable server-to-server flow, while avoiding duplicate implementations and unnecessary frontend changes.

Important: The event type used for the partner notification postback setup needs to be in the partner contract.

1. From the left navigation, select ![](/files/7616zvzm09ZQFjSNUOfi) **Engage → Partners →** [**Partners**](https://app.impact.com/secure/advertiser/engage/mediapartners/view-mediapartners-flow.ihtml?execution=e2s1).
2. Hover over the partner for whom you want to set up a postback, then select ![](/files/OApfmmKbhXyNHFvPKoMd) **\[More] → Partner Integration**.
3. In the top-right, select **Add Postback**.

#### Optimize media source postbacks

Note: This section only applies if you have access to [Optimize](https://help.impact.com/en/support/solutions/articles/48001236609-optimize-startup-guide).

You can bypass the traditional contracting process by adding your technology partner as a media source and setting up notifications. This setup allows a seamless postback delivery without requiring a formal contract or specific event type at the contract level.

1. From the left navigation bar, select ![](/files/IpHPSTmfi8waCM5fFdFd) **Optimize → Settings →** [**Networks**](https://app.impact.com/secure/advertiser/optimize/mediamanager/mediasources/manage-media-sources-flow.ihtml?execution=e4s1).
2. Hover over the media source for which you want to set up a postback, then select ![](/files/OApfmmKbhXyNHFvPKoMd) **\[More] → Event Notifications**.
3. In the top-right, select **Add Postback**.

### Configure the postback fields

1. Select the **action tracker** (event type) for which you want to set up postbacks.
2. Set *Event Trigger* to **Always**.
3. Optionally, for mobile app event types, select ![](/files/5RNNtk9hyBhCGKA3SwW3) **\[Checkbox] Install** to set up postbacks for any app installations.
   * If you have selected a mobile app as the event type, please select the exact in-app event name required for the postback.
4. Enter your server's URL. This is the URL to which impact.com will send postbacks. Optionally, include additional placeholder parameter values. Prior to calling the URL, the parameter placeholders are replaced with their actual values. E.g., `http://www.domain.com?campaignId={CampaignId}`.
   * Refer to *Order Level and Item Level Parameters* below to view which parameters you can use.
5. Select your preferred **HTTP method**.
   * Refer to *Integration methods (GET & POST)* below for more information on these methods.
6. Optionally, enter the **HTTP Header**.
7. Optionally, select **Show advanced settings**.
   * Enter a **Minimum Delay** between when a non-standard event happens and when the postback is generated and sent to your system.
   * Enter a rate limit for the **Maximum Requests** impact.com can make to your system per second.
   * Enter what you want the **Success Response** to a postback to be.
   * Enter what you want the **Error Response** to a postback to be.
8. Select **Save** and repeat for all events.

<details>

<summary>Order Level Parameters</summary>

| Parameter              | Mapping / Description                                                                           |
| ---------------------- | ----------------------------------------------------------------------------------------------- |
| `{CampaignId}`         | Program ID                                                                                      |
| `{ActionTrackerId}`    | Event Type ID                                                                                   |
| `{MediaPartnerId}`     | Partner ID                                                                                      |
| `{CampaignName}`       | Program Name                                                                                    |
| `{ActionTrackerName}`  | Event Type Name                                                                                 |
| `{MediaPartnerName}`   | Partner Name                                                                                    |
| `{ActionId}`           | Action ID                                                                                       |
| `{Status}`             | Action Status                                                                                   |
| `{StatusDetail}`       | More details about the action status, for example the reason for an action modification         |
| `{AdId}`               | Ad ID                                                                                           |
| `{Payout}`             | Action payout to the Partner, in the Partner currency                                           |
| `{DeltaPayout}`        | The change of the Payout Amount                                                                 |
| `{IntendedPayout}`     | The intended Payout Amount for an overlimit action                                              |
| `{Amount}`             | Action amount, in the account's currency.                                                       |
| `{DeltaAmount}`        | Corrected Amount from previous action.                                                          |
| `{IntendedAmount}`     | The intended Sale Amount for an overlimit action                                                |
| `{Currency}`           | Currency for the action                                                                         |
| `{OriginalCurrency}`   | Original (i.e. cart) currency for the action                                                    |
| `{OriginalAmount}`     | Original (i.e. cart) amount for the action                                                      |
| `{EventDate}`          | The date of when the conversion took place                                                      |
| `{CreationDate}`       | The date the action is created in the system                                                    |
| `{LockingDate}`        | Date, in ISO 8601 format, when the action will be locked.                                       |
| `{ClearedDate}`        | Date, in ISO 8601 format, when the action is scheduled to clear                                 |
| `{ReferringDomain}`    | Domain where the referral took place (if online)                                                |
| `{LandingPageUrl}`     | Url of landing page (if online)                                                                 |
| `{RefCustomerArea}`    | Customer Area, derived from IP address                                                          |
| `{RefCustomerCity}`    | Customer City, derived from IP address                                                          |
| `{RefCustomerRegion}`  | Customer Region, derived from IP address                                                        |
| `{RefCustomerCountry}` | Customer Country Code, derived from IP address                                                  |
| `{RefClickId}`         | A unique case-sensitive identifier that is generated on the click (if applicable)               |
| `{SharedId}`           | A value that a Partner can include in the click URL which becomes available to your advertisers |
| `{PromoCode}`          | Promo code                                                                                      |
| `{CustomerStatus}`     | Customer status                                                                                 |
| `{Oid}`                | Order ID                                                                                        |
| `{Note}`               | A note supplied with the reported action                                                        |
| `{CustomerPostCode}`   | Customer Post Code                                                                              |
| `{CustomerCity}`       | Customer City, supplied with the reported action                                                |
| `{CustomerCountry}`    | Customer Country Code, supplied with the reported action                                        |
| `{CustomerRegion}`     | Customer Region, supplied with the reported action                                              |
| `{Text1}`              | Supplied with the reported action                                                               |
| `{Text2}`              | Supplied with the reported action                                                               |
| `{Text3}`              | Supplied with the reported action                                                               |
| `{Date1}`              | Supplied with the reported action                                                               |
| `{Date2}`              | Supplied with the reported action                                                               |
| `{Date3}`              | Supplied with the reported action                                                               |
| `{Money1}`             | Supplied with the reported action                                                               |
| `{Money2}`             | Supplied with the reported action                                                               |
| `{Money3}`             | Supplied with the reported action                                                               |
| `{Numeric1}`           | Supplied with the reported action                                                               |
| `{Numeric2}`           | Supplied with the reported action                                                               |
| `{Numeric3}`           | Supplied with the reported action                                                               |
| `{appPackage}`         | Mobile app package                                                                              |
| `{appName}`            | Mobile app name                                                                                 |
| `{appVersion}`         | Mobile app version                                                                              |
| `{deviceOs}`           | Device operating system                                                                         |
| `{deviceOsVersion}`    | Device operating system version                                                                 |
| `{deviceManuf}`        | Device manufacturer                                                                             |
| `{deviceModel}`        | Device model                                                                                    |
| `{macAddress}`         | MAC Address options (Upper, Lower, Hashed)                                                      |
| `{iosIfa}`             | iOS advertising identifier options                                                              |
| `{iosAdTracking}`      | iOS Ad Tracking setting                                                                         |
| `{androidId}`          | Android ID options                                                                              |
| `{odin1}`              | SHA-1 hash of MAC address                                                                       |
| `{openUdid}`           | OpenUDID of device                                                                              |
| `{deviceId}`           | Device ID                                                                                       |
| `{deviceIp}`           | Device IP                                                                                       |
| `{UserAgent}`          | User Agent                                                                                      |
| `{IpAddressPlain}`     | IP Address                                                                                      |

***

#### Item-Level Parameters

| Mapping      | Expression                                             | Result                                          |
| ------------ | ------------------------------------------------------ | ----------------------------------------------- |
| **SKU**      | `{join(items, i, "sku{i}={i.sku}", "&", "?")}`         | `?sku1=GH23&sku2=UT66&sku3=RW87`                |
| **Category** | `{join(items, i, "cat{i}={i.cat}", "&", "?")}`         | `?cat1=Watches&cat2=Shoes&cat3=Hats`            |
| **Quantity** | `{join(items, i, "qty{i}={i.qty}", "&", "?")}`         | `?qty1=3&qty2=4&qty3=11`                        |
| **Amount**   | `{join(items, i, "amt{i}={i.amt}", "&", "?")}`         | `?amt1=2.92&amt2=99.32&amt3=4.99`               |
| **Cart Amt** | `{join(items, i, "cartamt{i}={i.cartamt}", "&", "?")}` | `?cartamt1=50.01&cartamt2=23.89&cartamt3=34.00` |
| **Rebate**   | `{join(items, i, "rbt{i}={i.rbt}", "&", "?")}`         | `?rbt1=1.00&rbt2=5.00&rbt3=1.50`                |
| **Name**     | `{join(items, i, "name{i}={i.name}", "&", "?")}`       | `?name1=1.00&name2=5.00&name3=1.50`             |

</details>

<details>

<summary>Integration Methods (GET &#x26; POST)</summary>

#### GET Method

The GET method is the preferred option for most integrations. It allows you to pass optional parameters directly within the URL string as query parameters.

**URL Example:** `https://www.someadvertiser.com?myCampaignId={CampaignId}&theMpId={MediaPartnerId}&theActionId={ActionId}&status={Status}&lockingDate={LockingDate}&mpPayout={Payout}&saleAmt={Amount}`

#### POST Method

Use the POST method if the partner requires data to be sent within the request body rather than the URL. To configure this, you must define the Body Format (e.g., JSON).

**Configuration Steps:**

1. **Select Body Format:** Choose the format required by your system (e.g., JSON, XML, or QueryString).
2. **Map Data Points:** Define your key-value pairs.
   * **Keys:** Specific field names defined by your internal system.
   * **Values:** Use variables enclosed in curly brackets `{ }`.

**JSON Example:**

```json
{ 
  "campaign_id": "{CampaignId}", 
  "partner_id": "{MediaPartnerId}", 
  "action_id": "{ActionId}", 
  "payout": "{Payout}" 
}
```

</details>


---

# 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/brand-api-reference-v12/reference/webhooks/set-up-postbacks-for-partners.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.
