Impact · AsyncAPI Specification
Impact Webhooks
Version
View Spec
View on GitHub
AffiliatesPartnershipsPerformance MarketingCommissionTrackingCreator EconomyPartner ManagementReferralAttributionPayoutsMarketingAdvertisingMCPAgentsAsyncAPIWebhooksEvents
AsyncAPI Specification
name: Impact Event and Webhook Surface
description: The event-driven surface impact.com publishes - Advocate webhooks with a named
event catalog and a subscription management API, plus Brand/Partner Event Notification
postbacks. impact.com publishes no AsyncAPI document for any of it.
generated: '2026-08-13'
method: searched
source: https://integrations.impact.com/integration-guides/for-brands/advocate/advocate-api/api-webhooks-for-advocate-programs
asyncapi:
published: false
probed:
- url: https://integrations.impact.com/asyncapi.yaml
status: 404
- url: https://api.impact.com/asyncapi.json
status: 404
note: No AsyncAPI document is published on any impact.com host or in the saasquatch GitHub
organization. The event surface is real and documented, but only in prose plus one OpenAPI
document describing the inbound postback shape.
surfaces:
- name: Advocate Webhooks
product: Advocate
style: webhook (provider POSTs to a subscriber URL)
docs: https://integrations.impact.com/integration-guides/for-brands/advocate/advocate-api/api-webhooks-for-advocate-programs
security_docs: https://integrations.impact.com/integration-guides/for-brands/advocate/advocate-api/webhook-security-for-advocate-programs
management_api: openapi/impact-brand-advocate-webhook-v13-openapi.yml
management_operations:
- GET /{tenant_alias}/subscription
- PUT /{tenant_alias}/subscription/{url}
- DELETE /{tenant_alias}/subscription/{url}
- POST /{tenant_alias}/subscription/{url}/test
envelope_fields: [id, type, tenantAlias, live, created, data]
events:
- name: user.created
description: A participant was created in the Advocate program.
- name: user.reward.balance.changed
description: A participant's reward balance changed.
- name: coupon.created
description: A coupon was created for a participant.
- name: reward.created
description: A reward was created.
- name: referral.started
description: A referral was started.
- name: referral.converted
description: A referral converted.
- name: export.created
description: A data export job was created.
- name: export.completed
description: A data export job finished.
- name: test
description: Test event emitted by the subscription test endpoint.
replay: subscription test endpoint only
- name: Partner Event Notifications
product: Partner API
style: postback (impact.com GETs or POSTs to a partner-configured URL)
docs: https://integrations.impact.com/partner-api-reference/reference/webhooks/event-notifications
openapi: openapi/impact-partner-eventnotifications-v16-openapi.yml
operations: [receiveEventNotificationGet, receiveEventNotificationPost]
delivery_modes:
- mode: GET
description: Query-string parameters, pixel-style integrations.
- mode: POST
description: JSON body shaped by the body template configured in Event Notifications
settings.
payload_fields: [campaign_id, action_id, status, payout, items]
item_fields: [sku, qty, amt]
acknowledgement: any 2xx; impact.com will not retry after a 200
retry_policy: not published
named_event_catalog: false
note: The payload is template-driven - what arrives depends on the URL/body template the
partner configures - so there is no fixed event type vocabulary, only a common field set.
- name: Brand Event Notification Postbacks
product: Brand API
style: postback
docs: https://integrations.impact.com/brand-api-reference/reference/webhooks
setup_docs:
- https://integrations.impact.com/brand-api-reference/reference/webhooks/enable-postbacks
- https://integrations.impact.com/brand-api-reference/reference/webhooks/set-up-postbacks-for-partners
triggers: [action, click, other tracked events]
named_event_catalog: false
openapi: none
operational_support:
egress_ip_ranges: https://integrations.impact.com/public-ip-addresses
note: impact.com publishes the IP ranges its postback and webhook traffic originates from,
so subscribers can allow-list.
findings:
- Only the Advocate side has a named event catalog with a stable envelope and a subscription
management API. The much larger Brand and Partner postback surface is template-driven with
no event type vocabulary and no published retry policy.
- There is no AsyncAPI document anywhere, so none of this is machine-readable as an event
contract.
provider_action: Publish an AsyncAPI 3.0 document for the Advocate event catalog, which already
has everything AsyncAPI needs - named events, a stable envelope and a subscription API - and
a retry/redelivery policy for the postback surface.