SkipDocumentación Skipdocs
Conceptos

Autenticación

Cómo funcionan public_key, client_id, client_secret y secret_key en Spot y AAPD.

Skip usa cuatro credenciales distintas en su superficie API. No son intercambiables. Esta página explica cuál va dónde.

A primera vista

CredencialDónde vivePara quéReset / rotación
public_keyFrontend o backend (browser-safe)Widget tokens de Spot, boletas, chequeo de suscripciónPídele a ops
client_idFrontend o backend (browser-safe)Operaciones de paciente AAPD (validar identidad, agregar método de pago, capturar)Pídele a ops
client_secretSolo backend — nunca en browserCrear órdenes AAPD, reembolsos, adminSelf-rotate desde el backoffice de SkipPay
secret_keySolo backendEndpoints estilo admin de Spot (lectores de RUT de DTEmite, registro partner-RUT de Reservo)Pídele a ops
webhook_secretSolo backendVerificar firmas HMAC en webhooks entrantesSelf-rotate desde el backoffice de SkipPay

Cómo se envía cada una

public_key  →  query string
              ?public_key=pk_live_xxx

client_id / client_secret  →  Authorization header
              Authorization: Bearer <credencial>

secret_key  →  header
              secret_key: sk_partner_xxx

Cuándo usar cuál

  • Widget de Spot: public_key (mintear), sin auth (cargar), widget_token (cargar).
  • Boletas de Spot: public_key (tú empujas boletas).
  • Crear/reembolsar órdenes AAPD: client_secret (server-side).
  • Llamadas del widget AAPD (validar identidad, agregar método de pago, payment): client_id (browser-safe; el widget las hace por ti).
  • Webhooks entrantes: verifica con tu webhook_secret.

Confusiones comunes

  • "¿client_id o client_secret?" Usa client_secret para cualquier operación que tu backend haga que cree o modifique estado (órdenes, reembolsos). Usa client_id para lo que hace el widget en nombre del paciente (el widget las lee de tu config).
  • "¿public_key es secreta?" No. Es la misma clave que pones en tu código frontend. Lo sensible es client_secret y webhook_secret.
  • "¿Por qué algunos endpoints son public_key y otros secret_key?" Endpoints que crean recursos por-paciente (mintear un token, empujar una boleta) usan public_key. Endpoints estilo admin que mutan la configuración del propio partner (registros de RUT, lectores RUT crudos) usan secret_key porque el blast radius es mayor.

Rotación

Puedes rotar client_secret y webhook_secret desde el backoffice de SkipPay sin involucrar a ops. Tanto el valor viejo como el nuevo funcionan ~5 minutos después de la rotación, así que: deploy primero, luego rotación, luego deploy de nuevo.

Para public_key, client_id y secret_key, pídele a ops. Esas rotaciones son raras y requieren coordinación.

On this page