Convida uma pessoa para a equipe da empresa
POST/api/resident-companies/{id}/members
- Auth
- Requires a token
- Who can call it:
- owner
- admin
- X-CommunityId
X-CommunityIdSend the X-CommunityId of the community the operation happens in.
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/profiles/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/resident-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 (F-86) 403; e-mail que pediu para não participar (F-85) 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.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Headers
| Name | Type | Description |
|---|---|---|
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 | Type | Description |
|---|---|---|
emailrequired | string (email) | |
nameoptional | string | Nome da pessoa (usado se a conta for criada agora). · max 100 |
isAdminoptional | boolean | Só owner ou admin. |
Responses
| Status | Description |
|---|---|
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. |
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 example
curl -X POST "https://api.memberfy.net/api/resident-companies/<id>/members" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]"}'