Trifaco API
Documentos

Entrega al comprador

Configurar destinatarios, entregar documentos por correo, consultar recibos y recuperar entregas fallidas.

Canales

CanalQué hace
local_testGuarda mensajes MIME en un receptor local. No envía correo real.
aws_sesEnvía correo real desde una identidad SES verificada. Lo configura el operador en el despliegue.

channel_status: configured indica que hay configuración, no que el proveedor esté disponible.

Configurar la empresa

La configuración inicial es mode: external, automatic: false, recipients: []. Los destinatarios son independientes del correo fiscal del comprador.

  1. Consulta GET /v1/company/delivery-settings (company:read) y guarda su ETag.
  2. Actualiza con PUT /v1/company/delivery-settings, con If-Match, Idempotency-Key y los permisos company:write y documents:deliver:
{
  "mode": "trifaco_email",
  "automatic": true,
  "recipients": ["comprador@example.com"],
  "reason": "Probar entrega automática con receptor local"
}
  • Hasta cinco direcciones distintas, sin nombres ni cabeceras libres. Se rechazan duplicados sin distinguir mayúsculas.
  • Las admisiones nuevas congelan la configuración por revisión. Cambiarla no modifica trabajos anteriores ni envía documentos históricos.
  • Por documento: delivery: {"mode":"external"} lo excluye; delivery: {"mode":"trifaco_email","recipients":[…]} elige sus destinatarios. La clave emisora necesita documents:deliver para admitir una entrega automática.

GET /v1/company/delivery-preflight comprueba la configuración y el permiso de tu clave antes de entregar. No consulta a AWS: provider_status=not_checked.

Qué se envía

Al validarse la revisión se programa la entrega y espera sus archivos:

  • Simulación: PDF y XML de ensayo.
  • Habilitación: PDF, XML firmado, respuesta DIAN y AttachedDocument firmado.

No se envían paquetes incompletos. Si se alcanza el límite al validar, la entrega queda fallida con DELIVERY_ADMISSION_LIMIT; la validación fiscal no se revierte.

Entrega manual

POST /v1/documents/{id}/deliveries (documents:deliver, Idempotency-Key):

{
  "revision": 1,
  "recipients": ["comprador@example.com"],
  "reason": "Solicitar copia de la revisión validada"
}
  • Máximo diez solicitudes manuales por documento y revisión por hora, y cien destinatarios activos por empresa y ambiente.
  • Una segunda entrega al mismo destinatario con resultado pendiente o incierto devuelve conflicto.
  • No vuelve a emitir, firmar ni cobrar el documento.

Consultar

GET /v1/documents/{id}/deliveries, GET /v1/deliveries/{id} y GET /v1/deliveries/{id}/attempts (documents:read), con paginación. Document.delivery_status resume la entrega más reciente de la revisión.

EstadoSignificado
not_readyNo hay entrega o faltan archivos del paquete.
queuedTrabajo pendiente o en curso.
sentEl proveedor aceptó el mensaje; aún sin confirmación.
delivery_confirmedEl servidor receptor confirmó la entrega. No acredita lectura ni aceptación comercial.
failedUn destinatario con fallo definitivo o intentos agotados.
action_requiredHace falta intervención: archivos fallidos, proveedor cambiado o resultado incierto agotado.

Con SES, las quejas y rebotes posteriores aparecen como fallos. Un timeout conserva la incertidumbre y consulta el registro de eventos; no se reenvía automáticamente.

Recuperar

POST /v1/deliveries/{id}/retries con reason, Idempotency-Key y documents:deliver. Conserva destinatarios, identidad del proveedor y archivos; los confirmados no se reenvían. Guíate por recipient_results:

recovery_actionQué hacer
reconcileReintentar para reanudar la conciliación. No vuelve a enviar.
retry_after_fixCorregir la causa (por ejemplo DELIVERY_SES_ACCESS_DENIED) y reintentar.
waitHay trabajo en curso.
noneNo hay nada que recuperar.
new_deliveryLa reserva es terminal: crea una entrega manual nueva.

Para corregir una dirección, crea una entrega manual distinta.

Canal local de ensayo

Con el entorno local preparado y las migraciones aplicadas:

npm run dev:delivery
npm run start:delivery-receiver
npm run start:delivery
DELIVERY_TEST_URL=http://127.0.0.1:3081 npm run start:api

dev:delivery se ejecuta una sola vez: crea un token privado y .local/delivery.env. El receptor escucha solo en 127.0.0.1 y guarda mensajes y recibos en .local/delivery/inbox. Resultado predeterminado accepted; configura DELIVERY_TEST_OUTCOME=confirmed o bounced antes de arrancarlo. Límites: 8 MiB por adjunto, 48 MiB por mensaje, 64 MiB por solicitud y dos trabajos simultáneos. El worker fiscal debe estar activo para generar el paquete.

Operación de SES para operadores: SES-OPERATIONS. Validación: TRI-015.

En esta página