> AffiliateOS Help Center. Index of every article for AI tools: https://www.affiliateos.ai/help/llms.txt

# How to set up a postback URL

Postbacks and conversions · For publishers, networks · Updated 30 October 2026
Web version: https://www.affiliateos.ai/help/postbacks/set-up-postback-url

Create your postback secret first, then add one **Conversion** postback set to **Global**. That single row receives every step of every offer you run. Send a test before any user taps a link.

## Before you start

- A public URL on your server that reads query parameters and answers HTTP 200. Use HTTPS: every postback carries your user's ID.
- For publishers, an owner or admin login. Only they can create the postback secret.

## Publishers

### Postbacks, then Create postback secret

Open **Postbacks**. While no secret exists, the page says none of your postbacks are being sent. Choose **Create postback secret** and copy the value, which starts with `ps_`. It's shown once.

> **No secret, no postbacks.** We never send a publisher postback unsigned. Until a secret exists, conversions still count in your reports, but nothing reaches your server, however your rows are set up.

### Add postback

Choose **Add postback**. Set **Status** to Active, **Postback Type** to Conversion and **Postback Level** to Global. A global Conversion row takes the first step of every offer and every later step too, unless you add a row for events later.

### Postback URL

Paste your URL. The buttons above the field add macros, such as `{sub_id}`, `{transaction_id}` and `{user_payout}`, which we replace with each conversion's values. Example, for Pebble Rewards:

```text
https://api.pebble.example/afos?user={sub_id}&txn={transaction_id}&reward={user_payout}
```

We also add every [postback](https://www.affiliateos.ai/glossary#postback) parameter to the URL under its own name, so a URL with no macros works too. Give your own parameters different names from ours, as above: one of ours replaces a parameter of yours with the same name.

### Save

Choose **Save**. The URL must start with `http://` or `https://`.

### Send test postback

Saving takes you back to the list. Choose **Edit** on the row, then **Send test postback**. It goes through the same signing a real conversion uses and adds `test=true`, so log it and don't credit it. [Send a test postback](https://www.affiliateos.ai/help/postbacks/send-test-postback) covers what it sends.

### Check it worked

Your server logged the test, the `verifier` passed your check and no user was credited. After your first real conversion, open **Reporting**, then **Flight Recorder**: the delivery reads sent.

## Networks

### Workspace settings, then Generate Webhook Secret

Under **Webhook Secret**, choose **Generate Webhook Secret** and copy it now. It isn't shown again. With a secret, every postback we send carries a `verifier`; without one, network postbacks go out unsigned.

### Postback URL, then Save Changes

Under **Postback Configuration**, paste your URL into **Postback URL** and choose **Save Changes**. This global URL takes conversions for every offer. We add the parameters to it as they are: macros aren't replaced on network postbacks, so write the URL without them.

### Test Postback

Choose **Test Postback**. It sends sample values with `test=true` to the saved URL.

### Check it worked

Your server logged the test and the `verifier` passed. Live deliveries show under **Reporting**, then **Flight Recorder**.

## Mistakes that stop postbacks

- **A row for events and nothing else.** Event rows only take later steps, so installs and other first steps go nowhere. The form warns you. Keep a Conversion row.
- **A fallback URL you thought still worked.** If our team set a postback URL on your account, it's used only while you have no rows of your own. Once you save any row, your rows decide.
- **A literal `{SUB_ID}` in your links.** Every conversion then posts back with the same user ID, and you can't tell who to credit. Put each user's own ID in `sub_id`.

The [parameter reference](https://www.affiliateos.ai/help/postbacks/postback-parameters) lists every value we send, and [verifying with your secret](https://www.affiliateos.ai/help/postbacks/verify-postback-secret) has the code.
