/ Comprobantes
Anulaciones
Da de baja facturas, notas y otros comprobantes ya aceptados mediante comunicación de baja.
Crear comunicación de baja
POST/anulaciones
Anula en SUNAT comprobantes con estado aceptado. Identificador RA-aaaammdd-NNN.
fecha_generaciondateObligatorio- Fecha de emisión del documento a anular.
fecha_comunicaciondate- Fecha de la comunicación. Por defecto hoy.
detallesarrayObligatorio- Documentos a anular (mínimo 1).
detalles[].tipo_documentostringObligatorio01factura,07nota de crédito,08nota de débito,20retención o40percepción.detalles[].seriestringObligatorio- Serie (4 caracteres).
detalles[].correlativostringObligatorio- Correlativo.
detalles[].motivostringObligatorio- Motivo de la baja (máx. 255).
No incluye boletas (03): se anulan con un resumen diario en modo anulación. Plazo: facturas y notas, hasta 7 días calendario desde su emisión; retenciones y percepciones, dentro del mismo mes.
curl -X POST "https://apifact.gavi-cloud.com/api/v1/anulaciones" \
-H "X-Api-Key: TU_API_KEY" \
-H "X-Api-Secret: TU_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"fecha_generacion": "2026-10-02",
"detalles": [
{
"tipo_documento": "01",
"serie": "F001",
"correlativo": "123",
"motivo": "Error en razón social del cliente"
}
]
}'{
"estado": "exito",
"mensaje": "Comunicación de baja creada y encolada.",
"datos": {
"id": 7,
"identificador": "RA-20261002-001",
"cantidad_docs": 1,
"sunat_status": "pendiente",
"sunat_ticket": null
}
}Consultar estado
GET/anulaciones/{id}/estado
Consulta en SUNAT el resultado de la baja. Cuando se acepta, los comprobantes pasan a anulado. También puedes listar con GET /anulaciones o ver una con GET /anulaciones/{id}.
curl "https://apifact.gavi-cloud.com/api/v1/anulaciones/7/estado" \
-H "X-Api-Key: TU_API_KEY" \
-H "X-Api-Secret: TU_API_SECRET"Anular una boleta
POST/resumenes
Las boletas se anulan con un resumen en modo anulación: envías el arreglo anular con el id de cada boleta aceptada. Mientras SUNAT procesa, las boletas quedan en anulacion_en_proceso; al aceptarse pasan a anulado.
fecha_resumendateObligatorio- Fecha de la comunicación.
anulararrayObligatorio- Boletas a anular.
anular[].idintegerObligatorio- ID de la boleta en la API.
anular[].motivostringObligatorio- Razón de la anulación (máx. 255).
Errores comunes
| Mensaje | Causa |
|---|---|
| No se encontraron boletas aceptadas por SUNAT para anular | Las boletas no están en estado aceptado. |
| ...ya pasó el plazo de 7 días para anulación | Se venció la ventana de SUNAT. |
| ...tiene una nota de crédito asociada | Usa la nota de crédito en lugar de anular. |
| Ya existe un resumen de anulación para la boleta... | Ya está siendo anulada en otro resumen. |
curl -X POST "https://apifact.gavi-cloud.com/api/v1/resumenes" \
-H "X-Api-Key: TU_API_KEY" \
-H "X-Api-Secret: TU_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"fecha_resumen": "2026-10-02",
"anular": [
{
"id": 100,
"motivo": "Error en datos del cliente"
},
{
"id": 102,
"motivo": "Producto devuelto"
}
]
}'{
"estado": "exito",
"mensaje": "Resumen de anulación encolado para envío a SUNAT.",
"datos": {
"id_resumen": 6,
"identifier": "RC-20261002-002",
"accion": "anulacion",
"total_documentos": 2,
"estado_sunat": "enviado"
}
}