Fill one row per link · send the CSV + specs in one batch · I build all links at once
1 promo link = 1 unique invoice-number prefix (or 1 unique Simple Checkout Item ID).
Promos sell through Authorize.net Simple Checkout hosted links on account
7ZvLv33a6Q. The dashboard reads settled transactions from Authorize.net
and matches them to a promo by either the transaction invoice-number prefix or the
Simple Checkout Item ID. If two affiliates sell the same offer and you want to split
them, that is two links with two different prefixes or Item IDs.
The critical requirement on your side: each transaction must carry a unique identifier (invoice prefix or Item ID) that maps to exactly one registry row. If it does not, the sale is invisible to the dashboard.
| Field | What it is | Rules |
|---|---|---|
promo_id | stable unique id | PL-<AFFILIATE>-<OFFER>, UPPER, no spaces. Never reused. |
slug | the /go/<slug> path | lowercase, hyphens, url-safe, unique. |
name | display label | e.g. Jordie · Recharge Bundle. No em-dashes (use ·, hyphen, comma). |
affiliate | who owns the link | real name. No placeholders. |
campaign | campaign bucket | e.g. Summer Recharge. |
product | the offer sold | what the customer buys. |
price_point | price in USD | number, e.g. 249. One price per link. |
source | traffic channel | Instagram / YouTube / TikTok / Email. |
states_allowed | states this may sell into | list, or ALL-LICENSED. Androgenix is not licensed everywhere (e.g. WI). |
date_created | launch date | YYYY-MM-DD. |
authnet_simple_checkout_url | the Authorize.net Simple Checkout payment link | becomes the /go/<slug> redirect target. |
invoice_match | invoice-number prefix | unique per promo, e.g. JORDIE-RECHARGE-. Required unless Item ID is unique. |
item_id | Simple Checkout Item ID | if unique per promo, can be used instead of invoice prefix. |
states_allowed; do not sell into unlicensed states.config/.env and are not shared.