

How to sync Stripe payouts to QuickBooks with Power Automate
Automatically create QuickBooks bank deposit records when Stripe sends payouts to your bank account.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small businesses processing 50-500 Stripe transactions monthly who need clean books without manual data entry
Not ideal for
High-volume merchants with complex fee structures who need custom reconciliation logic
Sync type
real-timeUse case type
syncReal-World Example
A 12-person e-commerce company processes $45K monthly through Stripe with daily payouts. Their bookkeeper spent 2 hours weekly creating deposit records and matching amounts. Now each payout creates a QuickBooks deposit within 30 seconds, with fees automatically calculated and categorized.
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 | ||
| Payout Amount | amount | |
| Arrival Date | arrival_date | |
| Payout ID | id | |
| Bank Account | ||
| Processing Fees | fee | |
| Payout Status | status | |
2 optional fields▸ show
| Currency | currency |
| Description | description |
Step-by-Step Setup
My flows > + New flow > Automated cloud flow
Create automated cloud flow
Go to make.powerautomate.com and sign in. Click 'My flows' in the left sidebar, then '+ New flow'. Choose 'Automated cloud flow' since we need real-time webhook triggers. Name it 'Stripe Payout to QuickBooks Sync' and leave the trigger selection for the next step.
- 1Click '+ New flow' button in the top toolbar
- 2Select 'Automated cloud flow' from the options
- 3Enter 'Stripe Payout to QuickBooks Sync' as the flow name
- 4Click 'Create' without selecting a trigger
Flow designer > Choose your flow's trigger
Add Stripe webhook trigger
Click on the trigger step and search for 'Stripe' in the connector search bar. Select the 'When a payout is created' trigger - this fires immediately when Stripe processes a payout to your bank. You'll need your Stripe secret key from your Stripe dashboard under Developers > API keys.
- 1Click on the empty trigger step
- 2Type 'Stripe' in the connector search box
- 3Select 'Stripe' from the results
- 4Choose 'When a payout is created' trigger
- 5Paste your Stripe secret key when prompted
Flow designer > + New step > Control > Condition
Add condition for successful payouts
Click '+ New step' and search for 'Condition' under Control. We only want to create deposits for successful payouts, not failed ones. Set the condition to check if the payout status equals 'paid'. This prevents creating deposits for pending or failed payouts.
- 1Click '+ New step' below the Stripe trigger
- 2Search for 'Condition' and select it from Control
- 3Click in the left value box and select 'status' from dynamic content
- 4Set operator to 'is equal to'
- 5Type 'paid' in the right value box
Condition Yes branch > + Add an action > Data Operations > Compose
Convert payout amount to dollars
In the 'Yes' branch, add a 'Compose' action from Data Operations. Stripe sends amounts in cents, but QuickBooks expects dollars. Use the expression div(triggerBody()?['amount'], 100) to convert cents to dollars with proper decimal places.
- 1Click '+ Add an action' in the Yes branch
- 2Search for 'Compose' under Data Operations
- 3Click in the Inputs box and select 'Expression'
- 4Enter: div(triggerBody()?['amount'], 100)
- 5Click 'OK' to save the expression
Yes branch > + Add an action > QuickBooks Online > Create deposit
Connect to QuickBooks
Add another action and search for 'QuickBooks Online'. Select 'Create item (V3)' but we actually need to create a deposit, so look for 'Create deposit' action. You'll authenticate with your QuickBooks Online account using OAuth - make sure you're logged into the correct company file.
- 1Click '+ Add an action' below the Compose step
- 2Search for 'QuickBooks Online' in connectors
- 3Find and select 'Create deposit (V3)' action
- 4Click 'Sign in' and authenticate with QuickBooks
- 5Select your company from the dropdown
Create deposit action > Field configuration
Configure deposit details
Fill in the deposit fields using Stripe webhook data. Set Deposit Date to the payout arrival_date from Stripe. For Amount, use the Compose output (converted dollars). Choose your bank account from the dropdown - this should match where Stripe deposits actually go.
- 1Set 'Deposit Date' to arrival_date from Stripe dynamic content
- 2Set 'Amount' to the output from Compose action
- 3Select your bank account from 'Deposit To Account' dropdown
- 4Enter 'Stripe Payout' in the Memo field
- 5Leave other fields as defaults
Create deposit > Memo field > Expression
Add payout description
In the Memo field, create a descriptive reference using Stripe data. Use an expression like concat('Stripe Payout ', triggerBody()?['id'], ' - ', triggerBody()?['description']) to include the payout ID and any description Stripe provides.
- 1Click in the Memo field and select 'Expression'
- 2Enter: concat('Stripe Payout ', triggerBody()?['id'])
- 3Add more context if needed with description field
- 4Click 'OK' to save the expression
- 5Review the complete memo text
Add this expression to the deposit memo field to include net sales data and fee breakdown for better financial reporting. Paste this in the Memo field expression editor.
Copy this templateconcat(▸ Show code
concat( 'Stripe Payout ', triggerBody()?['id'], ' | Net: $', string(div(triggerBody()?['amount'], 100)),
... expand to see full code
concat( 'Stripe Payout ', triggerBody()?['id'], ' | Net: $', string(div(triggerBody()?['amount'], 100)), ' | Fees: $', string(div(triggerBody()?['fee'], 100)), ' | Period: ', triggerBody()?['arrival_date'] )
Yes branch > + Add an action > QuickBooks Online > Create expense
Handle Stripe fees
Add another QuickBooks action to record Stripe processing fees as an expense. Search for 'Create expense' and set the amount to the fee field from the webhook. This keeps your books accurate by showing both the gross payout and fees deducted.
- 1Click '+ Add an action' after the deposit creation
- 2Search for QuickBooks 'Create expense' action
- 3Set Amount to div(triggerBody()?['fee'], 100) to convert fee cents to dollars
- 4Select 'Stripe Processing Fees' as the expense category
- 5Set the same date as the deposit
Flow designer > Save > Stripe Dashboard > Developers > Webhooks
Test with Stripe webhook
Save your flow and test it using Stripe's webhook testing tool. In your Stripe dashboard, go to Developers > Webhooks and send a test payout.paid event. Check the flow run history to see if both the deposit and fee expense were created correctly in QuickBooks.
- 1Click 'Save' in the top right of Power Automate
- 2Go to your Stripe dashboard in another tab
- 3Navigate to Developers > Webhooks > Add endpoint
- 4Use the webhook URL from Power Automate trigger
- 5Send a test payout.paid event
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 Power Automate for this if you're already in the Microsoft ecosystem and want native integration with your Office 365 setup. The QuickBooks Online connector is solid and handles authentication cleanly. The webhook triggers are reliable for real-time payout processing. Skip Power Automate if you need complex fee breakdown logic or handle multiple currencies - Make handles those scenarios better with more flexible data transformations.
This costs nothing for typical small business volumes. Each payout creates 2 actions (deposit + expense), so 100 payouts monthly = 200 actions. Power Automate includes 2,000 actions free with Office 365, making this essentially free for most users. Zapier would cost $20/month for the same volume since webhook triggers require a paid plan.
Make beats Power Automate on conditional logic - its router system handles complex payout scenarios like international fees or express payouts more elegantly. Zapier has better error handling with automatic retries and detailed logs when things break. n8n gives you more control over the webhook payload processing with custom JavaScript. But Power Automate wins on QuickBooks integration depth - it supports more entity types and field mappings than competitors.
You'll hit timezone issues where Stripe sends UTC timestamps but QuickBooks expects local business dates. The webhook occasionally delivers duplicate events during Stripe maintenance windows, so add duplicate checking. Power Automate's expression language gets clunky for complex fee calculations - you might need multiple Compose actions to break down the math into readable steps.
Ideas for what to build next
- →Add sales breakdown tracking — Create separate line items in deposits showing gross sales, refunds, and chargebacks from the payout breakdown.
- →Set up failed payout alerts — Add email notifications when payouts fail or are returned so you can address banking issues quickly.
- →Build monthly reconciliation report — Create a scheduled flow that compares total Stripe payouts to QuickBooks deposits and flags discrepancies.
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