Authorize.net: Creating B2C One-Time and Subscription Products
Overview
You build every Authorize.net product right inside your VT System, so you never have to create products or plans in Authorize.net. Once a product is saved, buyers can check out, pay through your Authorize.net gateway, and get access to their courses automatically.
Each product uses one of two billing types:
| Billing type | How the buyer pays | Good for |
|---|---|---|
| One-Time | A single charge at checkout | Individual courses, lifetime access |
| Subscription | A recurring charge on a set schedule until it's canceled or ends | Memberships, monthly coaching, ongoing content libraries |
Subscriptions can also include an optional setup fee and a trial period.
Before you begin
Have these ready so you can set up each product in one pass:
• A connected Authorize.net account. If you haven't connected it yet, follow Authorize.net Integration first, including the webhook step. Without the webhook, your VT System can't remove access when a subscription is canceled or a payment is refunded.
• Admin access to your VT System with permission to open the Super User Dashboard.
• The content you're selling, set up as courses with the content roles a buyer should receive.
• Your pricing: the amount, billing type, and, for subscriptions, the billing interval, any setup fee, and any trial period.
Authorize.net can't create a subscription for $0. If you want a free first period, use a trial period instead of a 100% discount
Step 1: Enable Individual Purchase Settings in LSVT Authorize.net Integration
- Sign in to your VT System as an Admin.
- Open the Super User Dashboard and select 110 Authorize.net Integration.
- Open Individual Purchase Settings and click on Settings.
- Toggle Enabled to Yes.
- Choose Location or System (applied to multiple locations) to create a user account after a successful transaction.
- Under System field choose your system. Specify a location, if Location was chosen.
- In Content Roles field you can add Content roles that will be assigned by default to any products created later.

- You have an option to configure Custom JavaScript, Pixel Code and Terms and Conditions.
- Click Save and Continue to save your Individual Purchase Settings.
![]()
Step 2: Open your products in LSVT Authorize.net Integration
- Open Individual Purchase Settings and click on Products section. Any products you've already created are listed here, each with an Edit button.
- Click + New Product to start a new one.
Every product starts with the same basic details:
• Product Name: the name buyers see at checkout, such as Sales Foundations Course.
• Description (optional): a short summary of what the buyer gets.
• Product Type: choose One-time or Subscription. Then continue with Step 3 or Step 4 below.
Step 3: Create a One-Time Product
Use a one-time product when the customer pays once and keeps access.
- Set Product Type to One-Time.
- Enter the Product Amount in US dollars, such as
199.99or199 - Skip to Step 6 to choose what the customer gets.

The buyer's card is charged in full at checkout. Nothing renews, so there's nothing for the buyer to cancel later.
Step 4: Create a Subscription Product
Use a subscription when the customer pays on a recurring schedule and keeps access only while the subscription is active. Your VT System creates the recurring billing in Authorize.net for you when the customer checks out.
- Set Product Type to Subscription.
- Enter the Product Amount in US dollars, such as
49.99or49 - Set the Interval Length, meaning how often the buyer is charged.
Authorize.net accepts 1 to 12 months, or 7 to 365 days. For quarterly billing, choose every 3 months.
- Optional: enter a Setup Fee Amount, a one-time charge added to the first payment.
- Optional: add a Trial Period. Enter the Trial Amount and how many billing cycles it lasts.
| Example | Price | Interval | Setup fee | Trial |
|---|---|---|---|---|
| Monthly membership | $49.99 | Every 1 month | None | None |
| Coaching program | $199.00 | Every 1 month | $99.00 | None |
| Membership, first month free | $49.00 | Every 1 month | None | 1 cycle at $0 |

When a buyer cancels, a payment fails, or the subscription ends, Authorize.net notifies your VT System through the webhook and the customer's access is updated automatically.

- Continue to Step 6 to choose what the buyer gets.
Step 5: Add coupon codes (optional)
Coupons let you run promotions without creating a separate product.
- Check Use Coupons on the product.
- Add each code on its own line, with no commas.
SPRING10|10$is $10 offSPRING20|20%is 20% offSPRING50|50$|initialis $50 off the setup fee only
Codes are case sensitive, so SPRING10 and spring10 are different codes. A 100% discount fails on subscriptions because Authorize.net rejects $0 subscriptions; use a 99% code or a $0 trial instead. See Authorize.net Coupon Code Generation for more.
Step 6: Choose what the customer gets
This step controls which content unlocks after payment, for one-time and subscription products alike.
- Choose the Access Level for new customers, such as Individual Subscriber [10].
- Select Add Content Roles the buyer receives on purchase, such as Course A.
- Optional: select Remove Content Roles to remove on purchase. For example, remove SELLABLE: Course A so the customer stops seeing the course as something to buy.

For subscriptions, the roles you add here are removed automatically if the subscription is canceled, expires, or is terminated, or if a payment is refunded or voided.
Step 7: Code snippet
The Code Snippet section gives you the embed code that puts your Authorize.net checkout on your website. You can also adjust a few checkout settings here before you copy it.
- Location ID (optional): Enter the ID of the location where buyers’ user accounts should be created. Skip this if you already chose a location in Individual Purchase Settings.
- Address fields (optional): Turn these on if you want to collect buyers’ billing or mailing addresses at checkout.
- Code Snippet: Copy the embed code and add it to your front-door site. Buyers can’t purchase until the checkout is live on a page they can reach.
The product also lists the assets you’ll need for a sellable course, such as Widget ID and Data ID. Keep them handy if you plan to build a sellable course in your Training Center later.

Step 8: Save, test and share
Run one real purchase end to end before you place the checkout on your live front-door site.
- Create a low-priced test product (for example, $1.00) or apply a 99% coupon to an existing one.
- Open the product's checkout page in Codepen and buy it with a real card, using a new email address.
- Confirm the charge appears in Authorize.net under Transaction Search or Unsettled Transactions.
- Sign in to your VT System as the new user and confirm the purchased courses are unlocked.
- Void or refund the test charge in Authorize.net, then deactivate the test user.
Once all five checks pass, you're ready to sell.
Troubleshooting
| What you see | Likely cause | What to do |
|---|---|---|
| Authentication or "invalid credentials" error | Typo or extra space in the API Login ID or Transaction Key | Re-copy both values, check for spaces, and save again |
| Connection worked before, now fails | Transaction Key was regenerated in Authorize.net | Paste the new key into 110 Authorize.net Integration |
| Charge is declined | Merchant account issue, or the card was declined | Check the decline reason in Authorize.net; contact your merchant provider if it persists |
| Payment succeeds but no course access | Product isn't mapped to the right courses or roles | Edit the product in 110 Authorize.net Integration and confirm its content |
| A 100% coupon won't check out | Authorize.net doesn't allow $0 subscriptions | Use a 99% coupon, a small charge, or a free trial period |
| Coupon code isn't accepted | Codes are case sensitive or the format is off | Match the exact case and use the coupon format shown in Step 2 |
FAQ
Does LightSpeed VT process my payments? No. LightSpeed VT connects to Authorize.net, which sends funds to your merchant account. Fees and payouts are between you, Authorize.net, and your merchant provider.
Can I offer trials, tiered pricing, or Apple Pay? Authorize.net supports simple trial periods and setup fees, but not trial roles, tiered pricing, PayPal, Google Pay, or Apple Pay. For those, consider Stripe or Maxio.
Can I switch to Stripe later? Yes. Reach out to Client Care and we'll help you plan the move.
Need help?
Our Client Care team is happy to walk through setup with you. Email support@lightspeedvt.com or call (702) 369-4260.
Sources
• Which E-Commerce Platform is Right for You? - LightSpeed VT
• Authorize.net Coupon Code Generation - LightSpeed VT
• Common setup questions - Authorize.net Developer Center
• API Login ID and Transaction Key - Authorize.net Support