An export covers documents, not orders. Each order can produce three types of entries, each in its own journal and at its own date:
| Document | Journal (default) | Exported in the period when… |
|---|---|---|
| Invoice | Sales | the order is created (with an exported status) |
| Payment | Payments | the order is paid, if its invoice is already exported or is exported in the same run |
| Credit note | Credit notes | the refund is created, same condition |
A payment received in February for a January order is therefore in the February export. Export periods in chronological order: a payment or a credit note is only exported once its invoice has been exported.
Invoice entry
| Account | Side | Amount |
|---|---|---|
| Customer (collective or individual) | Debit | Total including tax |
| Sales (per category, or default account) | Credit | Gross amount excluding tax, before discount, per account |
| Discounts | Debit | Discount amount, if any |
| Shipping | Credit | Shipping excluding tax, if any |
| Additional fees | Credit (or debit if negative) | Total of the order fees |
| VAT (OSS, tax class or default) | Credit | One line per rate |
Sales are booked at their full amount excluding tax and the discount is kept on its own account, as most accountants ask. The entry is always balanced: total debit = total including tax + discount = total credit.
Rounding. Amounts are computed in whole cents. When WooCommerce stores more than two decimals (prices entered including tax, VAT rounded at subtotal level), the rounding remainder, 5 cents at most, is absorbed by the largest sales line; VAT, shipping and customer stay exact. Beyond that, the invoice is refused: the order exports no document, is not locked, and is flagged in the admin.
DATEV works differently: amounts are exported including VAT and DATEV calculates the tax. See DATEV: gross amounts.
Payment entry
Generated when the order is paid, its gateway has a treasury account and the total is positive:
| Account | Without fee | With fee |
|---|---|---|
| Treasury (bank) | Debit: total including tax | Debit: total − fee (net received) |
| Payment gateway fees | — | Debit: fee |
| Customer | Credit: total including tax | Credit: total including tax |
The fee is read in this order: the woo_accounting_export_gateway_fee filter, the meta named in the settings, then the gateway’s known meta (_stripe_fee for Stripe, PayPal Transaction Fee for PayPal, _ppcp_paypal_fees for PayPal Payments). No fee is ever invented: a missing, negative, non-numeric amount, or one greater than or equal to the total, is ignored, and invalid cases are flagged. Check the key on a real order: it depends on the version of the payment plugin.
add_filter( 'woo_accounting_export_gateway_fee', function ( $fee, WC_Order $order, string $gateway_id ) {
return 'my_gateway' === $gateway_id ? (float) $order->get_meta( '_my_fee' ) : $fee;
}, 10, 3 );Choice of the VAT account
- OSS: if enabled, the billing country differs from the home country and an account is set for that country.
- Tax class: otherwise, the account mapped to the line’s tax class.
- Default account: otherwise.
Currencies
The plugin assumes a single currency and does not convert. A document in a currency other than the shop’s is exported with its original amounts and flagged in the history.
Default accounts by chart
The accounts used depend on the chart applied with the setup wizard (Germany SKR03 / SKR04, United Kingdom, Belgium, France): see the table in Settings. Whatever the chart, every account can be changed in the settings.
Mis à jour le 12 octobre 2026
Cette page ne répond pas à votre question ? Notre équipe vous aide.
Contacter le support