# The VeriFactu status webhook says whether it reports the registration or the cancellation

`verifactu.status.updated` now carries `operation`: `REGISTRATION` or `VOID`. AEAT's answer to a cancellation reaches you by webhook without a lookup.

Sep 28, 2026 · New

`verifactu.status.updated` was already sent when the cancellation record of a voided invoice changed status, but its payload did not say which record it was reporting on: to know whether AEAT had accepted a cancellation you had to match `verifactu_registration_id` against the invoice's VeriFactu records.

The payload now includes `operation`, with the same values as the `operation` of those records: `REGISTRATION` for the invoice's registration and `VOID` for its cancellation.

## What else changed

- **`operation: VOID` with `new_status: VOIDED`** is AEAT accepting the cancellation. With `REJECTED`, `error_code` and `error_message` explain why.
- **A corrected registration is still `REGISTRATION`.** It replaces the invoice's registration, it does not cancel it.
- **The field is new and always present;** nothing else in the payload changes, so existing handlers keep working.

## Where to go next

- [Did AEAT accept the cancellation?](/verifactu/cancel-and-fix#did-aeat-accept-the-cancellation)
- [List the VeriFactu records of an invoice](/invoices/listCompanyInvoiceVerifactuRecords)

---

Full OpenAPI spec: https://docs.beel.es/api/openapi