Skip to main content

VERI*FACTU QR

Every invoice issued under VERI*FACTU must carry a QR code that lets the recipient verify it against AEAT. A-Cube builds this QR for each issued invoice and exposes it on a dedicated endpoint.

GET /invoices/{uuid}/qr

The Accept header selects the representation:

  • application/json: the QR payload and the fields it is built from
  • image/png: the rendered QR as a PNG image

JSON payload​

GET /invoices/{uuid}/qr
Authorization: Bearer {{jwt}}
Accept: application/json
{
"url": "https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR?nif=A58818501&numserie=FV-2026-0001&fecha=15-01-2026&importe=1452.00",
"nif": "A58818501",
"seriesNumber": "FV-2026-0001",
"issueDate": "15-01-2026",
"totalAmount": "1452.00"
}
FieldNotes
urlthe AEAT ValidarQR URL encoded in the QR; the series number is percent-encoded and the amount padded to two decimals
nifissuer NIF (IDEmisorFactura)
seriesNumberinvoice series + number
issueDateissue date, DD-MM-YYYY
totalAmountinvoice total, two decimals

PNG image​

GET /invoices/{uuid}/qr
Authorization: Bearer {{jwt}}
Accept: image/png

Returns 200 with Content-Type: image/png: the QR ready to place on the printed or PDF invoice.

Errors​

404 if the invoice does not exist or does not belong to the caller.

note

The QR, together with the "factura verificable" / "VERI*FACTU" legend, is the recipient-facing proof that the invoice was reported to AEAT. The legal basis is in Spain mandate.

note

The url above resolves on prewww2.aeat.es, AEAT's pre-production host, which is correct for the sandbox. In production, the QR resolves on the live AEAT verification service instead.