Skip to main content

Stripe Connect Platform Fees - Accounting for Marketplaces

How ERPClaw handles Stripe Connect application fees, transfers, and connected account payouts. Direct charges, destination charges, separate charges and transfers.

If you run a marketplace or platform on Stripe Connect, you have an extra layer of complexity in your accounting: application fees, transfers, reverse transfers, and connected account payouts.

This page documents the three Stripe Connect patterns and how ERPClaw handles each.

The three Connect patterns

Stripe Connect supports three ways to split a payment between your platform and a connected account.

Pattern 1: Direct charges

The customer’s payment is charged on the connected account’s books. Your platform takes a cut as application_fee_amount. Stripe deducts its processing fee from the connected account.

Customer pays $100. Your application fee is $10. Stripe fee is $3.20.

Connected account’s books:

AccountDebitCredit
Stripe Clearing$86.80
Stripe Fees$3.20
Application Fee$10.00
Revenue$100.00

Your platform’s books (separate ERPClaw account):

AccountDebitCredit
Stripe Clearing$10.00
Application Fee Revenue$10.00

Use --pattern direct when configuring Connect.

Pattern 2: Destination charges

The customer’s payment is charged on your platform’s books. You specify a transfer_data.destination (the connected account) and a transfer_data.amount (how much to transfer).

Customer pays $100. You transfer $90 to the connected account (retaining $10 as platform revenue). Stripe’s processing fee comes off your platform’s side.

Your platform’s books:

AccountDebitCredit
Stripe Clearing$96.80
Stripe Fees$3.20
Connect Transfer$90.00
Revenue$100.00
Connect Transfer$90.00

Wait, that’s not right; let me restate:

AccountDebitCredit
Stripe Clearing$96.80
Stripe Fees$3.20
Revenue$100.00
Stripe Clearing$90.00
Connect Transfer$90.00

The transfer is a separate event that hits clearing and connect transfer.

Connected account’s books:

AccountDebitCredit
Stripe Clearing$90.00
Revenue$90.00

Use --pattern destination when configuring Connect.

Pattern 3: Separate charges and transfers

You charge on your platform first, then transfer separately at any later time. Maximum control.

Customer pays $100, charged on your platform:

AccountDebitCredit
Stripe Clearing$96.80
Stripe Fees$3.20
Revenue$100.00

Later, you transfer $90 to the connected account:

AccountDebitCredit
Connect Transfer Pending$90.00
Stripe Clearing$90.00

When the transfer settles on the connected side, ERPClaw posts on the connected account:

AccountDebitCredit
Stripe Clearing$90.00
Revenue$90.00

And on the platform side, the pending transfer becomes an actual transfer:

AccountDebitCredit
Connect Transfer$90.00
Connect Transfer Pending$90.00

Use --pattern separate when configuring Connect.

Refunds in each pattern

Direct charge refund

The refund happens on the connected account. Application fee may or may not be refunded depending on refund_application_fee=true.

If application fee refunded:

Connected account:

AccountDebitCredit
Revenue$100.00
Application Fee$10.00
Stripe Clearing$86.80
Stripe Fees$3.20

Platform:

AccountDebitCredit
Application Fee Revenue$10.00
Stripe Clearing$10.00

If application fee NOT refunded (you keep your cut even on refund):

Platform: no journal entry. The $10 stays on your books.

Destination charge refund

Refund happens on platform. Optionally reverse_transfer=true to also reverse the transfer to the connected account.

If reverse_transfer=true:

Platform:

AccountDebitCredit
Revenue$100.00
Stripe Clearing$96.80
Stripe Fees$3.20

Then a Connect Transfer reversal moves the $90 back from the connected account to platform clearing.

If reverse_transfer=false: connected account keeps the $90; platform absorbs the loss.

Separate refund

Reverse the charge first, then optionally reverse the transfer. Most flexible but requires more discipline.

Application fee refund only

Stripe lets you refund only the application fee without refunding the charge itself. This is useful when you over-charged a marketplace fee.

Platform:

AccountDebitCredit
Application Fee Revenue$5.00
Stripe Clearing$5.00

The $5 is moved from your platform back to the connected account.

Multi-account dashboard

If you connect multiple Stripe accounts (your platform plus several connected accounts), each gets its own ERPClaw stripe_account row with its own GL account namespace. Reports can be run per-account or consolidated.

erpclaw stripe-list-accounts
erpclaw stripe-revenue-summary --account-id <platform-id>
erpclaw stripe-revenue-summary --account-id <connected-id>

When to choose which pattern

Direct charges: when each connected account has its own customer relationship, brand, and tax ID. Marketplace style (Etsy, Airbnb).

Destination charges: when your platform handles the customer relationship, your tax ID is on the receipt, and the connected account is just a payee. SaaS marketplace style (your platform sells, splits revenue with vendor).

Separate charges and transfers: when you need full control over when transfers happen (delayed payouts, escrow, hold-and-release flows).

ERPClaw supports all three, but you choose one per Connect platform during setup. Mixing patterns within one platform is technically possible but produces messy books.

Source