

How to Record Stripe Refunds in QuickBooks with Make
Automatically create credit memos in QuickBooks when Stripe processes refunds to keep your books accurate.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Businesses processing 50+ Stripe refunds monthly who need them recorded in QuickBooks within minutes.
Not ideal for
Companies with fewer than 20 refunds per month where manual entry is faster than automation setup.
Sync type
real-timeUse case type
syncReal-World Example
A 25-person e-commerce company processes 150 refunds monthly across multiple product lines. Before automation, their bookkeeper spent 3 hours weekly manually creating credit memos, often with 2-day delays that made month-end reconciliation painful. Now refunds appear in QuickBooks within 30 seconds, and the bookkeeper focuses on analysis instead of data entry.
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 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Customer Email | customer.email | |
| Refund Amount | amount | |
| Refund ID | id | |
| Refund Created | created | |
| Currency | currency | |
1 optional field▸ show
| Charge ID | charge |
Step-by-Step Setup
Dashboard > Create scenario > + > Stripe
Create a new scenario in Make
Start with a blank scenario that will listen for Stripe refunds. This sets up the foundation for your refund tracking automation.
- 1Click 'Create a new scenario' from your Make dashboard
- 2Click the large '+' circle in the center
- 3Search for 'Stripe' in the app list
- 4Select Stripe from the results
Stripe module > Watch events
Configure the Stripe webhook trigger
Set up Make to receive instant notifications when refunds happen. The webhook trigger ensures you catch every refund immediately.
- 1Select 'Watch events' from the Stripe trigger options
- 2Click 'Add' next to Connection to link your Stripe account
- 3In the Event types field, select 'charge.dispute.created' and 'refund.created'
- 4Copy the webhook URL that Make generates
Stripe Dashboard > Developers > Webhooks > Add endpoint
Register webhook in Stripe dashboard
Tell Stripe to send refund events to Make. This creates the connection that triggers your automation.
- 1Open your Stripe dashboard in a new tab
- 2Go to Developers > Webhooks
- 3Click '+ Add endpoint'
- 4Paste the Make webhook URL into the Endpoint URL field
- 5Select 'refund.created' from the events list and click 'Add endpoint'
Between modules > Filter > Condition
Add a filter for refund events
Ensure your scenario only processes actual refunds, not other Stripe events. This prevents false triggers and keeps your books clean.
- 1Click the small wrench icon between modules to add a filter
- 2Set the condition to 'Event type' equals 'refund.created'
- 3Label the filter 'Only Refunds'
- 4Click OK to save the filter
After Stripe module > + > QuickBooks Online > Create Credit Memo
Add QuickBooks module
Connect QuickBooks to receive the refund data from Stripe. This module will create the credit memo in your accounting system.
- 1Click the '+' button after your Stripe module
- 2Search for and select 'QuickBooks Online'
- 3Choose 'Create a Credit Memo' from the action list
- 4Click 'Add' next to Connection to link your QuickBooks account
QuickBooks module > Customer section
Map customer information
Link the Stripe refund to the correct customer in QuickBooks. This ensures the credit appears on the right account.
- 1In the Customer field, click the mapping icon
- 2Select 'Customer Email' from the Stripe data
- 3Set Customer Display Name to map from Stripe's 'Customer Name'
- 4Leave Customer ID empty to let QuickBooks auto-match by email
QuickBooks module > Credit memo details
Configure credit memo details
Set up the credit memo with refund amount and description. This creates a clear paper trail for your accounting records.
- 1Map Document Number to Stripe's 'Refund ID'
- 2Set Transaction Date to Stripe's 'Refund Created' timestamp
- 3In the Memo field, type 'Stripe refund for charge' and map Stripe's 'Charge ID'
- 4Set Currency to match your QuickBooks base currency
QuickBooks module > Line Items > Add item
Add line item for refund amount
Create the actual credit line that reduces the customer's balance. This is the core accounting entry that reflects the refund.
- 1Scroll to Line Items section and click 'Add item'
- 2Set Item Type to 'Service'
- 3Map Amount to Stripe's 'Refund Amount' divided by 100
- 4Set Description to 'Refund processed via Stripe'
QuickBooks module > Right click > Add error handler
Set up error handling
Configure what happens when the scenario fails. This prevents lost refunds and gives you visibility into issues.
- 1Right-click the QuickBooks module and select 'Add error handler'
- 2Choose 'Break' as the error handler type
- 3Enable 'Store incomplete executions'
- 4Set retry attempts to 3 with 1-minute intervals
Bottom toolbar > Run once
Test with sample data
Verify the scenario works before going live. This catches mapping errors and API issues in a safe environment.
- 1Click 'Run once' at the bottom of the screen
- 2Process a test refund in your Stripe test environment
- 3Check that Make receives the webhook and processes it
- 4Verify a credit memo appears in your QuickBooks sandbox
Bottom left toggle > ON > Immediately
Enable automatic execution
Turn on the scenario to handle real refunds automatically. This activates your refund recording system for production use.
- 1Click the 'OFF' toggle in the bottom left to turn it 'ON'
- 2Set the schedule to 'Immediately' for real-time processing
- 3Click 'OK' to confirm the activation
- 4Monitor the first few executions in the execution history
Drop this into a Make custom function.
JavaScript — Custom Function{{formatNumber(parseNumber(amount) / 100; 2)}}▸ Show code
{{formatNumber(parseNumber(amount) / 100; 2)}}... expand to see full code
{{formatNumber(parseNumber(amount) / 100; 2)}}Scaling Beyond 100+ refunds/day+ Records
If your volume exceeds 100+ refunds/day records, apply these adjustments.
Add processing delays
Insert 2-3 second delay modules between operations to stay under QuickBooks' 500 calls/hour limit. Without delays, you'll hit rate limits during refund spikes.
Use data stores for deduplication
Set up a data store to track processed refund IDs and prevent duplicate credit memos. High volume increases the chance of webhook retries creating duplicates.
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 Make for this if you process 50+ refunds per month and need them in QuickBooks within minutes, not hours. Make's webhook triggers catch Stripe refunds instantly, while Zapier polls every 15 minutes on paid plans. The visual scenario builder makes it easy to add error handling for failed customer lookups. Skip Make if you only process 5-10 refunds monthly — manually entering them takes less time than maintaining automation.
This workflow uses 2 operations per refund: one for the webhook trigger, one for the QuickBooks credit memo. At 100 refunds per month, that's 200 operations monthly. That fits Make's Core plan at $9/month with operations to spare. Zapier Professional costs $49/month for the webhook feature, and N8N cloud runs $20/month for similar volume. Make saves you $240+ annually compared to Zapier.
Zapier handles QuickBooks customer matching better — it auto-creates customers when they don't exist, while Make requires manual router setup for this. N8N gives you more data transformation options if you need complex refund categorization rules. But Make wins on webhook reliability and error handling. Its incomplete execution storage means you never lose a failed refund, while Zapier's retry logic is less transparent.
You'll hit QuickBooks rate limits if you process 20+ refunds in quick succession — space them with delay modules. Stripe sends amounts in cents, so always divide by 100 or your credit memos will be 100x too large. Customer email mismatches kill the scenario, so set up error handlers that assign orphaned refunds to a catch-all customer. QuickBooks duplicate protection only works if you map document numbers to Stripe refund IDs.
Ideas for what to build next
- →Add Slack notifications for large refunds — Set up a router that sends alerts to your finance channel when refunds exceed $500 or other thresholds you define.
- →Create refund reports in Google Sheets — Build a parallel path that logs all refunds to a spreadsheet for monthly analysis and trend tracking beyond what QuickBooks provides.
- →Handle disputed charges separately — Extend the scenario to catch Stripe dispute events and create different QuickBooks entries, since disputes need different accounting treatment than voluntary refunds.
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