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

# Send a test postback

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

Open a saved postback and choose **Send test postback**. We send one sample conversion to that row's URL, signed and built the same way a real one is, with `test=true` added. You see at once whether your server accepted it.

## Before you start

- A postback secret. Publishers can't send a test without one, for the same reason real postbacks aren't sent without one.
- A saved row. The test uses what's saved, so save your changes first.
- A public address. Tests to `localhost`, a private network address or anything else we can't reach from the internet are refused. Use a tunnel or a staging server.

## Steps for publishers

### Postbacks, then Edit

Open **Postbacks**, find the row on the **Conversions** or **Events** tab and choose **Edit**.

### Send test postback

Choose **Send test postback**. It works on Inactive rows too, so you can test a URL before you switch it on.

### Read the answer

A message says your endpoint accepted the test, with the HTTP status it answered. If it says your endpoint answered with an error status, such as 500, the request reached your server and your code refused it: check your logs.

### Check it worked

Your server logged one request with `test=true`, the `verifier` passed and no user was credited.

## What the test sends

Every test carries these values:

| Parameter | Test value |
|---|---|
| `action_id` | `test_` followed by a random ID |
| `sub_id` | `test_user_123` |
| `offer_id` | The row's offer, or `aff_test_offer` on a global row |
| `status` | `completed` |
| `payout` | `1`, a sample. Nothing is credited from it |
| `conversion_name` | On a specific row, a real step of its offer: the last step for a Conversion row, the chosen event for an Event row or the first step for Any event; the offer's title when it lists no steps. On a global row, `Install` |
| `goal_id` | That step's goal ID, when it has one |
| `is_offer_complete` | `true` on a Conversion row, `false` on an Event row |
| `test` | `true` |
| `verifier` | Signed with your current secret |

Macros in your URL are filled in from these values, exactly as on a live postback.

> **A test creates nothing.** No conversion, no balance and no report row. It won't show in **Conversions** or **Flight Recorder**, so read your own server log.

## What a passing test doesn't prove

- **That live conversions use this row.** A real conversion goes to the one row that applies to it, which may be another row. See [which postback fires](https://www.affiliateos.ai/help/postbacks/global-or-offer-specific).
- **That the row is on.** Inactive rows pass tests and still receive nothing live.
- **That you credit correctly.** The test is always `completed` with a sample payout. Check how you handle `reversed` and `user_payout` against the [parameter reference](https://www.affiliateos.ai/help/postbacks/postback-parameters).

## Steps for networks

### Workspace settings, then Test Postback

Under **Postback Configuration**, save a **Postback URL** first; **Test Postback** works once one is saved. It sends `action_id=test_…`, `sub_id=test_user_123`, `offer_id=test_offer_123`, `status=completed`, `payout=1.00`, the current time as `clicktimestamp` and `test=true`, signed if you have a **Webhook Secret**.

### Check it worked

The page says the test was sent, or shows the error your URL returned. A pass shows your URL answers; live postbacks follow the rules in [which postback fires](https://www.affiliateos.ai/help/postbacks/global-or-offer-specific).

## If the test fails

| What you see | What it means | What to do |
|---|---|---|
| No postback signing key yet | Your account has no postback secret | Create one under **Postbacks** |
| "Test postbacks can only be sent to a publicly reachable http(s) address." | The URL points somewhere we can't reach | Use a public HTTPS address |
| Your endpoint answered 401 | Your signature check refused it | See [Verify a signed postback with HMAC-SHA256](https://www.affiliateos.ai/help/postbacks/verify-postback-secret) |
| Your endpoint answered 404 or 500 | Your server got it and failed | Check the path and your server log |
| A timeout or connection error | Nothing answered | Check DNS, firewall and that the server is up |
