Use this file to discover all available pages before exploring further.
The client portal is the public face of your billing — clients click an email link and land on your branded portal to view invoices, pay them, see contracts, and manage payment methods. This guide walks through the setup that makes that experience feel like an extension of your brand instead of a generic billing page.
The portal is enabled by default for every Commerce account. This guide focuses on customization (branding, domain) and per-account security settings. If you just sent your first invoice and the link works, the portal is already running.
Recommended: PNG with transparent background, at least 400px wide. Shows on the portal header and on PDF invoices/estimates.
3
Set primary and accent colors
Pick from the color picker or paste hex codes. The portal’s buttons, links, and headers use these colors.
4
Add footer text
Your business address, support email, and any disclaimers (“Charges appear as ‘Acme LLC’ on your statement”). Shows on every portal page and on invoice PDFs.
5
Preview
Click Preview to see the rendered portal with your branding applied.
Test the portal in light mode and dark mode (most clients have one preference). The portal auto-detects the client’s system theme. Use colors that read well on both backgrounds.
Typically under 15 minutes; up to 24 hours worst case. Hiveku polls and updates the status to “Verified” once the CNAME resolves.
5
SSL certificate auto-issues
Hiveku provisions a Let’s Encrypt cert automatically. Until it’s issued (usually within an hour of DNS verification), the domain shows a security warning — wait it out.
6
Test the URL
Visit https://billing.yourdomain.com/portal/test. You should see your branded portal’s “session not found” page (which is expected — there’s no live session, but the domain works).
Don’t switch domains mid-flight. Existing magic-link emails point at the old URL. After changing domains, send fresh links to any clients with active sessions. Old links break.
Default is 7 days. For higher-security accounts, drop to 24 hours. Clients then need a fresh magic link if their session expires before they finish what they were doing.
2
IP logging
On by default. Each session logs the IP and user-agent used to authenticate. Useful for audit and abuse detection.
3
Multiple billing contacts
Enable if your enterprise clients have multiple people who need portal access (AP team, project lead, exec sponsor). Each contact gets their own magic link and own session, scoped to the same company’s data.
4
Self-serve subscription changes
Off by default. Toggle on if you want clients to upgrade/downgrade or cancel from the portal without involving your team. Most B2B service businesses keep this off.
The portal uses magic links rather than passwords:
Every invoice/estimate/contract email contains a unique link
Clicking the link creates a session tied to the client’s email
Sessions last 7 days (configurable)
Single-use: once consumed, that link can’t create a new session
For longer-lived access, the client requests a fresh login email from the portal footer
This is the same pattern as Stripe’s customer portal, QuickBooks, and FreshBooks. Clients prefer it because they don’t have to remember another password.
DNS isn’t fully propagated, or the SSL certificate hasn’t issued yet. Wait up to 24 hours. Verify the CNAME is correct using dig billing.yourdomain.com or an online DNS checker.
Logo looks tiny on the portal
The portal renders at a fixed pixel height. Re-upload at higher resolution (400px+ wide) and let the portal scale down. Tiny source images don’t scale up well.
Colors look wrong on dark mode
The portal auto-detects system theme. Test both modes — colors that read fine on light backgrounds can vanish on dark. Pick high-contrast accents that work on both.
Client says the link doesn't work
Magic links are single-use. If they clicked once and re-click from a different device, the second click fails. Send a fresh link from the contact’s actions menu.
Multiple billing contacts but only one gets emails
Check that all billing contacts have the “Billing Contact” flag set. Email routing only sends to flagged contacts. The primary billing contact gets all emails by default; additional contacts need the flag explicitly.
Self-serve cancellation is enabled but clients can't cancel
Self-serve cancellation requires the subscription’s “Allow self-serve cancel” flag. The account-level toggle is the default, but you can override per-subscription. Check the subscription’s settings.