Back to site

Stripe invoices and pay links

Stripe processes online invoice payments. The portal also keeps local billing snapshots, unsent drafts, and offline payment records, so not every billing record is a payable Stripe invoice.

Creating or sending an invoice does not mean payment has been collected. A paid invoice also does not mean the bank payout has already arrived.

Where invoices come from

  • Quote acceptance: follows the accepted billing mode and any required company signature.
  • Manual work billing: capture a billing period from the client's Billing → Invoices area, review it, and send.
  • Send Invoice: New → Send Invoice requests payment for custom line items, including from an email not yet in your client list.
  • Recurring billing: an enabled client schedule prepares drafts or sends invoices according to its configured mode.

Provider-direct project costs are excluded from business invoice snapshots. Recording them is disclosure, not permission to collect them.

What the client sees

An issued Stripe invoice can provide a hosted invoice page, PDF, and Pay Now link. Drafts are not sent or payable.

Your Stripe account and payment settings determine the available methods. Card, bank payments, and Link depend on account eligibility, currency, and configuration; do not promise every method for every invoice. Review Settings → Payments and the actual hosted page.

Portal branding and Stripe-hosted branding have separate settings. Check both when changing the client-facing business name, logo, or colors.

Pay Now links, where they appear

Available pay links appear on the accepted-quote page, client dashboard, Billing / Pay, linked projects, and invoice notifications. These point to the invoice's hosted payment page.

Once paid, the useful links are the receipt and invoice PDF rather than another payment request.

Invoice statuses

Status or alertMeaning
DraftPrepared, not yet sent or payable
Open / Invoice SentIssued with an outstanding balance
PaidPayment recorded
VoidedThat invoice can no longer be paid
UncollectibleWritten off through the supported invoice workflow
Payment FailedA payment attempt failed; check the invoice balance
Action RequiredThe payment needs additional customer action

Payment alerts are not all independent Stripe invoice statuses. Read the invoice's current balance and processor status, not just a past notification.

How the status stays current

Stripe webhooks update the local invoice and payment records. The client billing view also supports refreshing processor status. Updates are not guaranteed to appear instantly.

If records disagree, compare the existing invoice in Stripe with the portal before resending, voiding, or recording another payment. A webhook delay is not a reason to charge again.

Recording an existing invoice as paid with the assistant

The assistant's mark_paid action records money you already received; it is not a request to charge the client. Review the exact invoice and amount, then approve the preview.

For a Stripe-backed invoice, this action supports only a verified full settlement of an otherwise unpaid invoice. Partial external payments, previously recorded partial balances, combined invoices, or differences caused by tax or credits require reconciliation in Billing/Stripe instead. The assistant refuses these ambiguous cases rather than guessing which balance to clear. Standalone offline payment records remain a separate workflow.

A failed provider request is not reported as a settled invoice. If Stripe confirms settlement but the portal cannot finish its local update, inspect that existing payment and request a fresh reconciliation preview—do not record another receipt. Repeating the same completed, confirmed action returns its recorded result without adding another payment. These safeguards do not automatically repair older inconsistent records.

Creating an invoice by hand

  1. Open the client's workspace and Billing → Invoices.
  2. In New Invoice, select the project and billing month.
  3. Click Create Snapshot.
  4. Review the frozen work, rates, approved surcharges, discounts, currency, and due terms.
  5. Use the supported line adjustments if necessary, then Send Invoice.

A snapshot preserves the amounts captured for that period. It does not silently reprice when the catalog changes.

The manual snapshot Resend workflow can void the previous unpaid Stripe invoice and issue a replacement; it is not merely an email reminder. Read the action before confirming. Void cancels the invoice and releases eligible captured work for later billing. Neither action refunds a paid charge.

Voiding a quote invoice

For quote deposit and completion invoices, Void appears beside Open, Finalize & send, or Copy pay link in the admin Invoices waiting on you list. The same control is available under Quote invoices on the quote's detail page. Read-only teammates do not see mutation controls.

  1. Find the particular deposit or completion bill you want to cancel.
  2. Choose Void and review the document title and invoice ID.
  3. Enter a reason for the audit history, then confirm Void invoice.

An unpaid finalized invoice is voided; an unsent one-off Stripe draft is removed from Stripe. The portal preserves the cancellation and audit history. The selected bill leaves pending balances, its payment link is cleared, and eligible captured work is released for possible later billing. A draft already covered by other invoices remains visible so it can be voided instead of sent again.

This cancels only the selected bill. It does not erase or terminate the signed quote or agreement, cancel the project, stop recurring services, or issue a refund. Voiding a combined acceptance invoice also cancels the first-period charges on that same bill, not the continuing service itself.

Paid, partially paid, written-off, or payment-in-progress invoices require separate review. The app checks current provider status before acting and refuses a mismatched or replaced invoice. An older local draft without a Stripe invoice ID needs billing reconciliation rather than a guessed cancellation. If Stripe confirms cancellation but the portal update cannot be confirmed, the dialog says so: review/reconcile that invoice before billing again.

To withdraw an unsigned offer instead, use Next action → Void quote on its document page.

Staging demo invoices: some preloaded [DEMO] quotes use placeholder invoice IDs, with no Stripe invoice behind them. For supported seeded demo bills, the Void dialog explains that cancellation changes only the local demo record. It preserves the paid deposit, signed document, project, and recurring services, and records that no Stripe action occurred. This demo-only handling is unavailable in production and does not bypass provider checks for real invoices.

Quick-billing any email (Send Invoice)

Send Invoice creates a payment request without first sending a quote. Enter and review the recipient and line items.

An existing client email links to that client. A new email can create a billing-only contact rather than a full client workspace. Payment still counts in the platform's billing records.

To record money already received, use Record a Payment instead. Do not use a new offline payment record to settle an existing Stripe invoice.

Recurring invoices

How a retainer schedule starts

Acceptance of an eligible catalog-linked monthly retainer can establish the client's retainer agreement and a monthly schedule, normally on the first of the month with draft-only review.

The agreement must have complete frozen terms. Multiple competing plans, an existing different retainer, or conflicting billing coverage require review rather than silently replacing the client's plan. Read the acceptance notification and the resulting agreement and schedule.

The first billing period is invoiced at acceptance. That is not proof it was paid. Custom monthly lines and annual lines can bill their first period without establishing automatic renewals; manage those renewals separately.

What a scheduled run includes

A due schedule calculates the completed billing period and captures the applicable locked retainer fee, billable overage or other eligible work, approved surcharges, and discounts. It excludes provider-direct costs.

This retainer workflow covers supported client-level agreements. Separately priced project-retainer base fees are not supported yet: new project selections are disabled, and existing project-retainer billing still requires review. See Project pricing limits.

Previously covered or prepaid periods are checked to avoid billing them again. Partial coverage or an agreement boundary can require manual review; inspect the notice rather than issuing another full-period invoice.

Archived clients and effective cancellations are excluded from future runs. Turning a schedule off does not erase existing unpaid invoices.

Review or send automatically

The client's Automatic Billing card controls:

  • Bill this client on a schedule
  • Monthly or quarterly cycle
  • Billing day from 1 to 28
  • Draft only, I review and send or Send automatically, no review

Draft-only leaves the invoice waiting for you. Auto-send emails it without a separate review each period. Sending an invoice is still different from automatically charging a saved payment method.

Before enabling auto-send, review the client's agreement, session rounding, approved extras, first-period coverage, and current inputs. The Recurring invoice view shows prior records; the schedule controls are in Automatic Billing.

Changing the amount

An existing client's agreed retainer price does not increase when the catalog changes. Frozen agreement terms preserve the fee, included hours, overage rate, quantity, and currency.

Use the client's retainer-agreement panel:

  1. Review the current agreement and Agreement history.
  2. Enter an agreement or approval reference and confirm that the client agreed to the proposed terms.
  3. If useful, choose Use current catalog amounts as proposed terms. This fills a proposal; it does not apply it.
  4. Click Review these terms, inspect the effective date and amounts, then Confirm scheduled terms.

New terms take effect in a future eligible period. A quarterly period crossing a change may need a boundary-aligned date or separately reviewed billing.

A legacy agreement marked for review needs verified original terms and evidence, not today's catalog prices. Use Confirm verified original terms only for that recovery case. Never relabel an old price as a different currency.

Stopping a retainer

Turn off the schedule in Automatic Billing to stop future scheduled runs. Keep track of outstanding invoices and any separately agreed cancellation obligations.

Clients can request cancellation from Billing / Pay. Review the requested effective date and use Approve cancellation or Decline request, with a note if needed. Pending requests can take effect under the displayed cancellation rules if left unanswered; do not assume silence keeps the plan running.

Archiving a client also stops scheduled runs, but is not a refund or deletion of their agreement history.

Refunds and write-offs

Issue Refund requires an eligible paid Stripe charge and a remaining refundable amount. Offline payment records do not have a Stripe charge to refund. See Refunds and disputes.

For an uncollectible invoice, use its Stripe workflow or the supported AI tool with confirmation. There is no automatic age-based write-off. Voiding, writing off, and refunding have different effects.

Fees, payment terms, and currency

Platform service fees and Stripe processing fees are separate charges, not sales tax. Check your current plan and billing settings rather than assuming a single rate applies to every account or payment type. Offline recorded payments do not create a Stripe processing charge.

Set memo, footer, and default due days in Settings → Payments. Applicable project-locked service-plan terms can override defaults. Inspect the due date on the actual invoice.

New workflows use the configured currency, while existing quotes, accepted terms, and snapshots retain their stored currency. Changing the organization default is not currency conversion and should not relabel an existing agreement.

Notifications and reminders

The portal and Stripe provide invoice, payment, failure, and refund notifications according to the workflow and account settings. Verify the actual record if delivery fails or a notice arrives late.

Overdue reminders use the invoice's due date and remaining balance. See Late fees and dunning for configuration and limits.