Knowledge center

Run billing with Floatless.

Product guides, billing concepts, operational playbooks, developer references, and security notes for teams running subscription revenue.

Customer Portal & Requests

The customer portal is your customers' self-service window into their account: balances, invoices, subscriptions, and wallet — no login for them to remember, nothing for you to script. And when they want to make a change (cancel, switch plan), they submit a portal request that lands in your operations inbox for review. Nothing changes until a human approves it.

When should I read this?

  • A customer keeps emailing asking for invoices as PDFs.
  • You want customers to update their own cards instead of reading numbers over the phone.
  • A customer asked to cancel, and you want that request tracked, auditable, and deliberate.

Use cases

Scenario What you do
Onboarding a new customer Generate their portal link and share it — they see balances, invoices, and subscriptions immediately.
Customer wants to cancel They submit a cancellation request in the portal; you triage it in Portal Requests, then act on the subscription deliberately.
Customer outgrows their plan They submit a plan-change request with the target plan and quantity; you confirm and apply the amendment.
Card on file keeps declining The customer updates their own payment method from the portal via a secure Stripe link.

Generate a portal link

On a customer's detail page, click Generate Portal Link. Floatless returns a secure link (the token is valid for 7 days) with the note to share it securely. Opening the link signs the customer into their portal — no password, no account creation.

Customer detail with portal link action

What customers see

The portal has four tabs:

Portal overview with balance and usage

Tab Contents
Overview Open balance, overdue amount, active subscriptions, next bill estimate, payment-method card with an Update payment method button, recent invoices, current usage per meter, and account credit.
Invoices Full billing history with Download PDF per invoice.
Subscriptions Active and past subscriptions with status, billing cycle, next billing date, current period, and per-subscription actions.
Wallet Prepaid balance, monthly spend against cap, spend status, and the transaction ledger (see Prepaid wallets).

Portal subscriptions with request actions

Portal requests: cancellation and plan changes

When a customer acts on a subscription in the portal, they are making a request, not a change:

  • Request Cancellation — they add an optional reason and a timing preference (cancel at period end or immediate).
  • Change Plan / Upgrade Plan — they name the requested plan and quantity, plus notes.

Both create a request in your queue. The portal tells customers plainly that the request is recorded for review and does not change anything by itself.

Triage requests in the console

Open Billing → Portal Requests. Stats across the top track Submitted / In review / Resolved / Rejected; the operations inbox lists each request with its type badge (cancellation in red, plan change in blue), the payload summary, customer, subscription, and status.

Portal requests inbox

Click a request to open the drawer:

Action When
Mark in review You picked it up.
Mark resolved You completed the underlying change (with an optional resolution note).
Reject request You declined it (say why in the note — it helps support later).
Move to submitted Sent it back to the queue.
Open subscription Jump to the subscription to actually perform the cancellation or amendment.
💡
**Requests are read-only until you act.** Approving a cancellation request does not cancel the subscription — an operator opens the subscription and applies the change deliberately. This is intentional: money moves deserve two hands.

Security model

  • Portal links are scoped to one customer and expire after 7 days; generate a fresh link any time.
  • Payment-method updates go through Stripe's hosted page via a separate single-purpose token (valid 24 hours), so card data never touches your servers.
  • Customers see only their own data — the token maps to exactly one customer record.

Common issues

  • The link expired. Generate a new one; the old token stops working immediately after expiry.
  • "Update payment method" errors in the portal. Stripe keys are not configured for your organization yet — see Settings.
  • A request sits in review forever. It stays until a human resolves it — that's the design. Use the stats row to spot aging requests.

Related docs