Saltar al contenido principal

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

Metrics (ingesta + UI del portal)

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/dashboard
  • GET /api/partner-portal/metrics
  • GET /api/partner-portal/activity-feed

API key management

  • GET /api/partner-portal/api-keys — returns masked key + keyPrefix + lastUsedAt (no full secret)
  • POST /api/partner-portal/api-keys — once-reveal full key on create
  • PUT /api/partner-portal/api-keys/:keyId
  • DELETE /api/partner-portal/api-keys/:keyId
  • POST /api/partner-portal/api-keys/:keyId/rotate — once-reveal on rotate

Webhooks

Solo HTTPS público

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/webhooks
  • POST /api/partner-portal/webhooks
  • PUT /api/partner-portal/webhooks/:webhookId
  • DELETE /api/partner-portal/webhooks/:webhookId
  • POST /api/partner-portal/webhooks/:webhookId/test
  • GET /api/partner-portal/webhooks/:webhookId/logs

Onboarding

  • POST /api/partner-portal/onboarding/start
  • GET /api/partner-portal/onboarding/status
  • POST /api/partner-portal/onboarding/complete-step/:step

Portal sandbox

  • GET /api/partner-portal/sandbox/status
  • POST /api/partner-portal/sandbox/reset
  • POST /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 claves sk_test_ emitidas son solo para tooling de sandbox — no pueden llamar rutas de producción /api/partner/*.

Billing and usage

Billing P2 (parcial)

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/usage
  • GET /api/partner-portal/billing/invoices
  • GET /api/partner-portal/billing/plan

Support

Support tickets live (alcance partner); triaje admin diferido

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/ticket
  • GET /api/partner-portal/support/tickets
  • GET /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