Activitat de la factura: resultats de l’AEAT, correu i cobraments
La línia de temps de la factura afegeix el resultat de cada enviament a l’AEAT, els correus no lliurats, la primera visita diària a l’enllaç públic i els esdeveniments de cobrament, cadascun amb un contracte exacte de metadata.
4 d’octubre de 2026
GET /v1/invoices/{invoice}/activities
i la tool MCP get_invoice_activities publiquen ara més esdeveniments a la línia de temps
d’una factura. Cada event_type nou té un contracte exacte de metadata, descrit a
l’esquema InvoiceActivity, i no exposa identificadors interns.
Enviaments VeriFactu
Es registra el resultat de cada enviament d’un registre a l’AEAT:
event_type | Quan | metadata |
|---|---|---|
verifactu.record_accepted | L’AEAT va acceptar un registre (l’alta, una subsanació o l’anul·lació), amb o sense errors admissibles. | record_type, csv, aeat_error_code, requires_subsanation, attempt |
verifactu.record_rejected | L’AEAT va rebutjar un registre. | record_type, aeat_error_code, aeat_error_message, attempt |
verifactu.transmission_failed | L’enviament ha fallat per l’AEAT o la xarxa i es reintenta automàticament. Una entrada per incidència, no per intent. | record_type, reason, attempt, next_retry_at |
verifactu.transmission_blocked | L’enviament està aturat, sense reintent automàtic, fins que es corregeixi la causa. | record_type, block_reason |
record_typeésalta,subsanacionoanulacion.csvés el codi segur de verificació que va retornar l’AEAT; ésnullquan l’AEAT va confirmar el registre com a duplicat d’un enviament anterior.aeat_error_codeés l’error admissible (2xxx) o l’avís amb el qual es va acceptar el registre, onull. En un rebuig és el codi del rebuig (SCHEMA_INVALIDquan el registre incomplia l’esquema de l’AEAT i no es va enviar).requires_subsanationindica si l’AEAT exigeix una subsanació d’aquest error admissible. Tots l’exigeixen excepte2004i2009.reasonésAEAT_UNREACHABLE,UNMATCHED_RESPONSE_LINEoSYSTEM_CERTIFICATE_UNAVAILABLE.- Un registre bloquejat es reactiva amb
POST /v1/verifactu/records/retry-blocked.
El recurs de registre VeriFactu afegeix aeat_warning_requires_subsanation: per a un
registre acceptat amb un error, indica si l’AEAT exigeix la seva subsanació. És false
per a un avís que no és un codi de l’AEAT i null quan el registre no està acceptat
amb avís.
Correu i enllaç públic
event_type | Quan | metadata |
|---|---|---|
invoice.email_failed | El correu de la factura no s’ha pogut lliurar després dels seus reintents. | recipient, reason (motiu llegible en castellà, sense dades sensibles) |
invoice.public_link_viewed | Primera visita del dia (Europe/Madrid) a l’enllaç públic. Les visites posteriors aquell dia no afegeixen entrada. | views_today i, només quan es coneix, downloaded_pdf |
Cobraments
Els cobraments registrats, revertits o editats sobre la factura apareixen a la seva línia de temps, també els registrats abans que es publiquessin aquests esdeveniments.
event_type | Quan | metadata |
|---|---|---|
payment.payment_created | S’ha registrat un cobrament. | amount, method, provider |
payment.payment_reversed | S’ha revertit un cobrament. | amount, reason, provider |
payment.payment_updated | S’ha editat un cobrament. | changed_fields, provider |
amount és en euros, method és una clau del catàleg de GET /v1/payment-methods,
reason és la clau del motiu de la reversió i changed_fields llista els camps del
cobrament que han canviat (amount, date, method, reference, notes). provider
és la passarel·la que va cobrar (stripe, gocardless, monei, woocommerce o
shopify) o null si el cobrament es va registrar a mà. Quan performed_by és null i
provider té valor, el cobrament va arribar d’aquesta passarel·la.
Endpoints actualitzats8
| Endpoint | Descripció |
|---|---|
GET/v1/invoices/{invoice}/activities | Llistar l'activitat de la factura |
GET/v1/invoices/{invoice}/verifactu | Recupera el registre VeriFactu de la factura |
POST/v1/invoices/{invoice}/verifactu | Forçar la creació del registre VeriFactu d'una factura |
GET/v1/verifactu/records | Llista els registres VeriFactu |
GET/v1/verifactu/records/{record} | Obtenir un registre VeriFactu |
POST/v1/verifactu/records/find-by-csv | Cercar un registre VeriFactu per CSV de l'AEAT |
POST/v1/verifactu/records/find-by-huella | Cercar un registre VeriFactu per hash |
POST/v1/verifactu/records/find-by-invoice-number | Cercar un registre VeriFactu per número de factura |