

How to create failed payment alerts with Power Automate
When a Stripe payment fails, automatically create a follow-up task in QuickBooks and notify your finance team via email.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small businesses using QuickBooks that need automated follow-up on failed Stripe payments
Not ideal for
Large enterprises needing complex approval workflows or custom reporting dashboards
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person e-commerce company processes 200 payments monthly through Stripe. Before automation, their bookkeeper manually checked for failed payments twice daily and created follow-up tasks in QuickBooks. Now failed payments trigger immediate task creation and email alerts within 30 seconds.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
Import this workflow directly into Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Customer Email | ||
| Payment Amount | ||
| Invoice Number | ||
| Customer Name | ||
| Task Name | ||
2 optional fields▸ show
| Failure Reason | |
| Payment Date |
Step-by-Step Setup
My flows > + New flow > Automated cloud flow
Create new automated flow
Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then click '+ New flow' in the top menu. Select 'Automated cloud flow' from the dropdown options. Name your flow 'Stripe Failed Payment Handler' and click Create.
- 1Click 'My flows' in left navigation
- 2Click '+ New flow' button
- 3Select 'Automated cloud flow'
- 4Enter flow name 'Stripe Failed Payment Handler'
Flow canvas > Choose trigger > HTTP
Add Stripe webhook trigger
In the trigger search box, type 'HTTP' and select 'When a HTTP request is received' from Microsoft connectors. This creates a webhook endpoint that Stripe will call when payments fail. Click on the trigger step to expand its settings. Set the HTTP method to POST and leave the relative path blank for now.
- 1Type 'HTTP' in the search box
- 2Select 'When a HTTP request is received'
- 3Click on the new trigger step
- 4Set Method to POST
HTTP trigger > Use sample payload to generate schema
Configure Stripe webhook payload
Click 'Use sample payload to generate schema' in the HTTP trigger. Paste this JSON sample that matches Stripe's invoice.payment_failed webhook structure. This tells Power Automate what data to expect from Stripe when a payment fails.
- 1Click 'Use sample payload to generate schema'
- 2Paste the Stripe webhook JSON sample
- 3Click Done to generate the schema
- 4Save your flow to generate the webhook URL
Flow canvas > + New step > QuickBooks Online > Create item
Add QuickBooks connection
Click '+ New step' below the trigger. Search for 'QuickBooks' and select the QuickBooks Online connector. Choose 'Create item' action to create a new task. You'll need to sign in to your QuickBooks account and authorize Power Automate to access your company data.
- 1Click '+ New step'
- 2Search for 'QuickBooks'
- 3Select 'QuickBooks Online' connector
- 4Choose 'Create item' action
- 5Sign in and authorize QuickBooks access
QuickBooks action > Company > Item configuration
Configure task creation
In the QuickBooks action, select your company from the dropdown. Set Item Type to 'Task' or 'Service' depending on how you track follow-ups. For the Name field, click the dynamic content button and select data from the Stripe webhook like customer email or invoice number to identify the failed payment.
- 1Select your company from dropdown
- 2Set Item Type to 'Task'
- 3Click in Name field and select dynamic content
- 4Choose customer email or invoice ID from Stripe data
- 5Add description with failure reason
Flow canvas > + New step > Office 365 Outlook > Send an email (V2)
Add email notification step
Click '+ New step' after the QuickBooks action. Search for 'Office 365 Outlook' or 'Mail' and select 'Send an email (V2)' action. This will notify your finance team when a payment fails and a task gets created in QuickBooks.
- 1Click '+ New step' after QuickBooks action
- 2Search for 'Office 365 Outlook'
- 3Select 'Send an email (V2)'
- 4Sign in to your email account if prompted
Email action > To/Subject/Body configuration
Configure notification email
Fill in your finance team's email in the To field. For the Subject, type something like 'Failed Payment Alert' and add dynamic content from Stripe like customer name. In the Body, include key details like payment amount, customer info, and mention that a follow-up task was created in QuickBooks.
- 1Enter finance team email in To field
- 2Type 'Failed Payment Alert -' in Subject
- 3Add customer name from dynamic content
- 4Write email body with payment details
- 5Include link to QuickBooks task if available
Stripe Dashboard > Developers > Webhooks > Add endpoint
Set up Stripe webhook
Copy the webhook URL from your Power Automate HTTP trigger. Log into your Stripe dashboard and go to Developers > Webhooks. Click 'Add endpoint' and paste the Power Automate URL. Select 'invoice.payment_failed' from the events list and click 'Add endpoint' to activate.
- 1Copy webhook URL from Power Automate trigger
- 2Open Stripe dashboard
- 3Navigate to Developers > Webhooks
- 4Click 'Add endpoint' and paste URL
- 5Select 'invoice.payment_failed' event
- 6Click 'Add endpoint' to save
Power Automate > Flow details > Run history
Test the automation
In Stripe, create a test payment failure by using a card that will decline (like 4000000000000002). Watch your Power Automate flow run history to see if the trigger fires. Check QuickBooks for the new task and your email for the notification. Fix any mapping issues before enabling for production.
- 1Create test payment in Stripe with declining card
- 2Check Power Automate run history
- 3Verify task appears in QuickBooks
- 4Confirm notification email arrives
- 5Review any error messages
Add this expression to the QuickBooks task name field to create more informative task titles that include both customer and failure context.
Copy this templateconcat(▸ Show code
concat( 'Payment Failed: ', triggerBody()?['data']?['object']?['customer_email'],
... expand to see full code
concat( 'Payment Failed: ', triggerBody()?['data']?['object']?['customer_email'], ' ($', div(triggerBody()?['data']?['object']?['amount_due'], 100), ') - ', triggerBody()?['data']?['object']?['charge']?['failure_message'] )
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
Use Microsoft Power Automate for this if you're already in the Microsoft ecosystem and want the webhook to fire immediately when payments fail. The HTTP trigger responds within 10-15 seconds of Stripe sending the webhook, faster than Zapier's 1-2 minute polling. Power Automate also handles the QuickBooks authentication smoothly since Microsoft has a solid partnership with Intuit. Skip this platform if you need complex data transformations or multiple conditional branches — Make handles those scenarios better.
At 50 failed payments per month, you'll use about 150 Power Automate runs total (webhook + QuickBooks + email for each failure). That fits comfortably in the free tier that comes with Microsoft 365 Business plans. Zapier would cost $20/month for the same volume since failed payments push you past their 100-task free limit quickly. Make offers 1,000 operations free monthly, so either Microsoft option or Make keeps you at $0 for typical small business volumes.
Make beats Power Automate on the webhook payload parsing — their JSON module handles nested Stripe data more elegantly than Power Automate's schema generator. Zapier's Formatter tools are cleaner for combining customer name and payment amount into readable task titles. n8n gives you more control over retry logic when QuickBooks API calls fail. Pipedream lets you easily log failed payments to a database for reporting. But Power Automate wins on the QuickBooks connection reliability and the fact that most small businesses already have the license through their Office subscription.
You'll hit two main gotchas after setup. First, Stripe webhook signatures aren't validated by default in Power Automate, so anyone who discovers your webhook URL could potentially spam your flow. Add a Compose action to verify the Stripe signature header if security matters. Second, QuickBooks Online sometimes changes their required fields without warning — a task creation that worked last month might suddenly need a Category or Class field, causing your entire flow to fail until you update the mapping.
Ideas for what to build next
- →Add SMS alerts for high-value failures — Use Twilio connector to text finance team when failed payments exceed $500 threshold.
- →Create follow-up reminder flow — Build scheduled flow to check QuickBooks tasks and email reminders for unresolved payment failures after 3 days.
- →Sync resolution back to Stripe — When QuickBooks task is marked complete, automatically update the Stripe invoice with notes or retry payment collection.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup