Proceso de integración para emisión

Referencia técnica para proceso de integración para emisión dentro del cliente local.

Objetivo

Esta guía describe el proceso recomendado para integrar la emisión de CFE usando el cliente local.

Resumen del flujo

En una integración estándar el sistema tercero:

  1. construye el XML base del CFE
  2. identifica el punto de emisión
  3. valida el XML localmente
  4. firma y emite o deja en cola
  5. genera PDF o dispara impresión
  6. persiste la referencia externa para reimpresión y recuperación

Paso 1. Verificar disponibilidad del cliente local

Antes de emitir, el integrador debería confirmar que la bandeja está activa:

curl http://127.0.0.1:18787/health

Si este paso falla, no conviene seguir con la emisión.

Paso 2. Definir el punto de emisión

Hay dos modos:

Cuando el sistema administra más de un punto de emisión, se recomienda enviar siempre ambos valores.

Paso 3. Construir el XML base

El XML de entrada debe llegar:

La guía Ejemplos de XML por tipo de CFE muestra modelos de arranque.

Paso 4. Validar antes de firmar

Validar antes de firmar evita consumir tiempo operativo sobre XML inválido.

curl -X POST http://127.0.0.1:18787/validar-xml \
  -H 'Content-Type: application/json' \
  -d '{
    "tipo_cfe": 101,
    "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CFE xmlns=\"http://cfe.dgi.gub.uy\" version=\"1.0\"><eTck>...</eTck></CFE>",
    "cod_comercio": "1",
    "cod_terminal": "1"
  }'

Paso 5. Elegir modo de procesamiento

Emisión síncrona

Usar POST /sign-cfe cuando:

Emisión asíncrona

Usar POST /enqueue cuando:

Paso 6. Interpretar correctamente la respuesta

En POST /sign-cfe no alcanza con revisar el HTTP.

El integrador debe validar:

Si el HTTP es 200 pero codigo_respuesta indica rechazo, la emisión no debe considerarse exitosa.

Paso 7. Persistir referencias del lado integrador

Se recomienda guardar al menos:

Eso permite reimpresión, generación posterior de PDF y recuperación operativa.

Paso 8. Resolver representación impresa

Luego de emitido el comprobante, el integrador puede:

Esto es especialmente útil cuando la aplicación separa la emisión fiscal de la salida física.

Paso 9. Recuperación y verificación

Cuando hay dudas sobre el estado final de una operación, conviene:

Flujo mínimo recomendado

Para una integración nueva, este suele ser el camino más corto:

  1. GET /health
  2. POST /validar-xml
  3. POST /sign-cfe
  4. persistir uuid, serie, numero
  5. POST /pdf o POST /reprint si aplica

Flujo recomendado para alto volumen o desacople

  1. GET /health
  2. POST /validar-xml
  3. POST /enqueue
  4. monitorear estado local
  5. resolver impresión y recuperación en una etapa posterior

Ejemplo de primera integración

Para empezar sin complejidad innecesaria, la recomendación es integrar primero un único caso simple: eTicket contado con POST /sign-cfe.

La secuencia mínima sería:

  1. hacer GET /health
  2. construir un XML base simple
  3. validarlo con POST /validar-xml
  4. emitir con POST /sign-cfe
  5. guardar uuid, serie, numero y cfe_firmado
  6. opcionalmente generar PDF

Request de emisión de ejemplo

curl -X POST http://127.0.0.1:18787/sign-cfe \
  -H 'Content-Type: application/json' \
  -d '{
    "tipo_cfe": 101,
    "uuid": "venta-pos-000123",
    "cod_comercio": "1",
    "cod_terminal": "1",
    "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CFE xmlns=\"http://cfe.dgi.gub.uy\" version=\"1.0\"><eTck>...</eTck></CFE>",
    "send_now": false
  }'

Qué validar del response

Qué guardar del response

Paso siguiente recomendado

Una vez estable este flujo, recién conviene sumar:

Riesgos típicos

Relación con el resto de la documentación

Después de esta guía, el orden recomendado es:

  1. Bandeja REST del cliente local
  2. Catálogo de campos de la bandeja REST
  3. Ejemplos de XML por tipo de CFE
  4. Operación sign-cfe
  5. Operación enqueue
  6. Operación pdf
  7. Operación reprint
  8. Integración por REST local