🇸🇻 El Salvador
Esta ficha asume que conoces el protocolo de comunicación xPOS-Core. El Salvador es el único país con Patrón B: output JSON y validación contra JSON Schema.
Resumen
| Aspecto | Valor |
|---|---|
Código country | sv |
| Entidad tributaria | DGII |
| Patrón | B — JSON con JSON Schema |
inputType soportados | json, xml |
| Endpoint extra | – |
| Output | JSON tributario firmado (no XML) |
Mapeo de XSLT
| XSLT | Uso |
|---|---|
input_to_dte_sv.xslt | Entradas json y xml → XML <root> → XML Gosocket. |
dte_to_fiscal_sv.xslt | XML Gosocket → JSON tributario DGII. |
custom_response_sv.xslt | Genera custom_response cuando aplica. |
Tipos de documento (typeDoc)
Ejemplo WebSocket usa
typeDoc=3. El parámetro es numérico:typeDoc=1ytypeDoc=01son equivalentes.
typeDoc | Documento |
|---|---|
| 01 | Factura |
| 03 | Comprobante de crédito fiscal |
| 04 | Nota de remisión |
| 05 | Nota de crédito |
| 06 | Nota de débito |
| 07 | Comprobante de retención |
| 08 | Comprobante de liquidación |
| 09 | Documento contable de liquidación |
| 11 | Factura de exportación |
| 14 | Factura de sujeto excluido |
| 15 | Comprobante de donación |
Cada tipo valida contra su propio JSON Schema (Patrón B). Admiten emisión en contingencia los tipos 01, 03, 04, 05, 06, 11 y 14. Los eventos de contingencia y de anulación son internos y no se envían como typeDoc.
Campos del response específicos de El Salvador
El Salvador devuelve el nucleo + eco tributario completo (statusCode/Description/Message, applicationResponse, timeGeneration/Validation).
countryIdentificationCode en El Salvador es el código de generación DGII.
Códigos de contingencia (contingencyCode)
Las contingencias automáticas las determina xPOS. Las manuales las declara el POS en el documento (motivo.tipoContingencia), cuando xPOS no puede determinarlas de forma automática.
contingencyCode | Tipo | Motivo |
|---|---|---|
1 | Automática | No disponibilidad del sistema del Ministerio de Hacienda |
3 | Automática | Falla en el suministro del servicio de internet del emisor |
2 | Manual | No disponibilidad del sistema del emisor |
4 | Manual | Falla en el suministro de energía eléctrica del emisor que impida la transmisión de los DTE |
5 | Manual | Otro: el POS declara el documento en contingencia con este código y explica el motivo, con un máximo de 500 caracteres |
La contingencia manual del dashboard emula una caída de internet: responde 3.
Ejemplo WebSocket
Valores ilustrativos. La estructura es real; los datos son ejemplos. En El Salvador
outputysignedXmlcontienen un DTE JSON firmado codificado en base64 (no XML, por Patrón B).
{
"env": "sbx",
"operation": "consolidate",
"typeDoc": 3,
"country": "sv",
"inputType": "json",
"origin": "<taxId del emisor>",
"document": { /* DTE El Salvador */ }
}Notas particulares
- Patrón B: el
outputes JSON, no XML. La validación ocurre contra JSON Schema en lugar de XSD. - Publica en Inbox-Gosocket.
- Los formatos
txtyxdocno están disponibles en El Salvador; usarjsonoxml. - La regularización de contingencia va precedida por el evento: xPOS declara primero el evento de contingencia ante el Ministerio de Hacienda (firmado, con la ventana real y el motivo), luego envía los documentos que ampara, y cierra el evento cuando todos alcanzan su estado final. Un documento en contingencia no se reenvía por sí solo: espera a que su evento esté declarado.