NewProvince is only required for addresses in Spain
BeeL
Get startedMulti-NIFVeriFactuRulesStripeAPI referenceChangelog

The VeriFactu records of an invoice, each with its own status

GET …/invoices/{invoice_id}/verifactu-records lists the registration and, after a void, the cancellation — each with its own submission_status, so you can tell whether AEAT accepted the cancellation.


ChangelogNew

The verifactu block of an invoice summarises its registration. When you void the invoice, submission_status moves with the cancellation, but invoice_hash, registration_number and registered_at keep describing the registration record — so the block could not tell you whether AEAT had accepted the cancellation, or refused it and why.

The new resource lists every record submitted to AEAT for the invoice, ordered by registered_at: the REGISTRATION first and, if the invoice was voided, the VOID after it. Each carries its own submission_status, registration_number, registered_at and, when AEAT reported something, error_code and error_message.

Nothing changes on the invoice resource: the verifactu block keeps the same fields and the same meaning.

What else changed

  • A VOID record ends in VOIDED, not ACCEPTED. While AEAT has not replied it is PENDING; a refused cancellation is REJECTED, with error_code and error_message explaining why.
  • invoice_hash and qr_url travel only on REGISTRATION records. A cancellation has neither.
  • Each record's id is the verifactu_registration_id of the verifactu.status.updated webhook event, so a notification can be matched to the exact record it reports on.
  • Voiding while the registration is still PENDING is allowed. The cancellation is sent once the registration is accepted; until then the list shows only the REGISTRATION record, and the VOID one appears when the cancellation goes out.
  • The collection is closed: no pagination, no page/limit, the whole set on every response. An invoice never submitted — a draft, or one outside VeriFactu — answers 200 with an empty list.

Endpoints

  • GET/v1/companies/{company_id}/invoices/{invoice_id}/verifactu-recordsRegistration and cancellation records, each with its own submission_status

Where to go next