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 — correct for the sandbox. In production, the QR resolves on the live AEAT verification service instead.