Logística

Zipnova

Integración con Zipnova — paquetería con saldo prepaid, 29 estados normalizados a 7 categorías, webhooks. Slug: zipnova.

Datos disponibles

  • Guías con detalle: tracking, eventos, contenido, costo, fechas.
  • Saldo (billing): balance, available, credit_limit. Visible en métricas.
  • 29 estados normalizados a 7 categorías (incluye DEVOLUCION, SINIESTRADO).

Cómo conectar

Desde Onboarding → Zipnova → ingresa Basic Auth credentials. Validamos contra GET /accounts, encriptamos, y registramos automáticamente 3 webhooks (status, shipment, account_balance). Sync inicial directo (no via per-seller fan-out).

Webhooks

POST /api/webhooks/zipnova responde 200 inmediato y procesa async vía after(). Status/shipment fetcha el detail y upserta. Account_balance actualiza saldo.

Sync

3 Inngest functions: initial self-chaining + reconciliation daily + per-seller recon (skip unchanged). NO crons periódicos — los webhooks manejan incrementales, la reconciliación diaria es red de seguridad.

Detalles técnicos

  • Rate limiter sliding-window 800 req/min con backoff en 429/5xx.
  • Zipnova fuerza per_page=20 (ignora valores mayores). Usamos meta.last_page de la API, no nuestro cálculo.
  • Sin payment normalization — Zipnova es logística, no ventas.
  • Cross-references con ML: order.channel_relations → pack_id + tags.