Convida uma pessoa para a equipe da empresa
POST/api/companies/{id}/members
- Auth
- Token erforderlich
- Wer darf:
- owner
- admin
- API-Schlüssel:
- companies:write
- X-CommunityId
X-CommunityIdSende die X-CommunityId der Community, in der die Operation stattfindet.
Owner, admin ou o admin **desta** empresa (só com a empresa ativa); funcionário comum, admin de outra empresa e admin de empresa encerrada levam 403. `isAdmin: true` só owner ou admin podem mandar (403 para os demais). **Owner e admin da comunidade vinculam direto:** quem já é membro só ganha o vínculo (`status: linked`, `joinedViaCompany: false`, sem e-mail); quem não é entra na comunidade com papel `member` (sempre: `role` no corpo é ignorado), recebe o e-mail de convite de `POST /api/members/invite` e entra na equipe (`status: invited`, `joinedViaCompany: true`). **O admin da empresa só convida:** a resposta é sempre a mesma (`status: invited`, `pending: true`, `invitationId`, mensagem "Convite enviado."), seja a pessoa membro da comunidade, de outra empresa ou de fora. Ninguém entra na equipe sem aceitar: a pessoa recebe um e-mail e vê o convite em "Minha empresa" (`GET /api/companies/invitations/mine`), onde aceita ou recusa. Quem ainda não era da comunidade também recebe o convite da comunidade, como antes. Convidar de novo quem já tem convite pendente devolve o mesmo `invitationId`, sem novo e-mail. Erros claros, nunca sucesso silencioso: comunidade fechada para novos membros 403; e-mail que pediu para não participar 409; pessoa já nesta equipe 409; pessoa já em outra empresa 409 só para owner e admin (para o admin da empresa, o 409 aparece só para a própria pessoa, no aceite); empresa encerrada 409. Limite do admin da empresa: até 30 convites por hora (429 com `Retry-After` acima disso); owner e admin não têm esse limite.
Parameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | path | string (uuid) |
Header
| Name | Typ | Beschreibung |
|---|---|---|
X-CommunityIdoptional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Request-Body application/json
| Name | Typ | Beschreibung |
|---|---|---|
emailPflicht | string (email) | |
nameoptional | string | Nome da pessoa (usado se a conta for criada agora). · max 100 |
isAdminoptional | boolean | Só owner ou admin. |
Antworten
| Status | Beschreibung |
|---|---|
201 | Pessoa convidada ou vinculada (owner/admin), ou convite pendente enviado (admin da empresa). |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
404 | Recurso não encontrado. |
409 | Conflito com o estado atual do recurso. |
429 | Admin da empresa acima de 30 convites na hora (cabeçalho `Retry-After`). |
500 | Erro interno do servidor. |
curl-Beispiel
curl -X POST "https://api.memberfy.net/api/companies/<id>/members" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]"}'