Referência da API do Avaliação
URL Base: https://avaliacao.mangati.com
Todos os endpoints estão sob /api. Operações de escrita requerem um Token de Acesso.
Authorization: Bearer <token_de_acesso>Avaliações
Obter Avaliação por ID
GET /api/evaluations/{id}
Authorization: Bearer <token_de_acesso>Exemplo:
curl https://avaliacao.mangati.com/api/evaluations/018e4f50-7b3c-7000-8d2e-111111111111 \
-H "Authorization: Bearer TOKEN" \
-H "Accept: application/json"Resposta:
{
"id": "018e4f50-7b3c-7000-8d2e-111111111111",
"status": "submitted",
"score": 4,
"notes": "Atendimento rápido, mas a sala de espera estava muito cheia.",
"customer": {
"name": "João Silva",
"document": "123.456.789-00"
},
"ticket": {
"remoteId": "456",
"number": "A001"
},
"location": {
"name": "Sede Central",
"remoteId": "1"
},
"service": {
"name": "Documentação",
"remoteId": "3"
}
}Obter Avaliação por Chave de Link
GET /api/evaluations/resolve/{linkKey}Sem autenticação necessária - usado pela página de avaliação do cidadão.
Exemplo:
curl https://avaliacao.mangati.com/api/evaluations/resolve/ABC123XYZResposta: Objeto de avaliação com status, dados do cidadão e detalhes do serviço (nota e comentários podem ser nulos se ainda não enviados).
Criar Avaliação (via webhook)
POST /api/evaluations
Authorization: Bearer <token_de_acesso>
Content-Type: application/jsonNormalmente chamado pelo consumidor de webhook do NovoSGA (uso interno). Utilize para criar avaliações programaticamente em integrações customizadas.
Corpo da requisição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
remoteId | string | Sim | ID da senha no sistema de origem |
customer | objeto | Não | {name, document} |
ticket | objeto | Sim | {remoteId, number} |
location | objeto | Não | {name, remoteId} |
service | objeto | Não | {name, remoteId} |
Exemplo:
curl -X POST https://avaliacao.mangati.com/api/evaluations \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"remoteId": "456",
"ticket": { "remoteId": "456", "number": "A001" },
"customer": { "name": "João Silva", "document": "123.456.789-00" },
"service": { "name": "Documentação", "remoteId": "3" },
"location": { "name": "Sede Central", "remoteId": "1" }
}'Resposta (201): Avaliação criada com status: pending e uma linkKey.
Enviar Avaliação (pelo operador)
PUT /api/evaluations/{id}
Authorization: Bearer <token_de_acesso>
Content-Type: application/jsonCorpo da requisição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
score | inteiro | Sim | Nota de 1 a 5 |
notes | string | Não | Comentário opcional |
Enviar via Chave de Link (autoatendimento do cidadão)
PUT /api/evaluations/resolve/{linkKey}
Content-Type: application/jsonSem autenticação necessária - acessível pelo cidadão através do link único.
Exemplo:
curl -X PUT https://avaliacao.mangati.com/api/evaluations/resolve/ABC123XYZ \
-H "Content-Type: application/json" \
-d '{
"score": 5,
"notes": "Excelente atendimento!"
}'Resposta (200): Objeto de avaliação atualizado com status submitted.
Exemplo de Integração em PHP
// Criar avaliação após encerramento da senha no NovoSGA
public function onTicketFinished(array $ticket): void
{
$this->avaliacaoClient->post('/api/evaluations', [
'headers' => ['Authorization' => 'Bearer ' . $this->token],
'json' => [
'remoteId' => (string) $ticket['id'],
'ticket' => [
'remoteId' => (string) $ticket['id'],
'number' => $ticket['senha']['numero'],
],
'customer' => $ticket['cliente'] ? [
'name' => $ticket['cliente']['nome'],
'document' => $ticket['cliente']['documento'],
] : null,
'service' => [
'name' => $ticket['servico']['nome'],
'remoteId' => (string) $ticket['servico']['id'],
],
'location' => [
'name' => $ticket['local']['nome'],
'remoteId' => (string) $ticket['local']['id'],
],
],
]);
}
// Enviar link ao cidadão (ex.: via Notificação)
// $evaluation['linkKey'] → https://avaliacao.mangati.com/evaluate/{linkKey}