Invoicing & Stripe
Bill clients from businesses under your portfolio: draft and send USD invoices, collect payment on a secure portal, deposit into the register, and run recurring schedules.
1. Overview
Invoicing lives under each portfolio. You define one or more businesses (sellers), a shared client list, then create invoices that email a tokenized pay link. Currency for v1 is USD only. Payments are full amount (no partial payments online or manual).
In the app, open a portfolio and use the Invoicing area to manage businesses, clients, invoices, and recurring templates.
2. Businesses
A portfolio can host many businesses. Each business has:
- Display name and optional legal name (for invoices and tax-style footers)
- US address, contact email/phone, optional tax id
- Optional logo (stored securely; shown on invoices and the client portal)
- Invoice number prefix and sequence
- Default payment terms and default deposit account
- Whether card payment is accepted by default
- Its own Stripe Connect Standard account (when online payments are enabled)
- Options to hide display name and/or legal name on invoices when a logo is present
Tip: Set a default deposit account on the business so paid invoices land in the right register without re-picking every time. You can still override deposit account per invoice.
3. Clients
Clients belong to the portfolio (not a single business), so you can reuse the same customer across businesses. Store name, email, optional address, phone, and notes. The client email is used when you send an invoice; the address can appear on the printed invoice and portal view.
4. Invoices
Typical flow:
- Draft — pick business and client, add line items (description, quantity, unit price), optional tax free-text, notes/terms, due date, optional PO number, deposit account, and whether card payment is allowed.
- Send — assigns the next invoice number from the business sequence and emails the client a portal link.
- Paid — either the client pays online, or an Editor/Owner marks paid manually (cash, check, transfer, other).
- Deposit — a register deposit is created on the chosen account and linked to the invoice payment.
Invoices can be voided when appropriate. Presentation is HTML with print-friendly CSS (no stored PDF files in v1). Tax is free-text display only—there is no tax calculation engine. You can set or update a purchase-order number on an invoice after it exists.
5. Branding & presentation
Invoices are designed to look professional in the browser and when printed:
- Business logo and address block
- Client name and address (when stored)
- Optional PO number on the invoice header
- Separate controls for showing display name vs legal name next to the logo
- Option to hide names entirely when the logo is enough for brand recognition
Tip: Business settings are organized in tabs so profile, branding, and payment defaults stay easy to find as you grow multiple businesses.
6. Client pay portal
Sent invoices include a long-lived access token URL (for example under /i/{token} on the app).
Clients do not need a PebbleHoard login. They can view the invoice and, when card payment is enabled and Stripe is ready, pay with the embedded Stripe Payment Element.
- After payment, the portal shows a receipt-style view.
- Once paid, the token remains valid for an additional 120 days, then may expire.
- You can revoke or regenerate a token if a link was shared incorrectly.
7. Stripe Connect
Online card (and supported bank methods via Payment Element) use Stripe Connect Standard with direct charges—one connected account per business. Each seller has a full Stripe Dashboard and is responsible for their own Stripe balances. Complete onboarding for each business that should accept card payments.
- Refunds are initiated in-app and flow through Stripe; register balances adjust accordingly.
- Payment status stays in sync when clients pay through the portal.
- When Stripe rejects a request, the app surfaces a clear message instead of a generic server error.
Tip: Card acceptance requires completed Stripe Connect onboarding for that business, plus card payment enabled on the invoice.
8. Recurring schedules
Create a recurring template (business, client, line items, interval) so invoices generate on schedule without a draft approval step. Intervals include weekly, monthly, and yearly patterns as available in the app.
- Calendar and day-of-month math use US Eastern (
America/New_York). - If the anchor day does not exist in a month (for example the 31st in February), the date is clamped to the last day of that month.
- Preview upcoming generations from the schedule before they run.
- On due: the system creates the invoice, assigns a number, and emails the client automatically.
- Schedules can be paused, resumed, or ended.
9. Permissions
| Action | Who |
|---|---|
| View businesses, clients, invoices | View, Comment, Edit, Owner |
| Create/edit businesses, clients, draft invoices | Edit, Owner |
| Send, mark paid, refund, Connect Stripe | Edit, Owner |
Money-moving actions follow the same Edit/Owner rules as other portfolio cash changes. See also Sharing & portfolios.