Integración por bandeja de archivos

Referencia técnica para integración por bandeja de archivos dentro del cliente local.

Objetivo

Esta guía describe cómo integrar un sistema externo con el cliente local usando intercambio de archivos.

Está pensada para integradores. Cubre:

Estructura de carpetas

La bandeja trabaja con estas ubicaciones lógicas:

Ejemplo:

BandejaArchivos/
  Entrada/
  Temporal/
  Salida/
  Error/

Flujo:

  1. el integrador deja el archivo en Entrada
  2. el cliente local lo mueve a Temporal
  3. si sale bien termina en Salida
  4. si falla termina en Error

Ruteo por punto de emisión

Hay dos modos:

Regla:

Formato JSON

Ejemplo:

{
  "tipo_cfe": 111,
  "uuid": "externo-123",
  "cod_comercio": "1",
  "cod_terminal": "1",
  "xml": "<CFE xmlns=\"http://cfe.dgi.gub.uy\" version=\"1.0\">...</CFE>",
  "adenda": "Texto opcional",
  "emails": ["cliente@example.com"],
  "impresora": "CajaFiscal;FORMATO=personalizado;COPIAS=2",
  "send_now": true
}

Campos principales:

CampoObligatorioDescripción
tipo_cfeTipo de comprobante
uuidIdentificador externo único
xmlXML del CFE sin firmar
cod_comercioNoRuteo por punto de emisión
cod_terminalNoRuteo por punto de emisión
adendaNoTexto adicional
emailsNoDestinatarios opcionales
impresoraNoEspecificación de impresión
send_nowNoSi es true, intenta enviar al servidor

Formato TXT compatible

Actualmente el mensaje soportado es:

La respuesta es:

Ejemplo:

310|UUID|111|||1|120000|20150101|FCTEST01|TEST01|||||||||||
<CFE xmlns="http://cfe.dgi.gub.uy" version="1.0">
...
</CFE>
<Adenda>
Texto de adenda
</Adenda>

Campos relevantes de la primera línea:

PosiciónCampoUso actual
1Tipo de mensajeDebe ser 310
2UUIDIdentificador externo
3Tipo CFETipo de comprobante
9Código de terminalRuteo por perfil
10Código de comercioRuteo por perfil
20Destino de impresiónEspecificación de impresora
22Email para envío PDFDestinatario adicional

Respuesta 311

Cuando el procesamiento termina, el daemon genera un archivo *-response.txt.

Si el procesamiento fue correcto:

Si falla:

La respuesta puede incluir:

Códigos de respuesta

El resultado funcional principal viaja en:

Regla práctica:

Impresión automática

La impresión puede enviarse:

Ejemplos:

Parámetros:

ParámetroDescripción
nombre baseNombre o destino de impresora
FORMATO=personalizadoPlantilla HTML/PDF
FORMATO=escposTérmica ESC/POS RAW
FORMATO=roll, FORMATO=rollo, FORMATO=tmlPDF tipo ticket usando parser .tml
COPIAS=2Cantidad de copias

Errores frecuentes

Recomendaciones