Anulación

Este documento describe el proceso de cambio de estado para documentos electrónicos. Nota importante: Este proceso solo actualiza el estado del documento en el sistema internamente, NO envía una solicitud de anulación directamente al SRI.


Endpoints API

MétodoEndpointDescripción
-------------------------------
POST/api/document/{accessKey}/annulmentAnular documento
GET/api/document/{accessKey}/annulmentVer estado de anulación
GET/api/document/{accessKey}/annulment/listListar anulaciones

> Autenticación: Todas las rutas requieren Authorization: Bearer {token}


Solicitar Anulación

curl -X POST "{{ url('/api/document/2104202601179214876600120010010000001041234567890/annulment') }}" \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "ERROR_IN_ISSUANCE",
    "justification": "Factura emitida por error"
  }'

Parámetros

Valores de `reason`

CampoTipoRequeridoDescripción
-------------------------------------
reasonstringMotivo de anulación
justificationstringNoDescripción adicional (máx 1000 caracteres)
CódigoDescripción
---------------------
ERROR_IN_ISSUANCEError en los datos del documento
OPERATION_NOT_REALIZEDLa operación no se concretó
OTHERSOtro motivo justificado


Validación

Solo se valida que el documento tenga estado AUTHORIZED. Si el documento no está autorizado, retornará un error.


Consultar Estado de Anulación

curl -X GET "{{ url('/api/document/2104202601179214876600120010010000001041234567890/annulment') }}" \
  -H "Authorization: Bearer TOKEN"


Listar Anulaciones del Documento

curl -X GET "{{ url('/api/document/2104202601179214876600120010010000001041234567890/annulment/list') }}" \
  -H "Authorization: Bearer TOKEN"


Respuesta Exitosa

{
  "status": "ok",
  "code": 200,
  "message": "Documento anulado exitosamente",
  "data": {
    "document": {
      "access_key": "2104202601179214876600120010010000001041234567890",
      "status": "ANNULLED"
    },
    "annulment": {
      "id": 1,
      "verification_code": "ANUL-A1B2C3D4E5F6",
      "annulment_type": "ONLINE",
      "reason": "Error en emisión",
      "status": "Completada",
      "annulled_at": "21/04/2026 10:30"
    }
  }
}


Respuestas de Error

Documento no encontrado

{
  "status": "error",
  "code": 404,
  "message": "Documento no encontrado"
}

Documento no autorizado

{
  "status": "error",
  "code": 400,
  "message": "Solo pueden anularse documentos autorizados."
}


Estados del Documento


Estados de Anulación

EstadoDescripción
---------------------
AUTHORIZEDDocumento autorizado - puede ser anulado
ANNULLEDDocumento anulado
EstadoDescripción
---------------------
COMPLETEDAnulación completada