Resumen de la API de partners
Cómo llamar la API. Todas las rutas ya incluyen /api.
URL base
https://service-gateway.loscenotes.com/api
Dónde llamar
| Estás… | Ruta base | Credencial | Guía |
|---|---|---|---|
| Reservando desde tu sistema | /api/partner | X-API-Key: sk_live_... | API pública |
| Registrando una organización | /api/partners | Pública, con límite de tasa | Registro |
| Con sesión en el portal | /api/partner-portal | JWT de partner | Portal |
| Administrando cenotes que operas | /api/partner-portal/cenotes | JWT de partner + rol | Operación |
| Personal gestionando organizaciones | /api/admin/partners | JWT de admin | Admin |
| Personal atendiendo tickets | /api/admin/partner-support-tickets | JWT de admin | Admin |
| Editando ajustes de la organización | /api/partner-settings | JWT de partner | Operación |
| Administrando usuarios partner | /api/partners/users | JWT de partner + permiso | Operación |
| Leyendo reportes | /api/partner-reports | JWT de partner | Operación |
| Gestionando reservas en el portal | /api/partner-reservations | JWT de partner | Reservas |
| Probando o disparando webhooks | /api/partners/webhooks | JWT de partner; el disparo es solo admin | Operación |
| Generando datos de sandbox | /api/partner-sandbox | X-API-Key: sk_test_... | Operación |
| Simulando entrega de webhooks | /api/partner/webhooks/simulator | X-API-Key: sk_test_... | Operación |
Clave de producción
Usa sk_live_* en /api/partner/* y en el resto de rutas partner de producción. sk_test_ solo se acepta en /api/partner-sandbox/* y /api/partner/webhooks/simulator/*. En cualquier otro sitio la respuesta es 403 error.partner.sandbox_key_not_allowed_on_production_api.
No es una ruta de integración
POST /api/partner/seed-test-data no forma parte del contrato de partners. La API publicada responde 403 error.partner.seed_not_allowed_in_production.
Credenciales
- Envía
X-API-Key. No existeX-API-Secret. - Activar el acceso a la API no crea una clave. Crear o regenerar devuelve la clave completa una sola vez.
Envoltorio de respuesta
{
"success": true,
"message": "partners.portal.dashboard_retrieved",
"data": {},
"pagination": {
"total": 25,
"perPage": 15,
"currentPage": 1,
"lastPage": 2
},
"currency": {
"code": "MXN",
"symbol": "$"
}
}
paginationaparece en las rutas de listadocurrencyaparece en rutas de preciodatapuede ser un objeto, un arreglo o el detalle
Forma del error
{
"success": false,
"message": "validation.invalid_input",
"statusCode": 400,
"timestamp": "2026-03-10T18:00:00.000Z",
"path": "/api/partner/reservations",
"errors": {
"messages": ["guestEmail must be an email"],
"fields": {
"guestEmail": ["guestEmail must be an email"]
}
}
}
Rutas de comercio que también usas
La reserva también llama rutas fuera de los prefijos partner:
/api/pricing/*/api/payment-methods*/api/checkout/*/api/public/discount-rules/*/api/coupons/*/api/cenotes/*
Están en este mismo sitio.
Sandbox sin almacenamiento provisionado
- Portal
/api/partner-portal/sandbox/*, incluidoPOST /api/partner-portal/sandbox/reset: HTTP 200 y un cuerpo que explica la indisponibilidad. Reset solo existe en esa ruta del portal. POST /api/partner-sandbox/generate-data:400partners.sandbox_schema_not_availableGET /api/partner-sandbox/statistics: cerosDELETE /api/partner-sandbox/cleanup: éxito condeletedRecords: 0
Actualizado el 2026-09-21 contra la API de partners en vivo.