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:

  1. 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.
  2. Send — assigns the next invoice number from the business sequence and emails the client a portal link.
  3. Paid — either the client pays online, or an Editor/Owner marks paid manually (cash, check, transfer, other).
  4. 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

ActionWho
View businesses, clients, invoicesView, Comment, Edit, Owner
Create/edit businesses, clients, draft invoicesEdit, Owner
Send, mark paid, refund, Connect StripeEdit, Owner

Money-moving actions follow the same Edit/Owner rules as other portfolio cash changes. See also Sharing & portfolios.