Atendimento · Referência
Central de Atendimento (WhatsApp)
Atendimentos (tickets) da Central: contato, setor, atendente, situação e tempos de resposta. Envio de mensagens não é feito pela API.
GET
/v1/central_atendimentoListarGET/v1/central_atendimento/{id}DetalharGET/v1/central_atendimento/{id}/mensagensRelação: Mensagens da CentralGET/v1/central_atendimento/exportarExportar em lotePATCH/v1/central_atendimento/{id}Mudar situação, setor ou atendente do ticketO objeto central de atendimento (whatsapp)
| Campo | Tipo | Descrição | |
|---|---|---|---|
id | inteiro | Identificador | ordenar |
phone | texto | Telefone | LGPD |
contact_name | texto | contact name | LGPD |
client_id | inteiro | ID do cliente | filtro |
rental_id | inteiro | ID da locação | filtro |
sector_id | inteiro | sector id | filtro |
status | texto | novo | em_atendimento | aguardando_cliente | finalizado | filtro |
assigned_user_id | inteiro | assigned user id | filtro |
unread_count | inteiro | unread count | |
last_message_at | data-hora | last message at | ordenar |
last_message_preview | texto | last message preview | LGPD |
last_direction | texto | last direction | |
last_inbound_at | data-hora | last inbound at | |
awaiting_response | inteiro | awaiting response | |
awaiting_agent | inteiro | awaiting agent | |
first_response_seconds | inteiro | first response seconds | |
resp_time_sum | inteiro | resp time sum | |
resp_time_count | inteiro | resp time count | |
is_group | inteiro | is group | filtro |
started_by_user_id | inteiro | started by user id | |
closed_at | data-hora | closed at | |
closed_by_user_id | inteiro | closed by user id | |
created_at | data-hora | Criado em | ordenar |
updated_at | data-hora | Atualizado em | ordenar |
Exemplo do objeto200 OK
{
"id": 1024,
"phone": "91998765432",
"contact_name": "Maria Fernanda",
"client_id": 512,
"rental_id": 512,
"sector_id": 512,
"status": "novo",
"assigned_user_id": 512,
"unread_count": 1,
"last_message_at": "2026-10-08T14:30:00-03:00",
"last_message_preview": "texto",
"last_direction": "texto",
"last_inbound_at": "2026-10-08T14:30:00-03:00",
"awaiting_response": 1,
"awaiting_agent": 1,
"first_response_seconds": 1,
"resp_time_sum": 1,
"resp_time_count": 1,
"is_group": 1,
"started_by_user_id": 512,
"closed_at": "2026-10-08T14:30:00-03:00",
"closed_by_user_id": 512,
"created_at": "2026-10-08T14:30:00-03:00",
"updated_at": "2026-10-08T14:30:00-03:00"
}GET Listar
Retorna os registros paginados, do mais recente para o mais antigo (padrão). Requer Ler.
Parâmetros de consulta
| Parâmetro | Tipo | Descrição |
|---|---|---|
pagina | inteiro | Página (padrão 1) |
por_pagina | inteiro | 1 a 200 (padrão 50) |
ordenar | texto | Aceita: id, last_message_at, created_at, updated_at — prefixo - para decrescente |
campos | texto | Lista de campos do objeto, separados por vírgula |
status | texto | novo | em_atendimento | aguardando_cliente | finalizado — valor exato ou lista separada por vírgula |
sector_id | inteiro | sector id — valor exato ou lista separada por vírgula |
assigned_user_id | inteiro | assigned user id — valor exato ou lista separada por vírgula |
client_id | inteiro | ID do cliente — valor exato ou lista separada por vírgula |
rental_id | inteiro | ID da locação — valor exato ou lista separada por vírgula |
is_group | inteiro | is group — valor exato ou lista separada por vírgula |
criado_desde / criado_ate | data | Período de criação |
atualizado_desde | data-hora | Criados ou alterados desde (pela coluna de atualização) |
incluir | texto | Só no detalhe. Relações: mensagens |
RequisiçãoTestar ▸
curl -X GET "https://apimapogos.sixinformatica.com/v1/central_atendimento?por_pagina=20" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/central_atendimento?por_pagina=20');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/central_atendimento?por_pagina=20', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/central_atendimento?por_pagina=20",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])Resposta200 OK
{
"sucesso": true,
"dados": [
{
"id": 1024,
"phone": "91998765432",
"contact_name": "Maria Fernanda",
"client_id": 512,
"rental_id": 512,
"sector_id": 512,
"status": "novo",
"assigned_user_id": 512
}
],
"meta": {
"total": 1,
"pagina": 1,
"por_pagina": 20,
"paginas": 1
},
"request_id": "req_0f1e2d3c4b5a69788796"
}GET Detalhar
Retorna um registro pelo id. Requer Ler.
Use incluir para embutir relações (cada uma exige Ler no módulo relacionado).
| Erro | Quando |
|---|---|
404 nao_encontrado | Não existe ou está fora das carteiras da chave |
403 permissao_negada | Sem Ler no módulo (ou numa relação pedida) |
RequisiçãoTestar ▸
curl -X GET "https://apimapogos.sixinformatica.com/v1/central_atendimento/1024?incluir=mensagens" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/central_atendimento/1024?incluir=mensagens');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/central_atendimento/1024?incluir=mensagens', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/central_atendimento/1024?incluir=mensagens",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])Resposta200 OK
{
"sucesso": true,
"dados": {
"id": 1024,
"phone": "91998765432",
"contact_name": "Maria Fernanda",
"client_id": 512,
"rental_id": 512,
"sector_id": 512,
"status": "novo",
"assigned_user_id": 512
},
"request_id": "req_1d2c3b4a5f6e7d8c9b0a"
}Relações
| Nome | Módulo | Retorno | Rota |
|---|---|---|---|
mensagens | Mensagens da Central | lista paginada | /v1/central_atendimento/{id}/mensagens |
GET Exportar em lote
Até 1000 registros por chamada, paginando por cursor. Requer Ler e Exportar. Aceita os mesmos filtros da listagem e formato=csv. Detalhes no guia Exportação em lote.
RequisiçãoTestar ▸
curl -X GET "https://apimapogos.sixinformatica.com/v1/central_atendimento/exportar?limite=1000" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/central_atendimento/exportar?limite=1000');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/central_atendimento/exportar?limite=1000', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/central_atendimento/exportar?limite=1000",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])PATCH Mudar situação, setor ou atendente do ticket
Mudar situação, setor ou atendente do ticket. Requer atualizar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
status | enum | opcional | finalizado encerra o atendimento e devolve o contato ao bot de menunovo em_atendimento aguardando_setor aguardando_cliente finalizado |
sector_id | inteiro | opcional | |
assigned_user_id | inteiro | opcional |
Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.
RequisiçãoTestar ▸
curl -X PATCH "https://apimapogos.sixinformatica.com/v1/central_atendimento/1024" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"status":"finalizado"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/central_atendimento/1024');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => json_encode([
'status' => 'finalizado',
]),
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/central_atendimento/1024', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"status": "finalizado"
}),
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"PATCH",
"https://apimapogos.sixinformatica.com/v1/central_atendimento/1024",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"status": "finalizado"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])Resposta200 OK
{
"sucesso": true,
"dados": {
"id": 1024,
"phone": "91998765432",
"contact_name": "Maria Fernanda",
"client_id": 512,
"rental_id": 512,
"sector_id": 512,
"status": "novo",
"assigned_user_id": 512
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}Recursos incluídos neste módulo
Estes recursos usam a mesma permissão de Central de Atendimento (WhatsApp):
| Rota | Recurso | Descrição | Campos |
|---|---|---|---|
/v1/central_mensagens | Mensagens da Central | Mensagens trocadas em cada atendimento (texto só com permissão de dados pessoais). | id, ticket_id, phone, direction, msg_type, body, media_url, from_me … |
/v1/central_setores | Setores da Central | Setores de atendimento. | id, name, color, sort, active, created_at |
/v1/central_etiquetas | Etiquetas da Central | Etiquetas aplicáveis aos atendimentos. | id, name, color, sort, active, created_at |