Card payments and Bizum vs invoices: reconciliation under VeriFactu

A misunderstanding keeps coming up among shops, restaurants and service businesses in Spain: assuming the card terminal slip or a Bizum notification (Spain's ubiquitous instant mobile payment system) "already documents" the sale. It does not. Getting paid is not invoicing. The card receipt proves the payment; the tax obligation to issue an invoice — full or simplified — remains untouched. And now that Spain's invoicing systems regulation (Royal Decree 1007/2023) is in force for companies (1 January 2026) and the self-employed (1 July 2026), that invoice must come out of a compliant SIF: a chained invoicing record, a QR code on the document and, if you operate in VeriFactu mode, transmission of the record to the tax agency (AEAT) at the moment of issue.

Every sale gets its SIF record — however the customer pays

The payment method is irrelevant to the SIF. Cash, card, Bizum, bank transfer or online gateway: each sale produces an invoice or simplified invoice with its own record and QR code. In practice:

The real problem: banks settle net, you invoice gross

This is where the detailed work starts. You issue an invoice for €100, but the bank credits €97.10 after deducting the terminal fee. Multiply that by dozens of daily transactions, bundled into settlements (often a single bank entry per day or per batch), and you get the classic reconciliation puzzle:

The accounting and tax rule is clear: your revenue is the gross invoiced amount; the bank's or gateway's fee is a separate expense (usually with its own invoice from the provider, which you should collect in order to deduct it). Never invoice "whatever landed in the bank".

Tips, fees and refunds

Three cases cause most of the errors:

A workable flow for freelancers and small businesses

1. Always issue from the SIF at the point of sale: a simplified invoice with QR for counter sales, a full invoice when the customer requests one or for B2B. 2. Daily close: compare totals per payment method (cash/card/Bizum) in your software against the terminal's end-of-day report. 3. Match settlements: when the bank credit arrives, split it into gross amount plus fee and link it to the invoices of the corresponding day or batch. 4. Review the exceptions: terminal transactions with no matching invoice (an unrecorded sale — the serious failure) and invoices with no matched payment (unpaid or pending).

Automating the reconciliation

Doing this by hand in a spreadsheet works only until volume grows. The sensible setup is software that imports bank movements (or connects to your bank), recognises terminal and Bizum settlements, splits them into gross and fee, and matches them automatically against invoicing records — leaving only exceptions for human review. Beyond the hours saved, continuous matching is your best defence: if the AEAT compares payment-provider data with your VeriFactu records, you already know they agree, because you check it daily rather than quarterly.

Want to sort it out today?

InvoSeal complies with RD 1007/2023 in VeriFactu and Non-VeriFactu mode from day one. Statement of Responsibility published.

Try InvoSeal →
← Back to blog