SkipDocumentación Skipdocs
SpotWidget

Embeber el iframe

Carga la URL del widget en un iframe y entrega control al paciente.

Después de que tu backend mintee un widget_token, el navegador del paciente carga la URL retornada dentro de un iframe. El widget llama a Skip por su cuenta para obtener el estado de la sesión.

Embed mínimo

<iframe
  src="https://spot.getskip.ai?token=550e8400-..."
  width="100%"
  height="700"
  style="border: 0;"
  allow="clipboard-read; clipboard-write"
></iframe>

Dimensiones recomendadas: al menos 480px de ancho y 640px de alto. El widget es responsivo dentro de esos límites.

Qué hace el widget al cargar

El widget llama a GET /api/spot/widget/{token} con el token de su URL. La respuesta incluye un event_type que determina la primera pantalla mostrada al paciente:

event_typeQué muestra el widget
SPOT_USER_NEWFormulario de registro (RUT no está aún en Skip).
GOKEI_PRO_USERPantalla de éxito "ya eres usuario Skip Pro".
PROVIDER_CHARGESConfirmación de que tu provider cubre el cargo — sigue al onboarding.
REFUNDS_LEFTModo prueba gratuita con N reembolsos restantes.
FREE_TRIAL_EXPIRED_USERPantalla de suscripción — al usuario se le acabó la prueba.

No tienes que manejarlas tú; el widget las renderiza. Las listamos para que entiendas qué caminos puede tomar una sesión.

Leer estado del widget desde tu backend (opcional)

Si necesitas inspeccionar el estado después de mintear (ej. para soporte), llama:

GET /api/spot/widget/{widget_token}

Es el mismo endpoint que usa el iframe. Es público — no requiere public_key — porque el token mismo autoriza el acceso. No expongas esta URL a nadie que no sea el paciente o tu tooling de soporte.

Errores que el iframe puede encontrar

StatusCausaQué hace el iframe
404Token no existeRenderiza pantalla de error. El paciente puede reintentar desde tu metadata.retry_url.
410Token expiradoIgual que arriba.
409RUT_OTHER_EMAIL — RUT pertenece a otra cuentaRenderiza pantalla de recuperación. Ver Casos borde.
422RUT mal formadoPantalla de error.

No los renderizas tú — el widget lo hace. Tú gestionas el evento postMessage final (ver Eventos postMessage).

On this page