Skip to main content
VeriFactu

VeriFactu error 4112: the certificate you connect with cannot submit those invoices

The AEAT, the Spanish tax agency, identifies whoever sends records by the certificate presented when connecting. A valid certificate is not enough: its holder has to be allowed to submit the invoices of that tax ID. If not, the AEAT answers with 4112 and rejects the whole request. It is a question of who submits, not of how the invoices are made.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 4 November 2026

Key facts

Module
VeriFactu
Versions
Odoo 17, 18, 19 and 20
Checked
in the module's source code, version 20.0 · against the sources linked at the end
Reading time
3 min

The AEAT text names the four figures it accepts: El titular del certificado debe ser Obligado Emisión, Colaborador Social, Apoderado o Sucesor. In English: the certificate holder must be the party obliged to issue, a social collaborator, an attorney or a successor. It is a code from the first section of the list, the one that rejects the whole submission.

Three certificate errors, in order

Before 4112 there are two more basic barriers. They are worth knowing because they get mixed up with it:

What happensWhat the AEAT answersWhat you see in Odoo
No certificate is presentedA redirect to its error page erro4033.A transport error saying no certificate was received.
The certificate is not recognisedA redirect to the page erro4011.A transport error saying the certificate was rejected.
The certificate is recognised, but its holder cannot submit for that tax IDA SOAP fault with 4112.Submission in Failed with code 4112.

The first two are not codes from the list: they are redirects of the AEAT online office. The module does not follow them; it turns them into an error and keeps the submission retrying, with the same waits as a network failure, until it reaches Dead Letter on the sixth attempt.

Card for VeriFactu code 4112
The 4112 card: a full rejection of the request, which stays in Failed in the module's queue.

Which certificate Odoo presents

The module connects with the company's active certificate, in Configuration › Certificates. Before connecting it checks two things and stops with its own message if they fail:

  • No active certificate for company … when there is no active one.
  • The certificate … of company … has expired. when the active one has expired.

So you do not get to the second one, Odoo shows in Chain State how many days the active certificate has left and, from 30 days before expiry, marks it as «Expiring soon» and includes it in the daily compliance digest if you have a recipient set up.

List of VeriFactu certificates in Odoo with one active
Two test certificates of the same company: one active and one inactive. Only the active one is used to connect. Odoo 20 screenshot with test certificates.

How to solve 4112

The active certificate has to belong to one of the four figures in the message with respect to the tax ID in the header:

  1. If the company itself submits, the certificate has to be its own, that of the party obliged to issue.
  2. If your tax adviser submits, the header also carries the Representante block with their tax ID, and the certificate has to allow them to submit for you. Check Asesoría NIF and Asesoría Name on the company.
  3. If you have taken over the business of another company, the message speaks of a successor: the certificate has to match that figure.

Once the right certificate is uploaded and active, resend the submissions in Failed from AEAT Submission › AEAT Errors with Retry Selected. The certificate is read on every connection, so the resend already uses the new one.

Can I have several certificates loaded?

Yes, but only one active per company. That is the one presented on every connection, and the one to change if 4112 appears.

If 4112 persists with the right certificate, send us the answer of the submission at comercial@flexigobe.com together with the type of certificate and who submits. Do not send us the certificate itself.

Keep reading

VeriFactu errors 4105, 4117, 4123 and 4124: when your tax adviser submits for youVeriFactu errors in the Representante block (4105, 4117, 4123, 4124), when your tax adviser submits for you: what the AEAT checks and which Odoo fields fill that block.VeriFactu errors with your company tax ID: 4104, 4107, 4109, 4115, 4116 and the IDEmisorFactura familyVeriFactu errors on the issuer tax ID (4104, 4107, 4109, 4115, 4116, 1108, 1215…): what the AEAT checks, which Odoo field it comes from and how to resend the submission.VeriFactu error 4134: «Servicio no activo», what happens to your invoices and how to resend themWhat VeriFactu error 4134 from the Spanish tax agency means, why it rejects the whole submission and how to resend your invoices from Odoo 17, 18, 19 and 20.
Checked in the module's source code (version 20.0) and the linked sources

Sources