Overview
Server-to-Server (S2S) postbacks are the backbone of conversion tracking in Everflow. When a conversion happensβa sale, signup, or leadβthe Advertiser's server sends a signal directly to Everflow's server with the conversion details. This method is more reliable than browser-based tracking because it doesn't rely on cookies or JavaScript.
S2S postbacks require two parties to coordinate: you set up the postback URL with the right parameters, and the Advertiser's technical team configures their system to fire that URL when conversions occur.
Control Center β Platform Configurations β Postback URLOffers β [Offer] β Tracking tab β Postback URLβ’ Same postback endpoint works for every Offer
β’ You want "set it and forget it" simplicity
β’ Different Offers just need different TIDs
β’ Testing/troubleshooting a specific campaign
β’ Offer requires unique parameters or format
β’ Working with multiple Advertisers per Offer
Accessing Postback URLs
β’ Testing or troubleshooting a specific campaign
β’ Offer requires unique parameters or format
β’ Working with multiple Advertisers per Offer
β’ Need to override the Global Postback for this specific Offer
β’ Same postback endpoint works for every Offer
β’ You want "set it and forget it" simplicity
β’ Different Offers just need different Transaction IDs
β’ Easier to share one consistent URL with technical teams
nid and transaction_id at minimum. The only difference is where you configure it.
Required Parameters
Common platform requirements:
β’ 29 Next: evclid={transaction_id}
β’ ClickBank (Affiliates): tid={transaction_id}
β’ ClickBank (Vendors): ef-transaction-id={transaction_id}
β’ Awin: clickRef={transaction_id}
β’ BuyGoods: subid={transaction_id}
β’ Konnektive / Checkout Champ: c1={transaction_id}
Before going live: Confirm with the Advertiser's technical team which parameter name their system expects, then use that exact name in your Default Landing Page URL.
Every S2S postback URL needs two parameters to successfully record a conversion:
Network ID (nid): Your unique identifier in Everflow. Find it in Control Center β Platform Configurations. This tells Everflow which account to route the conversion to.
Transaction ID (transaction_id): The click identifier that links the conversion back to the original click. The Advertiser must capture this value from your landing page URL and return it in the postback.
Passing Additional Conversion Information
Beyond the required parameters, you can pass additional data to enrich your conversion records. Use the reference below to find the right parameter for your use case.
&nid=123
&transaction_id={transaction_id}
tid= or click_id=, use that in your Default Landing Page URL.
&amount=99.99 (decimal, no currency symbol)
¤cy=USD (3-letter ISO code)
&coupon_code=SAVE20
×tamp=1706612400 (UNIX epoch seconds)
&user_ip=192.168.1.1
&user_agent=Mozilla/5.0... (URL-encoded)
&user_id=usr_abc123
&adv_event_id=5
&event_id=3
&event_name=Purchase
&adv1=premium&adv2=monthly
&product_type=) are ignored! Use adv1-5
&order_id=ORD-123456
&email=user%40example.com
&idfa=AEBE52E7-03EE-455A-B3C4-E57283966239
&google_aid=38400000-8cf0-11bd-b23e-10b96e40000d
&android_id=a1b2c3d4e5f6
&app_id=com.example.app
&verification_token=abc123secrettoken (max 50 chars)
&random={random} (generates 100,000,000 to 999,999,999)
&oid=123
&affid=456
Sending Sale Amounts for RPS/CPS Offers
If your Offer uses Revenue Per Sale (RPS) or Cost Per Sale (CPS) payout models, the postback must include the sale amount so Everflow can calculate dynamic revenue and payouts.
&amount= parameter.
For percentage-based models, add the amount parameter to your postback: &amount=99.99
If the transaction currency differs from your Offer's default currency, also include: ¤cy=USD (or the appropriate currency code)
Tracking Conversion Events
To track milestone events beyond the base conversionβlike signups, deposits, or subscription renewalsβyou need to include an event identifier in your postback.
There are two event parameters depending on your setup:
adv_event_id β Use this for Advertiser-Level Events that apply across multiple Offers from the same Advertiser. Find it in Advertisers β [Advertiser] β Events tab.
event_id β Use this for Offer-specific events unique to a single Offer. Find it in Offers β [Offer] β Events tab.
Examples Of Postback Parameters
These real-world examples show how to structure postback URLs for common use cases:
https://trk.example.com/?nid=123&transaction_id={transaction_id}
What this tracks:
β’ Conversion recorded and linked to original click
β’ Uses default payout configured in Offer settings
β’ No dynamic revenue calculation
https://trk.example.com/?nid=123&transaction_id={transaction_id}&amount=99.99¤cy=USD
What this tracks:
β’ Sale amount of $99.99 USD
β’ Everflow calculates revenue & payout based on Offer settings (e.g., 30% of sale amount)
β’ Useful for Revenue Per Sale (RPS) or Cost Per Sale (CPS) models
https://trk.example.com/?nid=123&transaction_id={transaction_id}&event_id=5&amount=19.99
What this tracks:
β’ Conversion for Event ID 5 (e.g., "Monthly Renewal")
β’ Sale amount of $19.99
β’ Separate payout configured for this specific event
event_id, conversion defaults to Base (ID=0). Always include it for milestone tracking!
https://trk.example.com/?nid=123&transaction_id={transaction_id}&idfa={idfa}&app_id=com.example.app
What this tracks:
β’ iOS IDFA for device-level attribution
β’ App ID for filtering reports by application
β’ Enables cross-device attribution if user clicks on mobile and installs on another device
https://trk.example.com/?nid=123&transaction_id={transaction_id}&amount=149.99¤cy=EUR&event_id=3&coupon_code=SAVE20&adv1=premium&adv2=annual&order_id=ORD-456789&email=user@example.com
What this tracks:
β’ Sale amount: β¬149.99
β’ Event ID 3 (e.g., "Premium Plan Purchase")
β’ Coupon code used: SAVE20
β’ Custom metadata:
adv1=premium, adv2=annualβ’ Order ID for deduplication: ORD-456789
β’ Customer email for email attribution or reporting
Use case breakdown:
This example shows a premium annual subscription purchase with a discount code. The
adv1 and adv2 parameters allow filtering reports by plan type and billing cycle. The order_id prevents duplicate charges if the postback fires twice.
β’ Space =
%20β’ @ (in emails) =
%40β’ & (in values) =
%26Example:
user@example.com becomes user%40example.com
Important Limitations
What this means:
β’ A postback sent after 90 days will fail with "Invalid Transaction ID" because the click no longer exists
β’ This affects industries with long sales cycles (enterprise software, real estate, financial services)
Solution for long sales cycles: Fire an "anchor" event (like a lead submission or signup) within the 90-day window. This locks in the Transaction ID, allowing later conversion events to be attributed correctly.
Additionally, be aware that Partner postbacks fire only onceβat the moment the conversion is initially received. If an Advertiser updates the payable amount later, Everflow does not automatically re-fire a postback to notify the Partner.
Troubleshooting Common Issues
If your postbacks aren't working as expected, check these common issues and solutions.
Check these common causes:
β’ NID is placeholder: Make sure &nid= contains your actual Network ID number, not "XXX" or other placeholder text
β’ Transaction ID expired: Click data is purged after 90 days. If no conversion occurred within 90 days of the click, the TID is invalid
β’ Verification token missing: If the Advertiser enforces a verification token, include &verification_token=YOUR_TOKEN
β’ Offer status inactive: Postbacks fail if the Offer Status is not "Active" at the time of conversion
β’ Whitelist blocking: If "Enforce Advertiser Whitelist" is ON, conversions from non-approved IPs/domains are rejected
Diagnose with Investigator: Use the Investigator Tool with the Transaction ID to trace why the conversion was rejected.
For Revenue Per Sale (RPS) or Cost Per Sale (CPS) offers, Everflow needs the sale amount to calculate dynamic revenue and payout.
β’ Missing amount parameter: Add &amount=99.99 to your postback URL
β’ Currency mismatch: If the amount is in a different currency than the Offer default, add ¤cy=EUR (or appropriate code)
β’ Amount = 0 passed: Check that the Advertiser's system is actually passing the sale value, not a literal zero
Pro tip: Set Revenue to 100% in Offer settings to capture the full sale amount, then configure Payout as a separate percentage or flat fee.
Duplicates occur when the same conversion signal fires multiple times (e.g., user refreshing a thank-you page).
β’ Disable duplicate conversions: In Offer settings, turn OFF "Allow Duplicate Conversions"
β’ Implement deduplication: Ask the Advertiser to implement server-side deduplication to prevent multiple postback fires
β’ Use order_id: Pass a unique &order_id= value β Everflow can use this for deduplication logic
Important: Everflow fires Partner postbacks once β at the moment the conversion is initially received.
β’ "One-shot" behavior: If an Advertiser updates the payable amount hours or days later, the system does NOT automatically re-fire a postback to the Partner
β’ Check Partner postback URL: Verify the Partner has correctly configured their postback endpoint in their system
β’ Test first: Use the postback testing workflow before going live
For late updates: If you need to notify Partners of amount changes, you'll need to manually trigger notifications or use the API.
Everflow only captures metadata passed through recognized parameters.
β’ Custom parameter names ignored: Parameters like &product_category=shirts or &lead_score=high are NOT captured
β’ Use ADV fields: Map your custom data to &adv1= through &adv5= β these ARE captured and appear in reports
β’ Example: Instead of &product_type=premium, use &adv1=premium
Reporting: ADV1-5 values appear in the Flex Report and can be used for filtering and segmentation.
If you're tracking milestone events but everything shows as "Base Conversion," you're missing event parameters.
β’ Event ID omitted: Without &event_id= or &adv_event_id=, ALL conversions default to Base (ID = 0)
β’ The postback won't fail: It successfully records β just to the wrong event! This causes misreported data and incorrect payouts
β’ Use the right parameter: adv_event_id for global Advertiser-Level Events across multiple Offers, or event_id for Offer-specific milestone events
Find Event IDs: Offers β [Offer] β Events tab, or Advertisers β [Advertiser] β Events tab
This error means Everflow couldn't match the Transaction ID to a valid click.
β’ TID parameter mismatch: The parameter name in your Default Landing Page (e.g., ?s1=) doesn't match what the Advertiser's system expects β they never captured/stored the TID
β’ TID not returned: Advertiser's postback is passing an empty or placeholder value instead of the actual Transaction ID
β’ 90-day expiration: The click occurred more than 90 days ago with no prior conversion, so the TID was purged
β’ Wrong bracket format: Everflow requires curly brackets {transaction_id} β square brackets [transaction_id] or parentheses won't work
Prevention: Always coordinate with the Advertiser on the exact parameter name before going live.
The Advertiser has enabled token-based authentication, and the postback is missing or has an incorrect token.
β’ Where to find the token: Advertisers β [Advertiser] β Edit β Advanced Options β Additional Information card
β’ Add to postback: Append &verification_token=YOUR_TOKEN_HERE to the URL
β’ Max 50 characters: The token can be up to 50 characters long
β’ Case sensitive: The token must match exactly β including capitalization
Note: Once enabled on an Advertiser, the token is required for ALL postbacks to that Advertiser's Offers.
β Conversions Error Code Reference Guide β Full list of error codes and solutions
β Clickless Conversion Tracking β For coupon codes and offline attribution
β Postback & Tracking Link Configurations β Platform-specific formats for third-party systems