vtid carries your click code on your own buy links, tid is the affiliate’s SubID. ElasticFunnels never writes to tid on a vendor buy link, so an affiliate’s own sub-tracking passes through untouched.How a JVZoo purchase flows
Your pages live on ElasticFunnels. The checkout, the upsell charges and the order sequence live on JVZoo. A buyer moves between the two like this:What you need
- A JVZoo seller account with your products added, and a JVZoo funnel that chains them (front end, then each upsell and downsell)
- Your pages on an ElasticFunnels domain
- About 20 minutes

The three numbers of a JVZoo buy link
Everything ElasticFunnels needs from JVZoo is in the buy link JVZoo generates for your product:

99 for USE YOUR OWN BUTTON!, which is what you want on ElasticFunnels pages, since your page draws its own button. JVZoo’s ready-made button designs further down use 1 to 15. It is always a number: a code with letters (for example from an affiliate link or a coupon) is not a button ID.
Step 1: Create the JVZoo merchant
- Go to Settings → Merchants and click Create Merchant
- Pick JVZoo as the Gateway, type a Name, and click Create & Configure. A guided setup opens: it asks for the fields below on Account details, then the product IDs (Step 2), the JVZIPN URL (Step 4) and a live test (Step 5), and resumes where you left off (Continue setup on the merchant’s row). In the merchant’s full editor (Open full editor) the same fields are on General information.

- JVZoo Funnel ID: the first number of your buy link (
120456above) - JVZIPN Secret Key (optional): your JVZoo secret key (see below). Postbacks are recorded without it until you add it.
- Click Save and continue. Products opens next.


400 missing secret with no key, 401 invalid signature with a wrong one) and nothing is recorded for it.
Step 2: Map each JVZoo product ID
- Go to Settings → Products and open the product
- On the Merchants tab, fill jvzoo (<funnel ID>) Product ID with the middle number of its buy link (
451020above) - Save, then repeat for every product in the funnel, upsells and downsells included

Step 3: Assign the domain and the button ID
First point the domain at the merchant:- Go to Settings → Domains, open the domain’s menu and click Edit
- Pick your JVZoo merchant under Merchant and Save

[BUY=...] and [UPSELL=...] tag on a page of this domain now builds a JVZoo buy link.
Then give the funnel the button ID:
- Go to Funnels, open the funnel that holds your pages and click Edit
- Under Domains, on the row of your JVZoo domain, type the third number of the buy link (
99above) into JVZoo Button ID - Save

/b/120456/451020/); add the button ID so they match JVZoo’s own links.
Step 4: Paste the JVZIPN URL into every JVZoo product
- In the guided setup, this is the Postback URL step. Later, in Settings → Merchants, click Postback Setup on the JVZoo merchant’s row (or Copy Postback URL in its row menu). Its steps are listed on the left: Postback URL, Set up in JVZoo and Test.
- Copy Your Postback URL. It has the form
https://app.elasticfunnels.io/postback/vendor/<code>/jvzoo, where<code>belongs to this merchant.

- In JVZoo, open the product’s editor from Sellers → Seller Dashboard (click the product, then Edit) and go to the Advanced tab

- Tick JVZIPN v1 / JVZIPN v2 / KeyGen / External Program
- Paste the URL into JVZIPNv2 URL(s). If that box already holds your own delivery or CRM script, paste it into JVZIPNv1 URL(s) instead: ElasticFunnels reads both versions.
- Save the product
- Repeat for every product in the funnel: the front end and each upsell and downsell. JVZoo sends one JVZIPN per product, so a product without the URL sends its sales nowhere. The URL is the same for all of them; the product ID inside each JVZIPN tells them apart.

Step 5: Test the connection
The merchant shows Needs Setup until its first JVZIPN arrives. JVZoo has no button that sends a test notification, so the Test step of Postback Setup can time out while it waits; that does not mean anything is wrong.- In JVZoo, click the ⋮ menu next to the front-end product and pick Create a Test Purchase, then complete the order
- The first JVZIPN that reaches ElasticFunnels marks the merchant Verified, even after the Postback Setup window has closed. A real sale does the same.
- Check the order under Reports → Conversions, and the raw notification under Settings → Logs → Merchant Postbacks

Buy links
Use the standard tag on your sales page:subid, subid2 and subid3 on the page URL are passed through, and the domain’s Buy Link Parameters are added to every link.
cvendthru on JVZIPN v1, other_params on v2). ElasticFunnels reads vtid from them and links the sale to its visit, page, ad and split test. Sales recorded before 20 October 2026 were not linked.Upsell pages
Upsell and downsell pages use[UPSELL=code] and [DOWNSELL=code]. On a JVZoo domain they build the JVZoo buy link for that product with the same click code. Map every upsell product’s JVZoo ID (Step 2).
For the “No thanks” link, use JVZoo’s own: https://www.jvzoo.com/nothanks/<product ID>, with the ID of the upsell the buyer is declining (for example https://www.jvzoo.com/nothanks/451024). JVZoo then sends the buyer to the next step of the JVZoo funnel. A plain link to your next page works too, but skips JVZoo’s funnel order.
Direct purchase links
A buy link copied from JVZoo (Step 2: Checkout Page Link on Buy Buttons) and pasted into the page needs nothing added. When the page renders, ElasticFunnels adds the visitor’s click code asvtid to every https://www.jvzoo.com/b/... link in the page’s HTML:
https://www.jvzoo.com/b/120456/451024/99?vtid=<click_code>.
- Other parameters on the link (
aff,aid,tid) are kept. - A
vtidyou set yourself is kept. A blank one (vtid=) or a placeholder ({click_id},{CLICK_ID},[click_id]) is replaced with the click code. - JVZoo affiliate links (
/c/...) are never changed. - A link your page script builds by joining strings (
'https://www.jvzoo.com/b/1/2/3?tid=' + sub) is left as it is, and a full stop or comma after a link in text stays outside it. - To leave pasted links exactly as written, turn off Add click tracking to pasted buy links in the merchant’s Settings.
[BUY=...]tags still carry the click code. With it off, sales through pasted links are not matched to a visit.
{click_id} in the page code (it is replaced at render) and use the value. In a backend script, use the template-engine syntax:
[BUY=...] tags where you can: they add the affiliate ID too and pick up the merchant, the product mapping and the domain row, and a pasted link is one more place to update when any of those change. See the note under Buy links for what is attributed today.
Thank-you page
JVZoo sends the buyer to the thank-you page set on each product in JVZoo, not to a URL on the buy link. In the JVZoo product editor, open the Product Access tab. Under Electronic Delivery, turn on Thank You / Download Page and paste your page’s address (for examplehttps://example.com/thank-you). Turn on Send Customer to Thank You Page so JVZoo sends buyers to that page after checkout. Set it on the last upsell too: that is where buyers land after the final step.

transaction_id, receipt or cbreceipt to the URL, the page knows the visitor is a customer and can show the order number.
Tracking pixel and JVZoo scripts
JVZoo’s onboarding gives you up to three pieces of code for your pages. Each has its own place.The sales pixel
JVZoo asks for its tracking image once on each sales page. The quickest way: on the JVZoo merchant’s settings, turn on Create Tracking Pixels and save. ElasticFunnels adds the JVZoo pixel as a tracking script on all pages, in the footer, once per merchant. To add it by hand instead:- Go to Pages → Tracking Scripts and click Create Tracking Script
- Under Template, pick JVZoo
- Set Placement to Footer and save

The one-click upsell script and the affiliate link script
JVZoo also gives you a one-click upsell script for the head of each upsell page, and affiliate managers may give you a link script that keeps the affiliate ID and tracking parameters on your buy links. Both must be in the page’s<head>:
- On one page: the page’s Settings → Tracking → Custom Header Code
- On several pages: Pages → Tracking Scripts → Create Tracking Script, Placement Head, and pick the pages
Affiliate attribution
JVZoo only tells you which affiliate sent a visitor if you turn it on, per product:- In the JVZoo product editor, open the Affiliates tab
- Tick Pass Affiliate ID to sales page and save
- Repeat for every product in the funnel
aid=<affiliate_id> when it hands the visitor to your page. ElasticFunnels keeps it for the session and puts it on the buy link as aff and aid, and the JVZIPN brings the affiliate and commission back with the sale.

Pages for JVZoo’s review
JVZoo’s team reviews your sales and upsell pages before the funnel goes live, and again when they change. If the copy you run to your own traffic differs from what you submit, keep both on the same page with visitor-based content: the reviewed version for everyone, the other one only for visitors who arrive with your whitelist parameter.- Give JVZoo the plain page address, without the parameter.
- Put the parameter on your ad and affiliate links.
- A browser that once opened a link with the parameter stays whitelisted (until the expiry you set on the Whitelist visitor node;
0means forever). Test the reviewed version in a private window. - Upsell pages need the reviewed version too, including JVZoo’s disclaimer footer.
How orders are recorded
- Verification: the first JVZIPN for the merchant clears Needs Setup, whether it is a test purchase or a real sale.
- Versions: JVZIPN v1 and v2 are both read, from either box in JVZoo.
- Upsells arrive as their own JVZIPN, one per product, and are matched by the product ID.
- Products: a JVZIPN for a JVZoo product ID mapped on no product raises a Create Missing Product action, and the order is saved without that product line. The action suggests the product it most likely is, so you can link the ID to it or create a new product; either way the sales already saved without the product are recorded on it. See Sales for a product code you have not set up.
- Refunds and chargebacks link to the original sale by JVZoo’s transaction ID.
- Duplicates: with Deduplicate Orders on, a repeated JVZIPN for the same order is recorded once.
- Wrong funnel: a JVZIPN whose
funnel_iddoes not match the merchant’s JVZoo Funnel ID is still recorded and flagged, since a URL copied from another offer would otherwise pour that offer’s orders in silently. - Every JVZIPN received is listed under Settings → Logs → Merchant Postbacks.
Troubleshooting
Do I need a funnel in ElasticFunnels?
Do I need a funnel in ElasticFunnels?
Buy links go to the wrong JVZoo page
Buy links go to the wrong JVZoo page
99, not your vendor or affiliate ID), the product’s jvzoo Product ID the middle one, and the domain row’s JVZoo Button ID the third one (99 for your own button, never a code with letters).Upsells never run after the front-end sale
Upsells never run after the front-end sale
The merchant still says Needs Setup
The merchant still says Needs Setup
Sales stopped showing up, but the merchant still says Verified
Sales stopped showing up, but the merchant still says Verified
Sales stopped after I changed something in JVZoo
Sales stopped after I changed something in JVZoo
Front-end sales arrive, upsell sales do not
Front-end sales arrive, upsell sales do not
Sales arrive without a product
Sales arrive without a product
JVZoo sales show no page, ad or split test
JVZoo sales show no page, ad or split test
vtid. Check that it is a [BUY=...] tag or a pasted /b/ link in the page’s HTML (a link built by your own script needs {click_id} added yourself), and that Add click tracking to pasted buy links is on in the merchant’s Settings. Sales recorded before 20 October 2026 were never linked. The order, amount and affiliate are recorded either way. See Buy links.My tracker shows more sales than ElasticFunnels
My tracker shows more sales than ElasticFunnels
Affiliate sales recorded with no affiliate
Affiliate sales recorded with no affiliate
aid reached your page.JVZoo says a script is missing from the head
JVZoo says a script is missing from the head
Pixel renders with an empty product ID
Pixel renders with an empty product ID
{product_code_first} reads the buy tags on the page. A page with no [BUY=...] or [UPSELL=...] tag has no product to report.