Customers pay the invoice online

A Pay button on the customer's invoice page opens a hosted card checkout, and the invoice marks itself paid when the money lands.

What it is

Card payment straight from the invoice link. The customer taps Pay, is sent to a hosted checkout for the outstanding balance (or a smaller deposit), and returns to the invoice. The payment is verified server-side, recorded against the invoice, and the balance and status update. The button is hidden entirely when the business has no processor connected.

Also called: pay by card · online payment · take a deposit online · credit card payment · stripe checkout

See it, piece by piece
01

There is a Pay button on the invoice the customer already has open

The customer taps Pay, pays on a hosted card page, and comes back. The amount defaults to the outstanding balance and is clamped to it, so overpaying is not possible and you are never refunding money you did not want. Charges run on the payment account your business connected — your account, not a platform account sitting between you and the money — and if you have not connected one, there is no button rather than a button that fails.

02

They can pay part of it now

A customer who can put down a deposit but not the whole draw pays the smaller amount, and the invoice records it as a partial payment with the remainder still owing. The checkout records whether it was a deposit or a full settlement. Materials get ordered on the deposit instead of waiting on a cheque in the post.

Invoicing
AllDraftSentViewedPartialOverduePaidVoidAll customersSearch number, title, customer, or project…
Yoder — 40×64×14 Shop4 invoices
Marlin Yoder·$80,242.35total·$58,380.00 paid·$21,862.35 due
1Paid2Partially Paid3Overdue4Draft
1INV-2026-0036Down Payment — 40×64 ShopPaid
Issued May 4, 2026 · Due May 18, 2026
$26,535.00
PDF
2INV-2026-0038Delivery DrawPartially Paid
Issued Jun 22, 2026 · Due Jul 6, 2026
$35,380.00
$12,380.00 due
PDF
3INV-2026-0041CO-3 — Overhead DoorsOverdue
Issued Jul 9, 2026 · Due Jul 23, 2026
$9,482.35
PDF
4INV-2026-0044Final PaymentDraft
Issued Aug 20, 2026
$8,845.00
The Delivery Draw row — partial, with the balance still standing against it. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
03

The invoice marks itself paid the moment they come back

On return, the checkout session is verified on the server with your own credentials and checked that it actually names this invoice and this business, and the amount recorded is the one the processor reports — never a figure the browser supplied. It works with nothing configured but an API key, so online payment is not something that starts working only once a webhook has been wired up correctly.

04

A closed tab, or a bank payment that clears on Thursday, still gets recorded

A signed callback from the processor records payments where the customer never came back, and a nightly sweep replays anything settled in the last three days that never reached an invoice. Recording is keyed on the checkout session, so the return trip, the callback and the sweep can all fire and the payment is still recorded once. Money in the bank against an invoice still reading unpaid is the reconciliation this removes.

How it works
  1. 1POST /api/client-portal/invoice/pay authorises on the invoice's portal token, refuses drafts and voids, and refuses an already-settled invoice.
  2. 2The amount defaults to the full balance and is clamped so a customer can never overpay past it.
  3. 3Return URLs are built from the host the customer is actually on, so a sub-account's own domain is preserved instead of bouncing to the apex.
  4. 4The route never names a provider — it goes through the payments port, so the invoice code does not know Stripe exists.
Why we built it

Card payment was left out of the first invoicing build on purpose, and adding it raised the obvious risk: a business with no payment processor connected showing its customers a Pay button that fails when pressed. Payment sits behind a switch, so a business without a processor gets a clean invoice and no button at all. Businesses on their own web address send customers back to the address they started on, rather than dropping them on the main site after they pay.

The problem
  • Payment delayed by postal cheques and bank transfers.
  • No way for a customer to pay the moment they read the invoice.
  • Taking card details over the phone.
Sound familiar?
What you get
Deposit collected the same hour the invoice is read.
The builder never handles card details.
The invoice updates itself when the money arrives.
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →