The customer portal
What your customers see — a passwordless page to view and pay invoices, manage saved cards, and turn off auto-pay.
The customer portal is a private web page you send to each customer so they can view and pay their invoices on their own. There is no account or password — the link itself is the key. Customers can see their invoice history, pay outstanding invoices, save a card, and manage auto-pay. You control who gets access and can turn it off at any time.
TODO(screenshot): customer portal home — header with business name/logo, outstanding quotes section, past invoices list, saved payment methods, and auto-pay section.
What customers can do
The portal shows the customer four main sections, in order:
- Outstanding quotes — any quotes you've sent that are still waiting on their response. The portal can't link directly to the accept page (quote links are one-time), so it tells the customer to check their original email.
- Past invoices — up to the 50 most recent invoices, newest first. Each row shows the invoice number, issue date, status, and total. Customers can tap any invoice to open and pay it.
- Saved payment methods — cards (and bank accounts, if any) on file. Customers can add a card, set a default, or remove a card. The portal shows which cards are linked to auto-pay plans.
- Auto-pay — active auto-pay arrangements tied to recurring plans. Customers can turn any of them off.
The bottom of the page shows your business phone and email (pulled from your settings) so customers can reach you if something looks wrong.
What the invoice page shows
Each invoice opens its own public page. Customers see:
- Invoice number, issued date, and due date
- Line items — description, quantity, unit price, and total
- Subtotal, tax (itemized by rate name and percentage), and total
- A status banner — the exact message depends on status: paid, overdue, past due, payment didn't go through (dunning), or canceled (void)
- A pay block (see below)
Once paid, the invoice page shows a "Paid on [date]" banner with a link to the receipt. The receipt includes line items, totals, and the payment method label (e.g. "Visa •••• 4242") with the date and a Stripe charge ID.
How payment works on the invoice page
What the customer sees on the pay block depends on whether you've connected Zoop to Stripe (to accept cards online) and whether you've added payment instructions (such as "Send a check to…"):
| Online payments (Stripe) | Payment instructions set | What the customer sees |
|---|---|---|
| Connected | No | "Pay now" button only |
| Connected | Yes | "Pay now" button + collapsible "Or pay offline" section |
| Not connected | Yes | Instructions only — no online payment |
| Not connected | No | A note to contact you directly |
When the customer pays online, they can optionally check:
- Save card for future invoices — stores the card on file so future invoices can be paid without re-entering card details.
- Auto-pay future invoices for [plan] — only shown on invoices linked to a recurring plan. Checking this also checks "save card" and locks it on.
TODO(screenshot): invoice page pay block with "Pay now" button and "Or pay offline" disclosure.
Generating a portal link
You generate the link from the customer's detail page in Zoop. Only the account owner can generate or revoke links — office staff can see whether a link is active but can't create one.
Open the customer
Go to Customers and open the customer's detail page.
Find the portal access section
Scroll to the "Portal access" card. It shows whether an active link exists and when it was last used.
Generate the link
Select Generate portal link. A dialog opens showing the full URL.
Copy and send it
Copy the link and paste it into a text message, email, or invoice message to your customer. Copy it before you close the dialog — the link is shown only once and cannot be retrieved afterward. If you close without copying, select Rotate portal link to generate a fresh one.
Copy the link before closing the dialog. Zoop does not store the link itself — only a secure hash — so there is no way to retrieve it later. If you lose it, just select Rotate portal link on the customer's page to create a new one (the old link will stop working).
Managing access
TODO(screenshot): portal access section on the customer detail page — "Active" badge, created/last seen timestamps, Generate and Revoke buttons.
Rotating the link — select Rotate portal link to replace the current link with a new one. The old link stops working right away. Do this if a link was forwarded somewhere it shouldn't have been.
Revoking access — select Revoke to permanently disable the current link. Anyone who tries to use it will see a "page not found" error. You can generate a fresh link any time from the same card.
The Last seen timestamp on the portal access card updates each time the customer opens their portal, so you can see whether they've used the link.
Saved cards and auto-pay
When a customer saves a card through the portal or while paying an invoice, it appears in the Saved payment methods section. From there, they can:
- Set a default card — select the radio button on any card row to make it the default
- Add a new card — select Add a card
- Remove a card — if that card is linked to an active auto-pay plan, the portal warns them that removing the card will also turn off auto-pay on those plans
Each saved card shows brand, last 4 digits, expiry, and when it was added. Cards expiring within 30 days are flagged "Expiring soon."
Turning off auto-pay
The Auto-pay section lists every active recurring auto-pay consent the customer has. Each row shows the plan name, the card it's charged to (brand and last 4), when the consent was granted, and any per-payment cap if one was set.
Customers can select Turn off next to any plan and confirm in the dialog that appears. After they confirm, Zoop stops charging that card automatically for future invoices under that plan — they will still receive the invoices and can pay them manually.
TODO(screenshot): auto-pay section on the portal — consent row with plan name, card, "Granted" date, and "Turn off" button.
Each row shows a badge indicating how auto-pay was set up: Zooper attested means you enrolled the customer on their behalf; Inline means the customer opted in themselves during checkout.
Customers can also turn off auto-pay using a direct link from the auto-pay confirmation email — the link opens the portal and pre-arms the confirmation dialog for that specific consent.
What customers don't need
- An account or password — the link is the credential
- Your app — the portal is a plain web page that works in any browser
- You to be involved — customers can pay and manage their cards any time without contacting you
Related
- Invoices — create and send invoices
- Recurring billing — set up recurring plans and auto-pay
- Payments — see incoming payments in Zoop
- Customers — manage your customer list and contact details