Stripe and PayPal fees on WooCommerce: how to book them

When a customer pays €100, your bank receives less. How to book Stripe and PayPal fees so your bank reconciliation adds up.

A customer pays €100 through Stripe or PayPal, but your bank only receives €96.80. The missing €3.20 is an expense. If you do not record it, your bank reconciliation will never add up.

The expected entry

  • Bank (512) debited: €96.80, the net amount actually received.
  • Gateway fees (627, banking services) debited: €3.20.
  • Customer account credited: €100.00, the gross amount.

The customer receivable is settled for the gross amount; the fee is an expense, booked on a banking services account (627 in the French chart of accounts).

The accounts mentioned come from the French general chart of accounts. Have your accountant validate your accounts.

Where do you find the fee?

WooCommerce does not store it itself: it depends on the gateway’s extension, which saves it as order metadata. Accounting Export for WooCommerce finds it in three ways:

  • for the common gateways it knows (Stripe, PayPal, PayPal Payments);
  • through a metadata key you enter in the settings, for any other gateway;
  • through a filter, for a custom integration.

The key actually used depends on the version of the gateway extension: check it on a real order.

The setup in four steps

  1. Payment gateways tab: enter the treasury account of each gateway.
  2. General tab: check the gateway fees account (627000 by default). When empty, the feature is off.
  3. If needed, enter the fee’s metadata key in the third column.
  4. Run a preview on an order paid through Stripe or PayPal and check the three lines of the payment.

Safeguards: no invented fees

If the amount is missing, negative, equal to or above the order total, or not a number, the payment is booked at the gross amount, as before. An invalid fee is never ignored silently: it is flagged in the export history and in the monthly email.

A missing payment is never silent

If a paid order goes through a gateway with no treasury account, its invoice is exported but not its payment. The plugin flags it, then exports the missing payments when you run the same period again once the account is set, without re-issuing the invoices.