Contenido de la documentación

/ 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_documentostringObligatorio
01 factura, 07 nota de crédito, 08 nota de débito, 20 retención o 40 percepció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"
      }
    ]
  }'
Respuesta201 Created
{
  "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

MensajeCausa
No se encontraron boletas aceptadas por SUNAT para anularLas boletas no están en estado aceptado.
...ya pasó el plazo de 7 días para anulaciónSe venció la ventana de SUNAT.
...tiene una nota de crédito asociadaUsa 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"
      }
    ]
  }'
Respuesta201 Created
{
  "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"
  }
}