Abre um chamado
POST/api/support/tickets
- Auth
- Exige token
- X-CommunityId
X-CommunityIdEnvie o X-CommunityId da comunidade em que a operação acontece.
Qualquer membro com acesso ao space. Cria o chamado `OPEN` com número sequencial por space (alocado sob trava: aberturas simultâneas recebem números diferentes). `resourceId` precisa ser um recurso de **Reservas** da comunidade, ativo (e `listed` para o residente); senão 400. As fotos (`mediaIds`, até 5; 20 por chamado) vêm do upload de mídia com `purpose: supportPhoto`. A equipe que responde pode abrir em nome de um residente (`requesterId`): ele recebe o e-mail "abrimos um chamado para você". Acima de `maxOpenPerMember` chamados abertos do mesmo residente no space (padrão 10; 0 = sem teto): 409. **Idempotente** por `clientRequestId`: o segundo toque devolve o mesmo chamado (200, `alreadyCreated: true`). Os e-mails saem pela fila, nunca na requisição; "novo chamado" sai no máximo 1 vez a cada 10 minutos por destinatário, qualquer que seja o chamado. **Limites (429 com `Retry-After` e `errors`):** 10 chamados **criados** por hora por residente e 20 por 24 horas, contando os cancelados e apagados; requisição recusada por validação (400) não gasta cota; a equipe que responde não tem esses tetos. Cria: `201`.
Headers
| Nome | Tipo | Descrição |
|---|---|---|
X-CommunityIdopcional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Corpo da requisição application/json
| Nome | Tipo | Descrição |
|---|---|---|
spaceIdobrigatório | string (uuid) | O space de Suporte. |
kindobrigatório | MAINTENANCE | REQUEST | |
categoryobrigatório | FACILITIES | CLEANING | EQUIPMENT | INTERNET | ACCESS | BILLING | OTHER | |
titleobrigatório | string | max 140 |
descriptionobrigatório | string | max 10000 |
resourceIdopcional | string (uuid) | Recurso das Reservas (`module: bookings`, ativo; o residente só enxerga os `listed`). |
locationTextopcional | string | max 120 |
urgentopcional | boolean | Marca como `HIGH` se o space permite (`allowUrgentFlag`). |
priorityopcional | LOW | NORMAL | HIGH | URGENT | Só a equipe que responde. |
requesterIdopcional | string (uuid) | Abre em nome de um residente (só quem responde). |
mediaIdsopcional | string (uuid)[] | Fotos já enviadas pelo `POST /api/media/uploads` com `purpose: supportPhoto`. |
clientRequestIdopcional | string | Idempotência: o segundo toque devolve o mesmo chamado. · max 64 |
Respostas
| Código | Descrição |
|---|---|
200 | Já aberto com o mesmo `clientRequestId`. |
201 | Chamado aberto. |
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 | Limite de chamados criados (10 por hora ou 20 por 24 h). Cabeçalho `Retry-After` em segundos; `errors` traduzido. |
500 | Erro interno do servidor. |
Exemplo com curl
curl -X POST "https://api.memberfy.net/api/support/tickets" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"spaceId":"00000000-0000-0000-0000-000000000000","kind":"MAINTENANCE","category":"FACILITIES","title":"string","description":"string"}'