Beginner~12 min setupFinance & FinanceVerified April 2026
QuickBooks logo
Stripe logo

How to Send Failed Stripe Payment Alerts to QuickBooks with Make

Automatically create follow-up tasks in QuickBooks and notify your finance team when Stripe payments fail.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Teams that need immediate awareness of payment failures with actionable QuickBooks tasks for follow-up.

Not ideal for

Companies that only process a few payments monthly or prefer handling failed payments directly in Stripe.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 25-person B2B SaaS company uses this to handle their 40-60 monthly payment failures from expired cards and insufficient funds. Before automation, their finance manager checked Stripe manually twice daily and customers often went 2-3 days without follow-up contact. Now failed payments create QuickBooks tasks within 60 seconds, assigned to account managers who can reach out the same day.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Make

Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Active Stripe account with payment processing enabled
QuickBooks Online account with admin or full access permissions
Make account on the Core plan or higher (webhook triggers required)
Email account or SMTP credentials for notifications
Permission to create webhooks in your Stripe dashboard

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Customer Emaildata.object.customer.email
Payment Amountdata.object.amount
Failure Reasondata.object.last_payment_error.message
Payment Intent IDdata.object.id
Currencydata.object.currency
1 optional field▸ show
Customer Namedata.object.customer.name

Step-by-Step Setup

1

Dashboard > Create a new scenario

Create New Scenario

Set up a new Make scenario to monitor Stripe payment failures. This will be the container for your entire workflow.

  1. 1Click the blue 'Create a new scenario' button on your dashboard
  2. 2Click the '?' icon in the first module
  3. 3Type 'Stripe' in the search box
  4. 4Select 'Stripe' from the app results
What you should see: You should see a gray module with the Stripe logo and a '+' button to add the next module.
2

Stripe Module > Watch Events

Configure Stripe Payment Failed Trigger

Set up the webhook trigger that fires when Stripe payments fail. This monitors all payment failure events in real-time.

  1. 1Click inside the Stripe module
  2. 2Select 'Watch Events' from the trigger list
  3. 3Click 'Add' next to Connection and authenticate your Stripe account
  4. 4Set Event Types to 'payment_intent.payment_failed'
What you should see: The module should show 'Stripe - Watch Events' with a green connection indicator.
Common mistake — Don't select 'invoice.payment_failed' unless you only want subscription failures — payment_intent covers all payment methods.
Make
+
click +
search apps
QuickBooks
QU
QuickBooks
Configure Stripe Payment Fai…
QuickBooks
QU
module added
3

Add Module > Flow control > Router

Add Router Module

Insert a router to split the workflow into two paths: QuickBooks task creation and team notification. This lets you handle both actions from the same trigger.

  1. 1Click the '+' button after the Stripe module
  2. 2Click 'Flow control' in the left sidebar
  3. 3Select 'Router' from the options
  4. 4Click 'OK' to add the router
What you should see: You should see a diamond-shaped router with two output paths ready for modules.
4

Router Path 1 > QuickBooks > Create a Task

Connect QuickBooks to First Route

Add QuickBooks to the first router path to create follow-up tasks. This will generate actionable items for your finance team.

  1. 1Click the '+' button on the top router path
  2. 2Search for 'QuickBooks' and select it
  3. 3Choose 'Create a Task' from the action list
  4. 4Click 'Add' next to Connection and authorize QuickBooks
What you should see: The QuickBooks module should appear connected to the router with 'Create a Task' selected.
Common mistake — QuickBooks Online and QuickBooks Desktop use different modules — make sure you pick the right version.
5

QuickBooks Module > Task Configuration

Configure QuickBooks Task Fields

Map Stripe payment data to QuickBooks task fields. This creates detailed tasks with customer and payment information for easy follow-up.

  1. 1Set Task Name to: 'Failed Payment: ' + Stripe customer name
  2. 2Set Description to map Stripe error message and payment amount
  3. 3Set Due Date to 2 days from current date using addDays function
  4. 4Assign to your finance team member or leave unassigned
What you should see: Task fields should show mapped Stripe data with blue pill indicators for dynamic values.
Common mistake — QuickBooks task descriptions have a 4000 character limit — don't map the entire Stripe event object or it'll truncate.
QuickBooks fields
DocNumber
CustomerRef.name
TotalAmt
Balance
DueDate
available as variables:
1.props.DocNumber
1.props.CustomerRef.name
1.props.TotalAmt
1.props.Balance
1.props.DueDate
6

Router Path 2 > Email > Send an Email

Add Email Module to Second Route

Configure email notifications for your finance team on the second router path. This ensures immediate awareness of payment failures.

  1. 1Click the '+' button on the bottom router path
  2. 2Search for 'Email' and select it
  3. 3Choose 'Send an Email' action
  4. 4Add your email connection or use Make's built-in SMTP
What you should see: Email module should appear on the second router path ready for configuration.
7

Email Module > Email Configuration

Configure Email Notification Content

Set up the email content with relevant payment failure details. Include customer info and failure reason for quick decision making.

  1. 1Set To field to your finance team email address
  2. 2Set Subject to: 'Payment Failed: ' + customer email
  3. 3Map payment amount, failure reason, and customer details to email body
  4. 4Include link to Stripe dashboard for the specific payment
What you should see: Email fields should be populated with dynamic Stripe data showing customer and payment details.
Common mistake — Test emails go to spam frequently — add your Make account to your email whitelist before going live.
8

Module Right-click > Error handling

Set Up Error Handling

Configure error handling for both paths to prevent scenario failures. This ensures one path failure doesn't break the entire workflow.

  1. 1Right-click the QuickBooks module and select 'Error handling'
  2. 2Add 'Break' directive to stop processing on QuickBooks errors
  3. 3Right-click the Email module and add error handling
  4. 4Set Email errors to 'Continue' so QuickBooks tasks still create
What you should see: Both modules should show small error handling icons indicating directives are configured.
Common mistake — Don't set both modules to 'Ignore' or you'll never know when something breaks — use 'Break' for critical paths.
9

Scenario Settings > Scheduling

Configure Scenario Settings

Set the scenario schedule and data storage options. This controls how often Make checks for new events and how much data it stores.

  1. 1Click the clock icon at the bottom of the screen
  2. 2Set scheduling to 'Immediately' for real-time processing
  3. 3Click the gear icon for scenario settings
  4. 4Enable 'Store incomplete executions' for debugging
What you should see: Scenario should show 'Immediately' scheduling and settings should indicate incomplete executions are stored.
10

Run once > Execution Results

Test with Sample Data

Run a test execution to verify data flows correctly to both QuickBooks and email. This validates your field mapping before going live.

  1. 1Click 'Run once' at the bottom left
  2. 2Wait for the test to complete and check execution results
  3. 3Verify a task was created in QuickBooks with correct details
  4. 4Check that the notification email was received
What you should see: Execution should show green checkmarks on all modules and you should see the task in QuickBooks and email in your inbox.
Common mistake — Make uses sample data for tests — create an actual failed payment in Stripe test mode to see real data flow.
Make
▶ Run once
executed
QuickBooks
Stripe
Stripe
🔔 notification
received
11

Scenario Toggle > ON

Activate Scenario

Turn on the scenario to start monitoring live Stripe events. Your workflow will now automatically respond to payment failures.

  1. 1Click the 'OFF' toggle at the bottom left to turn it 'ON'
  2. 2Confirm the activation in the popup dialog
  3. 3Monitor the scenario dashboard for incoming executions
What you should see: The toggle should show 'ON' and the scenario status should indicate it's actively listening for Stripe events.
Common mistake — Webhook scenarios start processing immediately — make sure your QuickBooks connection is stable before activating.

Drop this into a Make custom function.

JavaScript — Custom Function{{if(contains(1.data.object.last_payment_error.code; "card_declined"); "High Priority"; "Standard")}}
▸ Show code
{{if(contains(1.data.object.last_payment_error.code; "card_declined"); "High Priority"; "Standard")}}

... expand to see full code

{{if(contains(1.data.object.last_payment_error.code; "card_declined"); "High Priority"; "Standard")}}

Scaling Beyond 200+ failed payments/month+ Records

If your volume exceeds 200+ failed payments/month records, apply these adjustments.

1

Add Payment ID Deduplication

Use a data store to track processed payment IDs and filter duplicates. Stripe can send the same webhook multiple times during network issues, creating duplicate QuickBooks tasks.

2

Implement Rate Limit Delays

Add a 2-second sleep module before QuickBooks API calls to avoid hitting their 500 requests/minute limit. Set the QuickBooks module to retry 3 times with exponential backoff.

3

Batch Email Notifications

Replace individual emails with a scheduled summary email that runs every hour. Use an aggregator to collect failed payments and send one digest instead of 200+ individual alerts.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy Make for this workflow

Use Make for this if you need real-time payment failure handling and your team already works in QuickBooks daily. Make's webhook triggers fire within 30 seconds of Stripe events, much faster than Zapier's 2-5 minute polling. The router lets you create both internal tasks and external notifications from one trigger, saving operations. Skip Make if you only need simple email alerts — Stripe's built-in email notifications handle that without automation costs.

Cost

This workflow uses 3 operations per failed payment: webhook trigger, QuickBooks task creation, and email send. At 50 failed payments monthly, that's 150 operations fitting Make's free tier. At 200 failures monthly (600 operations), you need Core plan at $9/month. Zapier would cost $20/month for the same volume since webhook triggers require their paid plan. Make saves you $11 monthly plus gives you the router functionality Zapier charges extra for.

Tradeoffs

Zapier handles QuickBooks authentication better with auto-refresh tokens that rarely break. N8n offers more email customization options including HTML templates and attachment support that Make lacks. But Make's error handling is superior — you can set different failure behaviors for each module, while Zapier either succeeds or fails entirely. For payment failures where QuickBooks tasks matter more than perfect emails, Make's granular error control wins.

You'll hit Stripe's webhook retry logic if Make goes down — Stripe tries 3 times then stops, so you lose events during outages longer than 4 hours. QuickBooks tokens expire every 180 days and Make doesn't warn you beforehand, causing silent failures until you check execution logs. The email module frequently gets flagged as spam because it uses shared IP addresses, so test delivery to your actual finance team addresses before launching.

Ideas for what to build next

  • Add Successful Retry NotificationsCreate a second scenario that watches for successful payment_intent.succeeded events and updates the original QuickBooks task to completed status.
  • Implement Customer Communication WorkflowBuild a follow-up automation that sends personalized emails to customers with failed payments, including payment retry links and account update instructions.
  • Create Failed Payment Analytics DashboardSend failure data to Google Sheets or Airtable to track failure patterns, identify problem payment methods, and measure recovery rates over time.

Related guides

Was this guide helpful?
QuickBooks + Stripe overviewMake profile →