Growthy
AI BookkeepingFor BookkeepersBlogTopicsPricing
Sign InJoin the Alpha
Growthy

© 2026 Growthy. All rights reserved.

  1. Blog
  2. Payment Reconciliation

Payment Processor Fees: Expense, Contra-Revenue, or COGS?

Bobby Pro

Content Writer

May 9, 2026
8 min read
Payment Reconciliation
Payment Processor Fees: Expense, Contra-Revenue, or COGS?

In this article

Most bookkeepers have a single "Merchant Fees" line on the P&L. Everything goes in: Stripe processing charges, PayPal dispute fees, Square subscription costs, international conversion surcharges. The books balance. The fees are deductible. Nothing is technically wrong.

What it hides is that three different cost categories are sharing one bucket. Volume cost, risk cost, and fixed overhead behave differently, scale differently, and signal different things when they move. When all three live in one line, a 15% year-over-year increase in merchant fees tells you nothing useful. It could be revenue growth, a chargeback problem, or a platform subscription renewal. You cannot tell.

Where do payment processor fees go on the P&L?

Payment processor fees are deductible business expenses under IRC §162 regardless of which P&L account they sit in. For most businesses, transaction processing fees (2.9%+$0.30 on Stripe) belong in operating expenses in a "Merchant Fees" parent account with sub-accounts by processor and fee type. Dispute and chargeback fees ($15–$25 each) belong in a separate sub-account to surface risk patterns. Platform subscription fees go in their own line as fixed overhead. Contra-revenue treatment is defensible for marketplaces; COGS applies only if the business already classifies shipping as COGS. Tax outcome is identical across all three classifications — placement affects margin analysis, not deductibility.

Key Takeaways

  • Single "Merchant Fees" line items hide three different cost categories — volume, risk, and overhead.
  • Four fee types — transaction processing, dispute/chargeback, platform/subscription, international conversion.
  • Default classification is operating expense — below the gross profit line, with sub-accounts per processor and per fee type.
  • Contra-revenue is defensible for marketplaces and platforms — where net revenue is the operative metric; get CPA buy-in before switching.
  • COGS treatment fits only if the business already classifies shipping as COGS.
  • Tax deductibility is identical across all three classifications — placement affects margin analysis, not tax outcome.

"Just Put It in Credit Card Fees" Isn't Good Enough

A single "Merchant Fees" GL account is functional. The books balance. The fees are deductible. Nothing is technically wrong.

What it hides is that you're commingling three different cost categories. Volume cost: every dollar processed costs you something proportional. Risk cost: every disputed charge costs a flat fee whether you win or lose. Fixed overhead: monthly platform subscriptions don't scale with anything. When all three live in one bucket, the year-over-year delta tells you nothing. A 15% increase could be more revenue, more disputes, or a Stripe Atlas renewal. You can't tell.

Take a real example: $800 of the monthly fee was processing on $27,000 in revenue (3.0%, totally normal). The other $200 was disputes (way out of band). One conversation. One refund-policy change. The disputes dropped 70%. None of that was visible in the original P&L because the line item read "Merchant Fees: $1,000."

What Gets Lumped Together

Four distinct fee types end up in that one account: transaction processing, dispute and chargeback, platform and subscription, and international or currency conversion. Each behaves differently. Each deserves its own bucket.


The Four Types of Payment Processor Fees

Before you can classify fees correctly, you need to know what you're looking at. Set up your credit card processing fees chart of accounts around these four categories.

Fee Type

Stripe

PayPal

Square

Transaction Processing

2.9% + $0.30

3.49% + $0.49

2.6% + $0.10 (in-person) / 2.9% + $0.30 (online)

Dispute / Chargeback

$15 per dispute

$20 per dispute

$25 per dispute

Platform / Subscription

Atlas $500/yr

Monthly tier

Subscription tiers

International / Currency

+1%

+1.5%

+1.1%

Transaction Processing Fees

Volume-based, charged as a percentage plus a per-transaction flat. A $100 charge generates $3.20 on Stripe, $3.98 on PayPal, $2.70 in person on Square. This is unavoidable cost of revenue and the bulk of what most clients pay. For Stripe-specific deposit timing and fee netting, see how Stripe deposits work.

Dispute / Chargeback Fees

Flat $15 to $25 per dispute. Non-refundable, even on wins. This is the fee category that signals a business problem rather than a cost-of-doing-business problem. A spike in dispute fees usually means a refund policy needs work, fulfillment is slipping, or there's an emerging fraud pattern. None of that surfaces if dispute fees are buried inside "Merchant Fees."

Platform / Subscription Fees

Fixed-cost overhead. Stripe Atlas at $500 a year, PayPal monthly tiers, Square subscription add-ons. These behave like SaaS overhead, not transaction cost. Classify them separately so they don't distort your effective processing rate.

International / Currency Conversion Fees

1% to 2% on cross-border charges, often layered on top of the base processing fee. Buried inside statement totals. Most bookkeepers miss these on month-end reconciliation because they show up as part of a single processor deduction. If a client sells internationally, this category needs visibility.


The Case for Operating Expense (Most Common, Usually Right)

For service businesses, SaaS, professional firms, agencies, and B2B vendors, operating expense is the correct classification. Processing fees are a cost of collecting revenue, not a cost of producing goods. They sit below the gross profit line, where they belong.

When to Use It

Default to operating expense for service businesses, professional firms (legal, accounting, consulting), SaaS, B2B vendors, agencies, coaches and creators. Standard GL account name is "Payment Processing Fees" sitting under Operating Expenses, with the four sub-accounts described in the next section.

What the P&L Looks Like

A clean P&L for a SaaS company processing $100K in revenue might read: Revenue $100,000 / COGS $20,000 / Gross Profit $80,000 / Operating Expenses including Payment Processing Fees $2,900. The $2,900 sits well below the gross profit line. The 80% gross margin reflects product economics. Processing fees are visible but don't muddy product-margin analysis.


The Case for Contra-Revenue (When It Makes Sense)

Contra-revenue treatment reduces gross revenue at the top of the P&L instead of showing fees as a below-the-line expense. Net revenue becomes the operative metric. This approach is defensible for specific business models, but requires CPA buy-in and a clear documented rationale.

When It's Defensible

Marketplace operators, two-sided platforms, and businesses where investor reporting focuses on net revenue benchmarks. Stripe Connect platforms passing through payments to third parties have a strong case. So do businesses where gross-method recording produces a misleadingly inflated revenue figure that obscures unit economics.

Talk to the CPA before adopting this treatment. If your client reports to investors, board, or lenders on revenue benchmarks, the classification choice affects every comparable metric. Once you pick a method, switching is a mess. Document the rationale at the COA level.


The Case for COGS (Narrow but Real)

The COGS argument applies in a narrow window: when payment processing is as inseparable from product delivery as shipping. E-commerce companies that already classify shipping under COGS have an internally consistent argument for putting processing fees there too. Most CPAs will push back on this unless the business model explicitly justifies it.


Bobby's Recommended Chart of Accounts Setup

For nearly every client, the right answer is separate operating-expense sub-accounts by processor and by fee type. One parent account for the P&L rollup, four sub-accounts for the signal.

QBO Account Structure

1Operating Expenses
2 Merchant Fees [parent]
3 Processing Fees - Stripe
4 Processing Fees - PayPal
5 Processing Fees - Square
6 Dispute Fees
7 Platform Subscriptions
8 International Conversion Fees

Set up "Merchant Fees" as a parent account so the QBO P&L can roll up the total when you want a single line, while keeping detail available when you don't. Sub-account naming should mirror the processor name so monthly reconciliation is mechanical.


How Fee Classification Affects Tax Prep and Client Reporting

All three classifications produce deductible business expenses, so the tax-prep answer is the same regardless of where the fee sits on the P&L. But placement materially affects margin analysis, benchmarking, and the conversations you have with the client.

Deductibility

Payment processing fees are ordinary and necessary business expenses under IRC §162. Whether they sit in COGS, contra-revenue, or operating expense, the federal deduction is identical. State nexus and apportionment can vary, but the core deductibility question is settled. If you're worried about picking the wrong bucket from a tax standpoint, stop. Pick the bucket that makes your reporting useful.

Margin Analysis and Benchmarking

This is where classification matters. A restaurant running 3.2% in transaction processing on card volume is normal. That's what the industry pays. A SaaS company running 3.2% in processing on subscription revenue should raise a question. Maybe the payment mix has shifted toward lower-margin channels. Maybe the pricing assumed a lower processing rate.

Proper sub-accounts surface the data. One bookkeeper-to-client conversation later, that's a meaningful insight worth real money.


Conclusion

For nearly every client, the right answer is separate operating-expense sub-accounts, by processor and by fee type. That single structure surfaces patterns you can act on, makes reconciliation mechanical, and keeps gross margin clean for product-level analysis.

If your client is a marketplace, two-sided platform, or e-commerce shop classifying shipping as COGS, revisit the question with their CPA before defaulting. The classification decision compounds: every report, every benchmark, every investor conversation runs through it.

Set up the QBO accounts today. If you're mid-year, tag back-date entries and let next month's reconciliation reflect the new structure. Ten minutes of setup, year-round signal.

If you want a faster path to the bookkeeping patterns that scale, including the AI-assisted reconciliation workflow we use for our own clients, start a free Growthy account and we'll walk you through the rest.

See It Work on Your Data

Free during alpha. Read-only access. You review every sync.

✓ No credit card✓ Works with QuickBooks✓ 85% accuracy
Request Early Access

Bobby Pro • Content Writer

Bobby Pro is a contributor to the Growthy blog.

View all articles →

Growthy is dedicated to helping businesses of all sizes make informed decisions. We adhere to strict editorial guidelines to ensure that our content meets and maintains our high standards.

Keep reading

Featured image for Bank Reconciliation: What It Is, Why It Matters, How to Do It
Payment Reconciliation

How to Reconcile Lump-Sum Deposits from Payment Processors

Stripe sends one deposit for 47 transactions. Learn the clearing account method to reconcile lump-sum payment processor deposits with step-by-step journal entries.

B
Bobby Pro
8 min
Featured image for Gross vs. Net Accounting for Payment Processors: Which Method Is Right?
Payment Reconciliation

Gross vs. Net Accounting for Payment Processors: Which Method Is Right?

Gross or net recording for Stripe, PayPal, and Square? Side-by-side journal entries, ASC 606 principal vs. agent rule, and when each method is actually correct.

B
Bobby Pro
8 min
white and black printer paper
Payment Reconciliation

The Balance Sheet Problem Nobody Talks About: Payment Processor Float

Payment processor clearing accounts that never return to zero aren't a rounding issue. Learn why float accumulates, how to audit it, and how to prevent it.

B
Bobby Pro
10 min