Partner Portal APIs
Portal endpoints for authenticated partner users.
Base URL
https://service-gateway.loscenotes.com/api/partner-portal
Authentication
Authorization: Bearer <jwt>
Endpoint groups
Dashboard
GET /api/partner-portal/metrics devuelve series temporales de API desde partner_api_logs (apiCalls, responseTime, errorRate, topEndpoints, statusCodes). El tráfico de la Public Partner API se ingesta vía PartnerAuditInterceptor cuando hay partnerContext.partnerId. El dashboard del portal muestra una sección de métricas de API con ese contrato; sin logs → empty state honesto (sin ceros inventados). Los KPIs de negocio primarios siguen viniendo del dashboard híbrido (GET /dashboard), no de esta serie.
GET /api/partner-portal/dashboardGET /api/partner-portal/metricsGET /api/partner-portal/activity-feed
API key management
GET /api/partner-portal/api-keys— returns maskedkey+keyPrefix+lastUsedAt(no full secret)POST /api/partner-portal/api-keys— once-reveal full key on createPUT /api/partner-portal/api-keys/:keyIdDELETE /api/partner-portal/api-keys/:keyIdPOST /api/partner-portal/api-keys/:keyId/rotate— once-reveal on rotate
Webhooks
Create/update/test de webhooks del portal rechazan URLs privadas/metadata. La entrega saliente usa maxRedirects: 0 y DNS fijado (anti rebinding).
GET /api/partner-portal/webhooksPOST /api/partner-portal/webhooksPUT /api/partner-portal/webhooks/:webhookIdDELETE /api/partner-portal/webhooks/:webhookIdPOST /api/partner-portal/webhooks/:webhookId/testGET /api/partner-portal/webhooks/:webhookId/logs
Onboarding
POST /api/partner-portal/onboarding/startGET /api/partner-portal/onboarding/statusPOST /api/partner-portal/onboarding/complete-step/:step
Portal sandbox
GET /api/partner-portal/sandbox/statusPOST /api/partner-portal/sandbox/resetPOST /api/partner-portal/sandbox/generate-data
Live cuando existe el schema
partners_sandbox: generate/reset/status ejecutan operaciones reales de sandbox. Soft-fail (payload de éxito explicando indisponibilidad) solo si el schema falta en ese entorno. Las clavessk_test_emitidas son solo para tooling de sandbox — no pueden llamar rutas de producción/api/partner/*.
Billing and usage
Los conteos de API pueden ser reales; bandwidth, métricas de webhooks, catálogo de plan y settlements-as-invoices siguen incompletos. La UI de billing del portal está live (/partner/billing) para usage / invoices / plan — aún no es un producto comercial completo.
GET /api/partner-portal/billing/usageGET /api/partner-portal/billing/invoicesGET /api/partner-portal/billing/plan
Support
Create/list persisten en partner_support_tickets (migración v23.0.67), con alcance al partner autenticado. UI del portal: /partner/support. La cola de triaje en Admin no está shipped — los partners sí pueden crear y listar sus propios tickets.
POST /api/partner-portal/support/ticketGET /api/partner-portal/support/ticketsGET /api/partner-portal/quickstart
Notes
- these endpoints are operational/portal-focused, not public partner API key endpoints
- data isolation is enforced through the authenticated partner context
- for organization-level config, users, reports, reservations and sandbox tooling, see Management features