Errores de los Intentos de Subscripción

Ahora es más fácil entender por qué una suscripción falló. Agregamos visibilidad del error en tres lugares distintos:

  • API: El objeto subscription_intent ahora incluye el campo public_error cuando el status es failed.
  • Webhooks: En el webhook subscription_intent.failed también encontrarás el campo public_error.
  • OnExit callback: Ahora el callback recibe directamente el errorReason, que corresponde al mismo valor de public_error.

Tipos de public_error

  • login_invalid_credentials
  • login_credentials_locked
  • authorization_failed
  • authorization_timeout
  • request_timeout
  • subscription_intent_expired
  • internal_error

Ejemplos

  • Webhook subscription_intent.failed:
{
  "id": "si_J4mE0vDPUevW3N2y",
  "mode": "live",
  "object": "subscription_intent",
  "status": "failed",
  "created_at": "2025-09-23T14:37:11Z",
  "public_error": "login_invalid_credentials",
  "reference_id": null,
  "subscription": null,
  "widget_token": null,
  "customer_email": null,
  "business_profile": null
}
  • OnExit callback:
onExit: function onExit(errorReason) {
  console.log(errorReason);
  // ejemplo: "internal_error"
}
  • API:
{
  "id": "si_KZJNzMNjUzlMeEa2",
  "status": "failed",
  "mode": "live",
  "created_at": "2025-09-23T21:29:15Z",
  "public_error": "internal_error",
  "object": "subscription_intent"
}