Connect Unzer
Updated
You connect Unzer with its private key. The special thing about Unzer: it has no API for fees, so they come in once a month as a CSV upload.
- Message as a triggerRechnungskit reads the payment back through your private key and books only what the API confirms
- Matchingthrough the Unzer order ID, where your shop module writes the order number
- Safety netfetches again regularly in case a message gets lost
- ETN uploadonce a month in the monthly report; assigns the fees to the transactions
Setup
- Have your Unzer private key ready. Important: use the live key (p-priv-...), even if you are only testing Rechnungskit. Rechnungskit only reads and never initiates payments. An s-priv-... key connects the Unzer sandbox, where your real payments never show up. For checkout and subscriptions in test mode, you add the test key separately in the "Test credentials" field below the card, see Checkout and subscriptions in test mode.
- Enter it at Unzer under Connections → Connect. Rechnungskit checks the key against the Unzer API.
- Rechnungskit registers the webhook at Unzer automatically (payment and returned direct debit events).
Webhook security
Unzer webhooks are not signed. So Rechnungskit never takes amounts from the webhook message itself: each message only triggers an authenticated read-back of the payment from the Unzer API through your private key. Only what the API confirms gets booked, and only amounts actually charged (a mere authorization creates no document).
What happens automatically
- Payments of all Unzer payment methods (card, direct debit, pay by invoice, wallet) are processed and matched, provided the shop's Unzer module passes the order number as the Unzer order ID (the Shopware and WooCommerce modules do this by default) and the shop is selected as the matching source of the Unzer connection under Connections → Connect.
- Refunds create the cancellation invoice (Storno) automatically.
- Returned direct debits are final at Unzer; they reopen the item and land in the tasks for clarification, with no automatic cancellation invoice.
- A safety net fetches again regularly in case a webhook message gets lost.
Fees: the monthly ETN upload
Unzer does not report transaction fees through the API. They are in the Einzeltransaktionsnachweis (ETN, the itemized transaction statement), the CSV file that comes with your monthly Unzer invoice.
- During the monthPayments come inby webhook; invoices are created as usual
- On the 1st of the next monthRemindertask on the dashboard and in the task reminder e-mail
- With the Unzer invoiceDownload the ETN filewith Paylater, also the second ETN file
- In the monthly reportUploadfees assigned per transaction; the task disappears
- Upload the ETN file once a month in the monthly report (Reports, /report); the upload box appears there as soon as Unzer is connected.
- If you use Unzer Paylater methods (pay by invoice, installments), there is a SECOND, separate ETN file in its own Paylater format. Upload both files to the same upload box; Rechnungskit recognizes which variant it is from the file structure. Unzer sends the Paylater file by email together with the Paylater statement, or by SFTP.
- Rechnungskit takes over the fee per transaction and stores the net fee, the VAT and the components (disagio, interchange, scheme fees) with it.
- Uploading the same file again, or a corrected one, is safe: items are updated by the Unzer invoice number, never duplicated.
In the DATEV payments export, Rechnungskit books the Unzer fees to bank charges (Nebenkosten des Geldverkehrs, preset SKR03 4970, SKR04 6855) against the Unzer clearing account (Geldtransit), without a tax key. Unzer's sample ETN shows no VAT on the fees (column FEE_VAT_AMOUNT 0), and payment transactions are VAT-exempt under § 4 Nr. 8 lit. d UStG. The contracting party for online payments is Unzer E-Com GmbH, based in Heidelberg. Because it is based in Germany, the reverse charge procedure under § 13b UStG does not apply to these fees. Until October 3, 2026 the reverse charge key 506 was preset here by mistake; Rechnungskit has switched over mappings that were not changed. If your Unzer invoice shows VAT, your tax advisor enters the matching input tax key in the unzer_fee mapping. The preset is a starting value, not tax advice.
By default the payments batch books an Unzer payment as Unzer clearing to customer account (SKR03 1363, SKR04 1463), and a refund exactly the other way round. Rechnungskit combines the fees from the ETN into one booking per Unzer invoice, dated on the invoice date with the Unzer invoice number as the document reference. Each fee is booked exactly once.
As the document for this fee booking, Rechnungskit creates a fee statement PDF per Unzer invoice. You can download it under Payouts, and with Belegtransfer on the booking links to it (Payout statements in the payments batch).
Payout and bank credit
Unzer deducts its fees from the payout unless your contract says otherwise (Unzer E-Com terms, section 12.1). What gets transferred is the balance of an Unzer invoice: sales minus refunds, chargebacks and fees. When the money arrives depends on the payout cycle in your contract: daily with a few days' delay, weekly, or monthly on the 7th working day of the following month (Unzer help: payout cycles). Your bank statement shows the Unzer invoice number as the reference (Unzer docs on the ETN column INV_NO).
The ETN file does not contain the credit date, and agreed holdbacks or items outside the ETN can change the amount transferred. So Rechnungskit books no payout for Unzer, and no reconciliation difference either, even when "Book payouts" is switched on in the DATEV settings. Your tax advisor books the incoming payment from the bank statement against the Unzer clearing account, which then stands at zero, and the credit lands on the bank account only once, even if the firm imports its bank statements automatically. For Stripe, Mollie, PayPal and the other providers with payout data, Rechnungskit keeps booking the payout itself when the setting is on.
In the app an Unzer settlement is therefore called a fee statement and shows the invoice date, not a credit date.
The upload is deliberately manual: the ETN download at Unzer runs through a short-lived portal session that cannot be automated unattended.
Limits
- Unzer has no payout API, and the ETN file gives no credit date. Reconciling against the incoming payment on your bank account, as with Stripe or Mollie, is technically not possible with Unzer. The basis for fees is the Unzer invoice (ETN); your tax advisor books the bank credit from the bank statement.
Matching and limits of the ETN items
- Automatic matching needs two settings: the Unzer module in the shop passes the order number as the Unzer order ID (Shopware and WooCommerce by default; for other shops, check the module configuration), and the shop is selected as the matching source of the Unzer connection under Connections → Connect. The preview on the connection shows whether the latest payments match.
- On the 1st of the month Rechnungskit automatically reminds you about the ETN upload for the previous month: as an open task on the dashboard and in the task reminder by email (Fridays by default), with a direct link to the right month in the report. The task disappears once you upload.
- ETN items carry Unzer's own transaction numbers, not the API payment IDs. Totals and fees are correct automatically; individual items of a fee statement can be assigned on /payouts if needed.
Where to find it in the app
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.