Rectificar y anular
Corrección de registros ya remitidos. Subsanación, anulación y facturas rectificativas.
Los registros de facturación son inmutables: una vez remitidos, no se editan. La normativa define en su lugar tres mecanismos, y la API expone cada uno.
Facturas rectificativas (R1–R5)
Para corregir una operación ya facturada (importes, conceptos, devoluciones) se emite una nueva factura de tipo rectificativo (R1 a R5 en tipoFactura), a través del mismo endpoint de alta:
POST /v1/verifactu/crear
POST /v1/ticketbai/crear
La rectificativa es una factura más: genera su propio registro, su QR y su posición en la cadena.
R3 tiene un plazo. Las rectificativas por créditos incobrables (art. 80.4 LIVA) solo se admiten cuando han pasado al menos seis meses desde cada factura que rectifican. La API compara la fechaExpedicion de la rectificativa con la de cada entrada de facturasRectificadas, en meses de calendario; con menos de seis, responde 400 R3_TIMING_ERROR con las dos fechas y los meses transcurridos en details. Rige igual en VeriFactu y en TicketBAI.
Subsanación
Cuando el error está en el registro (datos mal informados que no alteran la operación), se subsana el registro existente:
PUT /v1/verifactu/subsanar
PUT /v1/ticketbai/subsanar
La subsanación referencia la factura original por su serie y número, y remite la corrección a la administración. Conserva la identidad de la factura (serie, numero y fechaExpedicion), así que no sirve para corregir la fecha de expedición: la fecha forma parte de la identidad, y cambiarla equivale a declarar una factura distinta. Una fecha mal emitida se corrige anulando y emitiendo de nuevo.
Es también el camino de vuelta de un registro rechazado. Un rechazo llega por el webhook factura.rechazada, con el código y la descripción de la propia administración en motivoRechazo, o se lee en el registro como estadoEnvioFinal: "rechazada". Corrige lo que señala el motivo y reenvía.
Un registro rechazado no ha quedado presentado, y la obligación de presentarlo es del obligado tributario. VeriBai no reenvía por su cuenta: los mismos datos obtendrían el mismo rechazo y, en TicketBAI, cada intento avanza de forma permanente la cadena de huellas del emisor.
Anulación
Para dejar sin efecto un registro remitido:
POST /v1/verifactu/anular
POST /v1/ticketbai/anular
La anulación localiza la factura por serie + numero + fechaExpedicion: los tres deben coincidir exactamente con la factura original, o la anulación no la encuentra.
La anulación también genera un registro (encadenado, firmado y remitido) que documenta la baja. Nada desaparece de la cadena; ese es el punto.
Cuál usar
| Situación | Mecanismo |
|---|---|
| La operación cambia (descuento posterior, devolución, error de importe facturado) | Factura rectificativa R1–R5 |
| El registro tiene datos mal informados, la operación es correcta | Subsanación |
| La factura no debió emitirse | Anulación |
| La fecha de expedición se envió mal | Anulación + nueva factura. La fecha es identidad, no se subsana |
Ante escenarios fiscales complejos (canje de simplificada a completa, rectificativas sobre rectificativas), escríbenos a soporte@veribai.com antes de emitir. Corregir después siempre es más costoso.