Intermediate~15 min setupFinance & FinanceVerified April 2026
QuickBooks logo
Stripe logo

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-time

Use case type

sync

Real-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.

/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 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.

QuickBooks Online subscription with API access (Simple Start or higher)
Stripe account with webhook configuration permissions
Bank account properly configured in both Stripe and QuickBooks
Chart of accounts with expense category for processing fees

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Payout Amountamount
Arrival Datearrival_date
Payout IDid
Bank Account
Processing Feesfee
Payout Statusstatus
2 optional fields▸ show
Currencycurrency
Descriptiondescription

Step-by-Step Setup

1

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.

  1. 1Click '+ New flow' button in the top toolbar
  2. 2Select 'Automated cloud flow' from the options
  3. 3Enter 'Stripe Payout to QuickBooks Sync' as the flow name
  4. 4Click 'Create' without selecting a trigger
What you should see: You should see the flow designer with an empty trigger step ready for configuration.
2

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.

  1. 1Click on the empty trigger step
  2. 2Type 'Stripe' in the connector search box
  3. 3Select 'Stripe' from the results
  4. 4Choose 'When a payout is created' trigger
  5. 5Paste your Stripe secret key when prompted
What you should see: The trigger shows 'When a payout is created' with a green checkmark and your Stripe account connected.
Common mistake — Use your secret key (sk_live_...), not publishable key. Live keys start with sk_live_, test keys with sk_test_.
Power Automate
+
click +
search apps
QuickBooks
QU
QuickBooks
Add Stripe webhook trigger
QuickBooks
QU
module added
3

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.

  1. 1Click '+ New step' below the Stripe trigger
  2. 2Search for 'Condition' and select it from Control
  3. 3Click in the left value box and select 'status' from dynamic content
  4. 4Set operator to 'is equal to'
  5. 5Type 'paid' in the right value box
What you should see: The condition step shows 'status is equal to paid' with two branches: Yes and No.
Common mistake — Stripe sends webhooks for all payout statuses. Without this filter, you'll create deposits for failed payouts.
QuickBooks
QU
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Stripe
ST
notified
4

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.

  1. 1Click '+ Add an action' in the Yes branch
  2. 2Search for 'Compose' under Data Operations
  3. 3Click in the Inputs box and select 'Expression'
  4. 4Enter: div(triggerBody()?['amount'], 100)
  5. 5Click 'OK' to save the expression
What you should see: The Compose action shows the division formula and will output the payout amount in dollars.
Common mistake — Don't use simple division - the div() function handles decimals correctly for currency conversion.
5

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.

  1. 1Click '+ Add an action' below the Compose step
  2. 2Search for 'QuickBooks Online' in connectors
  3. 3Find and select 'Create deposit (V3)' action
  4. 4Click 'Sign in' and authenticate with QuickBooks
  5. 5Select your company from the dropdown
What you should see: QuickBooks shows 'Connected' status and displays your company name in the action header.
Common mistake — Power Automate may show 'Create item' first - scroll down to find 'Create deposit' specifically.
6

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.

  1. 1Set 'Deposit Date' to arrival_date from Stripe dynamic content
  2. 2Set 'Amount' to the output from Compose action
  3. 3Select your bank account from 'Deposit To Account' dropdown
  4. 4Enter 'Stripe Payout' in the Memo field
  5. 5Leave other fields as defaults
What you should see: All required deposit fields show dynamic content tokens from Stripe webhook data.
Common mistake — arrival_date is when money hits your bank, not when the payout was created. Use this for accurate cash flow tracking.
7

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.

  1. 1Click in the Memo field and select 'Expression'
  2. 2Enter: concat('Stripe Payout ', triggerBody()?['id'])
  3. 3Add more context if needed with description field
  4. 4Click 'OK' to save the expression
  5. 5Review the complete memo text
What you should see: Memo field shows the concat expression and will create descriptions like 'Stripe Payout po_1234567890'.

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']
)
8

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.

  1. 1Click '+ Add an action' after the deposit creation
  2. 2Search for QuickBooks 'Create expense' action
  3. 3Set Amount to div(triggerBody()?['fee'], 100) to convert fee cents to dollars
  4. 4Select 'Stripe Processing Fees' as the expense category
  5. 5Set the same date as the deposit
What you should see: The expense action is configured to record Stripe fees automatically with each payout.
Common mistake — Fees are also in cents like the main amount - use the same div() conversion formula.
9

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.

  1. 1Click 'Save' in the top right of Power Automate
  2. 2Go to your Stripe dashboard in another tab
  3. 3Navigate to Developers > Webhooks > Add endpoint
  4. 4Use the webhook URL from Power Automate trigger
  5. 5Send a test payout.paid event
What you should see: Flow run history shows successful execution with green checkmarks for both QuickBooks actions.
Common mistake — Test webhooks use test data - amounts will be small and transactions won't appear in your live QuickBooks.
Power Automate
▶ Test flow
executed
QuickBooks
Stripe
Stripe
🔔 notification
received

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 n8n for this workflow

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.

Cost

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.

Tradeoffs

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 trackingCreate separate line items in deposits showing gross sales, refunds, and chargebacks from the payout breakdown.
  • Set up failed payout alertsAdd email notifications when payouts fail or are returned so you can address banking issues quickly.
  • Build monthly reconciliation reportCreate a scheduled flow that compares total Stripe payouts to QuickBooks deposits and flags discrepancies.

Related guides

Was this guide helpful?
QuickBooks + Stripe overviewPower Automate profile →