How to split fees for Quickbooks import
How to split Stripe fees for QuickBooks import
When a payment processor deducts its fee before sending money to you, the amount you receive is smaller than the amount your customer paid.
For example, a customer might pay $100.00, Stripe charges a $3.20 processing fee, and the resulting net amount is $96.80.
If you import only $96.80, the number is correct for the net movement, but the $100 payment and $3.20 processing expense are no longer represented separately.
Splitting the transaction solves this by creating separate entries for the payment and the processing fee.
What does splitting a fee mean?
Consider this transaction:
| Payment | Stripe fee | Net |
|---|---|---|
| $100.00 | $3.20 | $96.80 |
There are two ways to represent it.
A net import can record the transaction as $96.80.
A split-fee import instead represents the underlying activity:
| Description | Amount |
|---|---|
| Customer payment | $100.00 |
| Stripe fee | -$3.20 |
The total is still $96.80, but the processing fee is now visible separately.
This is useful when you want processing fees to be recorded separately from sales rather than having only the net amount appear in the imported transactions.
How to split fees manually
To prepare this kind of import manually, start with the payment amount and processing fee from your Stripe export.
For every transaction, create one output row containing the full payment amount.
Then create another row containing the corresponding processing fee as a negative amount.
For example, this source record:
| Amount | Fee |
|---|---|
| $100.00 | $3.20 |
becomes:
| Description | Amount |
|---|---|
| Payment | $100.00 |
| Processing fee | -$3.20 |
Repeat the process for every transaction in the export.
You'll also need to carry the appropriate date, description, customer information, and any other fields required by your import into the newly created rows.
Refunds need to be handled according to the same accounting structure rather than simply assuming every source record contains one payment and one fee.
The process itself isn't particularly complicated. The problem is repetition: every source row has to be transformed in exactly the same way, while preserving the relationship between the payment and its associated fee.
Splitting fees with BalanceFlow
BalanceFlow can store those rules in a template and apply them to the entire CSV.
The built-in Stripe to QuickBooks Split Fee template already defines this workflow.
For each Stripe transaction, BalanceFlow creates the primary transaction row and, when applicable, an additional row for the Stripe fee. The template also handles the other transformations required by the import, such as date formatting and amount normalization.
[SCREENSHOT: BalanceFlow conversion preview showing one Stripe source transaction and the resulting separate payment and fee rows. Choose an example with a non-zero Stripe fee and keep Date, Description and Amount visible.]
The important difference from doing this manually is that the rule is applied consistently to every row.
You don't need to recreate the split each time you download another Stripe export.
What happens to refunds?
Refunds need to remain distinguishable from the original payment as well.
The built-in Split Fee template handles refund data from the Stripe export and creates the corresponding output according to the template's rules.
This is especially useful for files containing a mixture of regular payments, refunds, and fees, where simply duplicating every row wouldn't produce the correct result.
You can see the exact mappings and transformations used by the template in Stripe to QuickBooks Split Fee.
Prepare the Stripe export
Before running the conversion, download the required payments data from Stripe.
The export needs to contain the fields expected by the template. Stripe can remember previous export settings, so it's worth checking the selected fields before downloading the file.
Follow Prepare a Stripe CSV for QuickBooks import for the required fields and export steps.
Run the conversion
Create a new conversion in BalanceFlow and choose Stripe to QuickBooks Split Fee.
Upload the Stripe CSV and continue to the preview.
Check a few transactions to confirm that the payment, fee, refund, dates, and descriptions look as expected. Then run the conversion and download the resulting CSV.
[SCREENSHOT: BalanceFlow Create Conversion page with Stripe to QuickBooks Split Fee selected and a Stripe CSV uploaded.]
[SCREENSHOT: Completed Split Fee conversion showing Status: Completed and the Download File button.]
The resulting file is ready for the next part of the QuickBooks import workflow.
See How to import Stripe transactions to QuickBooks for the complete process.
Using a clearing account
For ongoing Stripe accounting, there's another question beyond how the individual transactions are formatted: where those transactions should be recorded before Stripe sends the payout to your bank.
A clearing account can be used to represent the balance held by Stripe. Payments increase that balance, while fees, refunds, and payouts reduce it.
This keeps the individual Stripe activity separate from the eventual bank deposit and can make it easier to reconcile a payout containing many transactions.
See Using a clearing account for Stripe reconciliation for that workflow.
You can use the same idea with other processors
Fee splitting isn't specific to Stripe.
If another payment platform exports the original payment and processing fee in a CSV, the same basic transformation can be defined in a custom BalanceFlow template: create the main transaction row, create another row for the fee when required, and map the appropriate values into each.
See How to create a custom CSV conversion template to build a similar workflow for a different CSV format.