Referencia rápida de la Public Partner API
Integraciones externas autenticadas principalmente con X-API-Key.
URL base
https://service-gateway.loscenotes.com/api/partner
Autenticación
X-API-Key: sk_live_your_api_key
Entornos de clave
- Usa
sk_live_para todos los ejemplos de/api/partner/*abajo. sk_test_se rechaza en/api/partner/*con Forbiddenerror.partner.sandbox_key_not_allowed_on_production_api. Las claves sandbox solo sirven para/api/partner-sandbox/*y el webhook simulator.
Excepción: seed-test-data
POST /api/partner/seed-test-data es @Public (sin API key), pero no es un helper de producción para partners. Solo se permite cuando config.environment es development o test. En producción devuelve Forbidden error.partner.seed_not_allowed_in_production.
Endpoints
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/partner/reservations | Lista reservaciones del partner autenticado |
| GET | /api/partner/reservations/:id | Obtiene una reservación |
| POST | /api/partner/reservations | Crea una reservación |
| POST | /api/partner/reservations/:id/cancel | Cancela una reservación |
| GET | /api/partner/cenotes | Lista cenotes disponibles para partners |
| GET | /api/partner/availability/:cenoteId?date=YYYY-MM-DD | Consulta disponibilidad de un cenote |
| POST | /api/partner/seed-test-data | Solo dev/test (@Public); Forbidden en producción |
Ejemplo de lista de reservaciones
curl -X GET "https://service-gateway.loscenotes.com/api/partner/reservations?page=1&perPage=20" \
-H "X-API-Key: sk_live_your_api_key" \
-H "Content-Type: application/json"
Ejemplo de creación de reservación
curl -X POST "https://service-gateway.loscenotes.com/api/partner/reservations" \
-H "X-API-Key: sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"cenoteId": "550e8400-e29b-41d4-a716-446655440000",
"date": "2026-04-20",
"startTime": "09:00",
"endTime": "13:00",
"visitors": 4,
"firstName": "John",
"lastName": "Smith",
"guestEmail": "john@example.com",
"guestPhone": "+52 999 123 4567"
}'
Notas de contrato
- los campos monetarios se devuelven en centavos
- los endpoints de lista usan el wrapper estándar con paginación
- detail/create/cancel devuelven resúmenes normalizados de reservación