Automated Stripe Sales Reconciliation and Fee Accounting (Zapier)
Eliminate manual bookkeeping by syncing Stripe payments to QuickBooks Online with automated net-fee calculations.
Tools: Stripe → QuickBooks Online
Platform: Zapier
Short Answer
Every Stripe charge automatically creates a Sales Receipt in QuickBooks. It correctly converts cents to dollars, maps Stripe fees to an expense category, and ensures your Profit & Loss statement reflects both gross income and processing costs accurately.
The Problem
Accounting for Stripe payments is notoriously difficult because Stripe reports transactions in cents and payouts are net of fees. Manual entry often leads to mismatched bank reconciliations and failure to account for processing fees as a deductible expense.
The Outcome
Every Stripe charge automatically creates a Sales Receipt in QuickBooks. It correctly converts cents to dollars, maps Stripe fees to an expense category, and ensures your Profit & Loss statement reflects both gross income and processing costs accurately.
Step-by-Step Guide
1. **Log in to Zapier** and click 'Create Zap'.
2. **Trigger Step**: Select 'Stripe' as the app and 'New Charge' as the event. Connect your Stripe account using your API key. Test the trigger to pull in a recent successful payment.
3. **Formatting Step (Amount)**: Add a 'Formatter by Zapier' step. Choose 'Numbers' -> 'Perform Math Operation' -> 'Divide'. Map the Stripe `Amount` field (which is in cents) and divide by `100`.
4. **Formatting Step (Fees)**: Add another 'Formatter by Zapier' step. Under 'Numbers' -> 'Perform Math Operation' -> 'Divide', map the `Balance Transaction Fee` and divide by `100`. (Note: You may need to use 'Find Balance Transaction' if the fee isn't in the initial trigger).
5. **Search Step**: Add 'QuickBooks Online' as the app. Choose 'Find Customer'. Map the Stripe `Customer Email`. Check the box 'Create QuickBooks Online Customer if it doesn't exist yet' to prevent Zap failure.
6. **Action Step (Sales Receipt)**: Add 'QuickBooks Online' and choose 'Create Sales Receipt'.
7. **Data Mapping**: In the Sales Receipt, select the Customer ID from the previous step. In the 'Line Items' section, map the Output from step 3 (Divided Amount) to the amount field.
8. **Fee Accounting**: Add a second line item with a negative value using the output from step 4 (Divided Fee) and map it to a 'Bank Fees' or 'Stripe Fees' service product to ensure the receipt total matches the net deposit.
9. **Account Selection**: Set the 'Deposit To' account to your 'Stripe Clearing' or 'Undeposited Funds' account for easy reconciliation later.
10. **Error Handling**: Click the gear icon on the QuickBooks step and select 'Change error handling' to 'Always hide this step and continue' if you want to skip transactions with errors, or set up a Path to notify you via Slack/Email.
Data Mapping
| Stripe Field | QuickBooks Online Field | Transformation Logic | Required? |
| :--- | :--- | :--- | :--- |
| `Customer Email` | `Customer` | Find/Create Customer | Yes |
| `Amount` (cents) | `Line Item: Amount` | `{{Step 3 Output}}` (Amount / 100) | Yes |
| `Fee` (cents) | `Line Item: Fee Amount` | `{{Step 4 Output}} * -1` | No (Recommended) |
| `Created` (Unix) | `Transaction Date` | Formatter > Date/Time > To ISO | Yes |
| `Currency` | `Currency` | Direct Mapping | Yes |
| `ID / Description` | `Memo / Private Note` | `Stripe Charge ID: {{id}}` | No |
Gotchas & Failure Modes
* **The 'Cents' Trap**: Stripe sends '$10.00' as `1000`. If you don't use Formatter by Zapier to divide by 100, you will book a $1,000 sale in QuickBooks.
* **Task Usage**: Each Zapier Formatter step counts as a task. On the Starter plan, high-volume stores should consider combining logic into a single 'Code by Zapier' step to save tasks.
* **Net vs Gross**: Ensure you map the fee as a negative line item or a separate expense. If you only map the net amount, your gross sales will be under-reported for tax purposes.
* **Connection Refresh**: QuickBooks Online connections in Zapier occasionally expire. Check your 'My Apps' section monthly to ensure the token is active.
Verification Checklist
- [ ] **Test Trigger**: Pull a 'New Charge' from Stripe and verify the `Amount` field shows as an integer (e.g., 5000 for $50).
- [ ] **Test Formatter**: Verify the math output is exactly two decimal places (e.g., 50.00).
- [ ] **Search Verification**: Run the QuickBooks 'Find Customer' test to ensure it doesn't create a duplicate if the user already exists.
- [ ] **Dry Run**: Use Zapier's 'Test Step' to create a Sales Receipt in QuickBooks (use a Sandbox account if available).
- [ ] **Live Check**: After switching the Zap ON, check the first real transaction in QuickBooks to ensure the 'Deposit To' account and Date are correct.
Ready to Automate?
Build this automation with Zapier in minutes.