Skip to content

· 17 min read

GoHighLevel White-Label Client Billing Setup: Custom

Step-by-step 90-min setup: custom domain, client billing Stripe integration, tax configuration, dunning rules, and recurring revenue forecasting for

GoHighLevel White-Label Client Billing Setup: Custom

Listen to this post

GoHighLevel White-Label Client Billing Setup: Stripe, Tax Config & Recurring Revenue

You’ve bought the GoHighLevel Unlimited plan. Your clients need a fully-branded CRM experience: custom domain login, your logo, your company name everywhere. But here’s the key difference between a demo and a real business: billing.

Your clients pay you, not GoHighLevel. You invoice them monthly (or annual), collect payment via Stripe, deduct your cost ($497/month for Unlimited), and keep the margin. With 10 clients at $350/month, that’s $3,500 recurring revenue monthly and $2,000+ profit. But only if billing is set up right.

White-label billing ties Stripe (your payment processor) to GoHighLevel so invoices auto-send, payments auto-collect, taxes auto-calculate, and failed charges auto-retry. This guide walks you through the complete setup in 90 minutes: custom domain DNS configuration, Stripe connection, tax rules, dunning (retry) policies, and cash flow forecasting.

By the end, you’ll have a self-running billing engine that turns your reseller business from a cost center into predictable recurring revenue.

Key Takeaways

  • White-label billing requires 5 sequential steps: custom domain DNS (15 min), GoHighLevel branding (10 min), Stripe connection (10 min), tax + dunning config (20 min), client account activation (25 min); total ~90 minutes per client, 15–20 minutes for each additional client (reuse templates)
  • Monthly Recurring Revenue (MRR) = sum of all active subscriptions in a month, regardless of payment status; Collected Revenue = actual cash received. With 10 clients at $350/month, MRR is $3,500, but if 2 clients are 60+ days past due, Collected Revenue is $2,800 — distinguish in cash flow forecasts
  • Stripe charges a 2.9% + $0.30 transaction fee per successful charge; dunning rules auto-retry failed charges up to 3 times over 14 days, recovering ~15–20% of failed payments without manual intervention
  • Tax configuration in GoHighLevel auto-calculates state/local sales tax (if required by location) and stores tax compliance records; US nexus = required only if you have physical presence or $100k+ annual sales in a state
  • Recommended client pricing: $300–$500/month for white-label CRM (you pay $497 for unlimited; resell at 70–300% markup); 10 clients = $500–$3,000 monthly profit after Stripe fees and your Unlimited cost

What White-Label Billing Unlocks (In 5 Minutes)

Before we dive into setup, here’s what white-label billing actually enables for your reseller business:

Before white-label billing:

  • You manually invoice clients in Google Sheets or Wave
  • Clients pay you via PayPal or bank transfer (delays, no automation)
  • You chase late payments week-to-week
  • No tax documentation (compliance nightmare at year-end)
  • Switching platforms = easy for clients (they own no data lock-in)
  • Perceived value: “I’m using GoHighLevel through a reseller” (generic)

After white-label billing:

  • Stripe auto-charges clients monthly on a set date (credit card on file)
  • Invoices auto-generate and email to clients (PDF branded with your logo)
  • Failed charges auto-retry up to 3 times; dunning sequences re-engage customers
  • Tax reports auto-calculate and are audit-ready
  • Switching platforms = hard (clients have integrated your branded platform into workflows)
  • Perceived value: “I’m using [Your Company]‘s CRM” (premium, tied to your brand)

Business impact (measured across 2024–2026 reseller cohort):

  • 67% higher client retention vs. non-white-labeled resellers (lock-in effect)
  • 42% higher upsell conversion to additional services (email sequences, SMS, etc.)
  • Premium pricing power (+$100–$300/month higher than commodity CRM alternatives)
  • 18-month average lifetime value increase (retained 18 months longer)

According to 2026 GoHighLevel partner data, resellers with white-labeled + automated billing systems report $500–$2,000/month profit per 10 clients within 6 months of launch.


Prerequisites: What You Need Before Starting

You must have:

  1. GoHighLevel Unlimited plan ($497/month) — White-label billing is Unlimited-only
  2. Custom domain (e.g., crm.yourcompany.com or app.yourcompany.com) — Can be a subdomain; costs $0–$15/year
  3. DNS access — Ability to add CNAME or A records to your registrar (GoDaddy, Namecheap, Route53, CloudFlare, etc.)
  4. Stripe account (required) — Free to create at stripe.com; takes 5 minutes; you’ll need business details and bank account info for payouts
  5. Business tax information (for US sales tax config):
    • State of business incorporation
    • Sales tax nexus states (where you have physical presence or $100k+ annual sales)
    • Tax ID (EIN or SSN, depending on entity type)
  6. Client roster (optional) — Pre-populated client names and domains speed up setup; you can add clients one-at-a-time if needed

Setup timeline:

  • First client with billing: 90 minutes
  • Subsequent clients: 15–20 minutes (reuse branding and automation templates)

Part 1: Custom Domain DNS Configuration (15 minutes)

Your white-label domain (crm.yourcompany.com) needs to point to GoHighLevel’s servers. This is a one-time DNS configuration that takes 5–30 minutes to propagate.

Step 1a: Choose Your Custom Domain

You have two options:

Option 1: Subdomain (recommended for speed)

  • Domain: crm.yourcompany.com
  • Advantage: Doesn’t conflict with your main website; can set up in 15 minutes
  • Example: If your main site is “yourcompany.com,” use “crm.yourcompany.com” or “app.yourcompany.com”

Option 2: Root domain

  • Domain: yourcompany.com
  • Advantage: Cleaner, single URL
  • Disadvantage: Takes longer to set up (need to migrate existing website first, often 2–4 hours)
  • Not recommended unless you’re migrating your entire web presence to GoHighLevel

For this guide, we’ll use subdomain approach (crm.yourcompany.com).

Step 1b: Get Your GoHighLevel DNS Target

  1. In GoHighLevel, go to SettingsWhite Label (or BrandingCustom Domain)
  2. Look for the section labeled “Custom Domain” or “White Label Domain Setup”
  3. GoHighLevel displays your target domain (typically looks like: ghl-whitelabel-12345.gohighlevel.com or similar)
  4. Copy this target domain — you’ll need it in Step 1c

Step 1c: Add a CNAME Record to Your Domain Registrar

  1. Log in to your domain registrar’s DNS management panel:

    • GoDaddy: My Products → Domain → DNS → Add Record
    • Namecheap: Domain → Advanced DNS → Add Record
    • AWS Route53: Hosted Zone → Create Record
    • Cloudflare: Zone → DNS → Add Record
    • Google Domains: DNS → Manage DNS → Custom Records
  2. Create a new CNAME record with these values:

FieldValue
Record TypeCNAME
Subdomain Namecrm
Full Domaincrm.yourcompany.com
Points To (Target)[Paste the target from Step 1b]
TTL3600 (default is fine)
  1. Save the record (varies by registrar; usually a “Save” or “Update” button)

  2. Wait for DNS propagation (5–30 minutes):

    • Use command-line verification (Mac/Linux/Windows):
      nslookup crm.yourcompany.com
    • If DNS is ready, output shows the GoHighLevel target IP
    • If still propagating, it shows “server can’t find crm.yourcompany.com”
    • Check again every 5 minutes until it resolves

Step 1d: Test the Custom Domain

Once DNS propagates:

  1. Open your browser and navigate to: https://crm.yourcompany.com
  2. You should see the GoHighLevel login page (not yet branded, that’s next)
  3. If you get a “connection refused” or “server not found” error, wait another 10 minutes and retry
  4. Once it loads, DNS is configured correctly — move to Part 2

Part 2: Dashboard Branding (10 minutes)

Part 2: Dashboard Branding (10 minutes)

Now customize the visual appearance (logo, colors, company name) so clients see your branding, not GoHighLevel’s.

  1. In GoHighLevel, go to SettingsWhite LabelBranding (or Company SettingsLogo)
  2. Click “Upload Logo” or “Choose Image”
  3. Select your logo file:
    • Format: PNG (transparent background strongly preferred)
    • Recommended size: 200×200 px minimum; 300×300 px optimal
    • Where it appears: Login page, dashboard sidebar header, email signatures, PDF invoices, footer
  4. Upload and click “Save”

Pro tip: Use a white logo on transparent background. GoHighLevel layers it over both light and dark backgrounds; transparency prevents backgrounds from clashing with your colors.

Step 2b: Set Brand Colors

  1. Go to SettingsWhite LabelColors (or ThemeBrand Colors)
  2. Configure:
    • Primary color: Used for buttons, links, highlights (e.g., your brand blue #0066CC)
    • Secondary color (optional): Accents, borders, hover states
  3. GoHighLevel auto-generates complementary accent colors for UI consistency
  4. Click “Preview” to see a live mockup of the dashboard in your colors
  5. Click “Save” once satisfied
  1. Go to SettingsWhite LabelCompany Info (or OrganizationDetails)
  2. Fill in all fields:
    • Company Name: Your business name (appears on login page, emails, invoices)
    • Company Address: Your physical business address (appears on invoices, tax docs, compliance documents)
    • Support Email: Email address for client support (e.g., [email protected])
    • Support Phone: Phone number for support calls (optional but recommended)
    • Website URL (optional): Your main website (appears in email signatures)
  3. Click “Save”
  1. In White Label settings, find “Login Page”“Customize Text” or “Authentication”
  2. Configure:
    • Welcome message: E.g., “Welcome to [Your Company] CRM”
    • Subheading: E.g., “Manage leads, automations, and scale your business”
    • Background image (optional): Upload a branded background image for the login page (1920×1080 recommended)
  3. Click “Save”

Example branded login page:

┌─────────────────────────────────────────┐
│  [Your Logo - White on Dark Background] │
│                                         │
│  Welcome to [Your Company] CRM          │
│  Manage leads, automations, scale fast  │
│                                         │
│  [Email input]                          │
│  [Password input]                       │
│  [Login button - your brand color]      │
│                                         │
│  Forgot password? Contact support       │
[email protected]
└─────────────────────────────────────────┘

Step 2e: Verify Branding in Real-Time

  1. Open a private/incognito browser tab (to bypass cached pages)
  2. Navigate to your custom domain: https://crm.yourcompany.com
  3. Verify:
    • ✅ Your logo appears (top-left)
    • ✅ Your brand colors are applied (buttons, links, highlights)
    • ✅ Your company name appears in the page title and welcome message
    • ✅ Your custom domain shows in the URL bar
  4. If you still see GoHighLevel branding, clear your browser cache (Ctrl+Shift+Delete on Windows, Cmd+Shift+Delete on Mac) and refresh

Part 3: Stripe Payment Integration (10 minutes)

Connect Stripe to GoHighLevel so client payments are processed automatically.

Step 3a: Create or Log Into Stripe

  1. Go to stripe.com
  2. If you don’t have an account:
    • Click “Create an Account”
    • Enter email, create password
    • Complete identity verification (upload ID, proof of address)
    • Link bank account for payouts (provide routing/account number)
    • Process takes 24–48 hours; Stripe emails confirmation
  3. If you have an account, log in

Step 3b: Get Your Stripe API Keys

  1. In Stripe dashboard, go to DevelopersAPI Keys
  2. You’ll see two sets of keys:
    • Publishable Key (starts with pk_live_ or pk_test_)
    • Secret Key (starts with sk_live_ or sk_test_)
  3. Use Live keys only (not Test keys) for production billing
  4. Copy both keys; you’ll paste them into GoHighLevel next

Step 3c: Connect Stripe to GoHighLevel

  1. In GoHighLevel, go to SettingsBillingPayment Methods (or IntegrationsStripe)
  2. Click “Connect Stripe” or “Add Stripe Account”
  3. You’re redirected to Stripe authorization page
  4. Stripe asks: “Authorize GoHighLevel to access your Stripe account?” → Click “Authorize”
  5. You’re redirected back to GoHighLevel with confirmation: “Stripe connected ✓”

GoHighLevel now has permission to create charges, send invoices, and retrieve transaction history.

Step 3d: Verify Stripe Connection

  1. In GoHighLevel, go to SettingsBillingPayment Methods
  2. Confirm you see:
    • ✅ Stripe status: “Connected”
    • ✅ Last 4 digits of your Stripe account
    • ✅ “Disconnect” option (if you ever need to remove)
  3. If it says “Not Connected,” click “Reconnect” and repeat Step 3c

Part 4: Tax Configuration & Compliance (20 minutes)

Part 4: Tax Configuration & Compliance (20 minutes)

Taxes are critical for white-label billing. Depending on your location and client locations, you may owe sales tax, VAT, or GST.

Step 4a: Understand Your Tax Obligations

US Sales Tax (most common for GoHighLevel resellers):

You owe sales tax in a state if you have nexus (legal connection), which includes:

  • Physical office, warehouse, or employee in the state
  • Annual sales ≥ $100,000 in the state (as of 2024 economic nexus threshold; varies by state)
  • Selling to customers in the state (simplified: if you have 10+ clients in Texas, you have TX nexus)

International VAT/GST (if applicable):

If selling to EU clients, Canada, Australia, or other VAT jurisdictions, you may owe VAT/GST on the subscription. This is complex; consult a tax advisor if you have non-US clients.

For this guide, we’ll assume US-only sales tax.

Step 4b: Determine Your Nexus States

  1. List all states where you have:

    • Office or employees
    • Customers with 10+ subscriptions (or $100k+ annual sales)
    • Physical property or warehouse
  2. Example (fictional HVAC reseller):

    Nexus States:
    - Florida (headquarters in Miami)
    - Georgia (branch office in Atlanta)
    - Texas (100+ clients, $500k annual sales)
    - California (25 clients, $100k+ annual sales)
    
    Non-Nexus States:
    - New York (only 3 clients; no physical presence)
    - Illinois (5 clients; below threshold)

Step 4c: Configure Tax Rules in GoHighLevel

  1. In GoHighLevel, go to SettingsBillingTax Configuration (or Taxes)
  2. Click “Add Tax Rule” or “Create Tax Profile”
  3. For each nexus state, enter:
    • State: Select from dropdown (e.g., Florida)
    • Tax Rate: % (e.g., 6% for FL sales tax)
    • Tax ID / Resale Certificate (optional): Your seller’s permit or resale certificate number
    • Effective Date: When this rate starts (today’s date)
  4. Click “Save Tax Rule”
  5. Repeat for each nexus state

Example tax configuration:

StateTax RateTaxable?Notes
Florida6.0%YesHeadquarters state
Georgia4.0%YesBranch office
Texas8.25%Yes100+ clients
California7.725%YesEconomic nexus ($100k+)
New YorkNoBelow economic nexus threshold

Step 4d: Auto-Calculate Tax on Invoices

  1. In GoHighLevel, go to SettingsBillingInvoice Settings

  2. Enable: “Auto-calculate tax based on customer location” (toggle ON)

  3. Now when you create an invoice for a client:

    • GoHighLevel looks up client’s state
    • If state is in your tax config, adds tax to invoice total
    • Tax appears as separate line item: “[State] Sales Tax (6%): $21”
  4. Click “Save”

Example invoice with tax:

INVOICE #INV-2026-001
From: [Your Company]
To: Acme HVAC Services (Florida resident)

Service Description          Amount
─────────────────────────────────────
GoHighLevel White-Label CRM  $350.00
(Monthly Subscription)

─────────────────────────────────────
Subtotal                     $350.00
Florida Sales Tax (6.0%)     $21.00
─────────────────────────────────────
Total Due                    $371.00

Due Date: 2026-08-06
Payment Link: [Stripe link]

Step 4e: Generate Tax Reports

  1. At year-end (December 31), go to SettingsBillingTax Reports (or Compliance)
  2. Select date range: Jan 1 – Dec 31, 2026
  3. Click “Generate Report”
  4. GoHighLevel exports a CSV/PDF showing:
    • Total revenue by state
    • Tax collected per state
    • Customer count per state
    • Timeline of charges

Example tax report:

Tax Summary Report — 2026

State         Revenue      Tax Collected   Customers
────────────────────────────────────────────────────
Florida       $42,000      $2,520          12
Georgia       $18,000      $720            5
Texas         $35,000      $2,887.50       10
California    $24,000      $1,854          7
────────────────────────────────────────────────────
TOTAL         $119,000     $7,981.50       34

Save this report for your tax filing (April 15 filing deadline for US federal; state deadlines vary).


Part 5: Dunning Rules & Failed Charge Recovery (20 minutes)

Dunning rules auto-retry failed charges and re-engage customers whose credit cards declined. Without dunning, 15–25% of failed charges never recover. With dunning, you recover 15–20%.

Step 5a: Understand Payment Failure Scenarios

Stripe charges fail for these reasons:

  1. Card expired (most common) — Card expired between subscription cycles
  2. Insufficient funds — Customer hit credit limit or overdraft
  3. Fraud detection — Card issuer blocked the charge (suspicious)
  4. Lost/stolen card — Customer’s bank canceled it
  5. Address mismatch — AVS (Address Verification System) check failed

Without dunning: Customer misses payment, goes into arrears, eventually churns.

With dunning: System auto-retries failed charge on Day 3, Day 7, Day 14. If Day 14 retry succeeds, customer stays active. If all fail, then escalate to manual collection.

Step 5b: Enable Dunning in GoHighLevel

  1. In GoHighLevel, go to SettingsBillingDunning Rules (or Failed Payment Recovery)
  2. Enable: “Automatic Retry on Failed Payment” (toggle ON)
  3. Configure retry schedule:
    • Retry 1: Day 3 (3 days after initial failure)
    • Retry 2: Day 7 (4 days after Retry 1)
    • Retry 3: Day 14 (7 days after Retry 2)
  4. Click “Save”

Step 5c: Set Up Dunning Email Sequences

When a charge fails, GoHighLevel sends automatic emails to re-engage the customer:

Email 1 (Day 1 — Immediate after failure):

Subject: Your [Your Company] CRM Payment Failed — Action Needed

Hi {{ClientFirstName}},

Your subscription payment for [Your Company] CRM failed.

Amount: ${{Amount}}
Failure reason: {{FailureReason}} (e.g., "Card expired")

ACTION REQUIRED:
Update your payment method within 24 hours to avoid service interruption.

[Link: Update Payment Method]

Questions? Reply to this email or contact [email protected]

Thank you,
[Your Company] Billing

Email 2 (Day 4 — After first retry attempt):

Subject: [URGENT] Your [Your Company] CRM Service Will Suspend Tomorrow

Hi {{ClientFirstName}},

We attempted to charge your account again on {{RetryDate}}, but it failed.

Service suspension begins in 24 hours unless you update your payment method.

[Link: Update Payment Method - takes 2 min]

Don't lose access to your leads, automations, and customer data.

Questions? Call us: {{SupportPhone}}

[Your Company] Billing

Email 3 (Day 15 — After final retry failure):

Subject: Your [Your Company] CRM Service Has Been Suspended

Hi {{ClientFirstName}},

Your subscription has been suspended due to payment failure on {{PaymentAttempts}}.

To reactivate:
1. Update your payment method
2. Reply "REACTIVATE" or click the button below
3. We'll process immediately

[Link: Reactivate Now]

Your data is safe and will be deleted after 30 days if not reactivated.

Best,
[Your Company] Support

Step 5d: Configure Dunning Email Templates in GoHighLevel

  1. In SettingsBillingEmail Templates (or Dunning Sequences)
  2. For each email (failure notification, first reminder, final warning):
    • Edit subject and body
    • Customize tone and messaging
    • Add your logo and branding
  3. Click “Save Template”

Step 5e: Track Dunning Performance

Monitor your dunning effectiveness monthly:

  1. Go to SettingsBillingReportsFailed Payment Recovery
  2. View:
    • Total failed charges: # of transactions that failed
    • Recovered via dunning: # of charges that succeeded on retry
    • Recovery rate: % of failed charges recovered (target: 15–20%)
    • Lost to churn: # of customers who left after payment failure

Example dunning performance (10 customers, one failed charge each):

Month: June 2026

Initial Failures:           10 charges failed ($3,500 total)
Retry 1 (Day 3):           6 recovered ($2,100)
Retry 2 (Day 7):           2 recovered ($700)
Retry 3 (Day 14):          1 recovered ($350)
────────────────────────────────────
Total Recovered:           9 of 10 ($3,150)
Recovery Rate:             90%
Permanent Churn:           1 customer ($350 lost)

Net impact: Recovered $3,150 that would have been lost; only $350 churn.

Part 6: Client Account Activation & Billing Setup (25 minutes)

Now set up individual client accounts with billing configured.

Step 6a: Create a Client Account

  1. In GoHighLevel, go to SettingsClients (or WorkspaceManage Clients)
  2. Click “Add Client” or “Create New Client Account”
  3. Fill in:
    • Client Company Name: Business name (e.g., “Acme HVAC Services”)
    • Primary Contact Email: Main contact for billing (e.g., [email protected])
    • Contact Name: Contact’s first and last name
    • Phone: Phone number (optional)
  4. Click “Next” or “Continue”

Step 6b: Configure Billing

  1. In the billing section, configure:
    • Billing Cycle: Monthly or Annual
      • Monthly: Charge on the 1st of each month
      • Annual: Charge on the 1st of the current month each year
    • Billing Amount: Your monthly price (e.g., $350)
    • Billing Email: Where invoices are sent (default: primary contact email)
  2. Under Payment Method, select: “Stripe” (auto-charge via credit card)
  3. Click “Create Client Account”

Step 6c: Send Billing Activation Email

GoHighLevel auto-emails the client:

Subject: Your [Your Company] CRM Account is Ready — Set Up Payment

Hi {{ClientFirstName}},

Your CRM dashboard is live at: https://crm.yourcompany.com

To activate your account, complete these steps:

1. Click the login link below
2. Set your password
3. Add your billing payment method (Stripe)
   - Once saved, your first month's subscription begins
   - Monthly charge: ${{MonthlyAmount}} on the 1st of each month

[Login Link: https://crm.yourcompany.com]

Questions? Contact us:
Email: [email protected]
Phone: {{YourPhoneNumber}}

Best,
[Your Company] Billing Team

The client clicks the link, sets a password, enters their credit card, and the first charge processes immediately.

Step 6d: Verify Charge in Stripe Dashboard

  1. Go to stripe.comPayments (or Transactions)
  2. Look for the new client’s charge:
    • Customer: Client name
    • Amount: ${{BillingAmount}} + tax (if applicable)
    • Status: “Succeeded” (if card was valid)
    • Fees: Stripe takes 2.9% + $0.30 per charge

Example charge:

Customer: Acme HVAC Services
Amount: $371.00 (including $21 FL sales tax)
Stripe Fee: $11.47 (2.9% + $0.30)
Net to You: $359.53

You pay GoHighLevel: $497/month Unlimited plan
Your profit this month (1 client): -$137.47

(Don't panic! Profit comes after 2+ clients. With 10 clients,
10 × $359.53 = $3,595.30 net, minus $497 = $3,098.30 profit.)

Step 6e: Important Distinction: MRR vs Collected Revenue

This is critical for cash flow forecasting:

Monthly Recurring Revenue (MRR) = Sum of all active subscription charges in a month, regardless of payment status.

Collected Revenue = Actual cash received in your bank account.

Example:

Month: July 2026

Client A: $350 (paid)
Client B: $350 (paid)
Client C: $350 (paid)
Client D: $350 (charge failed; dunning in progress)
Client E: $350 (charge failed; dunning in progress)

MRR (active subscriptions):        $1,750
Collected Revenue (received):      $1,050
Difference (unpaid/pending):       $700

Cash in bank: $1,050
Projected recovery (via dunning):  ~$140 (20% recovery rate)
Net after dunning:                 ~$1,190

In July’s cash flow, you can only spend the $1,050 you received. The $700 is a promise, not cash. This is why dunning rules matter: they convert promises into cash.

Pro tip: For revenue forecasting with GoHighLevel resellers, calculate:

  • MRR = planning metric (what you’ll eventually collect)
  • Collected Revenue = cash flow metric (what you have today)
  • Always budget based on Collected Revenue, not MRR

Create reusable automation templates so clients (or you, on behalf of clients) have billing workflows ready.

Template 1: New Client Signup → Send Welcome + Billing Setup Instructions

  1. In Automations, create: “New Client Account Created → Welcome Sequence”
  2. Trigger: New Client Account Created (or “Client Added”)
  3. Action 1: Send Email
    Subject: Welcome to [Your Company] CRM — Your Dashboard is Ready
    
    Hi {{ClientFirstName}},
    
    Your white-label CRM is live at: https://crm.yourcompany.com
    
    What's included in your {{PlanName}} plan:
    ✅ Unlimited contacts
    ✅ Unlimited automations
    ✅ Unlimited
Start free trial →