Product
Publishers
Advertisers
Networks
Help
Pause animations
Browse help topics
Reference PublisherNetwork

Postback parameters and macros, one by one

Updated

View as Markdown

Every postback is a GET request to your URL with the conversion in the query string. Publisher postbacks always carry action_id, sub_id, offer_id, status, payout, conversion_name, is_offer_complete and a verifier; the rest appear when they apply.

See also: Signed postbacks

On this page

Which field is your money

The lane decides what payout means. Read the right one before you credit anything.

LaneYour earningsThe player’s reward
Offer API, Top Offers Feed, Offer Linkspayoutuser_payout
Hosted Offerwall (placement=offerwall)revenuepayout and user_payout

Track your revenue from revenue whenever it’s present, otherwise from payout. Don’t add the two together.

Publisher parameters

Example: the install postback Pebble Rewards gets for Harbor Blocks, through the Offer API. The values are made up.

Text
GET https://api.pebble.example/afos
  ?action_id=act_5Kq2Wc
  &sub_id=u_48213
  &offer_id=aff_7c2e91b04d3a
  &status=completed
  &payout=4.2
  &user_payout=1.5
  &offer_name=Harbor+Blocks
  &clicktimestamp=2026-10-29T19%3A06%3A00Z
  &conversion_name=Install
  &goal_id=1
  &offer_id_numeric=136539454590266
  &goal_id_numeric=83339613210995
  &is_offer_complete=false
  &verifier=9f86d081884c7d659a2feaa0c55ad015…
ParameterSentMeaning
action_idAlwaysThe ID of this conversion. A reversal repeats it.
sub_idAlwaysThe user ID from your tracking link, or the uid you opened the wall with.
offer_idAlwaysOur offer ID, as in the Offer API.
offer_id_numericUsuallyThe same ID as an integer, matching numericId.
statusAlwayscompleted or reversed.
payoutAlwaysYour earnings for this step, in USD. On the Hosted Offerwall, the player’s reward.
revenueWallYour earnings for this step on the Hosted Offerwall, in USD.
user_payoutWith a rewardThe player’s reward in USD. Credit it as sent.
conversion_nameAlwaysThe step’s name: the goal’s name in the Offer API.
offer_nameUsuallyThe offer’s title. Store it: a pulled offer can’t be looked up later.
goal_idPer stepMatches goals[].id in the Offer API.
goal_id_numericWith goal_idMatches goals[].numericId.
is_offer_completeAlwaystrue on the offer’s last step.
clicktimestampUsuallyClick time as the advertiser’s side reported it. The format varies and it can be empty, so parse it with care.
placementWallAlways offerwall. Marks a wall postback.
manual_creditHand credits1 on a credit that isn’t a completed step: a goodwill credit from our team, or one you sent from User Credit where it’s on for your account.
reasonSome reversalsWhy the conversion was taken back, in plain words, up to 200 characters. Never on credits.
sub1 to sub10If on the linkYour own values from the tracking link, on credits and reversals alike. Kept for 90 days.
testTests onlytrue on a test from Send test postback. Don’t credit it.
verifierAlwaysThe signature: HMAC-SHA256 of the URL without it.

All values are strings in the query. Amounts have no trailing zeros: 4.2, not 4.20. New parameters can appear; verify the URL as received and every one stays covered by the signature.

Where user_payout comes from

  • The advertiser set a reward for the step: user_payout is that reward, including when it’s 0.
  • On an account paid per step, user_payout always equals your payout on Offer API, feed and link postbacks.
  • No reward set: it’s a suggested share of your payout, 0 on the install step. Where your account shows it, change the share under My Profile, then API user reward. Your payout doesn’t change, and your Hosted Offerwall keeps its own reward setting.
  • A reversal repeats the user_payout its credit was sent with, so deduct exactly what you added.

Macros

Put a macro anywhere in your postback URL and we replace it with the value. Macros work in any case ({SUB_ID} works too). Any other {placeholder} is sent exactly as you typed it.

MacroHolds
{sub_id}sub_id
{transaction_id}action_id
{payout}payout
{revenue}Your earnings on every lane: revenue on the wall, payout elsewhere
{user_payout}user_payout, empty when none is set
{offer_id}, {offer_id_numeric}The offer ID and its integer form
{goal_id}, {goal_id_numeric}The goal ID and its integer form, empty on offers with no goals
{conversion_name}, {offer_name}The step’s name and the offer’s title
{status}completed or reversed
{reason}The reversal reason, empty otherwise
{purchase_type}purchase, deposit or subscription when the step is one, else empty. Macro only
{purchase_amount}The one dollar price the step’s name asks for, such as 9.99, else empty. Macro only
{sub1} to {sub10}Your own values from the link, empty when the link had none

Every parameter in the first table is also added to your URL under its own name, with or without macros.

Network postbacks

The URL under Workspace settings receives a shorter set, added to the URL as is (no macros).

ParameterSentMeaning
action_idAlwaysThe conversion’s ID. A reversal repeats it.
sub_idAlwaysThe value from the tracking link.
offer_idAlwaysOur offer ID.
statusAlwayscompleted or reversed.
payoutAlwaysYour earnings in USD.
user_payoutWith a rewardThe player’s reward in USD.
conversion_nameAlwaysThe step’s name.
offer_nameUsuallyThe offer’s title.
goal_idPer stepThe goal’s ID.
is_offer_completeAlwaystrue on the last step.
clicktimestampUsuallyClick time as the advertiser’s side reported it.
verifierWith a secretThe signature. Without a secret, postbacks are unsigned.
Signature. A code made with your postback secret and sent with each postback, so your server can check it came from us.What is a signature?

Support

Still stuck? Write to us.

One address for every question: hello@affiliateos.ai. Put the details from this list in your first message so we can find the click or conversion without asking you for them again.

Put these in your message

  1. 01The email you sign in with
  2. 02Your role: publisher, advertiser or network
  3. 03The offer ID
  4. 04The click ID or action_id
  5. 05The time it happened, with your time zone
  6. 06What you expected to happen

Looking for a reward in an app? Ask that app's support. It credits your reward, so only it can see your balance.

Search help