Una lista corta de prácticas que evitarán la mayoría de los problemas que vemos en integraciones reales. No son requisitos, son hábitos recomendados.
Seguridad
- Almacena la API Key en un gestor de secretos (Vault, AWS Secrets Manager, env vars cifradas). Nunca en el repositorio.
- Restringe IPs por API Key cuando sea viable.
- Rota las claves periódicamente. Genera una nueva en paralelo, migra y luego desactiva la antigua.
- Llama al API desde tu backend, no desde una SPA ni desde una app móvil.
Modelado de datos
- Persiste localmente el
idde cada negocio, cliente, item y documento que crees: lo necesitarás para llamadas futuras. - Mantén una correlación entre tu identificador de venta interno y el
iddel documento Facturator, para idempotencia y para reportes. - Trata los catálogos como datos de solo lectura y cachéalos con TTL.
Confiabilidad
- Implementa backoff exponencial para
429,5xxy timeouts. No reintentes4xxque no sean429. - Cuando una emisión falle con timeout, consulta antes de reemitir. Evita el doble registro a toda costa.
- Loguea siempre el
instancedel Problem Details: te dará la traza en soporte.
Diseño de tu cliente HTTP
- Define un cliente único que añada
X-API-KeyyAccept: application/jsona cada request por defecto. - Centraliza el manejo de errores: convierte
4xx/5xxen excepciones tipadas (AuthError,ValidationError,RateLimitError,UpstreamError). - Configura timeouts razonables (≥ 30 s para
POST /documentsconemit: true, porque incluye la ida y vuelta al SRI).
UX para tu usuario final
- Cuando recibas
422, mapeaerrors[].fielda los inputs de tu UI y muestra el mensaje exacto del API. - Muestra al usuario el estado actual del documento (
draft,recepted,authorizated,rejected) y un botón "Reintentar autorización" cuando aplique. - Cuando descargues el PDF, respeta el
Content-Dispositionsugerido por la API.
Operación
- Monitorea tu cupo: alerta cuando
X-RateLimit-Remainingbaje de un umbral. - Mantén un dashboard del estado de los documentos: cuántos en autorización, cuántos rechazados, cuántos pendientes.
- Verifica la vigencia de la firma electrónica al menos cada 24 horas usando
POST /businesses/{id}/signature:verify.

