import requests
url = "https://pombo.digital/api/integrations/v1/notifications"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://pombo.digital/api/integrations/v1/notifications \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://pombo.digital/api/integrations/v1/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"notification_id": "PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"organization_id": "PBD_ORG_01J8A1B2C3D4E5F6G7H8J9K0LM",
"template_id": "PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"channel": "WHATSAPP",
"recipient_full_name": "Maria Silva",
"recipient_tax_id": "12345678901",
"recipient_tax_id_type": "CPF",
"recipient_phone": "+5511999998888",
"recipient_email": null,
"contact_id": "PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"line_id": "PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"parameters": {
"{{1}}": "Maria"
},
"message": "Prezada Maria, consta débito de R$ 1.200,00.",
"message_format": "text",
"notification_status": "PENDING",
"notification_delivery_status": "READ",
"sender": {
"name": "Vega Cobranças LTDA",
"tax_id": "12345678000199",
"tax_id_type": "CNPJ"
},
"sender_phone": "5511952134898",
"sender_email": null,
"created_by_user_id": "PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"idempotency_key": "cobranca-2026-08-31-0002",
"created_at": "2026-08-27T14:03:11.482Z"
},
{
"notification_id": "PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYG9M",
"organization_id": "PBD_ORG_01J8A1B2C3D4E5F6G7H8J9K0LM",
"template_id": "PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0P",
"channel": "EMAIL",
"recipient_full_name": "João Souza",
"recipient_tax_id": "98765432100",
"recipient_tax_id_type": "CPF",
"recipient_phone": null,
"recipient_email": "joao@exemplo.com.br",
"contact_id": "PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYG9L",
"line_id": null,
"parameters": {
"{{1}}": "João"
},
"message": "<p>Prezado João, consta débito em aberto.</p>",
"message_format": "html",
"notification_status": "PENDING",
"notification_delivery_status": "ENQUEUED",
"sender": {
"name": "Vega Cobranças LTDA",
"tax_id": "12345678000199",
"tax_id_type": "CNPJ"
},
"sender_phone": null,
"sender_email": "ola@pombo.digital",
"created_by_user_id": "PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"idempotency_key": null,
"created_at": "2026-08-27T13:58:02.117Z"
}
],
"has_more": true,
"next_cursor": "PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYG9M"
}Listar notificações
Lista as notificações da sua organização, da mais recente para a mais antiga.
import requests
url = "https://pombo.digital/api/integrations/v1/notifications"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://pombo.digital/api/integrations/v1/notifications \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://pombo.digital/api/integrations/v1/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"notification_id": "PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"organization_id": "PBD_ORG_01J8A1B2C3D4E5F6G7H8J9K0LM",
"template_id": "PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"channel": "WHATSAPP",
"recipient_full_name": "Maria Silva",
"recipient_tax_id": "12345678901",
"recipient_tax_id_type": "CPF",
"recipient_phone": "+5511999998888",
"recipient_email": null,
"contact_id": "PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"line_id": "PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"parameters": {
"{{1}}": "Maria"
},
"message": "Prezada Maria, consta débito de R$ 1.200,00.",
"message_format": "text",
"notification_status": "PENDING",
"notification_delivery_status": "READ",
"sender": {
"name": "Vega Cobranças LTDA",
"tax_id": "12345678000199",
"tax_id_type": "CNPJ"
},
"sender_phone": "5511952134898",
"sender_email": null,
"created_by_user_id": "PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"idempotency_key": "cobranca-2026-08-31-0002",
"created_at": "2026-08-27T14:03:11.482Z"
},
{
"notification_id": "PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYG9M",
"organization_id": "PBD_ORG_01J8A1B2C3D4E5F6G7H8J9K0LM",
"template_id": "PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0P",
"channel": "EMAIL",
"recipient_full_name": "João Souza",
"recipient_tax_id": "98765432100",
"recipient_tax_id_type": "CPF",
"recipient_phone": null,
"recipient_email": "joao@exemplo.com.br",
"contact_id": "PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYG9L",
"line_id": null,
"parameters": {
"{{1}}": "João"
},
"message": "<p>Prezado João, consta débito em aberto.</p>",
"message_format": "html",
"notification_status": "PENDING",
"notification_delivery_status": "ENQUEUED",
"sender": {
"name": "Vega Cobranças LTDA",
"tax_id": "12345678000199",
"tax_id_type": "CNPJ"
},
"sender_phone": null,
"sender_email": "ola@pombo.digital",
"created_by_user_id": "PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N",
"idempotency_key": null,
"created_at": "2026-08-27T13:58:02.117Z"
}
],
"has_more": true,
"next_cursor": "PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYG9M"
}Authorizations
Sua credencial de API no cabeçalho Authorization: Bearer sk_live_.... Crie e revogue credenciais no painel, em Conta → API Keys. O segredo aparece uma única vez, na criação.
A credencial identifica a organização: organization_id não é aceito em nenhuma requisição.
Query Parameters
Quantas notificações trazer, de 1 a 50. O padrão é 10.
Um valor fora da faixa, ou que não seja um inteiro, é recusado com 400 e a mensagem limit must be an integer from 1 through 50.
1 <= x <= 50O cursor da próxima página: copie o next_cursor da resposta anterior e repita a chamada com ele.
É um valor que você recebe, nunca um que você monta. Precisa ser um notification_id, no formato PBD_NOT_.... Um template_id ou qualquer outro texto é recusado com 400 e a mensagem after must be a valid notification cursor.
^PBD_NOT_[0-9A-HJKMNP-TV-Z]{26}$"PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYH0N"
Traz só as notificações do canal informado.
A caixa não importa: whatsapp, WhatsApp e WHATSAPP filtram o mesmo canal. A resposta continua devolvendo channel em maiúsculas, que é como o canal fica gravado em uma notificação.
Em GET /templates o mesmo parâmetro só aceita minúsculas. A diferença acompanha o que cada registro guarda.
Um valor fora dos dois canais é recusado com 400.
whatsapp, email Response
Uma página de notificações.
Serve para saber o que saiu, não para acompanhar uma entrega: não há filtro por status e não há como pedir as mais novas que um cursor. Sem cursor, a primeira página é sempre a mais recente.
Uma página de notificações.
A paginação é por cursor: não existe número de página e não existe total. Para avançar, repita a chamada com after igual ao next_cursor que veio aqui, e pare quando has_more for false.
As notificações da página, da mais recente para a mais antiga. Vem vazio quando não há nenhuma.
Cada item é a notificação sem attachments e sem events: esses dois só aparecem em GET /notifications/{id}.
Cada item traz a message já renderizada e os parameters como você os enviou, então uma página carrega dados pessoais do destinatário.
Hide child attributes
Hide child attributes
A organização dona da conta e do saldo. Não confunda com sender, que é em nome de quem a notificação sai.
WHATSAPP, EMAIL CPF, CNPJ O contato do destinatário no Pombo. Os contatos são unificados pelo tax_id, então o mesmo CPF devolve o mesmo contact_id nos dois canais. É por isso que dados divergentes produzem 409 CONTACT_CONFLICT.
"PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N"
A linha de WhatsApp usada no envio. null em EMAIL.
"PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N"
O registro do que foi substituído na mensagem: as variáveis que você enviou mais os valores do rodapé do remetente que o Pombo preencheu a partir do sender. É por isso que o registro se descreve sozinho.
Não copie este mapa para um envio novo. Os três valores do rodapé não são seus para enviar, e a chamada é recusada. Reaproveite apenas as chaves que estão em variables do modelo.
{ "{{1}}": "Maria" }
A mensagem já renderizada, com parameters aplicados ao modelo. É o artefato que o carimbo do tempo cobre. Existe só na resposta: não há campo message de envio.
O resumo SHA-256 da mensagem renderizada, em hexadecimal. É a impressão digital do texto que consta no laudo: o equivalente, para a mensagem, do que hash é para o anexo.
"3b1c8d6e4f2a0b9c7d5e3f1a8c6d2b0e9f7a5c3d1e8f6b4a2c0d9e7f5a3b1c8d"
Se message é HTML ou texto simples. Sempre em minúsculas.
html, text O processamento interno no Pombo. Não indica entrega. Uma mensagem já lida foi observada aqui como PENDING. Para saber se a pessoa recebeu, use notification_delivery_status.
DRAFT, PENDING, PROCESSING, COMPLETED, FAILED O campo que responde se a mensagem chegou. Caminho normal: PENDING → ENQUEUED → SENT → DELIVERED → READ.
No envio, um EMAIL foi observado em ENQUEUED e um WHATSAPP em SENT.
Nunca retrocede, e FAILED é terminal. Você pode não observar todos os estados intermediários. Em e-mail não espere READ.
PENDING, ENQUEUED, SENT, DELIVERED, READ, FAILED O remetente como a notificação o devolve. São os dados que identificam a parte no laudo.
Os contatos de resposta não voltam aqui. Eles são declarados no envio e entregues no rodapé da mensagem, e não ficam guardados em nenhuma coluna da notificação.
O número de origem do WhatsApp, resolvido pelo Pombo a partir do pool de linhas. null em EMAIL. É o endereço de onde a mensagem realmente saiu, e é o que vai certificado no laudo. Não é sender.contact_phone, que é para onde o destinatário responde.
"5511952134898"
O endereço de origem do e-mail, resolvido pelo Pombo. null em WHATSAPP. É o endereço de onde a mensagem realmente saiu, e é o que vai certificado no laudo. Não é sender.contact_email, que é para onde o destinatário responde.
Se a sua organização não tem endereço próprio verificado (o caso comum), a mensagem sai do endereço compartilhado do Pombo, e é ele que aparece aqui.
"ola@pombo.digital"
Quem criou a notificação: api_key quando ela veio desta API, user quando alguém a criou pelo painel.
É o campo que qualifica created_by_user_id, e o único jeito correto de saber o que ele traz. Não deduza pelo formato do identificador.
api_key, user O nome engana. Quando created_by_type é api_key, este campo traz o identificador da credencial que fez o envio, PBD_APIKEY_..., e não um identificador de usuário. Com mais de uma credencial, é assim que você sabe qual delas enviou o quê.
Quando created_by_type é user, a notificação foi criada no painel e o campo traz o identificador interno de quem a criou, PBD_USR_.... É opaco de propósito: o nome e o e-mail dessa pessoa não são devolvidos por esta API.
"PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N"
A chave que você enviou no cabeçalho Idempotency-Key, devolvida aqui para que o registro se descreva sozinho. Só existe na resposta: no envio a chave vai no cabeçalho, nunca no corpo.
O lote a que a notificação pertence, quando veio de um envio em massa.
O item do lote correspondente a esta notificação.
Quando o Pombo entregou a mensagem ao provedor. null até o envio ocorrer.
Quando o provedor confirmou a entrega ao destinatário. null enquanto não houver confirmação.
Quando o envio falhou em definitivo. null quando não houve falha.
Se existe ao menos mais uma página depois desta.
O notification_id que a próxima chamada deve mandar em after. null quando has_more é false.
Repasse este valor como ele veio. Ele não é montado pelo cliente.
"PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYH0N"

