Sync Stripe Payments to QuickBooks with Automated Fee Tracking (Make.com)

Automate gross-to-net reconciliation by syncing Stripe charges and processing fees to QuickBooks Online using Make.com scenarios.

Tools: StripeQuickBooks

Platform: Make.com

Short Answer

A fully automated Make.com scenario that creates QuickBooks Sales Receipts for gross revenue and Expense records for Stripe fees. This ensures your 'Stripe Clearing' account balances perfectly with your actual bank payouts while maintaining clean, deduplicated customer data.

The Problem

Manual entry of Stripe transactions into QuickBooks often ignores processing fees, leading to reconciliation discrepancies between bank deposits and sales records. Without automation, businesses struggle with duplicate customer records and the 'cents vs. dollars' unit mismatch inherent in Stripe's API.

The Outcome

A fully automated Make.com scenario that creates QuickBooks Sales Receipts for gross revenue and Expense records for Stripe fees. This ensures your 'Stripe Clearing' account balances perfectly with your actual bank payouts while maintaining clean, deduplicated customer data.

Step-by-Step Guide

1. **Create Scenario & Trigger**: Create a new scenario in Make.com and add the **Stripe > Watch Events** module. Select `charge.succeeded` as the event type and create a Webhook connection to your Stripe account. 2. **Initialize Connection**: In the Stripe module, ensure you are using the 'Live' or 'Test' secret key matching your QuickBooks Sandbox/Production environment. 3. **Add QuickBooks Search Module**: Add the **QuickBooks Online > Search for Customers** module. Use the Filter 'Email equals' and map the `Customer: Email` from the Stripe bundle. 4. **Implement Conditional Logic (Router)**: Add a **Router**. On the top path, set a filter: `Total number of bundles` from Search module is equal to 0. Add a **QuickBooks Online > Create a Customer** module here. 5. **Create Sales Receipt**: Add the **QuickBooks Online > Create a Sales Receipt** module. Map the `Customer ID` from either the Search or Create module. Use the formula `{{map.amount / 100}}` for the total amount to convert Stripe cents to QuickBooks dollars. 6. **Fee Calculation Action**: Add the **QuickBooks Online > Create an Expense** module. This records the Stripe fee. Map the Payment account to your 'Stripe Fees' expense account and use `{{(map.balance_transaction.fee) / 100}}` for the amount. 7. **Set Clearing Account**: Ensure both the Sales Receipt and Expense are mapped to a 'Stripe Clearing' Asset account (not your main Checking account) to facilitate easy reconciliation. 8. **Add Error Handling**: Right-click the QuickBooks modules and select **Add error handler**. Choose the **Break** directive to store incomplete executions for manual resolution if the QuickBooks API is down. 9. **Data Transformation**: Use the Make.com `formatDate` function on the Stripe `Created` timestamp to match your QuickBooks company time zone requirements.

Data Mapping

| Stripe Data Field (Source) | QuickBooks Field (Target) | Make.com Transformation/Format | | :--- | :--- | :--- | | `Customer: Email` | `Customer: Email` | Required: Direct Mapping | | `Amount` | `Total Amount` | `{{1.amount / 100}}` (Cents to Dollars) | | `Currency` | `Currency` | `{{upper(1.currency)}}` | | `Balance Transaction: Fee` | `Expense: Amount` | `{{1.balance_transaction.fee / 100}}` | | `ID` | `Private Note / Memo` | `Stripe Charge ID: {{1.id}}` | | `Description` | `Line Item Description` | `{{ifempty(1.description; "Stripe Sale")}}` |

Gotchas & Failure Modes

1. **Decimal Precision**: Stripe sends all amounts as integers (cents). Forgetting to divide by 100 in Make.com will result in a $10.00 charge appearing as $1,000.00 in QuickBooks. 2. **Rate Limits**: QuickBooks Online has strict API limits. If processing high-volume daily sales, use Make's **'Commit'** settings or a **Sleep** module to avoid 429 errors. 3. **The 'Clearing Account' Necessity**: Map all transactions to a 'Stripe Clearing' account. If you map directly to 'Checking', your QB bank balance won't match the bank statement until the payout (net of fees) clears. 4. **Bundle Aggregation**: If a single Stripe event contains multiple line items, you must use a Make.com **Iterator** to loop through items before creating the QuickBooks Sales Receipt.

Verification Checklist

1. [ ] Run the scenario once using the 'Run Once' button and a Stripe Test Clock/Test Payment. 2. [ ] Check the 'Stripe Clearing' account in QuickBooks to ensure the Sales Receipt (Positive) and Expense (Negative) were both created. 3. [ ] Verify the math: Check if `Sales Receipt - Expense = Net Amount` in Stripe. 4. [ ] In the Make.com Execution History, verify that the 'Search Customer' module correctly identified an existing record vs creating a duplicate. 5. [ ] Confirm the QuickBooks 'Private Note' contains the Stripe Charge ID for audit traceability.

Ready to Automate?

Build this automation with Make.com in minutes.