Admoji can notify an external system when something happens in your account, and there are two separate ways to do it: postbacks and webhooks. They are configured in different places, fire on different things, and are not interchangeable. This article explains which one you need.
Quick comparison
| Postbacks | Webhooks | |
|---|---|---|
| Built for | Reporting conversions and commission to an affiliate network | Syncing events into your own backend or a third-party tool |
| Where you set it up | In the CRM, per campaign | Through the API — there is no screen for it in the CRM |
| Fires on | Order status changes, plus partial customers | Transactions and recurring events |
| Scope | One active configuration per campaign | One event type and one URL per webhook, scoped to a campaign or to the whole account |
| Payload | Tokens you pick, as query parameters or as a JSON body | A fixed JSON body per event type |
| You need an API key | No | Yes, to register and manage them |
Postbacks
A postback is a server-to-server call to a URL your affiliate network gives you. Its job is to tell the network that a click turned into a conversion, and how much commission it earned. You configure it inside the campaign, under CRM > Campaigns > Edit > Postback Configuration.
What is worth knowing before you choose it:
The configuration lives on the campaign, and only one active configuration per campaign is used.
It fires on order status changes. You pick which statuses trigger it: Success, Declined, Error, Pending, Cancelled, Chargeback and Partial, or All Status Events.
It fires for every order of the campaign, not only the initial sale — upsells and rebills trigger it too. Check with your network how it handles those calls, since each one can carry a commission.
You choose which fields go out — customer data, order data, affiliate and click IDs, commission, campaign — and whether they are sent as URL query parameters or as a JSON request body.
Commission is calculated for you, as either a fixed amount (CPA) or a percentage (CPC).
A postback is considered delivered on any 2xx response, and the call times out after 30 seconds.
Each status change sends one call. Every attempt is logged with its response, so you can see what the network answered.
You do not need the order to have an affiliate attached — if a campaign has an active configuration, matching orders fire a postback.
UserClickID in the Add Order call, matching a click recorded earlier. Without it the network cannot match the conversion back to a click.Webhooks
A webhook is a call Admoji makes to your own endpoint every time one of its events happens. Use it when you want your systems to stay in sync with the CRM — pushing transactions into a data warehouse, reacting to cancellations, triggering your own fulfillment or notification logic.
What is worth knowing before you choose it:
Webhooks are registered, listed, edited and deleted through the API. There is no webhook screen in the CRM, so you need an API key to work with them.
There are four event types:
TransactionCreated,RecurringApproved,RecurringDeclinedandRecurringDeactivated. The API also acceptsRmaCreated, but no events of that type are sent.Each webhook listens to one event type and one URL. Give it a campaign to scope it to that campaign, or leave the campaign out to receive the event across the whole account. You can register several webhooks for the same event, as long as the URL or the campaign is different.
Your endpoint must be served over HTTPS.
Only an HTTP 200 response counts as a successful delivery. A failed event is not sent again: it is recorded in the webhook's last responses, and the next delivery for that webhook is delayed, with the delay growing the longer the endpoint keeps failing. If your endpoint was down, fetch what you missed through the API.
You can send a sample payload to your endpoint at any time, and pull the last responses Admoji received from it, to confirm the integration works.
A webhook only receives events that happen after you register it.
Which one do I need?
Your affiliate network needs to be told about conversions — use a postback.
You want commission reported and calculated for you — use a postback.
Your own application needs to know about every transaction as it happens — use a webhook.
You need to react to a subscription being cancelled, rebilled or declined — use a webhook.
You want a different destination per campaign for the same kind of event — both support it, postbacks always per campaign, webhooks whichever you register.
Related articles