← DocumentaciónReferencia

Códigos de error

Cada `code` posible + cómo recuperarte.

Toda respuesta de error sigue el mismo schema: code (uno de los abajo), message (humano-legible, ES), requestId (para soporte) y meta opcional con detalles específicos.

Forma del payload

{
  "code": "VALIDATION_FAILED",
  "message": "msisdn '+1234' is not a valid E.164 number",
  "requestId": "5a92b1f8-...",
  "meta": { "field": "to" }
}

Catalogo

StatusCodeCuándoCómo recuperarte
401UNAUTHENTICATEDFalta header o key inválida/expirada.Verifica Authorization: Bearer rk_live_.... Si rotaste, dale 24h y reintenta con la nueva.
403FORBIDDENRecurso de otro tenant, opt-in faltante en NotifyAPI, o permission denied.Confirma que el id pertenece a tu tenant. Para NotifyAPI, agrega el msisdn al opt-in registry.
402TRIAL_EXPIRED30 días de free trial vencidos sin suscribirse.Activa una suscripción en /precios.
402PAYMENT_REQUIREDÚltima factura falló y el grace de 7 días pasó.Actualiza método de pago en el Customer Portal.
402SUBSCRIPTION_INACTIVESuscripción PAUSED o CANCELED. Sólo lectura.Reactiva la suscripción en el dashboard.
404NOT_FOUNDEl recurso no existe en este tenant.Verifica el id. Si es un id ajeno te dará 404 también (no leak).
409CONFLICTEstado incompatible (ej. editar campaign RUNNING).Lee la respuesta message — te dice qué estado se requiere.
409NO_CUSTOMERPediste portal Stripe pero el tenant no ha hecho checkout aún.Primero pasa por POST /v1/billing/checkout.
422VALIDATION_FAILEDBody inválido — campos faltantes, tipo equivocado, regex no matcheó.Mira meta.field + message; corrige y reintenta.
429RATE_LIMITEDCap de tier o del plan excedido.Espera al Retry-After (segundos). En NotifyAPI, considera promover el número de tier o subir de plan.
503SESSION_NOT_CONNECTEDLa sesión está LOGGED_OUT, RECONNECTING o nunca pareada.Vuelve a vincular escaneando el QR. Para PAUSADA/RECONNECTING, espera 30s.
503SESSION_QUARANTINEDEl health scorer puso al número en quarantine.Espera 7 días para auto-release o contacta soporte si es false positive.
503BILLING_DISABLEDStripe no está configurado en este deploy (self-hosted sin keys).Setea STRIPE_SECRET_KEY y STRIPE_WEBHOOK_SECRET.
500INTERNAL_ERRORBug nuestro.Comparte el requestId al equipo — vive en Sentry.

Sentry + requestId

Cuando llames a soporte sobre un error, pásanos el requestId. Lo buscamos en Sentry + en los logs estructurados del API y vemos la stack trace exacta.

Códigos de error · Replai · WhatsApp con IA en Venezuela