# Enable Event Notification Postbacks for Brands

Event notification postbacks (webhooks) notify your internal systems in real-time when specific events occur. While the data sent varies by event, the configuration process is the same for all.

{% stepper %}
{% step %}

### Access event notification postbacks

1. From the top navigation bar, select ![](/files/2qeX6EqajzdOPiwzfeV5) **\[User profile] → Settings**.
2. Under the *Technical* section, select [**Event Notifications**](https://app.impact.com/secure/advertiser/accountSettings/techintegration/view-edit-adv-pingback-settings-flow.ihtml?).
   {% endstep %}

{% step %}

### Complete global configuration fields

1. Hover over the event for which you want to configure a notification postback and select ![](/files/tcQS14zAgxVROYiMl2xJ) **\[Edit]**.
2. Use the table below to configure the delivery settings:

| Field            | Description                                                                                                                                                                                                                                                                                                                                                    |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| URL              | The endpoint on your server that will receive the data.                                                                                                                                                                                                                                                                                                        |
| HTTP Method      | <p><code>GET</code>: Data is appended to the URL as query strings.</p><p></p><p><code>POST</code>: Data is sent in the request body, which includes various optional parameters you can set. <br><br>Refer to <a href="#notification-events-and-payloads">Notification events and payloads</a> for more information on each event and the payload content.</p> |
| HTTP Header      | (Optional) Add custom headers for authentication (e.g., `Authorization: Bearer token`).                                                                                                                                                                                                                                                                        |
| Minimum Delay    | Set *Minimum Delay* in seconds to protect your server from traffic spikes.                                                                                                                                                                                                                                                                                     |
| Maximum Requests | Set *Maximum Requests* per second to protect your server from traffic spikes.                                                                                                                                                                                                                                                                                  |
| Success Response | The specific text string or HTTP status code your server returns when a postback is handled correctly.                                                                                                                                                                                                                                                         |
| Error Response   | The text string or status code that indicates a failure (e.g., `ERROR` or `500`).                                                                                                                                                                                                                                                                              |
| {% endstep %}    |                                                                                                                                                                                                                                                                                                                                                                |
| {% endstepper %} |                                                                                                                                                                                                                                                                                                                                                                |

### Notification events & payloads

Each event notification sends a unique set of configurable data points (e.g., `{ActionId}`). Refer to the events below to learn what data points you can extract from the payloads.

<details>

<summary><strong>Action Lifecycle Events</strong></summary>

Action Lifecycle Events will issue an HTTP request to a specified URL (and any included parameters) when an action is tracked, modified, or reversed.

```json
// A POST example in JSON format
{
  "CampaignId": 9876, // Program ID
  "ActionTrackerId": 12345, // Event Type ID
  "MediaPartnerId": 555, // Partner ID
  "CampaignName": "Spring Global Promotion", // Program Name
  "ActionTrackerName": "Standard Sale Tracker", // Event Type Name
  "MediaPartnerName": "Top Tier Affiliates", // Partner Name
  "ActionId": "ACT-778899", // Action ID
  "Status": "MODIFIED", // Action Status
  "StatusDetail": "Item return - payout adjusted", // More details about the action status
  "AdId": 44332, // Ad ID
  "Payout": 10.50, // Action payout to the Partner, in the partner's currency
  "DeltaPayout": -5.00, // The change of the Payout Amount
  "IntendedPayout": 15.50, // The intended Payout Amount for an overlimit action
  "Amount": 100.00, // Action amount, in the account's currency
  "DeltaAmount": -50.00, // Corrected Amount from previous action
  "IntendedAmount": 150.00, // The intended Sale Amount for an overlimit action
  "Currency": "USD", // Currency for the action
  "OriginalCurrency": "USD", // Original (i.e. cart) currency for the action
  "OriginalAmount": 100.00, // Original (i.e. cart) amount for the action
  // "items" collection: Data for individual items in this action
  "items": [{join(items, i, 
  "\{\"sku\":\"{i.sku}\",
  \"item_price\":{i.amt},
  \"category\":\"{i.cat}\",
  \"quantity\":{i.qty},
  \"cartamt\":{i.cartamt},
  \"rbt\":\"{i.rbt}\",
  \"name\":\"{i.name}\"\}")}],
  "EventDate": "2026-04-08T09:00:00Z", // Date of conversion
  "CreationDate": "2026-04-08T09:05:00Z", // Date created in system
  "LockingDate": "2026-05-08T00:00:00Z", // Date action will be locked
  "ClearedDate": "2026-05-15T00:00:00Z", // Date scheduled to clear
  "ReferringDomain": "blog.partner.com", // Domain of referral
  "LandingPageUrl": "https://brand.com/sale", // URL of landing page
  "RefCustomerArea": "California", // Customer Area (IP derived)
  "RefCustomerCity": "San Francisco", // Customer City (IP derived)
  "RefCustomerRegion": "CA", // Customer Region (IP derived)
  "RefCustomerCountry": "US", // Customer Country Code (IP derived)
  "RefClickId": "CLK9988776655", // Unique click identifier
  "SharedId": "social_post_01", // Partner shared ID
  "PromoCode": "SAVE20", // General promo code
  "CustomerStatus": "EXISTING", // Customer status
  "Oid": "ORD-554433", // Order ID
  "Note": "Partial return processed", // Note supplied with action
  "CustomerPostCode": "94105", // Customer Post Code
  "CustomerCity": "San Francisco", // Customer City
  "CustomerCountry": "US", // Customer Country Code
  "CustomerRegion": "CA", // Customer Region
  "CustomerId": "CUST-12345", // Customer ID
  "CustomerEmail": "a665a45920422f9d417...", // Hashed Customer Email
  "IpAddress": "192.168.1.1", // IP Address
  "CallerId": null, // Phone number of the caller
  // Custom Supplemental Fields
  "Text1": "Custom Val 1", // Text 1
  "Date1": "2026-04-08", // Date 1
  "Money1": 10.00, // Money 1
  "Numeric1": 1, // Numeric 1
  // Device & App Metadata
  "appPackage": "com.brand.app", // Mobile app package
  "appName": "BrandStore", // Mobile app name
  "appVersion": "4.2.1", // Mobile app version
  "deviceOs": "iOS", // Device operating system
  "deviceOsVersion": "17.4", // Device OS version
  "deviceManuf": "Apple", // Device manufacturer
  "deviceModel": "iPhone 15", // Device model
  "macAddress": "00:1B:44:11:3A:B7", // MAC Address (Upper)
  "macAddressLower": "00:1b:44:11:3a:b7", // MAC Address (Lower)
  "macAddressAlpha": "001B44113AB7", // MAC Address (No colons)
  "macAddressSha1": "47a32...", // MAC SHA1
  "iosIfa": "EA7583CD-A667-48BC-B806-42ECB2B48606", // iOS Advertising ID
  "iosAdTracking": "1", // iOS Ad Tracking setting
  "androidId": null, // Android ID
  "deviceId": "D-556677", // Device ID
  "deviceIp": "192.168.1.1" // Device IP
}
```

</details>

<details>

<summary><strong>Action Inquiry Events</strong></summary>

Action Inquiry Events will issue an HTTP request to a specified URL (and any included parameters) when action inquiries are created or resolved.

```json
// A POST example in JSON format
{
  "Id": 554433, // Unique identifier of the action inquiry in the system
  "MediaPartnerId": 555, // Partner ID
  "MediaPartnerName": "Top Tier Affiliates", // Partner Name
  "CampaignId": 9876, // Program ID
  "CampaignName": "Spring Global Promotion", // Program Name
  "OrderId": "ORD-12345", // Order ID of the reported action
  "TransactionDate": "2026-04-01T14:30:00Z", // Transaction date of event that triggered action inquiry
  "TransactionAmount": 250.00, // Transaction amount of event that triggered action inquiry
  "InquiryType": "MISSING_ACTION", // Type of action inquiry
  "ExpectedPayout": 25.00, // Payout amount expected by Partner
  "ResolutionDeadlineDate": "2026-05-01T00:00:00Z", // The date by which the inquiry must be accepted or declined
  "TrackingLink": "https://proweb.com/click?cid=1&pid=555", // Tracking link provided by Partner
  "ActionId": "ACT-999000", // Action ID (if associated with an existing action)
  "AutoApprovalDate": "2026-05-05T00:00:00Z", // The date the system will run the automatic approval rules
  "ResolutionStatus": "PENDING", // The final resolution status for the action inquiry
  "RejectReason": null, // Reason why the action inquiry was rejected
  "FinalPayout": 0.00, // The final payout associated with the action inquiry
  "ResolutionDate": null, // The date the inquiry was decided
  "CreationDate": "2026-04-08T10:05:00Z", // Date when the inquiry is created in the system
  "InquiryNotes": "Customer claims they clicked the link but no credit was shown.", // Inquiry notes submitted by the Partner
  "ResolutionNotes": null, // Notes submitted when inquiry was decided
  "Comments": "[{\"user\": \"support_agent\", \"text\": \"Verifying click logs now.\"}, {\"user\": \"partner\", \"text\": \"Customer provided receipt.\"}]" // Comments added to the inquiry (in JSON format)
}
```

</details>

<details>

<summary><strong>Action Clearing Events</strong></summary>

Action Clearing Events will issue an HTTP request to a specified URL (and any included parameters) when actions are cleared.

```json
// A POST example in JSON format
{
  "ActionTrackerId": 12345, // Event Type ID
  "ActionTrackerName": "Standard Sale Tracker", // Event Type Name
  "CampaignId": 9876, // Program ID
  "CampaignName": "Spring Global Promotion", // Program Name
  "MediaPartnerId": 555, // Partner ID
  "MediaPartnerName": "Top Tier Affiliates", // Partner Name
  "OrderIds": "ORD-9921,ORD-9922", // Order IDs of the reported actions (comma separated)
  "ActionIds": "ACT-101,ACT-102", // Action IDs (comma separated)
  "ClearedDate": "2026-04-15T12:00:00Z", // Date (ISO 8601) when the action is scheduled to clear
  "LedgerDate": "2026-04-08T09:54:43Z" // Date (ISO 8601) when the action was cleared
}
```

</details>

<details>

<summary><strong>Tracking Value Request Events</strong></summary>

Tracking Value Request Events will issue an HTTP request to a specified URL (and any included parameters) when tracking requests are created.

```json
// A POST example in JSON format
{
  "CampaignId": 9876, // Program ID
  "ActionTrackerId": 12345, // Event Type ID
  "MediaPartnerId": 555, // Partner ID
  "ActionId": "ACT-778899", // Action ID
  "Amount": 150.00, // Action amount in account's currency
  "Currency": "USD", // Currency for the action
  "Oid": "ORD-554433", // Order ID
  // "items" collection: Breakdown of individual products in the action
  "items": [{join(items, i, "\{\"sku\":\"{i.sku}\",\"item_price\":{i.amt},\"category\":\"{i.cat}\",\"quantity\":{i.qty},\"cartamt\":{i.cartamt},\"rbt\":\"{i.rbt}\",\"name\":\"{i.name}\"\}")}],
  "EventDate": "2026-04-08T09:00:00Z", // Conversion date
  "IpAddress": "192.168.1.1", // IP Address of the device
  "RefClickId": "CLK9988776655" // Unique click identifier
}
```

</details>

<details>

<summary><strong>Completed Job Events</strong></summary>

Completed Job Events will issue an HTTP request to a specified URL (and any additional parameters) when a job has been completed for a [Report Export](https://integrations.impact.com/impact-brand/reference/export-reports) or [Click Export](https://integrations.impact.com/impact-brand/reference/retrieve-export-click).

```json
// A POST example in JSON format
{
  "JobId": 10293847, // Unique ID of Job
  "JobType": "REPORT_EXPORT", // The type of Job
  "AccountId": 7744, // Account ID
  "StartDate": "2026-04-08T10:00:05Z", // The time the job started
  "EndDate": "2026-04-08T10:11:02Z", // The time the job completed
  "RecordsProcessed": 5240, // The number of records processed or generated
  "ApiJobDetailUri": "https://api.impact.com/jobs/10293847", // API URI to get more details about the job
  "ApiResultUri": "https://api.impact.com/jobs/10293847/result", // API URI to get the result of the output of the job
  "ResultDownloadUrlExp5": "https://download.impact.com/file?token=a1b2...&exp=5min", // URL to download the output (5-minute expiry)
  "ResultDownloadUrlExp15": "https://download.impact.com/file?token=a1b2...&exp=15min", // URL to download the output (15-minute expiry)
  "ResultDownloadUrlExp30": "https://download.impact.com/file?token=a1b2...&exp=30min", // URL to download the output (30-minute expiry)
  "ResultDownloadUrlExp60": "https://download.impact.com/file?token=a1b2...&exp=60min" // URL to download the output (60-minute expiry)
}
```

</details>

<details>

<summary><strong>Publisher Application Events</strong></summary>

{% hint style="info" %}
**Note:** This functionality is in beta. Contact your CSM or our [support team](https://app.impact.com/support/portal.ihtml?createTicket=true&) if you'd like to test this feature.
{% endhint %}

Publisher Application Events will issue an HTTP request to a specified URL when a partner submits an application.

In instances where a payload is delivered with empty data points, the system is designed to trigger updates as information becomes available. Subsequent successful deliveries will populate those previously empty fields, ensuring your records stay synchronized with the latest processed information.

{% hint style="warning" %}
**Important:** The postback won't fire if you've set up conflicting [application workflows](/brand/what-would-you-like-to-learn-about/platform-features/review-partner-applications/automate-partner-application-processing/create-workflows-to-automatically-process-partner-applications.md).
{% endhint %}

```json
// A POST example in JSON format
{
  "ProgramId": "9876", // Program ID
  "TemplateTermsId": "4455", // Template Terms ID
  "ContractId": "112233", // Contract ID
  "ApplicationDate": "2026-04-09T08:30:00Z", // Date of application
  "PublisherId": "555", // Partner ID
  "Name": "Elite Content Creators", // Partner Name
  "BusinessModel": "SOCIAL_INFLUENCER", // Partner's primary business model
  "Description": "A premium network of lifestyle and travel influencers.", // Profile description
  "Address": "123 Marketing Way", // Street address
  "City": "Los Angeles", // City
  "State": "CA", // State
  "Country": "US", // Country
  "Language": "en-US", // Language
  "PublisherSize": "M", // XS, S, M, L, XL
  "PastRelationship": false, // Boolean indicating previous contract
  "MarketplaceApproved": true, // Boolean indicating marketplace status
  "ReceivedPayout": true, // Boolean indicating if they have received a payout
}
```

</details>

### Postback retry mechanism

If a postback fails when attempting to post to the destination URL, the delivery automatically retries based on a set schedule up to 15 times. Retries help account for temporary network issues or server unavailability.

#### Conditions where retries will not occur

A postback won't retry in the following cases:

* The destination URL is malformed or invalid.
* The destination URL or its host does not resolve, for example, because of a DNS lookup failure.

#### Retry schedule

The retry attempts follow the schedule below. Retry 1, 2, and  3 are skipped if the HTTP response code is in the range of `400` to `500`.

<details>

<summary>Retry schedule reference</summary>

<table><thead><tr><th width="321.0546875">Retry Attempt</th><th>Delay Before Retry</th></tr></thead><tbody><tr><td>Retry 1</td><td>+15 seconds</td></tr><tr><td>Retry 2</td><td>+15 seconds</td></tr><tr><td>Retry 3</td><td>+15 seconds</td></tr><tr><td>Retry 4</td><td>+3 minutes</td></tr><tr><td>Retry 5</td><td>+3 minutes</td></tr><tr><td>Retry 6</td><td>+15 minutes</td></tr><tr><td>Retry 7</td><td>+15 minutes</td></tr><tr><td>Retry 8</td><td>+15 minutes</td></tr><tr><td>Retry 9</td><td>+2 hours</td></tr><tr><td>Retry 10</td><td>+2 hours</td></tr><tr><td>Retry 11</td><td>+2 hours</td></tr><tr><td>Retry 12</td><td>+6 hours</td></tr><tr><td>Retry 13</td><td>+6 hours</td></tr><tr><td>Retry 14</td><td>+6 hours</td></tr><tr><td>Retry 15</td><td>+6 hours</td></tr></tbody></table>

</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://help.impact.com/brand/what-would-you-like-to-learn-about/account-administration/account-settings/notifications/enable-event-notification-postbacks-for-brands.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.
