Connecting Stripe

Set up Stripe for pay links, keyed card entry, hosted tip collection, and automatic payment syncing in CE Pro.

BeginnerownerUpdated 2026-08-12

Connecting Stripe

Stripe powers the hosted and direct card-payment flows in CleanEstimate Pro. Once connected, your team can send pay links, open the embedded Collect Payment modal, take keyed card payments, present customer tip options, and let invoice and estimate balances update automatically after Stripe confirms success.

The payment methods offered by Stripe are controlled by the connected account's Stripe Dashboard and each transaction's eligibility. Clean Estimate does not force customer-facing payments to a fixed card-only or card-plus-ACH list, so newly enabled eligible methods can appear without an application change.

What Stripe Handles

  • Estimate and invoice pay links
  • Hosted online checkout for customers
  • Hosted crew tip selection on invoice payment pages
  • Keyed credit card entry from the Collect Payment modal
  • Automatic invoice and estimate payment status updates
  • Ledger entries for successful, pending, and failed Stripe collections

How to Connect

  1. Go to Settings.
  2. Open Integrations.
  3. Find Stripe and click Connect.
  4. Complete the Stripe authorization flow.
  5. Return to CleanEstimate Pro and confirm the Stripe card shows Connected.
Screenshot placeholder
Integrations page showing the Stripe card connected

Connect a separate brand account

For a multi-brand workspace, go to Settings -> Brands after creating the brand. Click Connect Stripe on the saved brand, sign in on Stripe's hosted authorization page, choose the existing account, and approve the connection. Clean Estimate saves the connected account automatically when Stripe sends you back. Never enter a secret key, publishable key, or raw account id in Brand Settings.

What Becomes Available After Setup

After Stripe is connected, the payment tools on leads, estimates, jobs, and invoices can:

  • Generate Stripe pay links
  • Open hosted checkout for customers with optional crew tipping on invoice payments
  • Charge a keyed card from the office with Stripe's embedded payment form
  • Let field crews open a card checkout flow from the mobile app when they collect payment in person
  • Show alternate card collection flows for pay link, tap to pay / reader, and external processor recording
  • Sync partial and full card payments back into the shared ledger
  • Show payment-history status updates plus eligible refund / void actions for collected card payments

Offline methods like cash, check, and bank transfer are still recorded in CleanEstimate Pro, but they do not require Stripe.

For multi-brand workspaces, refunds and same-day void attempts are sent to the same connected Stripe account that processed the original brand payment. Brand settings use Stripe's hosted authorization flow rather than accepting an unverified account id.

The shared office Collect Payment modal now also keeps its intended wide desktop frame on estimate, invoice, job, and lead detail pages instead of falling back to the small default dialog width on some screens. That keeps the payment setup and history panes readable when staff opens billing from a record detail page.

Customer Payment Experience

For quotes using the standard estimate approval flow, or for any invoice pay link, the customer experience is:

  1. The standard estimate viewer captures the customer's signature and approval first.
  2. If the signed quote has a deposit due, the same page offers card or US bank-account payment. The amount is calculated on the server from the signed payment schedule.
  3. Invoice links land on the CE Pro invoice viewer, where the customer can review the scope, balance, payment history, and terms before paying.
  4. On invoice payments, the customer can choose 10%, 15%, 20%, Custom, or No Tip based on the invoice taxable amount.
  5. Stripe confirms card payments immediately. ACH can remain Processing until Stripe reports the final result.
  6. CleanEstimate Pro updates the related estimate or invoice to Partial or Paid based on the remaining balance.

Choosing check, cash, Venmo, or another offline method does not create a Stripe charge. The quote shows Deposit pending until the office records the money as received. Switching back to online payment creates a fresh payment session using the current balance.

Legacy fleet and commercial proposal pages remain sign-only. The office collects any deposit for those proposals from the linked estimate or invoice.

When a crew member collects a card payment from the mobile app:

  1. They open the job's invoice payment section.
  2. They choose card, cash, check, or an enabled alternate method under Other.
  3. They present the workspace's three configured percentage or flat tip choices, plus No tip, to the customer.
  4. CE Pro opens Stripe checkout for the balance due plus any selected tip.

Owners and managers configure those mobile choices under Settings > Payment Collection. The server verifies the saved workspace configuration before it creates checkout, so an outdated or altered tip amount cannot be submitted after settings change.

When the pay link started from an estimate, CE Pro now sends the customer back to the same signed estimate experience after success or cancel. Customers are no longer dropped onto an admin-only page after checkout.

Estimate payment links and estimate payment status now stay mirrored onto the shared quote-core record too. When the office generates a Stripe pay link or records a payment against an estimate, CE Pro updates the quote's shared delivery and payment state so the public quote page, office follow-up history, and quote-core automation stay aligned across both Stripe and manually recorded collections.

That shared payment sync now also merges against the latest saved quote delivery state before it writes. If the office resends a quote or creates a pay link right before a payment posts, CE Pro preserves the newer shared quote-link history instead of letting the balance update overwrite it with an older snapshot.

Customer-facing estimate and quote pages, plus the office estimate list, now also read estimate payment status and pay-link state back from that shared quote-core delivery state when needed. If a payment posts before an older flat estimate column catches up, the pay badge and pay-link CTA still reflect the latest shared quote payment state.

The estimate-list projection now keeps that shared delivery-state payload as structured JSON too, which prevents projection refreshes from flattening the quote payment metadata back into an unreadable string on the office list surfaces.

Shared manual-quote sends now also fall back to a neutral sender label if the workspace name cannot be loaded, so customer-facing estimate, quote, and asphalt-maintenance messages never default to another provider's brand name during delivery.

Troubleshooting

A Stripe payment does not appear right away

  • Refresh the invoice, estimate, or job page.
  • Check whether the ledger entry is still Pending.
  • Confirm the charge succeeded in Stripe.
  • If a delayed payment method was used, wait for Stripe's final success event before expecting a paid status.

If a payment attempt fails during office collection, mobile collection, public invoice checkout, or billing-portal launch, CleanEstimate Pro now shows a plain-language action or setup message instead of raw Stripe or provider error text. Use those messages to confirm whether the issue is a balance rule, missing record, or Stripe setup/configuration problem.

The keyed card option is unavailable

  • Confirm Stripe is connected.
  • Confirm the app has a valid Stripe public key configured. CleanEstimate Pro loads the public key from the billing config endpoint before it opens the embedded payment form.
  • If the modal shows Stripe not connected, go to Settings -> Billing and finish the Stripe setup there.
  • Reload the page after any Stripe settings changes.

The keyed card form asks to refresh after I changed the payment

  • If you change the amount or tip after secure card entry has already loaded, CleanEstimate Pro keeps the current card form on screen but pauses submission until you click Refresh Card Entry.
  • Use that refresh step any time you adjust the amount or tip so the Stripe intent matches the final payment total before you charge the card.

The customer cannot use a pay link

  • Make sure the balance due is greater than $0.00.
  • Confirm the invoice or estimate is not voided.
  • Generate a fresh pay link if needed.

If the customer finishes checkout successfully but still reports an access issue, resend the latest estimate or payment link. CE Pro now preserves the signed customer context across Stripe return URLs, so a fresh link should bring them back to the correct public page.

Was this article helpful?

Still need help? Contact support