GET
/api/v1/deals/{seq}/messagesConsulta o histórico de mensagens do contato vinculado ao negócio, respeitando a visibilidade do membro.
Exemplos
A URL usa o servidor de produção. Defina PIPEFACIL_API_KEY e as variáveis de caminho (como SEQ ou ID) com os identificadores reais. Ajuste o corpo antes de executar: requisições de escrita alteram dados do workspace.
cURL
curl --request GET \
--url "https://pipefacil-server.matchsales.com.br/api/v1/deals/$SEQ/messages" \
--header "Authorization: Bearer $PIPEFACIL_API_KEY"JavaScript
const response = await fetch(`https://pipefacil-server.matchsales.com.br/api/v1/deals/${process.env.SEQ}/messages`, {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.PIPEFACIL_API_KEY}`,
},
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const text = await response.text();
const data = text ? JSON.parse(text) : null;Python
import os
import json
import requests
response = requests.request(
"GET",
f"https://pipefacil-server.matchsales.com.br/api/v1/deals/{os.environ['SEQ']}/messages",
headers={"Authorization": f"Bearer {os.environ['PIPEFACIL_API_KEY']}"},
)
response.raise_for_status()
data = response.json() if response.content else NoneParâmetros
| Nome | Local | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
seq | path | integer | Sim | Sequência do negócio neste workspace. |
limit | query | integer | Não | Tamanho da página. |
cursor | query | string | Não | Cursor opaco da página anterior. |
Respostas
200Operação concluída.
| Campo | Tipo | Descrição |
|---|---|---|
data | object | — |
data.items | array | — |
data.items[].id | string | — |
data.items[].conversationId | string | — |
data.items[].channelId | string | Aceita null. |
data.items[].externalId | string | Aceita null. |
data.items[].direction | string | Valores: inbound, outbound. |
data.items[].senderPhone | string | Aceita null. |
data.items[].recipientPhone | string | Aceita null. |
data.items[].body | string | — |
data.items[].previewText | string | — |
data.items[].type | string | — |
data.items[].status | string | — |
data.items[].read | boolean | — |
data.items[].timestamp | string | Formato: date-time. |
data.items[].statusTimestamp | string | Formato: date-time. Aceita null. |
data.items[].errorMessage | string | Aceita null. |
data.items[].quotedText | string | Aceita null. |
data.items[].quotedDirection | string | Valores: inbound, outbound. Aceita null. |
data.items[].quotedMessageId | string | Aceita null. |
data.items[].quotedType | string | Aceita null. |
data.items[].quotedMedia | object | Aceita null. |
data.items[].quotedMedia.mediaAssetId | string | Aceita null. |
data.items[].quotedMedia.status | string | Estado de ingestão da mídia armazenada. Aceita null. |
data.items[].quotedMedia.mediaType | string | — |
data.items[].quotedMedia.contentType | string | Aceita null. |
data.items[].quotedMedia.caption | string | Aceita null. |
data.items[].quotedMedia.filename | string | Aceita null. |
data.items[].quotedMedia.sizeBytes | integer | Formato: int64. Aceita null. |
data.items[].quotedMedia.durationMs | integer | Aceita null. |
data.items[].quotedMedia.width | integer | Aceita null. |
data.items[].quotedMedia.height | integer | Aceita null. |
data.items[].quotedMedia.providerMediaId | string | Aceita null. |
data.items[].quotedMedia.providerMediaUrl | string | Aceita null. |
data.items[].quotedMedia.contentUrl | string | URL relativa para baixar o arquivo. Nula enquanto a mídia não estiver READY. A cópia do provedor para o armazenamento é assíncrona. Aceita null. |
data.items[].sentByUserId | string | Aceita null. |
data.items[].origin | string | Origem da mensagem: api, app, automation, agent ou outra. Aceita null. |
data.items[].originLabel | string | Aceita null. |
data.items[].media | object | Aceita null. |
data.items[].media.mediaAssetId | string | Aceita null. |
data.items[].media.status | string | Estado de ingestão da mídia armazenada. Aceita null. |
data.items[].media.mediaType | string | — |
data.items[].media.contentType | string | Aceita null. |
data.items[].media.caption | string | Aceita null. |
data.items[].media.filename | string | Aceita null. |
data.items[].media.sizeBytes | integer | Formato: int64. Aceita null. |
data.items[].media.durationMs | integer | Aceita null. |
data.items[].media.width | integer | Aceita null. |
data.items[].media.height | integer | Aceita null. |
data.items[].media.providerMediaId | string | Aceita null. |
data.items[].media.providerMediaUrl | string | Aceita null. |
data.items[].media.contentUrl | string | URL relativa para baixar o arquivo. Nula enquanto a mídia não estiver READY. A cópia do provedor para o armazenamento é assíncrona. Aceita null. |
data.items[].content | object | Dados estruturados de tipos sem corpo de texto, como anúncio de origem, localização, cartão de contato ou alvo de reação. Aceita null. |
data.items[].createdAt | string | Formato: date-time. |
data.items[].editedAt | string | Formato: date-time. Aceita null. |
data.items[].deletedAt | string | Data da exclusão. O conteúdo pode permanecer no histórico de auditoria; a integração decide como exibi-lo. Formato: date-time. Aceita null. |
data.nextCursor | string | Aceita null. |
data.hasMore | boolean | — |
Esquema OpenAPI
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversationMessage"
}
},
"nextCursor": {
"type": "string",
"nullable": true
},
"hasMore": {
"type": "boolean"
}
}
}
}
}401Chave ausente, malformada, desconhecida, revogada ou expirada, ou membro emissor inativo.
| Campo | Tipo | Descrição |
|---|---|---|
error | string | — |
code | string | Valores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE. |
requestId | string | — |
details | string | Aceita null. |
fieldErrors | array | Aceita null. |
fieldErrors[].field | string | — |
fieldErrors[].message | string | — |
Esquema OpenAPI
{
"type": "object",
"description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"BAD_REQUEST",
"VALIDATION_ERROR",
"UNAUTHORIZED",
"FORBIDDEN",
"FEATURE_DISABLED",
"NOT_FOUND",
"CONFLICT",
"QUOTA_EXCEEDED",
"UNPROCESSABLE_ENTITY",
"INTERNAL_ERROR",
"SERVICE_UNAVAILABLE"
]
},
"requestId": {
"type": "string"
},
"details": {
"type": "string",
"nullable": true
},
"fieldErrors": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
},
"required": [
"error",
"code",
"requestId"
]
}403Autenticado, mas sem acesso: falta de permissão (`FORBIDDEN`), recurso desligado no workspace (`FEATURE_DISABLED`) ou tentativa de acessar uma agenda não permitida.
| Campo | Tipo | Descrição |
|---|---|---|
error | string | — |
code | string | Valores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE. |
requestId | string | — |
details | string | Aceita null. |
fieldErrors | array | Aceita null. |
fieldErrors[].field | string | — |
fieldErrors[].message | string | — |
Esquema OpenAPI
{
"type": "object",
"description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"BAD_REQUEST",
"VALIDATION_ERROR",
"UNAUTHORIZED",
"FORBIDDEN",
"FEATURE_DISABLED",
"NOT_FOUND",
"CONFLICT",
"QUOTA_EXCEEDED",
"UNPROCESSABLE_ENTITY",
"INTERNAL_ERROR",
"SERVICE_UNAVAILABLE"
]
},
"requestId": {
"type": "string"
},
"details": {
"type": "string",
"nullable": true
},
"fieldErrors": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
},
"required": [
"error",
"code",
"requestId"
]
}404Recurso não encontrado ou fora da visibilidade do membro.
| Campo | Tipo | Descrição |
|---|---|---|
error | string | — |
code | string | Valores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE. |
requestId | string | — |
details | string | Aceita null. |
fieldErrors | array | Aceita null. |
fieldErrors[].field | string | — |
fieldErrors[].message | string | — |
Esquema OpenAPI
{
"type": "object",
"description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"BAD_REQUEST",
"VALIDATION_ERROR",
"UNAUTHORIZED",
"FORBIDDEN",
"FEATURE_DISABLED",
"NOT_FOUND",
"CONFLICT",
"QUOTA_EXCEEDED",
"UNPROCESSABLE_ENTITY",
"INTERNAL_ERROR",
"SERVICE_UNAVAILABLE"
]
},
"requestId": {
"type": "string"
},
"details": {
"type": "string",
"nullable": true
},
"fieldErrors": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
},
"required": [
"error",
"code",
"requestId"
]
}429Limite de requisições excedido por workspace ou IP.
| Campo | Tipo | Descrição |
|---|---|---|
error | string | — |
code | string | Valores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE. |
requestId | string | — |
details | string | Aceita null. |
fieldErrors | array | Aceita null. |
fieldErrors[].field | string | — |
fieldErrors[].message | string | — |
Esquema OpenAPI
{
"type": "object",
"description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"BAD_REQUEST",
"VALIDATION_ERROR",
"UNAUTHORIZED",
"FORBIDDEN",
"FEATURE_DISABLED",
"NOT_FOUND",
"CONFLICT",
"QUOTA_EXCEEDED",
"UNPROCESSABLE_ENTITY",
"INTERNAL_ERROR",
"SERVICE_UNAVAILABLE"
]
},
"requestId": {
"type": "string"
},
"details": {
"type": "string",
"nullable": true
},
"fieldErrors": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
},
"required": [
"error",
"code",
"requestId"
]
}