Mi flujo con Skip
Mapea tu flujo actual paso a paso a los endpoints Skip que lo reemplazan.
Describe cómo opera hoy tu clínica de extremo a extremo: cómo emites las boletas, qué documentos generas y cómo le llegan al paciente o a la ISAPRE. Tu agente te devuelve un mapa lado-a-lado: qué pasos desaparecen porque Skip los hace, cuáles cambian, y cuáles quedan igual.
Completa tu contexto
Copia el prompt compuesto
Completa los campos obligatorios para activar la copia: Tu flujo actual end-to-end del paciente (numerado, por favor), ¿Cómo emiten las boletas hoy?, ¿Pueden enviarnos las boletas digitales (PDF o XML)?, ¿Pueden enviarnos órdenes médicas y comprobantes de atención?, Productos Skip que planeas usar.
# Resumen de integración Skip
Skip es una plataforma chilena de salud con dos productos que los partners integran:
## Spot
Onboarding de pacientes y automatización de boletas médicas. Tres formas de integración:
- Widget: el backend mintea un token de un solo uso (POST /api/spot/widget), se embebe un iframe en el sitio del partner, el paciente llena un formulario, el partner escucha eventos postMessage.
- POS: flujo de mostrador. El personal hace lookup por RUT, crea usuario. Sin iframe.
- Boletas: el backend empuja boletas a /api/spot/gastos (archivo) o /api/spot/gastos-url (URL). La IA extrae los datos, el reembolso ISAPRE se presenta automático.
Auth: public_key (browser-safe, query param). Algunos endpoints admin usan un header secret_key aparte.
## AAPD / CNPL
"Atiéndete Ahora y Paga Después". 30% pagado al momento con tarjeta, 70% financiado por Ventipay (proveedor de préstamo, totalmente gestionado por Skip), reembolso ISAPRE presentado automático. Skip cobra el 70% restante cuando la ISAPRE paga — o antes si hay 3 días de acceso ISAPRE bloqueado, o al día 45 sin aprobación.
Endpoints (gokeipay-api en https://pay.getskip.ai):
- POST /orders (auth: client_secret) — crea la orden, devuelve hash
- POST /orders/{hash}/validate_customer_identity (auth: client_id) — el widget llama esto
- POST /orders/{hash}/add_payment_method (auth: client_id) — el widget llama esto
- POST /orders/{hash}/payment (auth: client_id) — el widget llama esto
- PUT /orders/{hash}/refund (auth: client_secret) — reembolso total o parcial
Credenciales de auth:
- public_key: browser-safe, para Spot.
- client_id: browser-safe, para operaciones de paciente AAPD.
- client_secret: solo backend, para creación de órdenes/reembolsos AAPD.
- webhook_secret: solo backend, para verificar firmas HMAC-SHA256 de webhooks.
## Webhooks (AAPD)
SkipPay envía webhooks firmados a una URL hosteada por el partner.
- Firma: X-Gokeipay-Signature: sha256={hex}, HMAC-SHA256 sobre el body JSON crudo usando webhook_secret.
- Retries: 6 intentos con backoff exponencial (1m, 5m, 15m, 30m, 60m). Timeout: 10s por intento.
- Eventos que reciben los partners: order.paid, order.partially_paid, order.refunded, order.failed, order.cancelled.
- Siempre incluye event_id para idempotencia.
## Ambientes
- Producción: backend.getskip.ai (Spot), pay.getskip.ai (AAPD), spot.getskip.ai (host del widget).
- Staging: mismos hosts con prefijo staging., ej. staging.backend.getskip.ai. Credenciales de prueba son pk_test_*, ci_test_*, st_test_*.
- Presentación ISAPRE en staging está mockeada (no se presentan reembolsos reales).
- Ventipay en staging es sandbox (no se mueve plata real).
## Fases típicas de integración
1. Emisión de cuenta y credenciales (equipo Skip).
2. Creación server-side de órdenes (solo AAPD): POST /orders.
3. Minteo server-side de widget tokens: POST /api/spot/widget.
4. Embed del iframe + manejo de eventos postMessage en frontend.
5. Receptor de webhooks: endpoint HTTPS + verificación HMAC + procesamiento idempotente.
6. Test end-to-end en staging con pacientes de prueba.
7. Rollout a producción.
Skip se encarga de: presentación de reembolsos ISAPRE, retries de pago, notificaciones WhatsApp/email al paciente, payouts a sub-centros (para meta-prestadores). Los partners no implementan nada de esto.
## Conceptos
- Provider: la ficha del partner en la base de datos de Skip.
- Beneficiary: la ficha del paciente. Identificada por RUT.
- ISAPRE: aseguradora privada chilena de salud. Las credenciales del paciente se guardan en Skip; Skip presenta los reembolsos en su nombre.
- RUT: ID nacional chileno. Formato XXXXXXXX-Y donde Y es un dígito verificador (0-9 o K). Skip normaliza (saca los puntos).
- order_token: igual al campo hash que devuelve POST /orders. Pásalo al widget para activar el flujo AAPD.
- widget_token: UUID que identifica un TempWidgetToken. TTL de 1 hora, o 30 días para long-term tokens.
- meta-prestador: partner que opera con muchas sub-clínicas detrás de una sola integración. Onboardea sub-clínicas vía POST /api/spot/sacmed/centers, después pasa provider_rut en POST /orders.
## Qué los partners NO construyen
- Integración con la ISAPRE (Skip se encarga).
- Underwriting de crédito/préstamo (Ventipay se encarga).
- Despacho de notificaciones al paciente (Skip se encarga).
- Liquidación / payouts (Skip se encarga).
- Almacenamiento de tarjetas / scope PCI (Ventipay se encarga).
# Nuestro flujo actual
# Cómo emitimos boletas hoy
- Modo de emisión:
- Proveedor (si aplica): N/A
- ¿Podemos enviar las boletas digitales a Skip?:
- ¿Podemos enviar órdenes médicas y comprobantes de atención?:
# Productos Skip a usar
# Tu tarea
Produce un mapeo lado-a-lado de nuestro flujo actual a un flujo integrado con Skip. Para cada paso numerado:
- Reformula el paso.
- Identifica qué endpoint(s) o webhook(s) de Skip lo reemplaza o complementa.
- Marca pasos sin equivalente Skip que deben quedarse en nuestro lado.
- Marca pasos que desaparecen completamente porque Skip los hace por nosotros.
Considera específicamente cómo se integra nuestro flujo de boletas digitales con el endpoint /api/spot/gastos[-url] de Skip, dada nuestra capacidad de emisión y envío. Si tenemos órdenes médicas y comprobantes de atención disponibles para enviar, indica cómo aprovecharlos para mejorar la rendición a la ISAPRE.
Termina con tres listas:
1. Pasos que eliminamos (Skip los hace).
2. Pasos que modificamos (un endpoint Skip reemplaza nuestra lógica).
3. Pasos que mantenemos igual.
Sé explícito con qué credencial Skip usa cada llamada nueva (public_key vs client_id vs client_secret).Cómo debería verse la respuesta
Ver ejemplo de salida
Mapeo lado-a-lado
| # | Paso actual | Equivalente Skip | Notas |
|---|---|---|---|
| 1 | Paciente reserva cita | (sin cambio) | Queda en tu lado |
| 2 | Paciente paga copago en mostrador | (sin cambio si Spot) o + POST /orders SkipPay (si AAPD) | Si quieres ofrecer 30/70, ahora pasa por SkipPay |
| 3 | Emisión de boleta al final de la atención | (sin cambio en SII) + POST /api/spot/gastos-url | Como ya emites con DTEmite, podemos pushear la URL de la boleta directo a Skip |
| 4 | Paciente envía boleta a ISAPRE | (eliminado) | Skip presenta el reembolso automático con la boleta y, si las hay, la orden médica + comprobante de atención |
| 5 | ISAPRE reembolsa al paciente | (sin cambio en lo legal) | Skip detecta la aprobación y, en flujos AAPD, cierra el cobro del 70% |
Pasos que eliminamos (1): 4. Pasos que modificamos (2): 2 (si usas AAPD), 3 (boleta hace push a Skip). Pasos que mantenemos (2): 1, 5.
Aprovechamiento de órdenes médicas y comprobantes de atención:
Tu sistema ya los tiene digitalizados, así que envíalos junto a la boleta en el mismo POST /api/spot/gastos-url (campo documents[]). Esto eleva la tasa de aprobación ISAPRE en consultas médicas (donde los reembolsos se rechazan típicamente por falta de comprobante).