Mensagens
Listar mensagens
https://api.picchat.com.br/v1/messagesLista mensagens enviadas e recebidas da conta, paginadas. Por padrão ordena por created_at decrescente; com ticket_id ou contact_id o padrão passa a ser crescente (leitura de conversa). Usuário restrito a canais só vê mensagens desses canais.
Parâmetros de consulta (query)
pageintegerpadrão 1Página, começando em 1. Valor ausente, inválido ou menor que 1 vira 1.
limitintegerpadrão 20Itens por página. Padrão 20, máximo 100: acima disso é reduzido para 100 sem erro; valor inválido ou menor que 1 vira 20.
ticket_idstring (uuid)Só mensagens deste tíquete (muda a ordem padrão para `asc`).
contact_idstring (uuid)Só mensagens trocadas com este contato (muda a ordem padrão para `asc`).
channel_idstring (uuid)Só mensagens deste canal. Usuário com grupo de permissão e vinculado a canais só vê os desses canais; `channel_id` fora do escopo → 403 `channel_out_of_scope`.
automation_idstring (uuid)Só mensagens disparadas por esta automação.
template_idstring (uuid)Só mensagens que usaram este modelo.
typestringTipo da mensagem.
statusstringStatus de envio (`received` = recebida do contato).
from_mebooleantrue = enviadas pela conta; false = recebidas do contato. Aceita `true`/`false` (também `1`/`0`, `yes`/`no`, `sim`/`nao`); outro valor é ignorado.
searchstringBusca parcial no texto (`body`), sem diferenciar maiúsculas.
fromstringInício do período por `created_at` (inclusive), em ISO 8601 (`2026-09-01` ou `2026-09-01T03:00:00Z`). Só a data = 00:00 UTC. Valor inválido → 400.
tostringFim do período por `created_at` (inclusive), em ISO 8601. Só a data inclui o dia inteiro (até 23:59:59.999 UTC). Valor inválido → 400.
orderstringDireção da ordenação por `created_at`. Padrão: `asc` quando há `ticket_id` ou `contact_id` (leitura cronológica), senão `desc`.
Respostas
200OK
itemsarray<Message>obrigatórioRegistros da página.
items[].idstring (uuid)obrigatórioID da mensagem.
items[].ticket_idstring (uuid) | nullobrigatórioTíquete da mensagem (null em disparos sem tíquete).
items[].contact_idstring (uuid) | nullobrigatórioContato da conversa.
items[].channel_idstring (uuid)obrigatórioCanal por onde passou.
items[].automation_idstring (uuid) | nullobrigatórioAutomação que disparou a mensagem, se houver.
items[].template_idstring (uuid) | nullobrigatórioModelo usado, se houver.
items[].fromMeboolean | nullobrigatóriotrue = enviada pela conta; false = recebida do contato.
items[].typestringobrigatórioTipo da mensagem.
textimagevideoaudiodocumentlocationcontactsstickerinteractiveunsupportedtemplatebuttonitems[].statusstringobrigatórioStatus de envio. Mensagens recebidas ficam como `received`.
receivedpendingprocessingsendingcompletedcanceledpausederroritems[].bodystring | nullobrigatórioTexto da mensagem.
items[].captionstring | nullobrigatórioLegenda da mídia.
items[].filestring | nullobrigatórioURL do arquivo de mídia.
items[].mime_typestring | nullobrigatórioMIME type da mídia.
items[].latitudestring | nullobrigatórioLatitude (mensagens de localização), como texto.
items[].longitudestring | nullobrigatórioLongitude (mensagens de localização), como texto.
items[].vcardanyobrigatórioContatos compartilhados (JSON livre, pode ser null).
items[].contextanyobrigatórioContexto da mensagem (ex.: mensagem respondida) (JSON livre, pode ser null).
items[].reactionsanyobrigatórioReações recebidas (JSON livre, pode ser null).
items[].editedboolean | nullobrigatórioSe a mensagem foi editada.
items[].errorstring | nullobrigatórioMotivo do erro de envio.
items[].ex_idstring | nullobrigatórioID da mensagem no provedor (ex.: wamid da Meta).
items[].sent_atstring (date-time) | nullobrigatórioEnviada ao provedor.
items[].delivery_atstring (date-time) | nullobrigatórioEntregue.
items[].read_atstring (date-time) | nullobrigatórioLida.
items[].replied_atstring (date-time) | nullobrigatórioRespondida pelo contato.
items[].error_atstring (date-time) | nullobrigatórioQuando falhou.
items[].schedule_atstring (date-time) | nullobrigatórioAgendada para.
items[].created_atstring (date-time)obrigatórioCriação.
items[].usersobject | nullobrigatórioAtendente que enviou (mensagens manuais).
items[].users.idstring (uuid)obrigatórioID do usuário.
items[].users.namestringobrigatórioNome.
items[].users.lastNamestring | nullobrigatórioSobrenome.
items[].contactsobject | nullobrigatórioContato da conversa.
items[].contacts.idstring (uuid)obrigatórioID do contato.
items[].contacts.first_namestring | nullobrigatórioNome.
items[].contacts.last_namestring | nullobrigatórioSobrenome.
items[].contacts.mobilephonestring | nullobrigatórioTelefone só com dígitos, com DDI.
items[].messageParticipantobject | nullobrigatórioParticipante que escreveu, em conversas de grupo.
items[].messageParticipant.idstring (uuid)obrigatórioID do contato.
items[].messageParticipant.first_namestring | nullobrigatórioNome.
items[].messageParticipant.last_namestring | nullobrigatórioSobrenome.
items[].messageParticipant.mobilephonestring | nullobrigatórioTelefone só com dígitos, com DDI.
items[].templatesobject | nullobrigatórioModelo usado.
items[].templates.idstring (uuid)obrigatórioID.
items[].templates.namestring | nullobrigatórioNome.
items[].automationsobject | nullobrigatórioAutomação de origem.
items[].automations.idstring (uuid)obrigatórioID.
items[].automations.namestring | nullobrigatórioNome.
totalintegerobrigatórioTotal de registros que casam com os filtros (todas as páginas).
pageintegerobrigatórioPágina devolvida (começa em 1).
limitintegerobrigatórioItens por página efetivamente usados (1–100).
pagesintegerobrigatórioTotal de páginas: `max(1, ceil(total / limit))`. Nunca é 0, mesmo sem resultados.
400Parâmetro de data (`from`, `to`, `updated_from`, `updated_to`) fora do formato ISO 8601.
403Acesso negado: usuário do token sem a permissão da rota (`permission_denied`) ou token não ligado a um usuário ativo (`token_without_user`) — para token de integração da conta isso só é aplicado quando `access.enforced` é true (veja GET /v1/me); token pessoal e JWT de sessão são sempre verificados; `channel_id` fora dos canais do usuário (`channel_out_of_scope`); `account_id` na query diferente da conta do token; conta do tipo INFRA.
498Token ausente, inválido, de outra finalidade (ex.: token do canal chat) ou revogado. Note o status não padrão 498.