

How to Record Refunds from Stripe to QuickBooks with Pipedream
Automatically create QuickBooks credit memos 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+ refunds monthly who need accurate books without manual data entry
Not ideal for
Companies that only process 1-2 refunds per month where manual entry makes more sense
Sync type
real-timeUse case type
syncReal-World Example
A 25-person e-commerce company processes 80 refunds monthly across their Stripe account. Before automation, their bookkeeper spent 3 hours weekly creating QuickBooks credit memos manually, often missing refunds that created reconciliation headaches. Now refunds appear in QuickBooks within 30 seconds of processing.
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 Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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 Reference | CustomerRef | |
| Credit Memo Amount | TotalAmt | |
| Credit Memo Date | TxnDate | |
| Income Account | AccountRef | |
2 optional fieldsβΈ show
| Reference Number | DocNumber |
| Line Item Description | Description |
Step-by-Step Setup
Dashboard > New Workflow
Create new workflow in Pipedream
Log into pipedream.com and click the blue 'New Workflow' button in your dashboard. You'll see a blank workflow canvas with a trigger placeholder at the top. This is where you'll configure the Stripe webhook that fires when refunds happen.
- 1Click 'New Workflow' from the dashboard
- 2Name your workflow 'Stripe Refunds to QuickBooks'
- 3Click the trigger step to configure it
Trigger > Select a Source > Stripe
Add Stripe webhook trigger
Click 'Select a Source' in the trigger step and search for 'Stripe'. Choose 'New Refund' from the available Stripe triggers. Pipedream will generate a unique webhook URL that you'll need to register with Stripe in the next step.
- 1Click 'Select a Source' in the trigger step
- 2Search for 'Stripe' in the app directory
- 3Select 'New Refund' from the trigger options
- 4Copy the generated webhook URL
Trigger Configuration > Connect Account
Connect your Stripe account
Click 'Connect Account' in the Stripe trigger configuration. Pipedream will open Stripe's OAuth flow where you'll authorize access to your Stripe data. Make sure you're logged into the correct Stripe account before clicking authorize.
- 1Click 'Connect Account' in the trigger step
- 2Sign into your Stripe account in the popup
- 3Click 'Allow access' to authorize Pipedream
- 4Confirm the connection shows as 'Connected'
Stripe Dashboard > Developers > Webhooks
Register webhook in Stripe dashboard
Open your Stripe dashboard in a new tab and navigate to Developers > Webhooks. Click 'Add endpoint' and paste the webhook URL from Pipedream. Select 'charge.dispute.refunded' and 'refund.created' events to capture all refund scenarios.
- 1Go to stripe.com/dashboard and log in
- 2Navigate to Developers > Webhooks
- 3Click 'Add endpoint' and paste the Pipedream URL
- 4Select 'charge.dispute.refunded' and 'refund.created' events
- 5Click 'Add endpoint' to save
Workflow Canvas > + Add Step > QuickBooks
Add QuickBooks action step
Back in Pipedream, click the + button below your trigger to add a new step. Search for 'QuickBooks' and select 'Create Credit Memo' as your action. This will create the accounting entry for the refund in your QuickBooks company file.
- 1Click the + button below the Stripe trigger
- 2Search for 'QuickBooks' in the actions list
- 3Select 'Create Credit Memo' from the options
- 4Click to configure the action
QuickBooks Step > Connect Account
Connect QuickBooks account
Click 'Connect Account' in the QuickBooks step. You'll go through Intuit's OAuth process to authorize Pipedream access to your QuickBooks Online company. Make sure you select the correct company if you have multiple QuickBooks files.
- 1Click 'Connect Account' in the QuickBooks step
- 2Sign into your Intuit account in the popup
- 3Select the correct QuickBooks company
- 4Click 'Authorize' to grant access
QuickBooks Step > Credit Memo Configuration > CustomerRef
Map customer information
In the credit memo configuration, you need to map the Stripe customer to a QuickBooks customer. Click the CustomerRef field and select 'steps.trigger.event.data.object.customer' from the dynamic data menu. Add a fallback value like 'Cash Customer' for anonymous purchases.
- 1Click the CustomerRef field in the credit memo form
- 2Select 'steps.trigger.event.data.object.customer' from the dropdown
- 3Set a fallback value of 'Cash Customer' for null customers
- 4Verify the mapping shows the Stripe customer ID
QuickBooks Step > Line Items > Add Line Item
Configure credit memo line items
Scroll down to the Line Items section and click 'Add Line Item'. Map the Amount field to 'steps.trigger.event.data.object.amount' and set the Description to include the original charge ID. This creates the actual refund line in your books.
- 1Click 'Add Line Item' in the credit memo configuration
- 2Set Amount to {{steps.trigger.event.data.object.amount}}
- 3Set Description to 'Stripe refund for {{steps.trigger.event.data.object.charge}}'
- 4Select an appropriate income account for the line item
Workflow Canvas > + Add Step > Code
Add currency conversion code step
Click + to add a code step between Stripe and QuickBooks. This step will convert Stripe's cent-based amounts to dollar amounts that QuickBooks expects. Paste the currency conversion code that divides the amount by 100 and formats it properly.
- 1Click + between the Stripe trigger and QuickBooks step
- 2Select 'Code' from the step options
- 3Choose 'Node.js' as your runtime
- 4Paste the amount conversion code in the editor
Add this code step between Stripe and QuickBooks to handle currency conversion and create better tracking. Paste it in a Node.js code step to convert cents to dollars and add proper error handling.
JavaScript β Code Stepexport default defineComponent({βΈ Show code
export default defineComponent({
async run({ steps, $ }) {
const refund = steps.trigger.event.data.object;... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const refund = steps.trigger.event.data.object;
// Convert cents to dollars with proper rounding
const dollarAmount = Math.round(refund.amount) / 100;
// Handle missing customer data
const customerRef = refund.customer || 'Cash Customer';
// Format date for QuickBooks
const refundDate = new Date(refund.created * 1000).toISOString().split('T')[0];
// Create description with charge reference
const description = `Stripe refund ${refund.id} for charge ${refund.charge}`;
// Error handling for edge cases
if (dollarAmount <= 0) {
throw new Error(`Invalid refund amount: ${dollarAmount}`);
}
return {
amount: dollarAmount,
customer: customerRef,
date: refundDate,
description: description,
refund_id: refund.id,
original_charge: refund.charge
};
},
});Stripe Dashboard > Payments > Refund
Test the complete workflow
Process a test refund in your Stripe dashboard to trigger the workflow end-to-end. Go to Payments > find a charge > click 'Refund' and process a small amount. Check both the Pipedream execution log and your QuickBooks company file to verify the credit memo was created correctly.
- 1Go to Stripe dashboard > Payments
- 2Find a recent charge and click on it
- 3Click 'Refund' and process a $1.00 test refund
- 4Check Pipedream workflow execution in the dashboard
- 5Verify credit memo appears in QuickBooks > Sales > Credit Memos
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 Pipedream for this if you need instant refund recording with custom business logic. The Node.js code steps handle currency conversion and customer matching better than other platforms' built-in transformations. Webhook processing averages 800ms from Stripe to QuickBooks. Skip Pipedream if you only process 5-10 refunds monthly - Zapier's simpler interface makes more sense for low-volume scenarios.
Pipedream costs 1 credit per refund processed. At 100 refunds monthly, you'll spend $10/month on the Developer plan. Zapier charges $20/month for the same volume on their Starter plan, making Pipedream 50% cheaper. Make.com would cost $9/month but lacks the webhook reliability that Stripe integration demands.
Zapier wins on ease of setup with better QuickBooks customer matching out of the box. Make.com offers superior error handling with built-in retry logic for failed QuickBooks API calls. n8n gives you more control over webhook verification and custom authentication flows. Power Automate integrates better if you're already using Microsoft's ecosystem. But Pipedream's instant webhook processing and flexible Node.js environment handle the currency conversion and customer lookup logic that this workflow requires without external dependencies.
You'll hit QuickBooks API rate limits at 500+ refunds per hour - add exponential backoff in your code step. Stripe webhook retries can create duplicate credit memos if you don't implement idempotency checking. Anonymous Stripe customers will create 'null' customer references in QuickBooks unless you set up proper fallback handling. International refunds need currency conversion logic that accounts for exchange rate fluctuations between the original charge and refund dates.
Ideas for what to build next
- βAdd refund categorization β Create different QuickBooks items based on refund reason codes from Stripe to better track why customers request refunds.
- βBuild dispute tracking β Extend the workflow to handle Stripe disputes and chargebacks with separate QuickBooks journal entries for proper accounting.
- βCreate refund reporting β Add a monthly digest that summarizes refund totals by customer and reason, sending reports to your finance team via email or Slack.
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