Skip to main content

Packages

Build coaching packages, set pricing, and let clients sign up online.

Packages Overview

Packages let you sell your coaching services online. Create one-time or subscription-based packages, set your price, connect Stripe to collect payments, and share a branded pricing page with prospective and existing clients. The Packages page has two tabs:

  • Packages: Create and manage your coaching packages
  • Coupons: Create discount codes clients can apply at checkout

From the Packages tab you can:

  • Create new packages with flexible pricing (one-time, weekly, monthly)
  • Set free trials and initial fees
  • Attach an onboarding flow to automate client setup on purchase
  • List benefits that appear on your public pricing page
  • Toggle packages as active or hidden
  • Copy a shareable link to any individual package or your full pricing page
  • Preview your public pricing page
  • Open your Stripe dashboard directly from HubFit

Connecting Stripe

Before you can accept payments, you need to connect a Stripe account. HubFit uses Stripe Connect, which means payments go directly to your Stripe account - HubFit never holds your funds.

1
Navigate to the Packages page
2
Click Connect to Stripe at the bottom of the page
3
You will be redirected to Stripe to create your Connect account
4
Complete the Stripe onboarding steps (business details, bank account, identity verification)
5
Once complete, you are redirected back to HubFit. Any packages you created before connecting will automatically sync to Stripe.
You can create packages before connecting Stripe. They will be synced the moment your Stripe account is active. However, clients cannot purchase until Stripe is fully set up and charges are enabled.

The Connect to Stripe button shows different states depending on your setup progress:

StateButton TextWhat to Do
No Stripe accountConnect to StripeClick to start Stripe onboarding
Partially set upContinue Stripe SetupClick to finish your Stripe onboarding
Charges not enabledView Stripe AccountCheck your Stripe dashboard for issues
Fully connected(button hidden)You are ready to accept payments

Once connected, you can open your Stripe dashboard at any time by clicking the Stripe button in the Packages page header.

Troubleshooting: "Account not found" or "Failed to connect" error

If you click Continue Stripe Setup or Stripe and see an error like "account not found" or "failed to connect", this is because you are logged into a different Stripe account in your browser.

HubFit creates a separate Stripe Connect account for your workspace. If you already have a personal or business Stripe account, your browser may default to that account instead.

To fix this:

1
Open the Stripe dashboard at dashboard.stripe.com
2
Look at the top-left corner of the Stripe dashboard - you will see your account name with a dropdown arrow
3
Click the dropdown to see all Stripe accounts linked to your email
4
Switch to your HubFit Connect account (it may appear as your business name or "HubFit" followed by your workspace name)
If you are unsure which account is your HubFit Connect account, try logging out of Stripe completely, then click the Stripe button from HubFit again and log in. You will be directed to the correct Connect account.

Creating a Package

The package creation flow walks you through three steps: Setup, Automations, and Benefits.

Step 1: Setup

1
Navigate to the Packages page
2
Click Add Package
3
Enter a Package Name (e.g. "90 Day Program")
4
Enter a Package Description (e.g. "Get in the best shape of your life in 90 days")
5
Select a Currency from the dropdown
6
Select a Type of plan: One-Time, Weekly, or Monthly
7
If you selected Weekly or Monthly, choose a Duration from the dropdown (1-12 weeks/months, or "Until Cancelled" for ongoing subscriptions)
8
Enter the Price per billing interval
9
Optionally configure: Include free trial, Include initial fee, and Give clients instant access upon purchase (see sections below)
10
Click Next

The bottom of the Setup step shows a Total payout (for fixed-duration plans) or Recurring payment (for until-cancelled plans), so you can verify the math before proceeding.

Step 2: Automations

11
Select an Onboarding Flow to automate the client setup when someone purchases this package. This is optional, if you skip it, new clients will be created without any automated assignments.
12
Click Next
Onboarding flows automate the setup for new clients - assigning workout programs, nutrition plans, forms, habits, metrics, communities, resources, and more. Set these up under Automations > Onboarding Flows before creating your package. See the Onboarding Flow article for the full list of what can be assigned.

Step 3: Benefits

13
Add benefits that will be displayed on your public pricing page (e.g. "Personalized training program", "Weekly check-ins", "24/7 chat support")
14
Click Add another benefit to add more items. Press Enter for quick entry.
15
Click Add Package to save

Your new package appears in the Packages table and is immediately available on your public pricing page (if active and visible).


Package Configuration Reference

Supported Currencies

CurrencyCodeSymbol
US DollarUSD$
British PoundGBP£
EuroEUR
UAE DirhamAEDد.إ
Australian DollarAUD$
Canadian DollarCAD$
New Zealand DollarNZD$
Norwegian KroneNOKkr
Swiss FrancCHFfr

Billing Intervals

TypeBehavior
One-TimeClient is charged once. No recurring billing.
WeeklyClient is charged every week for the selected duration, or until cancelled.
MonthlyClient is charged every month for the selected duration, or until cancelled.

Duration Options

For Weekly and Monthly plans, you can set a fixed duration (1-12 weeks or 1-12 months) or select Until Cancelled for an open-ended subscription.

  • Fixed duration: The subscription auto-cancels at the end of the set period. Both the client and coach receive an email when the subscription ends.
  • Until Cancelled: The subscription renews indefinitely until the client cancels through the Stripe billing portal.

Free Trials

Free trials delay the first charge by a set number of days. Available options: 3 days, 7 days, 14 days, or 30 days.

When a trial is active, the public pricing card shows a badge (e.g. "7-day trial") so clients know what to expect.

Initial Fee

An initial fee is a one-time upfront charge added on top of the first billing cycle. For example, if you have a monthly subscription at $50/month with a $100 initial fee, the client pays $150 for the first month and $50/month thereafter.

  • The initial fee appears as a separate line item on the Stripe checkout page.
  • Initial fees cannot be combined with free trials.

Instant Access

When Give clients instant access upon purchase is enabled, the client automatically receives login credentials via email immediately after purchase. If disabled, the coach is notified and must manually onboard the client.


Editing a Package

1
Navigate to the Packages page
2
Click on the package row in the table, or click the menu icon and select Edit
3
Update any fields across the three steps (Setup, Automations, Benefits)
4
Click Update to save your changes
If you change the price, currency, or interval on a package that is already synced to Stripe, HubFit creates a new Stripe price and updates the package automatically. Existing subscriptions are not affected, only new purchases use the updated price.

Managing Package Visibility and Status

Each package has two toggles in the table:

  • Active: Controls whether clients can purchase the package. Inactive packages show as "Unavailable" on your pricing page.
  • Visible: Controls whether the package appears on your public pricing page at all. Hidden packages are not shown to clients but can still be shared via a direct link.

You can toggle these directly from the package table without opening the editor.

Use the Visible toggle to prepare packages in advance. Create your package, set it to hidden, and flip it to visible when you are ready to launch.

Deleting a Package

1
Click the menu icon on the package row
2
Select Delete
3
Confirm the deletion in the dialog

Your Public Pricing Page

HubFit generates a public pricing page that displays all your active and visible packages. This page is branded with your logo and brand color.

There are two types of public pages:

All Packages Page

Shows every visible package as a card grid. Access it at:

https://app.hubfit.io/plans/{your-unique-id}

Single Package Page

Shows one specific package in a focused layout. Access it at:

https://app.hubfit.io/plan/{package-id}

You can access both from the Packages page:

  • Packages Page button in the header opens your all-packages page
  • Preview on any package row opens the single package page
  • Copy Link copies the single package URL to your clipboard
Share single package links on social media, in emails, or on your website to send clients directly to a specific offering. Use the all-packages link if you want clients to compare options.

What Each Pricing Card Shows

The public-facing pricing card displays the following to potential clients:

  • Package name
  • Price with currency symbol and billing interval (e.g. "$50 USD /month")
  • Duration label (e.g. "3-Month Subscription", "Recurring Subscription", or "One time")
  • Trial badge if a free trial is configured (e.g. "7-day trial")
  • Initial fee if set (e.g. "+ Initial fee: $100")
  • Benefits list with checkmarks
  • Description (truncated with a "Show more" toggle for longer text)
  • Purchase button ("Continue" for paid packages, "Try for free" for free packages, or "Unavailable" if inactive)

Creating Coupons

Coupons let you offer discounts to clients at checkout. When a client applies a coupon code during Stripe checkout, the discount is applied automatically.

1
Navigate to the Packages page and click the Coupons tab
2
Click Add Coupon
3
Enter a Coupon Name (internal label, e.g. "Summer Sale 2026")
4
Enter a Coupon Code (the code clients type at checkout, e.g. "SUMMER2026")
5
Select the Discount Type: Percentage or Fixed Amount
6
Enter the Discount Amount (e.g. 20 for 20% off, or 10 for $10 off)
7
Select the Discount Duration: Once (applies to first payment only) or Multiple Months (applies for a set number of months)
8
Optionally enable Limit Redemptions and set a maximum number of uses
9
Optionally enable Set Expiry Date and pick a date
10
Click Add Coupon
Clients can enter the coupon code during checkout to apply the discount.

Managing Coupons

The Coupons table shows each coupon with its name, code, discount amount, expiry date, usage count, and active status.

Editing a Coupon

Click a coupon row to open the editor. You can update the Coupon Name only, the code, discount type, and discount amount cannot be changed after creation (this is a Stripe limitation). To change these, delete the coupon and create a new one.

Activating and Deactivating Coupons

Toggle the Active switch in the coupons table to enable or disable a coupon. Deactivating a coupon prevents it from being used at checkout, but does not affect existing discounts already applied.

Deleting a Coupon

Click the menu icon on a coupon row and select Delete. This removes the coupon from both HubFit and Stripe.

Coupon Usage Tracking

The Usage column shows how many times a coupon has been redeemed out of the maximum (e.g. "3/100" or "5/∞" for unlimited). Coupons automatically deactivate when they hit the redemption limit.


Viewing Client Subscriptions and Payments

You can view a client's subscription history and past payments from their profile.

1
Navigate to the client's profile
2
Open the Billing section
3
View active subscriptions, subscription status, payment amounts, and payment history

Subscription statuses include:

StatusMeaning
ActiveSubscription is running and payments are current
TrialingClient is in a free trial period
Past DueA payment failed and is overdue
CanceledSubscription has been cancelled
IncompleteInitial payment has not been completed

Stripe Customer Portal

You can open the Stripe Customer Portal for any client with an active subscription. The portal lets clients:

  • Cancel their subscription
  • Update their payment method
  • Update their email, address, and phone number
  • View their invoice history

To open the portal, click the billing portal button on the client's profile. Coaches can also access this from the client overview.


What Happens When a Client Purchases a Package

Here is the full flow from the client's perspective and what happens behind the scenes:

1
The client visits your pricing page (or a direct package link)
2
They click Continue (or Try for free for free packages)
3
A modal asks for their Full Name and Email
4
For paid packages, they are redirected to a Stripe checkout page where they enter payment details. If you have set up your branding in HubFit, the checkout page displays your logo and brand colour. For free packages, the purchase is processed immediately.
5
After successful payment (or free signup), the client is shown a success page confirming their purchase

Behind the scenes:

  • New clients: A client account is created in your workspace. If instant access is enabled, they receive login credentials by email.
  • Existing clients: If the client purchases using the same email address as their client account, the purchase is linked to their existing profile automatically. If the client was archived, they are automatically unarchived.
  • Onboarding flow: If an onboarding flow is attached to the package, it triggers automatically (assigning programs, plans, forms, etc.).
  • Confirmation email: The client receives a purchase confirmation email.
  • Coach notification: You receive an in-app notification that a new purchase was made.
  • Zapier: If you have a Zapier integration configured, a "New Purchase" trigger fires with the client and package details.
  • Client note: A note is automatically added to the client's profile documenting the purchase.
If a client already has a subscription in a different currency, they cannot purchase a package in a new currency. They will see an error asking them to contact their coach.

Subscription Lifecycle

Fixed-Duration Subscriptions

When a subscription has a fixed duration (e.g. 3 months), HubFit calculates the end date and sets a scheduled cancellation in Stripe. When the subscription reaches its end date:

  1. Stripe cancels the subscription automatically
  2. The client receives a "Subscription Has Ended" email
  3. You receive an in-app notification

Open-Ended Subscriptions (Until Cancelled)

These subscriptions renew indefinitely. The client can cancel anytime through the Stripe billing portal. When they cancel:

  1. The subscription is cancelled immediately
  2. The client receives a "Subscription Has Been Cancelled" email
  3. You receive an in-app notification

Client Cancels via Stripe Portal

Clients can cancel their own subscription through the Stripe billing portal. When this happens, both the client and coach are notified by email and in-app notification.


Free Packages

You can create packages with a price of $0 (or any currency equivalent). Free packages behave differently from paid packages:

  • No Stripe checkout is required, the client signs up with just their name and email
  • The purchase is processed instantly
  • The client sees a success page immediately
  • All post-purchase automations (onboarding flows, emails, notifications) still trigger normally
Free packages are commonly used to let clients sign up themselves - for example, if you are running a challenge and want participants to register on their own. Share the package link, and clients create their own account without any manual setup on your end. Pair a free package with an onboarding flow to automatically assign programs, communities, forms, and more on signup.

The Client Experience

Here is what your clients see and how you can guide them through purchasing and managing their subscription.

How Clients Purchase a Package

When a client opens your pricing page or a direct package link, they review the package details and click Continue (or Try for free for free packages). They enter their name and email, then are redirected to a Stripe checkout page to complete payment. After purchase, they see a confirmation page. If you have enabled instant access, they receive login credentials by email automatically. Otherwise, you will need to onboard them manually.

Clients can apply a coupon code during Stripe checkout by entering it in the Add promotion code field. Coupon codes are case-sensitive.

If a client already has an account and purchases using the same email, the purchase is linked to their existing profile automatically. If they use a different email, a new client account is created.

How Clients Manage Their Subscription

Clients log into the web app at app.hubfit.com and click Manage Subscriptions to access the Stripe billing portal, where they can:

  • Cancel their subscription
  • Update their payment method
  • Update their contact information (email, address, phone)
  • View their invoice history

You can open the Stripe billing portal for any client from their profile by clicking the billing portal button.


Frequently Asked Questions

Can I connect my existing Stripe account? No. HubFit creates a new Stripe Connect account dedicated to your workspace. This is required because HubFit manages your customers, prices, coupons, and subscriptions directly in Stripe on your behalf.

I am getting an "account not found" error when clicking Stripe. How do I fix it? This happens when your browser is logged into a different Stripe account. Go to dashboard.stripe.com, click the account dropdown in the top-left corner, and switch to your HubFit Connect account. If you are unsure which account it is, log out of Stripe completely and click the Stripe button from HubFit again.

What happens if a client uses a different email at checkout? A new client account is created in your workspace. The purchase will not link to their existing profile. To avoid this, make sure clients use the same email address they registered with.

Why can I not edit my coupon code or discount amount? Coupon codes and discount amounts cannot be changed after creation. This is a Stripe limitation. To change these, delete the coupon and create a new one.

Can I invoice a client directly from HubFit? No. To collect payment, create a package and share the checkout link with the client.

Did this answer your question?