What Is Stripe? Accepting Payments Without Building a Payment System
A plain-English intro to Stripe — what it does, where it fits in the automation stack, how payment events trigger your workflows, and how it compares to the alternatives.
Before I integrated Stripe into SendJob, post-job payment collection was a manual mess. Technician finishes the job, texts the office, office creates an invoice in QuickBooks, someone emails it to the customer, customer maybe pays within 10 days. Three people involved, multiple handoffs, average collection time over a week.
After Stripe: job marked complete → customer gets a payment link by SMS → customer pays → system records it → receipt emails automatically. Nobody touches it. Collection time dropped to under an hour for most jobs.
That’s what Stripe enables in an automation stack. Here’s what it actually is and how it works.
What Stripe Is
Stripe is payments infrastructure. It’s the service that handles the technical and regulatory complexity of accepting money online so you don’t have to build any of it yourself.
For business owners: Stripe is how you accept credit cards, debit cards, and digital wallets from your customers — online, through payment links, or embedded in your website or app. It also handles subscriptions if you have a recurring billing model, generates invoices, manages customer payment records, and provides a dashboard where you can see everything that’s happened with your money.
For builders: Stripe is a comprehensive REST API with objects for payments, customers, subscriptions, invoices, products, and prices. It fires webhook events into your automation stack whenever money moves — payment succeeded, subscription cancelled, card declined, refund issued. Every significant financial event becomes a trigger you can act on in n8n.
The combination of a clean API, a reliable webhook system, and battle-tested infrastructure makes Stripe the most useful payment tool to integrate with an automation stack. The events Stripe fires are what make payment automation possible.
Why It’s the Default Choice
Building payment processing from scratch is one of the hardest and riskiest engineering tasks that exists. PCI DSS (Payment Card Industry Data Security Standard) compliance alone is effectively a full-time job — it covers network security, encryption standards, access controls, audit logging, and quarterly security scans. Most businesses have no business taking that on.
When you use Stripe, you inherit:
- PCI compliance — Stripe is PCI Level 1 certified, the highest level. Your card data flows through their infrastructure, not yours, which dramatically simplifies your compliance posture.
- Fraud detection — Stripe Radar uses machine learning trained on billions of transactions to detect and block fraudulent payments. It’s included at no extra cost on all accounts.
- Bank relationships — Stripe has established relationships with payment networks and issuing banks that take years to build. You get access to all of it immediately.
- 99.99% uptime — Stripe’s infrastructure is designed for the reliability that financial transactions demand. If Stripe goes down, so does a significant portion of the internet’s commerce — they have strong incentives to stay up.
- International payments — Accept cards from 135+ currencies without building any of the currency conversion or international banking infrastructure yourself.
You’re not paying Stripe for a simple feature. You’re paying them to absorb enormous complexity and regulatory burden so you can focus on your business instead.
The SendJob Payment Flow
Here’s the complete automated payment flow I built in SendJob using Stripe, n8n, Supabase, Twilio, and Resend:
Step 1: Job marked complete. The technician updates the job status to “completed” in the field. This triggers an n8n workflow.
Step 2: n8n creates a Stripe Payment Link. n8n calls the Stripe API to create a payment link for the exact job amount — dynamically set based on the services performed. The payment link has the customer’s name attached to the Stripe customer object and the job ID stored in the payment intent metadata.
Step 3: Customer receives SMS. n8n calls Twilio to send the customer an SMS with the payment link: “Hi Maria, your HVAC repair is complete. Pay here: [link]. Total: $185.”
Step 4: Customer clicks and pays. Customer opens the link on their phone, enters their card information on Stripe’s hosted checkout page. The whole payment experience is Stripe’s — you didn’t build any of it.
Step 5: Stripe fires webhook. The moment the payment succeeds, Stripe sends a payment_intent.succeeded webhook to n8n.
Step 6: n8n updates Supabase. n8n receives the webhook, extracts the job ID from the payment intent metadata, and updates the job record in Supabase: payment_status = 'paid', paid_at = now(), amount_paid = 185.00.
Step 7: Receipt email goes out. n8n triggers Resend to send the customer a payment receipt with the job summary and the amount charged.
Zero human involvement from step 1 onward. The dispatcher doesn’t chase the invoice. The customer gets a clean mobile-friendly payment experience. The receipt is automatic. The job record is updated instantly.
Where Stripe Fits in the Stack
Stripe is the revenue layer. It sits alongside the other tools rather than on top of them, with each tool playing a specific role:
n8n orchestrates the entire flow — it calls the Stripe API to create payment links and customers, and it receives Stripe webhooks to trigger downstream actions.
Supabase stores your financial records — customer IDs, payment status, amounts, timestamps. Every Stripe event that touches a customer or payment gets reflected in Supabase so you can query payment history without calling the Stripe API every time.
Twilio delivers the payment request to the customer — in field service, SMS is the right channel because it works on any phone without an app installed.
Resend handles post-payment communication — receipts, invoice emails, failed payment notifications.
Stripe is the source of truth for what’s been paid. Your Supabase database mirrors that data for quick querying, but if there’s ever a discrepancy, Stripe’s record wins.
The key architectural insight: Stripe webhooks are the events that connect payment reality to your automation stack. Without webhooks, you’d have to poll Stripe constantly to check if a payment came in. With webhooks, Stripe tells you the moment something happens and your automation reacts immediately.
How Stripe Connects to Everything
The two main integration patterns:
n8n → Stripe API (outbound calls):
- Creating a customer object when a new lead is added to Supabase
- Creating a payment link for a specific amount when a job is completed
- Creating a subscription when a user upgrades
- Issuing a refund when a job is disputed
- Creating an invoice for work that needs itemization
Stripe webhook → n8n (inbound events):
payment_intent.succeeded→ update job as paid, send receiptpayment_intent.payment_failed→ notify customer, retry paymentcustomer.subscription.updated→ update subscription tier in Supabasecustomer.subscription.deleted→ downgrade accessinvoice.paid→ log subscription payment, update renewal date
These two directions together form a closed loop: your automation calls Stripe to initiate things, and Stripe calls your automation back when those things happen (or fail).
Stripe vs the Alternatives
There are legitimate alternatives to Stripe. Here’s an honest look at when they make sense:
Square — Better for businesses that need in-person point-of-sale hardware. Square’s card readers and POS system are mature and well-designed. Their API is decent but less developer-friendly than Stripe’s, and their webhook system is less comprehensive. If you run a business where you need to take cards in person (a retail shop, a restaurant), Square is competitive. For automation-heavy digital flows, Stripe is stronger.
PayPal — Consumer familiarity is PayPal’s main advantage — many customers already have PayPal accounts. The downsides are real, though: higher effective fees when you factor in currency conversion and payment method mix, a developer experience that’s significantly worse than Stripe’s, and checkout flows that often redirect customers away from your site. For B2B and field service contexts, customers don’t need the familiarity crutch, and the trade-offs aren’t worth it.
Braintree — PayPal’s developer-focused product, and it’s genuinely solid. Good API, supports PayPal and Venmo payments alongside cards. The main drawback is that it’s owned by PayPal, which creates uncertainty about long-term direction and investment. For new projects, Stripe’s momentum and community are more compelling.
Recurly — Purpose-built for subscription billing. Extremely good at complex subscription scenarios — multiple plans, proration, dunning (retrying failed subscription payments), revenue recognition. If your entire business model is subscriptions with real complexity, Recurly is worth evaluating. For most small operations and mixed billing models, Stripe’s subscription functionality is sufficient and you avoid a separate vendor.
Paddle — Paddle acts as the merchant of record, which means they handle international sales tax and VAT compliance on your behalf. This is a meaningful advantage for SaaS businesses selling internationally. The fees are higher (5% + $0.50 per transaction), but if international tax compliance is a real concern for your business, Paddle’s cost can be worth it. Less useful for service businesses that operate in one region.
My honest take: for a new digital or field service business building automation workflows, Stripe is the right default. The API is the best in the industry, the webhook system is exactly what you need to power automations, and the developer community and resources are unmatched. It gets harder and more disruptive to switch payment processors as your customer base grows — start with the right tool.
What It Costs
Stripe’s pricing is transaction-based, not subscription-based:
Standard card processing: 2.9% + $0.30 per successful charge (US domestic cards)
International cards: Add 1.5% for cards issued outside the US
Currency conversion: Add 1% if the customer pays in a different currency than your settlement currency
Disputes (chargebacks): $15 fee per dispute. This fee is refunded if you win the dispute.
Stripe Radar (fraud protection): Included free at the standard rate
Stripe Connect (marketplace payments): Additional fees if you’re routing payments between multiple parties — not relevant for most basic setups
Real examples for the SendJob context:
- A $150 HVAC service call: Stripe takes $4.65 (2.9% × $150 + $0.30). You receive $145.35.
- A $250 plumbing repair: Stripe takes $7.55. You receive $242.45.
- A $29/month SaaS subscription: Stripe takes $1.14. You receive $27.86.
These fees are real costs and worth factoring into your pricing. At the same time, the labor cost of manual invoice chasing, collections, and payment reconciliation is almost always higher than Stripe’s transaction fees. The automation you enable by using Stripe properly is worth far more than the percentage.
Test Mode vs Live Mode — Start Here
Every Stripe account has two completely separate environments: test mode and live mode. This is one of the things Stripe gets right that some payment providers don’t.
In test mode:
- You use test API keys (prefixed with
sk_test_) - You use test card numbers (no real cards are charged)
- All transactions are simulated — no money moves
- Webhooks fire exactly as they would in production
In live mode:
- You use live API keys (prefixed with
sk_live_) - Real cards are charged
- Real money moves
- You need to have completed Stripe’s identity and business verification
Always build and test in test mode first. We cover this thoroughly in the basics guide, including the specific test card numbers for different scenarios. Never point a live API key at a workflow you haven’t fully tested.
Getting Started with Stripe → — set up your account, create your first payment link, and connect it to n8n.