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

# Why a conversion was reversed

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

A reversal means the advertiser's side took back a conversion after reporting it, our traffic checks rejected the user after they were paid or our team reversed it by hand. Read the reason on the conversion first. With no reason, it usually came from the advertiser's side.

## What you see

| What you see | What it means | What to do |
|---|---|---|
| A postback with `status=reversed` | A conversion you were paid for was taken back | Deduct the `user_payout` it carries from the user in `sub_id` |
| `reason=Advertiser rejected` | The advertiser's side rejected it after reporting it | Nothing on your side for one. Many on one offer: tell us |
| A reason about devices, accounts, VPN or proxy | Our traffic checks rejected the user and took back their recent conversions | Read **Traffic Quality** and look at where that user came from |
| No `reason` | The reversal came without one and we haven't added one yet | Check **Conversions** later: we add reasons when we learn them |

## Where to read the reason

- **Conversions**: under the `reversed` status, with the date it was reversed on.
- **Reporting**, then **Flight Recorder**: open the conversion and read **Reversed because**.
- On the postback: `reason`, or `{reason}` in your URL. Up to 200 characters, in plain words.

Reasons are written by our team, never copied from the advertiser's side. When we set one for an offer on your account, reversals on that offer that arrive over the next 30 days carry it too.

## Checks, in order of likelihood

### The advertiser's side took it back

Advertisers check their own installs and events after the fact, and a reversal can arrive weeks after the conversion.

**How to confirm:** the reason is "Advertiser rejected" or empty, and the reversals sit on one or a few offers.

**Fix:** none needed for a few. If one offer reverses a large share of its conversions, send us the offer ID and we'll look into it.

### Our traffic checks rejected the user

When our checks reject a user, for example several accounts on one device, we can also take back that user's recent paid conversions. Their later conversions show as `rejected` and aren't posted back.

**How to confirm:** the reason names what we found, such as "Multiple accounts detected on the same device", and the same `sub_id` appears under **Reporting**, then **Traffic Quality**.

**Fix:** look at how that user reached your offers, and stop paying rewards to accounts that share a device. Don't coach users around the checks. If you think we got a real user wrong, send us their `sub_id`.

### Our team reversed it by hand

Our team can also reverse a conversion by hand. It always carries our reason.

**How to confirm:** the reason explains it in a sentence.

**Fix:** reply to us with the action ID if anything in it is wrong.

## What a reversal takes back

- Exactly what that conversion paid you, not the offer's price today.
- One step at a time: on a multi-step offer, the other steps stand.
- It's dated on the day of the conversion it reverses, so that day's earnings drop in your reports, even when the reversal arrives weeks later.

> **Deduct what you credited, once.** The reversal repeats the conversion's `action_id` and, when it can be matched to it, the `user_payout` you credited. Dedupe on `action_id` and `status` together, or you'll drop the reversal of a conversion you already paid out.

## Networks

Network postbacks for a reversal carry `status=reversed` and the original `action_id`, without a `reason`. Read the reason in your **Flight Recorder**, under **Reversed because**.

## Send us this

- The email you sign in with
- The action IDs, or the offer ID if it's a pattern
- The `sub_id` of each user involved
- When the conversions happened, with your time zone
- What you expected and why
