Automated Stripe Revenue & Fee Reconciliation (Zapier)
Seamlessly sync Stripe payments to QuickBooks Online while automatically accounting for transaction fees.
Tools: Stripe → QuickBooks Online
Platform: Zapier
Short Answer
Every successful Stripe charge triggers a real-time creation of a Sales Receipt in QuickBooks. Fees are calculated and deducted automatically using Zapier Formatter, ensuring your bank deposit matches your ledger exactly for one-click reconciliation.
The Problem
Manual entry of Stripe sales into QuickBooks leads to human error and reconciliation nightmares because Stripe deposits net amounts (Gross minus Fees) while accounting requires tracking both. Without automation, bookkeeping for high-volume processors becomes a full-time, error-prone task.
The Outcome
Every successful Stripe charge triggers a real-time creation of a Sales Receipt in QuickBooks. Fees are calculated and deducted automatically using Zapier Formatter, ensuring your bank deposit matches your ledger exactly for one-click reconciliation.
Step-by-Step Guide
1. **Log in to Zapier** and click 'Create Zap'.
2. **Set Trigger**: Select **Stripe** and the Event **'New Charge'**. Connect your Stripe account using your API key or OAuth. Set 'Include Failed Charges' to 'No'.
3. **Test Trigger**: Select a recent successful charge to use as sample data. Note that Stripe sends amounts in cents (e.g., 1000 for $10.00).
4. **Add Action (Formatter)**: Choose **'Formatter by Zapier'** > Event: **'Numbers'** > Transform: **'Spreadsheet-Style Formula'**. Formula: `{{amount}} / 100`. This converts cents to dollars for QBO.
5. **Add Action (Formatter)**: Add another **'Formatter by Zapier'** step to calculate the fee. Use the Spreadsheet-Style Formula: `({{amount}} / 100) * 0.029 + 0.30`. Label this 'Stripe Fee'.
6. **Add Action (QuickBooks Online)**: Choose **'Find Customer'**. Search by the 'Customer Email' from the Stripe trigger. Check the box **'Create QuickBooks Online Customer if it doesn't exist yet'** to prevent duplicates.
7. **Add Action (QuickBooks Online)**: Choose **'Create Sales Receipt'**.
- **Customer**: Use the ID from Step 6.
- **Line Item 1 (Revenue)**: Map the Product/Service (e.g., 'Sales') and the converted dollar amount from Step 4.
- **Line Item 2 (Fees)**: Add a second line item. Map it to a service named 'Stripe Fees' (linked to an Expense account). Enter the value from Step 5 as a **negative number** (e.g., `-{{fee_amount}}`).
8. **Deposit To**: Select the **'Stripe Clearing'** or 'Undeposited Funds' account to ensure the net total matches your bank feed.
9. **Add Error Handling**: Click the '+' icon between steps to add a **'Filter by Zapier'** if you only want to process specific currencies, or use **'Zapier Manager'** at the end to notify you via email if a step fails.
Data Mapping
| Stripe Field | Zapier Formatter | QBO Field | Requirement |
| :--- | :--- | :--- | :--- |
| `Amount` | `{{amount}} / 100` | Line Item: Amount | **Required** |
| `Receipt Email` | N/A | Customer Search Key | **Required** |
| `Created Date` | N/A | Transaction Date | Mandatory |
| `Description` | N/A | Private Note / Memo | Optional |
| N/A | `({{amount}}/100 * .029) + .30` | Line Item 2: (Negative) | Recommended |
| `Currency` | N/A | Currency | Optional (Multicurrency) |
Gotchas & Failure Modes
* **The Cent Trap**: Stripe sends values in cents (1500 = $15.00). If you don't use Formatter to divide by 100, you will record $1,500 in QuickBooks.
* **Task Usage**: Using Formatter steps consumes tasks. If you process 5,000+ transactions/month, consider using a single 'Code by Zapier' step (JavaScript) to handle all math in one step to save task quota.
* **Fee Accuracy**: Stripe fees can vary (International cards, 3D Secure, etc.). For 100% precision, use the 'New Payout' trigger instead of 'New Charge', though this delays recording until the payout hits.
* **Duplicate Customers**: Always use the 'Find or Create Customer' step. Searching only by name can fail if there are common names; always search by Email.
Verification Checklist
- [ ] **Test with Sample Data**: Run a test in the Zap editor and verify the 'Decimal' amount appears correctly in the Zap history.
- [ ] **Check QBO Account**: Ensure the Sales Receipt appeared in QuickBooks under the correct customer.
- [ ] **Verify Net Total**: Confirm the (Revenue - Fee) in QBO matches the 'Net' amount shown in your Stripe Dashboard for that transaction.
- [ ] **Turn on Zapier Autoreplay**: Ensure 'Autoreplay' is enabled (Professional plans+) to handle temporary API timeouts from QuickBooks.
Ready to Automate?
Build this automation with Zapier in minutes.