Guia de Invalidación de Documentos Rapida
Aprende a invalidar documentos tributarios electrónicos de forma rápida y sencilla.
Antes de comenzar
Necesitarás tener el código de generación (UUID) del documento que deseas invalidar y, en algunos casos, el código del documento de reemplazo.
Tipos de invalidación
Existen tres tipos de invalidación definidos en el catálogo CAT-024:
Tipo 1
Error en la información
Requiere documento de reemplazo.
Tipo 2
Rescindir la operación
No requiere documento de reemplazo.
Tipo 3
Otro motivo
Requiere documento de reemplazo y justificación.
Restricciones de tiempo importantes
Facturas (01): Se pueden invalidar hasta 3 meses después de emitidas. Otros documentos: Solo dentro de las 24 horas posteriores a la emisión.
Paso 1: Preparar la solicitud de invalidación
Selecciona el tipo de invalidación adecuado para tu caso y prepara la solicitud:
Tipo 1: Sustitución por error
/api/v1/invalidation
Invalidación por error con documento de reemplazo
Ejemplo de Solicitud
Request
{
"generation_code": "UUID-del-documento-original",
"replacement_generation_code": "UUID-del-documento-nuevo",
"reason": {
"type": 1,
"responsible_name": "Juan Pérez",
"responsible_doc_type": "36",
"responsible_num_doc": "04141201721034",
"requestor_name": "María López",
"requestor_doc_type": "36",
"requestor_num_doc": "06142301891012"
}
}
Tipo 2: Anulación simple
/api/v1/invalidation
Invalidación sin documento de reemplazo
Ejemplo de Solicitud
Request
{
"generation_code": "UUID-del-documento-original",
"reason": {
"type": 2,
"responsible_name": "Juan Pérez",
"responsible_doc_type": "36",
"responsible_num_doc": "04141201721034",
"requestor_name": "María López",
"requestor_doc_type": "36",
"requestor_num_doc": "06142301891012"
}
}
Tipo 3: Anulación con motivo específico
/api/v1/invalidation
Invalidación por motivo específico con documento de reemplazo
Ejemplo de Solicitud
Request
{
"generation_code": "UUID-del-documento-original",
"replacement_generation_code": "UUID-del-documento-nuevo",
"reason": {
"type": 3,
"responsible_name": "Juan Pérez",
"responsible_doc_type": "36",
"responsible_num_doc": "04141201721034",
"requestor_name": "María López",
"requestor_doc_type": "36",
"requestor_num_doc": "06142301891012",
"reason_field": "Descripción detallada del motivo de invalidación"
}
}
Paso 2: Enviar la solicitud de invalidación
Envía la solicitud al endpoint de invalidación:
/api/v1/invalidation
Enviar solicitud de invalidación
Ejemplo de Solicitud
Request
{
"generation_code": "UUID-del-documento-original",
"reason": {
"type": 2,
"responsible_name": "Juan Pérez",
"responsible_doc_type": "36",
"responsible_num_doc": "04141201721034",
"requestor_name": "María López",
"requestor_doc_type": "36",
"requestor_num_doc": "06142301891012"
}
}
Ejemplo de Respuesta
Response
{
"success": true,
"data": {
"identificacion": {
"version": 2,
"ambiente": "00",
"codigoGeneracion": "606C41CB-8711-458D-B...",
"fecAnula": "2025-04-16",
"horAnula": "15:08:32"
},
"emisor": {
"nit": "00000000000000",
"nombre": "EMPRESA DE PRUEBAS SA DE CV 2",
"tipoEstablecimiento": "01",
"telefono": "21212828",
"correo": "facturacion@empresa.com.sv",
"codEstable": "C002",
"codPuntoVenta": null,
"nomEstablecimiento": "EJEMPLO"
},
"documento": {
"tipoDte": "01",
"codigoGeneracion": "UUID-del-documento-original",
"selloRecibido": "2025F7712422E77541FE8...",
"numeroControl": "DTE-01-C0020000-000000000000001",
"fecEmi": "2025-04-16",
"montoIva": 11.51,
"codigoGeneracionR": null,
"nombre": "CLIENTE DE PRUEBA",
"tipoDocumento": "13",
"numDocumento": "00000000-0",
"telefono": "21212121",
"correo": "cliente@gmail.com"
},
"motivo": {
"tipoAnulacion": 2,
"motivoAnulacion": null,
"nombreResponsable": "Juan Perez",
"tipDocResponsable": "36",
"numDocResponsable": "06142510921231",
"nombreSolicita": "Maria Lopez",
"tipDocSolicita": "36",
"numDocSolicita": "06142510921232"
}
}
}
Paso 3: Verificar el estado de invalidación
Puedes verificar que el documento ha sido invalidado correctamente consultándolo:
/api/v1/dte/UUID-del-documento-original
Verificar el estado de invalidación del documento
Ejemplo de Respuesta
Response
"success": true,
"data": {
"control_number": "DTE-01-C0020000-000000000000001",
"generation_code": "UUID-del-documento-original",
"reception_stamp": "2025F7712422E77541FE8...",
"transmission": "NORMAL",
"status": "INVALIDATED", // Una vez ejecutada la invalidación, el DTE pasará a cambiar su estado
"created_at": "2025-04-16 02:56:33",
"updated_at": "2025-04-16 02:56:49",
"json_data": {
// El DTE emitido
}
}
Consideraciones importantes
Puntos a tener en cuenta
- Estado del documento: Solo se pueden invalidar documentos en estado "RECEIVED".
- Documentos de reemplazo: Para tipos 1 y 3, el documento de reemplazo debe existir y estar en estado "RECEIVED".
- Documentos relacionados: Si un documento tiene documentos relacionados (como notas de crédito), estos no se invalidan automáticamente.
- Validaciones del tipo 2: En la anulación simple, no debes proporcionar un documento de reemplazo.
- Validaciones del tipo 3: El campo
reason_field
es obligatorio y debe proporcionar una explicación detallada.