Autenticación
Integraciones externas de partner
Usa el header X-API-Key en las rutas externas, por ejemplo /api/partner/*.
X-API-Key: sk_live_your_api_key
Auth es solo API key. No envíes X-API-Secret ni x-api-secret.
Credenciales
- La clave de API se crea o se regenera una vez. Activar el acceso (
enableApi) no crea una clave nueva. Regenerar devuelve{ apiKey }y no hayapiSecret. - El secreto HMAC del webhook se muestra una vez al crearlo. Cambiar
webhookUrlen admin o en ajustes actualiza la URL del webhook activo y no rota el secreto. Vaciar la URL desactiva los webhooks activos. El primer webhook sale de la aprobación o de crearlo en el portal. - Guarda y entrega solo URLs HTTPS públicas. Se rechazan localhost, redes privadas y hosts de metadata. La entrega no sigue redirecciones.
Example
curl -X GET "https://service-gateway.loscenotes.com/api/partner/cenotes" \
-H "X-API-Key: sk_live_your_api_key" \
-H "Content-Type: application/json"
Otros modelos de auth en la plataforma
- Partner portal and management endpoints use JWT
- Some shared public endpoints do not require API key auth
- Some operational endpoints, such as on-site checkout confirmation, require role-based authenticated access
Sandbox y WebSocket
- Las claves sandbox (
sk_test_) sirven para las rutas sandbox del portal, para/api/partner-sandbox/*y para/api/partner/webhooks/simulator/*. No leen ni escriben reservas de producción. sk_test_no puede llamar/api/partner/*ni otras rutas partner de producción. La respuesta es403error.partner.sandbox_key_not_allowed_on_production_api. Usask_live_en todos los ejemplos de/api/partner/*.- Tiempo real. Abre Socket.IO en
https://service-gateway.loscenotes.com/partner/ws.- Usuario del portal:
auth.tokendel handshake con el JWT, o headerAuthorization: Bearer <jwt>. - API key:
auth.apiKeydel handshake consk_live_....sk_test_se rechaza. - Si entra, el servidor emite
connectedconpartnerId,authMode(jwtoapi_key) ytimestamp. - Envía
subscribecon{ "events": ["*"] }o una lista de nombres de evento. Hasta que te suscribes, el socket sigue abierto y no entrega eventos del partner.pingse responde conpong. - Si falla, el servidor emite
errory cierra el socket.
- Usuario del portal:
Forma de error
Current API errors are returned in the enhanced global format:
{
"success": false,
"message": "validation.invalid_data",
"error": "Bad Request",
"statusCode": 400,
"timestamp": "2026-03-10T18:00:00.000Z",
"path": "/api/partner/cenotes"
}