Skip to content
Rechnungskit
E-invoicing software · made in Germany

WooCommerce bank transfer prepayment: automatic invoice after payment

With direct bank transfer, the customer pays into your bank account, without Stripe, Mollie or PayPal. WooCommerce therefore keeps the order in the status “On hold” at first. As soon as you have checked the incoming payment and set the status to “Processing”, Rechnungskit records the payment automatically. For physical goods, the already paid invoice is created when you set the order to “Completed” after shipping.

Two status changes, one clean flow. You keep working in WooCommerce, and Rechnungskit handles payment, invoice, archive and DATEV.

No credit card · set up in under an hour · personal onboarding
The gap

Writing invoices is easy. Writing compliant ones is not.

The difference between a PDF and a compliant e-invoice matters at the next tax audit. Rechnungskit closes exactly this gap.

Without RechnungskitWith Rechnungskit
Prepayment orders invoiced by hand or forgotten in day-to-day business The change to “Processing” serves as a verified payment signal
Invoice already written in the status “On hold”, before any money has come in The invoice for physical goods is created on “Completed”, with the shipping date
Payment booked in the invoicing tool and then again later from the bank statement No extra DATEV payment booking; the bank receipt stays with your tax advisor
Prepayment and pay by invoice treated the same, though their order of events is opposite Every WooCommerce payment method is clearly assigned to prepayment or pay by invoice
How it works

Four steps to a compliant e-invoice.

  1. 01
    Map the payment method
    Under Connections, you assign the WooCommerce payment method seen in your orders to prepayment. For the WooCommerce core gateway for direct bank transfer, the technical ID is “bacs”. Each payment method sits on exactly one list: prepayment or pay by invoice.
  2. 02
    The order waits
    WooCommerce first sets an order paid by direct bank transfer to “On hold”. As long as you do not confirm the payment, Rechnungskit creates neither a payment nor a premature invoice.
  3. 03
    Confirm the payment
    You check your bank statement and set the order to “Processing” in WooCommerce. Rechnungskit takes that status change as a prepayment receipt. You need neither a payment provider nor access to your bank account for this.
  4. 04
    Invoiced on shipping
    After shipping, you set physical goods to “Completed”. Rechnungskit creates the already paid ZUGFeRD invoice with the shipping date as the date of supply (Leistungsdatum), archives it to GoBD standards and includes it in the DATEV export.

Direct bank transfer gives you no automatic payment confirmation

WooCommerce ships with Direct Bank Transfer (BACS), an offline payment method for prepayment. The customer gets your bank details and pays you directly. Since no payment provider is involved, WooCommerce cannot confirm the payment itself and first sets the order to “On hold” (on-hold).

You check your bank statement and then change the order to “Processing”. According to WooCommerce, this status means the payment has been received and the order still has to be fulfilled. Rechnungskit uses exactly this status change as the payment signal. No banking connection or access to your bank account is required.

The WooCommerce statuses map the prepayment flow

WooCommerce status Meaning in the prepayment flow Effect in Rechnungskit
On hold transfer still to be checked no payment, no invoice
Processing payment confirmed prepayment recorded once
Completed goods shipped or service completed invoice created with the fulfillment date
Cancelled order will not be fulfilled no invoice, or a proper correction of a document already created

For physical goods, payment and shipping are deliberately two separate events. For virtual and downloadable products, WooCommerce can complete a paid order directly. Rechnungskit then processes both signals together and takes the stored product classification into account.

Prepayment is not pay by invoice

  Prepayment Pay by invoice
Order of events payment first, then shipping shipping and invoice first, then payment
WooCommerce start “On hold” (on-hold) depends on the payment method, often “On hold”
Payment signal change to “Processing” later payment against the open item
Invoice already paid on fulfillment open with payment terms on fulfillment
Payment reminders not needed can be set up to run automatically

That is why a WooCommerce payment method seen in your orders can only be assigned to one of the two flows in Rechnungskit. This prevents a prepayment order from accidentally creating an open receivable, or a pay-by-invoice order from counting as paid before the money actually arrives.

What Rechnungskit does after the status change

WooCommerce reports changes through a signed webhook. Rechnungskit normalizes the order and, for a payment method configured as prepayment, records exactly one synthetic payment. Repeated webhook deliveries do not create duplicates. A regular sync catches changes in case a webhook delivery was delayed.

For physical goods, “Completed” triggers invoicing. The date of supply is the fulfillment date from WooCommerce. The invoice is then validated as ZUGFeRD 2.5, archived to GoBD standards (the German rules for audit-proof bookkeeping) and made available for the DATEV export.

DATEV without a duplicate bank booking

Rechnungskit records the prepayment so that the order and the invoice are linked as paid. It does not, however, export an additional payment booking to DATEV. The real bank receipt is already on your bank statement, and your tax advisor (Steuerkanzlei) books it from there. How the other payments, fees and documents from WooCommerce get to DATEV is explained in the guide WooCommerce DATEV export.

That keeps the split of work clear: Rechnungskit delivers the document with revenue account and tax code, and your tax advisor clears the bank transaction. More about orders, taxes and webhooks is on the WooCommerce integration page. Which mandatory details belong on a WooCommerce invoice and what options exist besides Rechnungskit is covered in the guide Creating invoices in WooCommerce.

FAQ

FAQ

For a payment method configured as prepayment, “Processing” counts as the payment signal. WooCommerce uses this status for paid orders that still need to be shipped or otherwise fulfilled. “Completed” additionally signals that the order has been fulfilled.
Last reviewed:

Rechnungskit is not a tax advisory or law firm. This article explains general principles and does not replace advice from a tax advisor (Steuerberater, § 5 StBerG) or a lawyer (§ 3 RDG). Rechnungskit is built for businesses based in Germany and prepares documents, tax rates and bookings automatically. How your specific case is treated remains your decision, ideally together with your tax advisor or a lawyer.

Ready for the e-invoicing mandate?

Create an account, connect your payment provider, check everything in free test mode. Billing starts when you go live.

Try it now
de en