Partner integration
Send traffic to VPN.com: link formats, the parameters we read, and the postback we send when a sale is confirmed.
You send us visitors. When one buys a VPN, we tell your server and you earn a share.
How it works
- You publish a link that carries your own tracking id.
- Someone clicks it and lands on VPN.com. We remember you sent them, for 30 days.
- If they buy a VPN, we call your server and hand your tracking id straight back, so you know which click earned the commission.
Where your traffic lands
Two ways to send us visitors. They track identically. The only difference is who chooses the page.
1. A landing page we set up for you
https://www.vpn.com/go/YOUR_PARTNER_ID/DESTINATION?clickid=YOUR_CLICK_IDExample: https://www.vpn.com/go/acme/vpn?clickid=a1b2c3
| Part | What it is |
|---|---|
acme | Your partner id. We give you this when your account is set up. |
vpn | The page we send your visitors to. We set this up with you. |
clickid=a1b2c3 | Your own id for this click. You choose it, up to 120 characters. We hand it back on every sale so you can match our numbers to yours. |
Why this one: we can move your traffic to a better page whenever we find one, and every link you have already published follows automatically. You change nothing.
2. Any page on the site
https://www.vpn.com/any/page/?p=acme&clickid=a1b2c3Pick any page on vpn.com, a provider review or a best-of guide, and add your id to it. Same tracking, same postback. The trade-off: you have fixed the destination yourself, so changing it later means reissuing your links.
Two ids, and which is which
This is the one thing people get wrong.
| Who chooses it | Do you send it? | |
|---|---|---|
Your click id clickid | You | Yes, in every link. |
Our click id click_uid | Us | No. We generate it. It is in the postback only so you have a reference to quote if you ask us about a sale. |
You only ever send your id. Everything you reconcile on comes back to you.
Parameters
| Parameter | Send as | Format | Purpose |
|---|---|---|---|
| Partner id | p or pub_id | A-Za-z0-9_-, max 40 | Attribution. Window: 30 days. |
| Click id | clickid or subid | A-Za-z0-9_.-, max 120 | Returned in the postback on every sale, so you can reconcile. |
| Label | subid | A-Za-z0-9_.-, max 120 | Optional. Creative, placement or campaign. Returned unchanged. |
If you send both, clickid is used. If you send only subid, it serves as both your click id and your label.
Only the names above are read. Common network defaults are not:partner, s1, s2, s3, s4, s5, sub_id, aff_sub.
Postback
We send a postback when a sale is confirmed. Not on a click, and not on a lead. Give us a URL containing any of these placeholders and we substitute them.
| Placeholder | Value |
|---|---|
{click_uid} | Ours. Our reference for the same click. You never send this; we include it so you can quote it back to us about a specific sale. |
{source_click_id} | Yours. The click id you sent. This is the one you reconcile on. |
{source_sub_id} | Yours. The optional label you sent, returned unchanged. |
{transaction_id} | The provider's id for the sale. Use it to deduplicate on your side. |
{payout} | Gross commission on the sale. Your share is set by your agreement, not by this field. |
{sale_amount} | What the customer paid. |
{currency} | ISO 4217, e.g. USD. |
{status} | The provider's status for the sale, where they supply one. |
{source_partner} | Your partner id, echoed back. |
Your URL must include {source_click_id} or{click_uid} — without one of them a postback cannot be matched to anything, so we do not send it.
Delivery
- Up to 6 attempts, backing off 1 minute, 4 minutes, 16 minutes, 1 hour, 4 hours.
- Retried on network error, 5xx, 408, 429. Not retried on 4xx other than 408 and 429.
- Each sale is delivered at most once, keyed to the provider's transaction id.
Going live
- Agree your partner id and destination name with us.
- Send one test click through your live link and confirm with us that it arrived.
- Confirm which placeholder carries your click id.
Step 3 matters: a mismatch means every postback arrives with an empty value.
Questions: web@vpn.com.