GroundCut + Stripe

GroundCut runs every customer payment through Stripe Connect — your customers pay you directly into your bank account, GroundCut takes a 0% platform fee today, and Stripe handles the underwriting, payouts, and chargeback flow. Tenant SaaS billing (the $99/mo you pay GroundCut) flows through standard Stripe Subscriptions on the platform side.

What the integration does

  • Routes booking payments (full quote charged at booking) and in-person quote deposits from customers directly to your connected Stripe account.
  • Saves payment methods on recurring customers via Stripe Subscriptions for monthly auto-charge.
  • Provides the Payment Element checkout UI on the booking page and the customer invoice portal.
  • Handles refunds (charge.refunded webhook flips the invoice to void if fully refunded).
  • Issues platform-side subscription invoices for the GroundCut subscription itself.

What’s automated

  • Full quoted price charged immediately at booking via charge-on-book — no auth-then-capture, no deposit-then-balance on the instant flow.
  • Recurring monthly billing on the customer’s signup-anniversary date — works regardless of weekly, biweekly, or monthly visit cadence.
  • Stripe Smart Retries dunning on failed recurring charges; subscription cancellation after retries are exhausted writes a lost_recurring follow-up.
  • Idempotent webhook processing via stripe_webhook_events deduplication on event_id.
  • Tenant subscription state mirrored from Stripe (trialing, active, past_due, canceled) for plan gating.

Setup steps

  1. 1In /admin/settings → Payments, click Connect Stripe account. This opens Stripe’s standard onboarding flow on a connected account.
  2. 2Provide your business details, tax information, and bank account in Stripe’s flow. Stripe handles underwriting; most lawn-care operators are approved within minutes.
  3. 3On return to GroundCut, the Connect account ID is stored on your tenant. The system runs a live charges_enabled / payouts_enabled check on first booking and self-heals if the account.updated webhook arrived late.
  4. 4Verify by viewing your booking page and confirming the Payment Element renders. Once your Connect account is active, your first real booking goes through the live flow.

Related GroundCut features

  • Customers drawing their lawn for an instant quote (the trace flows directly into the Stripe charge amount).
  • Recurring schedules (Stripe Subscriptions on the connected account drive billing).
  • Customer invoice portal (Stripe Payment Element on the /invoice/[id] page).
  • In-person quote deposit flow (deposit invoice paid through the same Stripe Connect pipe).

Stripe integration FAQs

How much does Stripe cost on top of the GroundCut subscription?+
Two costs total: your $99/mo GroundCut subscription, and Stripe’s standard processing fees (2.9% + $0.30 per online transaction in the US at the time of writing) on each customer charge. That’s the entire bill — GroundCut takes a 0% platform fee today, so a $100 booking costs the customer $100, you receive ~$96.80, and only Stripe’s processing fee comes out of the difference. No per-user fee, no per-customer fee, no SMS overage. The Connect plumbing is in place to enable a platform fee in the future, but no GroundCut fee is being retained on customer charges right now. You can also pass card fees to the customer with the pass_card_fee_to_customer setting if your market tolerates it.
Can I disable Stripe and take payment in person?+
Yes. In /admin/settings → Payments, set payment_collection to "external" and add your payment instructions ("cash or check on completion"). Booking still works — the customer doesn’t enter card details, the job is created with an unpaid invoice, and the crew mobile app prompts you to mark the invoice paid when the customer pays in person. You lose the paid-at-booking lock-in and the recurring auto-charge benefit, but it’s a real option.
How does Stripe Connect protect my customers’ card data?+
Card data never touches GroundCut servers. The Stripe Payment Element is an iframe rendered inside the booking page — the customer types their card directly into Stripe’s domain. GroundCut only ever sees the resulting payment_intent_id. This keeps the platform out of PCI scope at the SAQ-A level and means your customers’ data is held to Stripe’s standards, not ours.
What happens to a recurring customer if their card fails?+
Stripe Smart Retries kicks in automatically — typically four retries over two weeks. During retries the local recurring_schedule stays active. If all retries fail, Stripe ends the subscription and sends customer.subscription.deleted with cancellation_details.reason="payment_failed". GroundCut deactivates the schedule with deactivated_reason="unpaid", deletes future scheduled jobs, and creates a lost_recurring follow-up on your dashboard so you can call the customer.
Can I refund a customer through GroundCut?+
Yes. From /admin/invoices, the Refund action calls Stripe’s refund API. Partial refunds are supported. The refund flows through the connected account so the money returns from your balance, not from the platform. The webhook for charge.refunded flips the invoice to void if fully refunded and inserts a negative payments row for accounting accuracy.

Try GroundCut + Stripe free for 14 days

Pro features unlocked during the trial. Connect on day one and see it work with your real data.

14-day free trial · No card required · Cancel any time