Online payments
With Stripe configured, clients can pay invoices directly from the public invoice link with a credit or debit card. Payments land in your Stripe account and are recorded against the invoice in CaseFlow automatically.
Plan requirement
Available on the Growth plan and above.
CaseFlow's online-payments integration is Stripe-only and card-only. There is no PayPal, no ACH, and no other gateway exposed in the UI.
Setting up Stripe
- Go to Setup > Settings > Billing & Finance > Payment Gateways.
- Create a Stripe account at dashboard.stripe.com/register (or log in to an existing one). New to Stripe? Walk through Stripe's start a Stripe integration guide before activating live mode.
- In Stripe, navigate to Developers > API Keys (direct link). Copy your Publishable Key and Secret Key. Stripe's API keys reference explains the difference between publishable and secret keys, and between test and live keys.
- Paste them into the corresponding fields on the CaseFlow page.
- Optionally edit:
- Description on Stripe dashboard — what shows up in your Stripe payments list (defaults to
Payment for Invoice {invoice_number}) - Currencies accepted — comma-separated list (defaults to
USD,CAD). See Stripe's supported currencies for the full list. - Allow primary contact to update credit card — yes/no
- Description on Stripe dashboard — what shows up in your Stripe payments list (defaults to
- Click Save.
- Use the webhook setup button that appears after saving — it creates the required webhook endpoint in Stripe automatically. If auto-setup fails, the page shows the manual endpoint URL; create the webhook yourself by following Stripe's webhook setup guide. The endpoint must subscribe to
payment_intent.succeededand theinvoice.*events for subscriptions.

After saving, the page shows a TEST MODE or LIVE MODE badge based on your key prefix (pk_test_ vs pk_live_). Always exercise the full flow with test keys first. Stripe's test card numbers cover successful charges, declines, 3D-Secure authentication, and other edge cases without moving real money.
Once configured, a Pay Now button appears on every public invoice link.
Trust account compliance
The settings page itself carries this warning, and it is worth restating: connect your operating account to Stripe, never your trust/IOLTA account. Stripe deducts processing fees before depositing funds, so funnelling client retainer or trust money through a fee-deducted account would constitute a trust accounting violation in most jurisdictions. CaseFlow's online-payments integration is designed for invoice payments (earned fees) only.
How clients pay
When a client opens an invoice link (from email or shared URL) they see the invoice details and a Pay Now button. 
Clicking it opens a Stripe Checkout payment form where they enter card details.
After a successful payment:
- CaseFlow records the payment automatically against the invoice

- The invoice status updates to Paid (or Partially Paid if they paid less than the full balance

- The client sees a payment confirmation page

- A payment receipt email is sent (using the standard payment-recorded template)

Partial payments online
If Allow payment amount to be modified is on under the same Payment Gateways page, the client can edit the amount before paying. Otherwise the Pay Now flow charges the full balance. For instalment plans where the client pays offline (bank transfer, cheque), record those payments manually as they come in; see Recording payments.
Failed payments
If a card is declined, the client sees an error message and can try again with a different card. No payment is recorded in CaseFlow for declined attempts; only successful charges appear. To investigate a specific failure, look up the attempt in Stripe's payments dashboard — Stripe's decline codes reference explains what each error means.
Stripe fees
Stripe charges processing fees (typically 2.9% + $0.30 per transaction in the US — varies by country and product; see Stripe's pricing page for current rates). Fees are deducted from your Stripe balance before payout. CaseFlow records the gross amount the client paid, not the net after fees; you reconcile fees in your Stripe Dashboard.
Subscriptions
For retainer clients who pay the same amount each cycle, set up a Stripe Subscription under Billing > Subscriptions instead. Stripe charges the client's saved card automatically each cycle, retries failed charges, and you manage subscription state from the Stripe Dashboard. Background reading: Stripe's subscriptions overview covers cycles, proration, and dunning.
Refunding online payments
CaseFlow does not have a refund button for online payments — refunds are processed through Stripe directly. The two-step flow:
- Refund in Stripe. Open the payment in your Stripe payments dashboard, click Refund payment, and choose a full or partial refund. Stripe's issuing refunds guide covers timing, partial refunds, and what happens when the cardholder's bank takes longer than usual to post the credit.
- Record the matching billing adjustment in CaseFlow. Create a billing adjustment against the original invoice so your CaseFlow records and your Stripe balance stay aligned.
Skipping step 2 leaves the invoice showing as paid in CaseFlow even though the money has gone back to the client.