Pular para o conteúdo

Conversas de WhatsApp

GET
/v1/whatsapp/sessions
curl --request GET \
--url 'https://developers.nexo.winningsales.com.br/v1/whatsapp/sessions?page=1&pageSize=25&status=open' \
--header 'Authorization: Bearer <token>'

Uma sessão por conversa (janela de mensagens sem lacuna grande), com contato, vendedor, contagens e negócio associado. Aceita busca pelo telefone do contato, período pela última mensagem e situação. O vendedor só enxerga as próprias conversas de WhatsApp e as dos contatos dos próprios negócios; admin e líder de vendas enxergam as da empresa. Conteúdo de conversa: exige o escopo conversations:read e fica registrado na atividade da empresa.

page

Página, começando em 1

integer
default: 1 >= 1

Página, começando em 1

pageSize

Itens por página

integer
default: 25 >= 1 <= 100

Itens por página

searchText

Busca em contactPhone

string
>= 1 characters <= 120 characters

Busca em contactPhone

searchFields

Campo de busca. Permitidos: contactPhone

Array<string>

Campo de busca. Permitidos: contactPhone

orderBy

Ordenação. Permitidos: lastMessageAt, startedAt

Array<string>

Ordenação. Permitidos: lastMessageAt, startedAt

from

Só sessões com a última mensagem a partir deste instante

string format: date-time

Só sessões com a última mensagem a partir deste instante

to

Só sessões com a última mensagem até este instante

string format: date-time

Só sessões com a última mensagem até este instante

userId

Filtra pelo vendedor dono (admin e líder; o vendedor só vê as próprias)

string format: uuid

Filtra pelo vendedor dono (admin e líder; o vendedor só vê as próprias)

status

Aberta (ainda dentro da janela de inatividade), fechada ou todas

string
default: all
Allowed values: open closed all

Aberta (ainda dentro da janela de inatividade), fechada ou todas

Página de sessões

Media typeapplication/json
object
data
required

Records of the current page

Array<object>
object
id
required

Id da sessão

string format: uuid
contactName
required

Nome do contato: do CRM, do contato salvo no WhatsApp, ou o telefone

string
nullable
contactPhone
required

Telefone do contato

string
nullable
repUserId
required

Vendedor dono da conversa. Nulo quando é um número da empresa

string format: uuid
nullable
repName
required

Nome do vendedor dono da conversa

string
nullable
startedAt
required

Quando a sessão começou

string format: date-time
lastMessageAt
required

Última mensagem da sessão

string format: date-time
closedAt
required

Quando a sessão fechou. Nulo enquanto está aberta

string format: date-time
nullable
messageCount
required

Total de mensagens da sessão

integer
inboundCount
required

Mensagens recebidas do contato

integer
deal
required

Negócio associado ao contato. Nulo sem negócio em aberto ou recém-fechado

object
id
required

Id do negócio

string format: uuid
name
required

Nome do negócio

string
pagination
required
object
page
required

Current page (1-based)

integer
pageSize
required

Records per page

integer
totalRecords
required

Total records matching the filters

integer
totalPages
required

Total pages for the current pageSize

integer

Example generated

{
"data": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"contactName": "example",
"contactPhone": "example",
"repUserId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"repName": "example",
"startedAt": "2026-04-15T12:00:00Z",
"lastMessageAt": "2026-04-15T12:00:00Z",
"closedAt": "2026-04-15T12:00:00Z",
"messageCount": 1,
"inboundCount": 1,
"deal": {
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example"
}
}
],
"pagination": {
"page": 1,
"pageSize": 1,
"totalRecords": 1,
"totalPages": 1
}
}

Filtro ou paginação inválidos

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"requestId": "example",
"meta": {
"additionalProperty": "example"
}
}

Token ausente, inválido, expirado ou revogado

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.invalid_credential",
"title": "InvalidCredentialError",
"status": 401,
"detail": "Token de acesso inválido, expirado ou revogado. Crie um novo token de acesso no Nexo.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb"
}

Papel, escopo do token ou plano não permitem a operação

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.insufficient_scope",
"title": "InsufficientScopeError",
"status": 403,
"detail": "Este token não tem o escopo conversations:read, exigido por esta operação. Gere um token com esse escopo.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"operation": "conversations.reading",
"scope": "conversations:read"
}
}

Limite de chamadas da empresa ou do token atingido

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.rate_limited",
"title": "PublicRateLimitedError",
"status": 429,
"detail": "Muitas chamadas em pouco tempo. Tente de novo em 12 segundos.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"class": "content",
"limitedBy": "company",
"limit": 120,
"windowSeconds": 60,
"retryAfterSeconds": 12
}
}