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
| Credencial | Dónde vive | Para qué | Reset / rotación |
|---|---|---|---|
public_key | Frontend o backend (browser-safe) | Widget tokens de Spot, boletas, chequeo de suscripción | Pídele a ops |
client_id | Frontend o backend (browser-safe) | Operaciones de paciente AAPD (validar identidad, agregar método de pago, capturar) | Pídele a ops |
client_secret | Solo backend — nunca en browser | Crear órdenes AAPD, reembolsos, admin | Self-rotate desde el backoffice de SkipPay |
secret_key | Solo backend | Endpoints estilo admin de Spot (lectores de RUT de DTEmite, registro partner-RUT de Reservo) | Pídele a ops |
webhook_secret | Solo backend | Verificar firmas HMAC en webhooks entrantes | Self-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_xxxCuá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_idoclient_secret?" Usaclient_secretpara cualquier operación que tu backend haga que cree o modifique estado (órdenes, reembolsos). Usaclient_idpara lo que hace el widget en nombre del paciente (el widget las lee de tu config). - "¿
public_keyes secreta?" No. Es la misma clave que pones en tu código frontend. Lo sensible esclient_secretywebhook_secret. - "¿Por qué algunos endpoints son
public_keyy otrossecret_key?" Endpoints que crean recursos por-paciente (mintear un token, empujar una boleta) usanpublic_key. Endpoints estilo admin que mutan la configuración del propio partner (registros de RUT, lectores RUT crudos) usansecret_keyporque 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.