Anular documento
Anula un comprobante electrónico. El tipo de baja se elige solo según el comprobante: facturas y sus notas van por Comunicación de Baja (RA); boletas y sus notas, por Resumen Diario (RC).
POSThttps://api.facturalo.pe/api/v3/documentos/anular
Factura y boleta responden con el mismo formato. Las diferencias de cada una están en Anular factura y Anular boleta.
Parámetros del body
Campo
Descripción
documentoobjectrequerido
Datos del comprobante a anular.
tipoComprobantestringrequerido
01 factura, 03 boleta, 07 nota de crédito, 08 nota de débito.seriestringrequerido
Serie del comprobante.Ej:
F001correlativostringrequerido
Número correlativo.Ej:
1motivostringrequerido
Razón de la anulación.Ej:
Error en los datos del cliente| tipoComprobante | Comprobante | Cómo se anula |
|---|---|---|
01 | Factura | Comunicación de Baja (RA) |
03 | Boleta | Resumen Diario (RC) |
07 / 08 | Nota de crédito / débito | Según el comprobante que modifica: de factura → RA; de boleta → RC |
Cómo leer la respuesta
| data.estado | sunat.procesada | Qué significa |
|---|---|---|
ANULADA | true | SUNAT aceptó la baja (sunat.codigo = "0"). Se envía el webhook documento.anulado. |
EN_PROCESO | false | SUNAT recibió la baja pero aún no terminó de procesar el ticket (sunat.codigo = null). El documento ya figura como anulado en Facturalo; confirma el resultado con GET /documentos/{id}. |
RECHAZADA | true | SUNAT rechazó la baja; el documento sigue vigente. El motivo está en sunat.codigo y sunat.mensaje. |
NO_ENVIADA | false | No se pudo enviar la baja a SUNAT; el documento sigue vigente. Vuelve a intentarlo. |
| Campo | Descripción |
|---|---|
sunat.ticket | Ticket que SUNAT asignó al resumen. |
sunat.nombreArchivo | Nombre del resumen enviado (RUC-tipo-fecha-número). |
sunat.hash | Hash del XML firmado del resumen. |
sunat.procesada | true cuando SUNAT ya devolvió el resultado final del ticket. |
Cuando SUNAT recibe la baja (ANULADA o EN_PROCESO), el documento queda anulado en Facturalo, GET /documentos/{id} lo devuelve con el bloque anulacion y se envía el evento documento.anulado a los webhooks suscritos.
Language
Credentials
Header
Authorization
Ejemplos con el SDK oficial en Node y PHP
API Request
$ npm install @facturalo-pe/node
import { FacturaloClient } from "@facturalo-pe/node";
const facturalo = new FacturaloClient({ token: process.env.FACTURALO_TOKEN! });
const result = await facturalo.documentos.anular({
tipoComprobante: "01",
serie: "F001",
correlativo: "1",
motivo: "Error en los datos del cliente"
});
console.log(result.estado, result.sunat.ticket);SDK oficial @facturalo-pe/node · guía en /sdks
Response
Elige un ejemplo de respuesta:
application/json
200Anulada
{
"success": true,
"message": "La Comunicacion de baja RA-20261030-1, ha sido aceptada",
"data": {
"estado": "ANULADA",
"documento": {
"id": "83ad82a0-680e-11f1-8e35-2d93ac0f2c84",
"tipo": "FACTURA",
"serie": "F001",
"correlativo": "00000001"
},
"sunat": {
"codigo": "0",
"mensaje": "La Comunicacion de baja RA-20261030-1, ha sido aceptada",
"notas": [],
"ticket": "1781234567890",
"hash": "kq1tB7d0n3Wf0yV2oQe9cM4sXaY=",
"nombreArchivo": "20601476551-RA-20261030-1",
"procesada": true
}
}
}