API - Chamados
Documentação da API de gerenciamento de chamados de suporte.
Autenticação
Todos os endpoints requerem autenticação JWT. Veja Autenticação.
Endpoints
GET /chamados
Lista chamados (filtrado por perfil).
Query Parameters:
status: Filtrar por status (aguardando, respondido)clienteId: Filtrar por cliente (apenas RT)page,limit: Paginação
Response (200 OK):
{
"data": [
{
"id": "uuid",
"protocolo": "CHM-2024-001",
"titulo": "Dúvida sobre formulário",
"descricao": "Como preencher...",
"status": "aguardando",
"cliente": {
"id": "uuid",
"nomeFantasia": "Empresa Exemplo"
},
"dataCriacao": "2024-01-15T10:00:00Z"
}
],
"meta": { ... }
}
GET /chamados/:id
Busca um chamado específico.
Response (200 OK):
{
"id": "uuid",
"protocolo": "CHM-2024-001",
"titulo": "Dúvida sobre formulário",
"descricao": "Como preencher o formulário de verificação?",
"resposta": null,
"status": "aguardando",
"cliente": {
"id": "uuid",
"nomeFantasia": "Empresa Exemplo"
},
"responsavelTecnico": {
"id": "uuid",
"nome": "Dr. João Silva"
},
"dataCriacao": "2024-01-15T10:00:00Z",
"dataResposta": null
}
POST /chamados
Cria um novo chamado (apenas CLIENT).
Request Body:
{
"titulo": "Dúvida sobre formulário",
"descricao": "Como preencher o formulário de verificação diária?"
}
Response (201 Created):
{
"id": "uuid",
"protocolo": "CHM-2024-001",
"titulo": "Dúvida sobre formulário",
"status": "aguardando",
"dataCriacao": "2024-01-15T10:00:00Z"
}
Nota: O protocolo é gerado automaticamente pelo sistema.
PATCH /chamados/:id/responder
Responde um chamado (apenas RESPONSAVEL_TECNICO).
Request Body:
{
"resposta": "Para preencher o formulário, acesse o menu Formulários > Pendentes..."
}
Response (200 OK):
{
"id": "uuid",
"protocolo": "CHM-2024-001",
"resposta": "Para preencher o formulário...",
"status": "respondido",
"dataResposta": "2024-01-15T14:30:00Z"
}
Permissões
- CLIENT: Pode criar chamados e ver seus próprios chamados
- RESPONSAVEL_TECNICO: Pode ver e responder chamados dos seus clientes
- ADMIN: Acesso total
Notificações
Quando um chamado é criado ou respondido, emails são enviados automaticamente:
- Novo chamado: RT recebe email
- Chamado respondido: Cliente recebe email
Veja Sistema de Emails para mais detalhes.
Exemplo de Uso
Criar Chamado (Cliente)
const response = await fetch('https://api.pac.com.br/chamados', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
titulo: 'Dúvida sobre formulário',
descricao: 'Como preencher o formulário?'
})
});
const chamado = await response.json();
console.log('Protocolo:', chamado.protocolo);
Responder Chamado (RT)
const response = await fetch(`https://api.pac.com.br/chamados/${chamadoId}/responder`, {
method: 'PATCH',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
resposta: 'Para preencher o formulário...'
})
});
Status
- aguardando: Chamado aguardando resposta do RT
- respondido: Chamado já foi respondido