Postback URL Validator

Validate, build, and test postback URLs for affiliate marketing tracking. 30 validation rules across 26 platforms.

30Validation Rules
26Platforms
40+Macro Samples
12Error Codes

Validate Your Postback URL

Checks S2S postback URLs?A server-side URL that fires when a conversion occurs, passing data directly between servers without browser cookies. Learn more → used in affiliate marketing tracking. Paste any advertiser postback?Fired by the advertiser TO Everflow when a conversion happens. Uses real values like transaction_id=abc123. Learn more → or partner postback?Fired by Everflow TO the partner's server. Uses macros like {sale_amount} that get replaced with real values. Learn more → URL to get instant diagnosis.

Common Postback Errors and Solutions

These are the most frequent postback URL mistakes based on analysis of 741 implementation calls, 488 support tickets, and 50,336 customer conversations. How to test postbacks →

Postback validation errors ranked by frequency with causes and fixes
ErrorCauseFix
Missing transaction_id?A unique click ID that links each conversion back to the original click for attribution. Learn more →Required parameter not included, or set to a literal string like transaction_id=transaction_idAdd &transaction_id={transaction_id} — the macro gets replaced dynamically with the click ID
Platform macro mismatchUsing Cake #token# or Impact {PascalCase} syntax in an Everflow URLEverflow uses {curly_brace} syntax. See the Platform Reference for correct macro mappings
Missing nid?Network ID — your unique Everflow account identifier. Routes conversions to the correct network. Find it in Control Center → Platform Configurations. (Network ID)The nid parameter routes conversions to your Everflow accountAdd &nid=YOUR_NID — find it in Control Center → Platform Configurations
HTTP instead of HTTPSNon-secure URL causes silent failures on many platformsChange http:// to https:// — Everflow Error Code 6
Duplicate conversionsSame transaction fires twice — common with Shopify/Stripe + JS SDKAdd &order_id=ORDER_ID for deduplication, or enable "Reject Duplicate Conversion Order ID"
Amount in wrong parameterPassing revenue under adv1 instead of amountUse &amount=99.99 (decimal, no currency symbol). adv1-adv5 are for custom data only

Frequently Asked Questions

Q
What is a postback URL in affiliate marketing?

A postback URL (also called a server-to-server callback or S2S postback) is a server-side URL that fires when a conversion event occurs. It passes conversion data — like transaction ID, payout amount, and offer ID — from the advertiser's server directly to the affiliate tracking platform, without relying on browser cookies or pixels. This makes postbacks more reliable than pixel-based tracking, especially across devices and in cookie-restricted environments.

Q
What is the difference between an advertiser postback and a partner postback?

An advertiser postback (AP) is fired by the advertiser's server TO Everflow when a conversion happens — it sends data inbound. It uses actual values like transaction_id=abc123 and amount=49.99. A partner postback (PP) is fired by Everflow TO the partner's server — it sends data outbound. It uses Everflow macros like {sale_amount} and {payout_amount} that get dynamically replaced with real values at fire time.

Q
Why is my postback not firing or tracking conversions?

The most common reasons: (1) transaction_id is missing, empty, or set to a literal string instead of a dynamic value. (2) The server IP is not whitelisted. (3) Using HTTP instead of HTTPS. (4) The nid (Network ID) is wrong or missing. (5) Using POST instead of GET — Everflow requires GET requests for S2S postbacks. (6) Partner postbacks do NOT fire for On Hold conversions — they only fire when approved.

Q
What macros does Everflow use in postback URLs?

Everflow uses {curly_brace} macro syntax. Common macros include: {transaction_id} (click ID), {sale_amount} (conversion revenue), {payout_amount} (partner payout), {offer_id}, {affiliate_id}, {sub1} through {sub5} (sub-parameters), {order_id} (deduplication), {event_id}, and {random} (cache busting). These macros get replaced with real values when the postback fires.

Q
How do I set up clickless (offline) conversion tracking?

Clickless conversions don't require a prior click — they use oid (offer ID) and affid (affiliate ID) instead of transaction_id to attribute conversions. Both parameters are required. Common use cases: coupon code tracking, call center leads, manual API imports, and CRM-triggered conversions. Example URL: https://domain.com/?nid=123&oid=456&affid=789&coupon_code=SAVE20

Build a Postback URL

Select your scenario, enter your base info, and choose parameters. The tool generates a correctly formatted postback URL.

Step 1: Choose your scenario

Step 2: Base info

Step 3: Select parameters

Step 4: Your postback URL

Enter your domain and nid above to generate a URL

Macro Simulator

Paste a postback URL with {macros}?Placeholders like {transaction_id} or {sale_amount} that Everflow replaces with real values when the postback fires. Learn more → to see exactly what Everflow sends when a real conversion fires. Edit the sample values to test different scenarios.

Postback Error Codes

Everflow error codes related to postback tracking, with causes and fixes. Full error code reference →

12 postback-related Everflow error codes with causes and solutions
CodeErrorWhat Went WrongQuick Fix
5Above Lookback WindowConversion too long after clickIncrease lookback in Offers → Attribution (default 30 days)
6Non-HTTPS TrafficUsing HTTP instead of HTTPSChange http:// to https://
8Duplicate ConversionSame transaction fired twiceEnable "Allow Duplicate" for subscriptions, or fix pixel
11Invalid NetworkMissing or wrong nidAdd &nid=YOUR_NID from Control Center
12Invalid Transaction IDtransaction_id missing or malformedVerify click script; check _ef_transaction_id cookie
13Invalid ClickClick not found (>90 days or never generated)Run Click Report filtered by TID
14Offer MismatchClick offer ≠ conversion offerVerify Offer IDs match in both reports
15Invalid OfferOffer doesn't existCheck Offers → Manage
20Below LookbackConversion too fast after click (bot?)Check min conversion time in Offers → Attribution
21Invalid Verification TokenToken missing or wrongCheck Advertisers → Settings → Advanced
25Unmatching Event IDevent_id doesn't belong to this offerCheck Offers → Events tab
26Postback Control BlockBlocked by a postback control ruleCheck Offers → Postback Controls

Postback URL Templates

Copy-paste starter URLs for common postback scenarios. How to set up postback URLs →

1. Minimal (required only)

https://YOUR_DOMAIN/?nid=YOUR_NID&transaction_id={transaction_id}

2. E-commerce (RPS/CPS)

https://YOUR_DOMAIN/?nid=YOUR_NID&transaction_id={transaction_id}&amount=SALE_AMOUNT¤cy=USD

3. Event tracking

https://YOUR_DOMAIN/?nid=YOUR_NID&transaction_id={transaction_id}&event_id=EVENT_ID&amount=SALE_AMOUNT

4. Clickless (coupon/offline)

https://YOUR_DOMAIN/?nid=YOUR_NID&oid=OFFER_ID&affid=AFFILIATE_ID&coupon_code=CODE

5. Full e-commerce

https://YOUR_DOMAIN/?nid=YOUR_NID&transaction_id={transaction_id}&amount=149.99¤cy=EUR&event_id=3&coupon_code=SAVE20&adv1=premium&order_id=ORD-456789&email=user%40example.com

6. Mobile app install (iOS)

https://YOUR_DOMAIN/?nid=YOUR_NID&transaction_id={transaction_id}&idfa=IDFA_VALUE&app_id=com.example.app

Platform Macro Cheat Sheet

Macro syntax reference for 26 affiliate marketing platforms. Each platform uses different delimiters — using the wrong syntax causes total tracking failure. Full platform configurations →

Troubleshooting Tips

Insights from 741 implementation calls and 488 support tickets. Testing conversion tracking →

Partner Postbacks do NOT fire for On Hold conversions. Partners can only see them in the On Hold report. Postbacks fire when conversions are approved. Learn more →
Direct Linking requires the JavaScript SDK. Standard S2S postbacks won't work without redirect links. If using Direct Linking, ensure EF.click() is installed on the landing page. JS SDK guide →
Everflow needs GET requests. If your platform sends POST, the postback will silently fail. Many platforms (Stripe, CheckoutChamp) default to POST.
If the postback looks correct but isn't working: Check firewall/IP whitelist settings. 68 out of 629 postback-related support conversations involved IP whitelisting issues. Everflow server IPs →
To troubleshoot: Ask the advertiser to share the exact URL they fired. Compare it parameter-by-parameter with what Everflow expected.
Reversal postbacks use order_id, NOT transaction_id. Reversals reject the entire conversion — they don't handle partial refunds natively. Reversal setup guide →
Stripe/Shopify + JS SDK can double-count. If both the SDK and a server integration fire, use Postback Controls to deduplicate. Postback Controls →