QuickBooks integration fees as Journal Entry option explained
When you sync donations to QuickBooks Online, you can record payment processing fees and BetterUnite platform fees as separate Journal Entries instead of folding them into the donation. Revenue stays at the donation amount, fees show up in their own accounts, and the account each donation is deposited to ends at exactly what your payment processor pays out.
Where to turn it on
In BetterUnite, go to your QuickBooks settings and open the mapping page. Under Payment Processing Fees, choose Create a separate transaction for payment processing fees, then fill in the accounts described below.
Two other settings on the same page decide what the Journal Entries contain:
- Payment Processing Fees under General Options sets the amount synced on each Sales Receipt or Payment: Intended Amount, Gross Amount or Net Amount.
- Include BetterUnite tip amount in the donation sync'ed above adds a donor-paid platform fee to the Sales Receipt as a negative line. This only matters with Gross Amount.
The accounts you map
| Setting | What it is used for | Typical choice |
|---|---|---|
| Deposit account (per campaign, set with your Sales Receipt mappings) | Where each donation lands. Every fee Journal Entry credits this account. | Undeposited Funds, or a clearing account such as Stripe Clearing |
| Payment Processing Fees: Expense Account | Processing fees your organization pays | Merchant Service Fees |
| BetterUnite Platform Fees: Expense Account | Platform fees your organization pays. If left empty, these go to the processing fee expense account. | BetterUnite Platform Fees |
| Payment Processing Fees: Donor-Paid Fee Account | Fees the donor paid on top of the donation. Used only when you sync the Gross Amount. | A contra-revenue account such as Processing Fee Reimbursement |
| Vendor | Attached to every fee line for reporting | Stripe |
| Class | Optional class on every fee line | Your choice |
The deposit account is the same account you chose as the Deposit To account for your Sales Receipts. It represents money your payment processor owes you and has not yet sent to the bank.
How each fee is recorded
Every fee Journal Entry credits the deposit account and debits a fee account. The deposit account is never debited, so after the Sales Receipt and its Journal Entries post, the deposit account holds what your payment processor pays out for that donation.
| Fee | Intended Amount | Gross Amount | Net Amount |
|---|---|---|---|
| Processing fee paid by your organization | Debit processing fee expense, credit deposit account | Debit processing fee expense, credit deposit account | No entry |
| Platform fee paid by your organization | Debit platform fee expense, credit deposit account | Debit platform fee expense, credit deposit account | No entry |
| Processing fee paid by the donor | No entry | Debit donor-paid fee account, credit deposit account | No entry |
| Platform fee paid by the donor | No entry | Debit donor-paid fee account, credit deposit account (no entry if the tip setting already put it on the Sales Receipt) | No entry |
Why some fees get no entry:
- Intended Amount syncs the donation amount only. Fees a donor added on top are not part of that amount and never reach your payout, so there is nothing to record.
- Net Amount syncs what you receive after fees, which already matches your payout. A fee entry would count the fees twice, so none are created.
Examples
Each example uses a $100.00 donation with a $3.20 processing fee and a $2.00 platform fee.
Your organization pays both fees (Intended Amount)
The donor is charged $100.00 and you receive $94.80.
| Transaction | Debit | Amount | Credit | Amount |
|---|---|---|---|---|
| Sales Receipt | Deposit account | 100.00 | Donation revenue | 100.00 |
| Journal Entry | Merchant Service Fees | 3.20 | Deposit account | 3.20 |
| Journal Entry | BetterUnite Platform Fees | 2.00 | Deposit account | 2.00 |
Deposit account balance: 100.00 - 3.20 - 2.00 = 94.80, which matches the payout.
The donor covers both fees (Intended Amount)
The donor is charged $105.20 and you receive $100.00.
| Transaction | Debit | Amount | Credit | Amount |
|---|---|---|---|---|
| Sales Receipt | Deposit account | 100.00 | Donation revenue | 100.00 |
No Journal Entry is created. Deposit account balance: 100.00, which matches the payout.
The donor covers the processing fee, your organization pays the platform fee (Intended Amount)
The donor is charged $103.20 and you receive $98.00.
| Transaction | Debit | Amount | Credit | Amount |
|---|---|---|---|---|
| Sales Receipt | Deposit account | 100.00 | Donation revenue | 100.00 |
| Journal Entry | BetterUnite Platform Fees | 2.00 | Deposit account | 2.00 |
Deposit account balance: 100.00 - 2.00 = 98.00, which matches the payout.
The donor covers both fees (Gross Amount)
The donor is charged $105.20 and you receive $100.00. The Sales Receipt records the full charge, so the donor-paid fees are moved out of the deposit account.
| Transaction | Debit | Amount | Credit | Amount |
|---|---|---|---|---|
| Sales Receipt | Deposit account | 105.20 | Donation revenue | 105.20 |
| Journal Entry | Donor-paid fee account | 3.20 | Deposit account | 3.20 |
| Journal Entry | Donor-paid fee account | 2.00 | Deposit account | 2.00 |
Deposit account balance: 105.20 - 3.20 - 2.00 = 100.00, which matches the payout.
If Include BetterUnite tip amount in the donation sync'ed above is on, the Sales Receipt already carries the $2.00 platform fee as a negative line (receipt total 103.20), so only the $3.20 Journal Entry is created. The result is the same 100.00.
Reconciling with your bank deposits
Your payment processor combines many donations into one payout. Because each donation's deposit account balance equals its share of the payout, the donations in a payout add up to the amount that reaches your bank.
- Clearing account (recommended with this option): use a bank-type account such as Stripe Clearing as the deposit account. Record each payout as a transfer from Stripe Clearing to your checking account. The clearing balance returns to zero once every payout is recorded.
- Undeposited Funds: create a Bank Deposit for each payout and select the donations included in it. Check that the fee Journal Entries are included, so the deposit total matches the payout.
Good to know
- Choose Stripe (or your payment processor) as the Vendor. QuickBooks reports fee lines by vendor, which keeps your processor costs in one place.
- Refunds and disputes deducted from a payout are not synced. Record those in QuickBooks when they happen.
- Offline donations such as checks and cash have no fees, so they never create Journal Entries.
- Changing these settings affects donations synced from then on. Donations already in QuickBooks are not updated.