Agentic Solutions
Back to Free Resources

Stripe: Automating Collections

What it does

Stripe Invoicing sends a customer an invoice with a pay link, reminds them automatically if they don't pay, and records the payment when they do. For a restoration or remodeling business, that covers the money that comes straight from customers: rebuild deposits, deductibles, change orders, the final payment on completion. It can split one invoice into a deposit and a balance, save a card or bank account on file, and tell your own app the moment a job is paid.

What it costs

  • No monthly fee. You pay when an invoice gets paid.
  • Invoicing Starter: 0.4% per paid invoice. Invoicing Plus: 0.5% per paid invoice, and adds Quotes (send an estimate that turns into an invoice).
  • Plus the payment fee: cards 2.9% + 30 cents; ACH bank payments 0.8%, capped at $5. Failed ACH payment: $4. Disputes: $15, plus $15 more to fight one.
  • Example, as math: a $12,000 final rebuild payment by ACH on a Starter invoice is $5 + $48 = $53. By card, about $348.30 + $48 = $396.30.
  • Payment Links (no invoice, just a link) have no added fee beyond the payment fee.

A 10-minute setup

  1. Sign up at stripe.com and stay in the sandbox (practice mode).
  2. Turn on ACH: Settings, Billing, Invoicing, default payment methods, turn on ACH Direct Debit.
  3. Turn on reminders: invoice settings, Manage advanced invoicing features, Send reminders if a one-off invoice hasn't been paid. Add one before and one after the due date.
  4. Create a test customer and an invoice for a "Rebuild deposit." Send it to your own email.
  5. Open the email and pay with test card 4242 4242 4242 4242. Watch the invoice change to Paid.
  6. Going live means activating your account with business and bank details. Stripe reviews them and contacts you if it needs anything else.

Common mistakes and gotchas

  • The 0.4% invoicing fee has no cap shown on Stripe's page. On big invoices it's bigger than the ACH fee.
  • Insurance checks don't go through Stripe. Mark those invoices paid by hand so your records match.
  • Sandbox emails mostly don't send unless the address is on your verified domain or belongs to a team member.
  • Invoice links expire 30 days after the due date.
  • Sandbox and live are separate. Settings, customers, and webhook secrets don't carry over.

Where it fits in your build

You don't need to build anything to start. Stripe's own Dashboard can send invoices with a pay link, remind customers, and record payments today. Connect it to your own app later, only if you want the job record to show "paid" automatically.

Sources

Last checked: October 7, 2026

Read the full guide


Full article

Where collections actually leak in this business

Restoration and remodeling money comes from several places at once: the carrier, the mortgage company, the homeowner's deductible, the homeowner's own money for upgrades and change orders, and sometimes a final payment you hold back until a punch list is done. Insurance money often comes as a paper check and doesn't go through Stripe at all. Stripe helps with the part that's yours to chase: the homeowner's share, deposits, change orders, and final payments. The leaks are usually the same three:

  1. The invoice goes out late, or not at all, because nobody had time.
  2. Nobody follows up until 60 days later.
  3. Someone gets paid and the job record never says so.

Stripe Invoicing handles all three without anyone remembering to do it.

What it costs, in more detail

PiecePriceNotes
Invoicing Starter0.4% per paid invoiceInvoices, hosted pay page, reminders, customer portal, ACH and wire reconciliation
Invoicing Plus0.5% per paid invoiceEverything in Starter, plus Quotes
Card payment2.9% + 30 cents+0.5% if the card is typed in by hand, +1.5% for international cards
ACH Direct Debit0.8%, capped at $5$4 failed payment, $15 dispute
Card dispute$15Plus $15 to counter; refunded if you win
Payment LinksNo added feePayment fees only. No reminders or payment plans

Stripe's invoicing page shows no cap on the 0.4%. It says businesses with large invoice amounts can contact sales about pricing.

Sample math (not a quote):

InvoicePaid byPayment feeInvoicing fee (Starter)Total fees
$2,500 rebuild depositACH$5.00$10.00$15.00
$2,500 rebuild depositCard$72.80$10.00$82.80
$1,000 deductibleCard$29.30$4.00$33.30
$12,000 final paymentACH$5.00$48.00$53.00

On a big final payment, steering the customer to ACH saves money. Stripe's own ACH invoicing guide notes that many businesses turn cards off above a certain invoice total.

What you can automate, feature by feature

1. Invoices with a pay link. Every invoice gets its own secure page where the customer can see it, pay with any method you've allowed, and download a PDF. Stripe can email it for you, or you copy the link and text it.

2. Automatic reminders. In invoice settings, under Manage advanced invoicing features, turn on Send reminders if a one-off invoice hasn't been paid and add reminders before, on, or after the due date. Stripe skips a reminder if a payment is already processing.

3. Deposits and balances on one invoice (payment plans). Split one invoice into separate payments with different due dates: for example, a $5,000 rebuild with a $1,000 deposit due now and two later payments. Stripe reminds the customer of upcoming payments and shows them what they've paid. You can set this up in the Dashboard or through the API. Once the first payment comes in, you can't revise or void the invoice.

4. Partial payments. For big invoices, Stripe can accept several smaller payments against one invoice. The invoice counts as paid only when the balance hits zero.

5. A card or bank account on file. On the hosted invoice page, Stripe can offer the customer a checkbox to save their payment method for later (the default for new accounts). You can also add a customer's bank account from their customer page; they verify it with small test deposits, which can take up to 2 days. With a default method on file, you can choose Charge immediately on the next invoice. Have clear written terms with the customer before you charge a saved method.

6. Retainage or holdback. No retainage feature turned up in Stripe's docs when this guide was checked. Two plain ways to handle it: make the last payment in a payment plan the holdback amount, due after your completion date, or send a separate final invoice when the punch list is signed off.

7. Marking insurance checks paid. When a payment comes in outside Stripe, open the invoice, click the three-dot menu, choose Change invoice status, and select Paid. Your records stay in one place.

8. Telling your own app the job is paid (webhooks). If you've built your own job tracker, Stripe can notify it when money comes in. Listen for invoice.paid, which fires both for real payments and for invoices you marked paid by hand. For ACH, payment_intent.processing tells you a payment started but hasn't cleared. Your app should verify Stripe's signature on each notification and answer quickly before doing any other work.

9. Estimates that become invoices (Quotes, Plus plan only). Most restoration estimates are written elsewhere, so you may not need this. It's there if you want customer-approved change orders that convert straight to invoices.

The full setup, step by step

In the sandbox (about 30 minutes):

  1. Sign up at stripe.com. You start in a sandbox, a practice copy of your account.
  2. Brand it. Add your logo and colors in branding settings so invoices look like your company.
  3. Payment methods. Billing settings, Invoicing, default payment methods: turn on cards and ACH Direct Debit.
  4. Reminders. Turn on one-off invoice reminders. A reasonable starting point is 3 days before due and 7 days after (judgment, adjust to taste).
  5. Saving payment methods. In invoice settings, under default payment terms, decide whether to offer customers the save checkbox.
  6. Make a product list. Common lines: "Rebuild deposit," "Homeowner deductible," "Change order," "Final payment," "Upgrade: flooring," and so on.
  7. Test a payment plan. Create an invoice for $5,000 with a $1,000 deposit now and the balance in 30 days. Pay the deposit with 4242 4242 4242 4242. Confirm the invoice shows the remaining balance.
  8. Test ACH. On a test invoice's pay page, choose US bank account and pick the test bank. Refresh to see it paid.
  9. Test "mark paid." Create another invoice and change its status to Paid by hand, as if an insurance check came in.

Going live:

  1. Activate your account. Stripe asks for your business details and the bank account for payouts. It reviews them and contacts you if it needs anything else. Its setup page doesn't say how long that takes.
  2. Redo your settings in live mode. Sandbox settings, products, and customers don't carry over.
  3. Send one real invoice to yourself for $1 and pay it, then refund it.

If you connect it to your own app:

  1. Ask your AI coding assistant: "Add a Stripe webhook endpoint that listens for invoice.paid, verifies Stripe's signature, and marks the matching job's invoice as paid in my database." Use a restricted key (rk_) with only the access your app needs. The webhook signing secret for live mode is different from the sandbox one; update it when you go live.

More gotchas worth knowing

  • Stripe's pages don't fully agree on saved bank accounts. The ACH invoicing guide says Stripe automatically saves a customer's bank information when they pay a one-off invoice. The hosted invoice page guide says by default Stripe only saves it if the customer checks the box. Check how your own account behaves in the sandbox before you promise customers anything.
  • ACH takes days to clear. A started ACH payment isn't money in the bank yet. Don't release your crew on a deposit that's still processing unless you're comfortable with the risk.
  • Reminder emails in the sandbox mostly don't send. Stripe only sends sandbox customer emails to addresses on your verified domain or to team members. Test with your own business email.
  • Invoice links expire 30 days after the due date (never longer than 120 days). Stripe redirects the customer to a page where they can request a fresh link.
  • Payment plans lock once paid into. You can revise or void a payment-plan invoice only before the first payment.
  • Don't put your secret key in browser code. Only pk_ keys belong there.
  • Disputes cost $15 each. Clear invoices with job addresses, claim numbers where it fits, and signed change orders make disputes less likely and easier to fight.

When to connect it to your own app

Start in the Stripe Dashboard with no code. Once you trust the invoices and reminders, ask your AI assistant for an invoice.paid webhook that verifies Stripe's signature and marks the matching job paid. Use a restricted key with only the access the app needs, and remember the live-mode signing secret is different from the sandbox one.

Back to Free Resources