Equipo de la Organization

Gestiona quién pertenece a la Organization — lista miembros, invita nuevos, cambia roles, reenvía o revoca invitaciones y elimina el acceso.

Estos endpoints sustentan la pantalla de equipo de la Organization: las personas que pueden iniciar sesión en el Dashboard a nivel de la Organization y las invitaciones que traen nuevas personas. Gestiona los miembros y sus roles, y controla las invitaciones pendientes.

El rol de un miembro determina lo que puede hacer en toda la Organization; una invitación es una membresía pendiente que se vuelve real una vez aceptada. Eliminar a un miembro revoca su acceso de inmediato.

Estos endpoints impulsan la interfaz del Tokeflow Dashboard a nivel de la Organization. Están autenticados por sesión (JWT bearer) — el token proviene de iniciar sesión en el Dashboard, no de una clave de API sk_/pk_. Las solicitudes también incluyen el header x-organization-id, y el usuario que inició sesión debe ser miembro de esa Organization.

El objeto de invitación

Devuelto por los endpoints de listado y consulta de esta página.

CampoTipoDescripción
idstringID de la invitación.
organization_idstringID de la Organization.
organization_namestringNombre de la Organization.
emailstringDirección de correo electrónico del invitado.
namestring | nullNombre para mostrar del invitado.
rolestringRol asignado al invitado. Uno de owner, admin, viewer.
statusstringEstado actual de la invitación. Uno de pending, accepted, declined, expired, revoked.
invited_byobjectDetalles del usuario que envió la invitación.
expires_atstringFecha de expiración de la invitación. (ISO 8601 UTC).
accepted_atstring | nullFecha en la que se aceptó la invitación. (ISO 8601 UTC).
declined_atstring | nullFecha en la que se rechazó la invitación. (ISO 8601 UTC).
created_atstringFecha en la que se creó la invitación. (ISO 8601 UTC).

Endpoints

GET/api/v1/org/team/invitations

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Lista las invitaciones del equipo.

Parámetros de consulta

CampoTipoObligatorioDescripción
statusstringNoFiltra las invitaciones por estado
pagenumberNoNúmero de página (indexada desde 1). Predeterminado 1, mín 1.
limitnumberNoNúmero de elementos por página. Predeterminado 20, mín 1, máx 100.

Ejemplo de solicitud

curl -G https://api.tokeflow.com/api/v1/org/team/invitations \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3" \
  --data-urlencode "status=pending" \
  --data-urlencode "page=1" \
  --data-urlencode "limit=20"

Ejemplo de respuesta — 200

{
  "data": [
    {
      "id": "obj_1a2b3c4d",
      "organization_id": "org_4b21e7c3",
      "organization_name": "Acme Store",
      "email": "jane@example.com",
      "name": "Acme Store",
      "role": "owner",
      "status": "pending",
      "invited_by": {
        "user_id": "string",
        "name": "Acme Store",
        "email": "jane@example.com"
      },
      "expires_at": "2026-01-15T12:30:00.000Z",
      "accepted_at": "2026-01-15T12:30:00.000Z",
      "declined_at": "2026-01-15T12:30:00.000Z",
      "created_at": "2026-01-15T12:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "total_pages": 3,
    "has_next": true,
    "has_prev": false
  }
}

POST/api/v1/org/team/invitations

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Envía una invitación de equipo.

Campos de la solicitud

CampoTipoObligatorioDescripción
emailstringSíDirección de correo electrónico del invitado.
rolestringSíRol a asignar al invitado. Uno de owner, admin, viewer.
namestringNoNombre para mostrar del invitado.

Ejemplo de solicitud

curl -X POST https://api.tokeflow.com/api/v1/org/team/invitations \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@company.com",
    "role": "admin",
    "name": "Jane Doe"
  }'

Ejemplo de respuesta — 201

{
  "id": "obj_1a2b3c4d",
  "organization_id": "org_4b21e7c3",
  "organization_name": "Acme Store",
  "email": "jane@example.com",
  "name": "Acme Store",
  "role": "owner",
  "status": "pending",
  "invited_by": {
    "user_id": "string",
    "name": "Acme Store",
    "email": "jane@example.com"
  },
  "expires_at": "2026-01-15T12:30:00.000Z",
  "accepted_at": "2026-01-15T12:30:00.000Z",
  "declined_at": "2026-01-15T12:30:00.000Z",
  "created_at": "2026-01-15T12:30:00.000Z"
}

DELETE/api/v1/org/team/invitations/:id

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Revoca la invitación de equipo.

Parámetros de ruta

CampoTipoObligatorioDescripción
idstringSí—

Ejemplo de solicitud

curl -X DELETE https://api.tokeflow.com/api/v1/org/team/invitations/obj_1a2b3c4d \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3"

Ejemplo de respuesta — 204 No Content

Se devuelve un cuerpo vacío en caso de éxito.


POST/api/v1/org/team/invitations/:id/resend

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Reenvía la invitación de equipo.

Parámetros de ruta

CampoTipoObligatorioDescripción
idstringSí—

Ejemplo de solicitud

curl -X POST https://api.tokeflow.com/api/v1/org/team/invitations/obj_1a2b3c4d/resend \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3"

Ejemplo de respuesta — 200

{
  "id": "obj_1a2b3c4d",
  "organization_id": "org_4b21e7c3",
  "organization_name": "Acme Store",
  "email": "jane@example.com",
  "name": "Acme Store",
  "role": "owner",
  "status": "pending",
  "invited_by": {
    "user_id": "string",
    "name": "Acme Store",
    "email": "jane@example.com"
  },
  "expires_at": "2026-01-15T12:30:00.000Z",
  "accepted_at": "2026-01-15T12:30:00.000Z",
  "declined_at": "2026-01-15T12:30:00.000Z",
  "created_at": "2026-01-15T12:30:00.000Z"
}

GET/api/v1/org/team/members

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Lista los miembros de la Organization.

Parámetros de consulta

CampoTipoObligatorioDescripción
pagenumberNoNúmero de página (indexada desde 1). Predeterminado 1, mín 1.
limitnumberNoNúmero de elementos por página. Predeterminado 20, mín 1, máx 100.

Ejemplo de solicitud

curl -G https://api.tokeflow.com/api/v1/org/team/members \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3" \
  --data-urlencode "page=1" \
  --data-urlencode "limit=20"

Ejemplo de respuesta — 200

{
  "data": [
    {
      "membership_id": "mem_7b2f9c14",
      "user_id": "string",
      "email": "jane@example.com",
      "name": "Acme Store",
      "role": "owner",
      "joined_at": "2026-01-15T12:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "total_pages": 3,
    "has_next": true,
    "has_prev": false
  }
}

DELETE/api/v1/org/team/members/:id

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Elimina al miembro del equipo.

Parámetros de ruta

CampoTipoObligatorioDescripción
idstringSí—

Ejemplo de solicitud

curl -X DELETE https://api.tokeflow.com/api/v1/org/team/members/obj_1a2b3c4d \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3"

Ejemplo de respuesta — 204 No Content

Se devuelve un cuerpo vacío en caso de éxito.


PATCH/api/v1/org/team/members/:id

Org

Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.

Actualiza el rol del miembro del equipo.

Parámetros de ruta

CampoTipoObligatorioDescripción
idstringSí—

Campos de la solicitud

CampoTipoObligatorioDescripción
rolestringSíNuevo rol a asignar al miembro. Uno de owner, admin, viewer.

Ejemplo de solicitud

curl -X PATCH https://api.tokeflow.com/api/v1/org/team/members/obj_1a2b3c4d \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
  -H "x-organization-id: org_4b21e7c3" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "admin"
  }'

Errores

Los errores usan el envoltorio estándar. Los casos más comunes aquí:

HTTPSignificado
400Parámetros inválidos o un estado que no permite esta operación.
401Token de sesión del Dashboard ausente, vencido o inválido.
403Autenticado, pero el usuario que inició sesión no tiene acceso a esta entidad.
404El registro no existe o no es visible para esta entidad.

Relacionados

En esta página