Saltar al contenido

X-CommunityId

La cabecera que dice en qué comunidad ocurre cada llamada y en cuál se comprueba tu rol. Por qué ninguna ruta lleva la comunidad en el camino, dónde encontrar el id de la comunidad y los errores de quien la olvida.

Memberfy se organiza por comunidad, y la API también: casi todas las llamadas necesitan la cabecera X-CommunityId con el id de la comunidad.

X-CommunityId: 3562c7a0-0000-0000-0000-000000000000

Qué decide

  1. Dónde ocurre la operación: en qué comunidad se crea el espacio, se lista el producto, se solicita el retiro.
  2. Qué rol tienes: el permiso se comprueba en tu perfil de esa comunidad. La misma cuenta puede ser propietaria de una comunidad y miembro de otra; la cabecera elige cuál vale.

Manda la cabecera, no la ruta

Ninguna ruta lleva la comunidad en el camino. Productos, cupones, planes, comisiones, extracto, retiros, informes, información empresarial, datos de cobro y la gestión de suscripciones están en rutas sin el id de la comunidad (/api/products, /api/coupons, /api/manage/subscriptions…), y la comunidad llega solo por X-CommunityId. Sin la cabecera, esas rutas responden 400.

No es un detalle: con una sola fuente para la comunidad, no hay forma de actuar en otra cambiando un id en la URL.

La excepción es el SuperAdmin actuando sobre otra comunidad, en /api/admin/communities/{communityId}/fee-overrides/...: ahí el id de la ruta es la comunidad de destino, no el contexto de quien llama. Las rutas de la propia comunidad, PUT y DELETE /api/communities/{id}, GET /api/communities/{id}/members y PATCH /api/communities/{id}/settings, llevan el id porque la comunidad es el propio recurso; la cabecera sigue siendo obligatoria en ellas.

Cambió el 6 de octubre de 2026. Las rutas antiguas /api/communities/{communityId}/... (productos, cupones, planes, comisiones, extracto, retiros, informes, suscripciones, compras, checkout, información empresarial, datos de cobro) se eliminaron, sin periodo de transición, y responden 404. Usa la misma ruta sin el prefijo, en /api/...; la gestión de suscripciones por el equipo quedó en /api/manage/subscriptions, y las estadísticas de correo, en /api/emails/stats. Los nombres de método del SDK no cambiaron. Consulta Las rutas que cambiaron.

Algunas rutas antiguas también piden communityId en el cuerpo (crear curso, invitar miembros). Envía el mismo id que en la cabecera.

Las rutas que cambiaron

El 6 de octubre de 2026, cada ruta de abajo perdió el prefijo /api/communities/{communityId}. Los métodos HTTP, los parámetros, los cuerpos, las respuestas y los roles exigidos siguen siendo los mismos.

AntesDespués
/api/communities/{communityId}/products/.../api/products/...
/api/communities/{communityId}/coupons/.../api/coupons/...
/api/communities/{communityId}/subscription-groups/... (incluidos reorder y downsell-offers)/api/subscription-groups/...
/api/communities/{communityId}/fees y .../fees/simulate/api/fees y /api/fees/simulate
/api/communities/{communityId}/ledger/.../api/ledger/...
/api/communities/{communityId}/payouts/.../api/payouts/...
/api/communities/{communityId}/reports/.../api/reports/...
/api/communities/{communityId}/business-information/.../api/business-information/...
/api/communities/{communityId}/payout-settings/.../api/payout-settings/...
/api/communities/{communityId}/subscriptions (la gestión por el equipo: listar, exportar, crear, detalle, cancelar, reactivar, descuento, complementos, extender, enlace de pago)/api/manage/subscriptions/...
/api/communities/{communityId}/subscriptions/me/api/subscriptions/me
/api/communities/{communityId}/purchases/me/api/purchases/me
/api/communities/{communityId}/checkout/.../api/checkout/..., que ya existía con las mismas rutas
/webhooks/email/stats/{communityId}/api/emails/stats (propietario o administrador)

Los nombres de método del SDK y las páginas de la referencia siguen siendo los mismos, porque cada ruta mantuvo su operationId: /api/products sigue siendo api.products.postCommunitiesByCommunityIdProducts. Solo salieron las nueve operaciones del checkout anidado; usa las de /api/checkout/*.

Dónde encontrar el id de la comunidad

LlamadaQué devuelve
GET /api/communities/myLas comunidades de tu cuenta, con el id y tu rol en cada una
GET /api/profiles/myTus perfiles, uno por comunidad
curl -s https://api.memberfy.net/api/communities/my \
  -H "Authorization: Bearer $TOKEN"

Los errores de quien la olvida

SituaciónRespuesta
Sin la cabecera, o con un valor que no es un id válido400 · Indica la comunidad en el encabezado X-CommunityId., con errors[0].param = "X-CommunityId"
La cabecera es de una comunidad en la que no estás403 · Você não é membro desta comunidade. ("No eres miembro de esta comunidad")
Una ruta antigua, con /communities/{communityId}/404
El recurso es de otra comunidad404: para la comunidad de la cabecera, no existe

El 400 por falta de la cabecera es la causa número uno de errores en la API.

Ejemplo

curl -s https://api.memberfy.net/api/products \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID"

En el SDK

api.setCommunity('<uuid>') una vez, y el SDK envía la cabecera en todas las llamadas. Para cambiar de comunidad, vuelve a llamar a setCommunity. Consulta SDK de JavaScript.

Preguntas frecuentes

¿Una integración puede atender dos comunidades? Sí, con una cuenta que tenga rol en las dos: cambia la cabecera en cada llamada.

¿Las rutas de autenticación piden la cabecera? No: el inicio de sesión, el registro y GET /api/auth/me funcionan sin ella.

Relacionados