Partner API Overview
This overview reflects the real controller structure currently implemented in LosCenotes API.
Base URL
https://service-gateway.loscenotes.com/api
All routes shown in this documentation already include the global /api prefix.
Partner endpoint families
| Family | Base path | Auth | Endpoints |
|---|---|---|---|
| Public Partner API | /api/partner | X-API-Key (seed-test-data @Public, dev/test only) | 7 |
| Partner Registration | /api/partners | Public + throttling | 2 |
| Partner Portal | /api/partner-portal | JWT partner user | 26 |
| Admin Partners | /api/admin/partners | JWT admin | 11 |
| Settings | /api/partner-settings | JWT partner user | 10 |
| Users | /api/partners/users | JWT + permissions | 9 |
| Reports | /api/partner-reports | JWT partner user | 7 |
| Reservations | /api/partner-reservations | JWT partner user | 6 |
| Webhooks | /api/partners/webhooks | JWT + permissions (test); ADMIN for trigger | 2 |
| Sandbox | /api/partner-sandbox | Sandbox sk_test_ key | 3 |
| Webhook Simulator | /api/partner/webhooks/simulator | Sandbox sk_test_ key | 4 |
Total current partner endpoints: 87
The partners_sandbox schema is in place. Portal sandbox generate/reset/status, /api/partner-sandbox/* (generate-data, statistics, cleanup), and the webhook simulator are live when the schema exists.
- Portal (
/api/partner-portal/sandbox/*, includingPOST /api/partner-portal/sandbox/reset): soft-fail — HTTP 200 with a payload explaining unavailability if the schema is missing. Reset exists only on this portal path (not under/api/partner-sandbox). /api/partner-sandbox/*(no reset route):POST generate-data: hard-fail — HTTP 400partners.sandbox_schema_not_availableif the schema is missingGET statistics: soft-degrade — returns zeros when the schema is missingDELETE cleanup: soft-degrade — success withdeletedRecords: 0when the schema is missing
Use sk_live_* for /api/partner/* and other production partner routes. sk_test_ / sandbox keys are allowed only on /api/partner-sandbox/* and /api/partner/webhooks/simulator/*. Elsewhere they return Forbidden error.partner.sandbox_key_not_allowed_on_production_api.
Credential SSOT (short)
- Auth:
X-API-Key→partner_api_keys(nox-api-secret) - JSONB
api_configuration: metadata +apiEnabledonly - Remint: regenerate once-reveal only (
enableApidoes not mint)
Response architecture
Partner endpoints follow the standard LosCenotes wrapper:
{
"success": true,
"message": "partners.portal.dashboard_retrieved",
"data": {},
"pagination": {
"total": 25,
"perPage": 15,
"currentPage": 1,
"lastPage": 2
},
"currency": {
"code": "MXN",
"symbol": "$"
}
}
Notes
paginationonly appears on list endpointscurrencyonly appears on pricing-related endpoints- some endpoints return plain metadata objects in
data, others return arrays or detail objects - the
/api/partnerfamily is mostly API-key protected;POST /api/partner/seed-test-datais@Publicbut only allowed whenconfig.environmentisdevelopmentortest— production returns Forbiddenerror.partner.seed_not_allowed_in_production(not a partner production helper)
Error shape
Error responses can include validation details like these:
{
"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"]
}
}
}
Navigation by use case
External integrations
New partner onboarding
Portal and operations
Shared platform APIs
Not every integration endpoint lives under src/partners. Partners also commonly use shared modules:
/api/pricing/*/api/payment-methods*/api/checkout/*/api/public/discount-rules/*/api/coupons/*/api/cenotes/*
Those are documented in the shared platform section of this docs site.
Verified against controllers on 2026-07-21 (partners-finish-plan WU4).