Equipe da Organization
Gerencie quem pertence à Organization — liste membros, convide novos, altere funções, reenvie ou revogue convites e remova o acesso.
Esses endpoints sustentam a tela de equipe da Organization: as pessoas que podem fazer login no Dashboard no nível da Organization e os convites que trazem novas pessoas. Gerencie membros e suas funções, e controle os convites pendentes.
A função de um membro determina o que ele pode fazer em todo o escopo da Organization; um convite é uma associação pendente que se torna real assim que aceito. Remover um membro revoga o acesso dele imediatamente.
Esses endpoints alimentam a interface do Tokeflow Dashboard no nível da Organization. Eles são autenticados por sessão (JWT bearer) — o token vem do login no Dashboard, não de uma chave de API sk_/pk_. As solicitações também carregam o header x-organization-id, e o usuário autenticado deve ser membro dessa Organization.
O objeto de convite
Retornado pelos endpoints de listagem e consulta desta página.
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID do convite. |
organization_id | string | ID da Organization. |
organization_name | string | Nome da Organization. |
email | string | Endereço de e-mail do convidado. |
name | string | null | Nome de exibição do convidado. |
role | string | Função atribuída ao convidado. Um de owner, admin, viewer. |
status | string | Status atual do convite. Um de pending, accepted, declined, expired, revoked. |
invited_by | object | Detalhes do usuário que enviou o convite. |
expires_at | string | Data de expiração do convite. (ISO 8601 UTC). |
accepted_at | string | null | Data em que o convite foi aceito. (ISO 8601 UTC). |
declined_at | string | null | Data em que o convite foi recusado. (ISO 8601 UTC). |
created_at | string | Data em que o convite foi criado. (ISO 8601 UTC). |
Endpoints
GET/api/v1/org/team/invitations
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Lista os convites da equipe.
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
status | string | Não | Filtra convites por status |
page | number | Não | Número da página (indexada a partir de 1). Padrão 1, mín 1. |
limit | number | Não | Número de itens por página. Padrão 20, mín 1, máx 100. |
Exemplo de solicitação
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"Exemplo de resposta — 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
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Envia um convite de equipe.
Campos da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | Endereço de e-mail do convidado. |
role | string | Sim | Função a atribuir ao convidado. Um de owner, admin, viewer. |
name | string | Não | Nome de exibição do convidado. |
Exemplo de solicitação
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"
}'Exemplo de resposta — 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
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Revoga o convite da equipe.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de solicitação
curl -X DELETE https://api.tokeflow.com/api/v1/org/team/invitations/obj_1a2b3c4d \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Exemplo de resposta — 204 No Content
Um corpo vazio é retornado em caso de sucesso.
POST/api/v1/org/team/invitations/:id/resend
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Reenvia o convite da equipe.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de solicitação
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"Exemplo de resposta — 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
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Lista os membros da Organization.
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | number | Não | Número da página (indexada a partir de 1). Padrão 1, mín 1. |
limit | number | Não | Número de itens por página. Padrão 20, mín 1, máx 100. |
Exemplo de solicitação
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"Exemplo de resposta — 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
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Remove o membro da equipe.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de solicitação
curl -X DELETE https://api.tokeflow.com/api/v1/org/team/members/obj_1a2b3c4d \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Exemplo de resposta — 204 No Content
Um corpo vazio é retornado em caso de sucesso.
PATCH/api/v1/org/team/members/:id
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Atualiza a função do membro da equipe.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Campos da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
role | string | Sim | Nova função a atribuir ao membro. Um de owner, admin, viewer. |
Exemplo de solicitação
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"
}'Erros
Os erros usam o envelope padrão. Os casos mais comuns aqui:
| HTTP | Significado |
|---|---|
400 | Parâmetros inválidos ou um estado que não permite esta operação. |
401 | Token de sessão do Dashboard ausente, expirado ou inválido. |
403 | Autenticado, mas o usuário logado não tem acesso a esta entidade. |
404 | O registro não existe ou não está visível para esta entidade. |