Online Payments & Stripe
How a client actually pays an invoice online, how Stripe Connect keeps every org's money in their own account, and how the platform takes zero cut.
On this page
Two Stripe integrations — don't confuse them
Connecting your organization's Stripe account
Go to Settings > Accounting and find Card Payments (Stripe). Connecting takes you through Stripe's own hosted onboarding (a Standard Connect account) — only an admin can start this. Once complete, payments your clients make land directly in your own independent Stripe account, not a Landscapt-controlled one. “Manage on Stripe” simply opens your normal Stripe Dashboard — it's your account in every sense, Landscapt is never the merchant of record and never touches the funds.
Enabling bank transfer (ACH)
How a client actually pays
Payment happens through an embedded Stripe form on the page itself — there's no redirect to a separate Stripe-hosted checkout page.
| Entry point | How it works |
|---|---|
| Client Portal | A logged-in client picks Card or Bank Transfer and pays in-page — no redirect. |
| Public pay link | A one-off shareable link on an invoice; no client login required. Card only. |
| Staff-charged | A team member charges a card from inside an invoice, one invoice or several at once. |
| Autopay | Scheduled/bulk off-session charges against a client's saved payment method. |
For the client-facing portal experience in more detail — Outstanding vs. History, one-click Pay Now, and the saved-method management flow — see the Client Portal guide's Billing section; this page focuses on the payments plumbing behind it.
Once a payment succeeds, Stripe notifies the app automatically (a webhook, not a page refresh) — the invoice's paid amount and balance update, its status moves to Paid or Partial, a payment record is created, the client's running balance is recalculated, and it's logged to the client's activity timeline. If you have an Invoice Paid automation configured, it fires at this point too.
Processing fees — you set your own, the platform takes none
Landscapt takes zero cut of any client payment — every charge is a direct charge straight to your own connected Stripe account. What you see charged is entirely a fee you configure, in Settings > Accounting, to help cover Stripe's own card-processing rate:
- Defaults to on, at 3.5%, only applied above $500 — all three are adjustable.
- Applies to card payments on invoices and to a deposit paid by card when a client accepts a proposal, on the same threshold.
- Never applied to Bank Transfer/ACH payments — ACH is fee-free by design.
- Staff can waive it or override it to a flat amount on an individual charge; clients paying through the portal or a public pay link cannot.
- Every fee collected is itemized in its own “Credit Card Processing Fees” report and rolled into the P&L.
How this is kept secure
Because a Standard Connect account is your own fully independent Stripe account, Stripe sends the app a signed notification any time something happens on it — but the app also double-checks that notification actually belongs to your org's connected account before trusting any of the invoice/client information inside it, closing off a class of cross-tenant spoofing that a naive integration would be exposed to. Every payment notification is also deduplicated, so a retried delivery can't double-apply the same payment twice.
What happens if a client pays twice
If a client opens the same pay link or portal page on two devices and both payments genuinely go through, the second one isn't silently lost or double-applied to the invoice — the system applies only what's actually still owed at settlement time and records the rest as a credit toward that client's future invoices. It can't undo a real duplicate charge on the client's card (that's a refund conversation), but it keeps your books honest either way.
Gotchas
- Stripe's own ACH toggle isn't enough on its own — see the ACH callout above. This is the single most common reason “Bank Transfer” doesn't show up for a client who should have it.
- A refund is a real Stripe refund, not just a bookkeeping flip — issuing one from inside the app actually returns the client's money through Stripe first, then updates the invoice record once Stripe confirms it went through.
- Proposal deposits are charged here too. An estimate with a Deposit Required amount can take it by card as part of the client accepting the proposal. It runs through the same connected account as everything else — card or bank transfer, with your card processing fee applying above its usual threshold — but because it happens before any invoice exists it's recorded as an unapplied prepayment rather than against a balance. The invoice screen prompts you to apply it, with a one-click Apply to this invoice button whenever a client has unapplied money. See the Estimating guide. The other deposit methods on that page charge nothing.
- A failed deposit doesn't un-accept the proposal. A bank transfer can be returned days after the client accepted, and a card can be declined. When that happens the acceptance stands — only the payment failed — and the estimate records the reason the bank or card network gave. You get a Deposit failed notification and email, and the client's original proposal link re-opens itself so they can pay it again from the same link. It closes as soon as a deposit is recorded.
- A refund comes out of unapplied credit before it comes off an invoice. When a payment is larger than what it was applied to — an overpayment, or a prepayment only partly used — the leftover sits on the payment as unapplied credit. Refunding now consumes that credit first and only reaches into the invoices once it runs out. So refunding a $50 overpayment on a paid $100 invoice returns the $50 and leaves the invoice paid; it no longer reopens a settled invoice and pushes it back into the charge queue. Refund more than the unapplied amount and the remainder is taken back off the invoices proportionally, as before.
- Fee waivers and overrides are staff-only. A client paying through their portal or a public link always sees the standard configured fee — they can't adjust or skip it themselves.