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.
Chave de idempotência do envio. Letras, dígitos, sublinhados e hifens.
Com a mesma chave:
tudo igual, mesmo corpo e, se houver, mesmo arquivo: 200 com o corpo original e o cabeçalho Idempotent-Replayed: true
qualquer diferença, no corpo ou no arquivo: 409 IDEMPOTENCY_KEY_REUSED
O arquivo faz parte da chave, para que dois documentos diferentes nunca sejam confundidos com a mesma notificação. Na prática: para repetir um envio com anexo, reenvie os mesmos bytes.
A chave nunca é liberada. Para repetir um envio que falhou, use uma chave nova.
Até 255 caracteres. Uma chave mal formada é recusada com 400, sem error_code, mas não antes de tudo: o formato do corpo, o channel, file_transfer_id, attachment_id e organization_id são conferidos primeiro, e num multipart/form-data as partes já foram lidas antes disso.
Pattern: ^[A-Za-z0-9_-]+$
Example:
"cobranca-2026-08-31-0001"
Body
application/jsonmultipart/form-data
Com anexo, tudo vai numa chamada só: sem anexo, application/json; com anexo, multipart/form-data com as partes notification e file. Não existe endpoint separado para subir o arquivo.
As variáveis do modelo. As chaves são o marcador literal, entre chaves duplas, como "{{1}}". Não é o índice 1 e não é o nome da variável.
As chaves vêm de variables em GET /templates/{id}. Envie {} se o modelo não tiver variáveis. Uma chave faltando é recusada com 400 INVALID_PARAMETERS: Missing required parameter: {{1}}.
Os marcadores do rodapé do remetente não estão entre elas e não devem ser enviados. São as três últimas variáveis do modelo, chamadas __sender_name, __sender_tax_id e __sender_phone, e o Pombo as preenche a partir do sender. Mandar o marcador de qualquer uma delas em parameters faz a chamada ser recusada.
Quem aparece como remetente da notificação. Permite enviar em nome próprio ou em nome de um cliente. Em ambos os casos o Pombo mantém o registro de qual credencial emitiu.
Não existe remetente padrão da organização nesta API: o sender é declarado em cada envio.
contact_phone e contact_email são independentes: declare um, o outro ou os dois. Nenhum dos dois é obrigatório sozinho, mas em WhatsApp, num modelo que carrega o rodapé do remetente, pelo menos um dos dois precisa estar presente, e um envio que não declara nenhum é recusado. Em e-mail nada muda: o rodapé é montado no momento do envio e simplesmente omite a linha de contato.
Razão social ou nome do remetente. No máximo 200 caracteres: acima disso a chamada é recusada com 400 INVALID_SENDER e a mensagem sender.name must be at most 200 characters.
Só texto simples. Os caracteres <, > e " e os caracteres de controle (quebras de linha incluídas) são recusados com 400 INVALID_SENDER e a mensagem sender.name must be plain text. O nome é reproduzido literalmente no rodapé do e-mail e no laudo, e uma quebra de linha forjaria uma segunda linha de rodapé.
CPF (11 dígitos) ou CNPJ (14 dígitos), só dígitos.
A quantidade de dígitos não basta: o documento é conferido pelo dígito verificador (MOD-11) e precisa corresponder ao tax_id_type declarado: um CNPJ declarado como CPF é recusado. A recusa é 400 INVALID_SENDER, com a mensagem sender.tax_id must be a valid CPF ou sender.tax_id must be a valid CNPJ.
Um telefone para onde o destinatário pode responder, impresso no rodapé da mensagem. Não é o número de origem: esse é sender_phone, e o Pombo é quem o resolve.
Opcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou contact_email: omitir os dois é recusado. Em e-mail os dois podem faltar.
Formato internacional, começando por +, com 10 a 15 dígitos. Fora desse formato a chamada é recusada com 400 INVALID_SENDER e a mensagem sender.contact_phone must be in format +CODE_PHONE with 10-15 digits (e.g., +5511999998888).
Declarando também contact_email, os dois são impressos, o telefone primeiro. Ausente, o rodapé usa o e-mail. Não há queda para o telefone da organização: o rodapé mostra apenas o que este sender declarou.
Um e-mail para onde o destinatário pode responder, impresso no rodapé da mensagem, depois de contact_phone quando os dois são declarados e sozinho quando é o único.
Opcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou contact_phone: omitir os dois é recusado. Em e-mail os dois podem faltar.
Precisa ser um endereço válido. Fora disso a chamada é recusada com 400 INVALID_SENDER e a mensagem sender.contact_email must be a valid email address.
Não é o endereço de origem da mensagem: esse vem do domínio verificado da organização.
Ausente num envio de e-mail, a chamada é recusada com 400 e error_code igual a INVALID_RECIPIENT.
Response
Repetição idempotente. O mesmo Idempotency-Key com o mesmo corpo (e, quando há anexo, o mesmo arquivo) devolve 200 com o corpo original da primeira chamada. Nenhuma notificação nova foi criada e nenhum envio foi descontado.
O 200 é o sinal de repetição: a primeira chamada devolve 201.
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.
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.
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.
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.
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.
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.
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.
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 anexo que viajou nesta chamada, já validado, guardado e com a sua impressão digital. Vazio quando o envio não levou arquivo.
Confira aqui, sem uma segunda chamada. Como o arquivo entra na mesma requisição, o hash já existe quando o envio responde: compare-o com o resumo do arquivo que você tinha e a verificação termina aqui.
O identificador do arquivo guardado, opaco: é o mesmo que aparece no laudo, e serve para citar um anexo específico num chamado de suporte. Não há endpoint para resolvê-lo: tudo o que você precisa conferir já está nos campos ao lado.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Pombo.Digital","description":"Documentação do Pombo.Digital: notificações extrajudiciais com validade jurídica por e-mail e WhatsApp.","colors":{"primary":"#1F5EF4","light":"#89D4F7","dark":"#1A3A9E"},"logo":{"light":"https://mintcdn.com/pombo-digital/6JDRLMzfLY2oWrjf/logo/light.png?fit=max\u0026auto=format\u0026n=6JDRLMzfLY2oWrjf\u0026q=85\u0026s=4dc120cc1feb87982d48a6449f85555e","dark":"https://mintcdn.com/pombo-digital/6JDRLMzfLY2oWrjf/logo/dark.png?fit=max\u0026auto=format\u0026n=6JDRLMzfLY2oWrjf\u0026q=85\u0026s=0883618911d3fedf824aa4b0ef774080","href":"https://pombo.digital"},"favicon":"https://mintcdn.com/pombo-digital/6JDRLMzfLY2oWrjf/favicon.svg?fit=max\u0026auto=format\u0026n=6JDRLMzfLY2oWrjf\u0026q=85\u0026s=b32aadd6375191ac6e71e5746164403a","api":{"params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["python","curl","javascript"],"prefill":true}},"appearance":{"default":"light","strict":false},"navbar":{"links":[{"href":"https://pombo.digital/acesso/entrar","label":"Entrar"}],"primary":{"type":"button","label":"Criar conta grátis","href":"https://pombo.digital/acesso/criar-conta?utm_source=docs"}},"footer":{"socials":{"website":"https://pombo.digital"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude","assistant","cursor","vscode"],"display":"header"},"markdown":{"schema":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"pombo-digital","hasAudioNarration":false,"actualSubdomain":"pombo-digital","customDomains":["docs.pombo.digital"],"gitSource":{"type":"github","owner":"avi-2-avi","repo":"docs-pombodigital","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6accf4aeb63dd02de24efa9f","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Guias","count":30},{"language":"default","tag":"API","count":13},{"language":"default","tag":"Começar","count":6},{"language":"default","tag":"Envios","count":6},{"language":"default","tag":"Modelos","count":6},{"language":"default","tag":"Referência da API","count":5},{"language":"default","tag":"Laudo e validade jurídica","count":5},{"language":"default","tag":"Conta","count":4},{"language":"default","tag":"Notificações","count":4},{"language":"default","tag":"Ajuda","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area a.link{color:inherit;border-bottom-color:rgb(var(--primary));border-bottom-width:1.5px}#content-area a.link:hover{color:rgb(var(--primary));border-bottom-color:currentColor}.dark #content-area a.link{border-bottom-color:rgb(var(--primary-light))}.dark #content-area a.link:hover{color:rgb(var(--primary-light));border-bottom-color:currentColor}.pombo-hero{position:relative;overflow:hidden;margin:1.5rem 0 2rem;padding:2rem 1.75rem;border-radius:1.25rem;background:linear-gradient(135deg, rgb(var(--primary) / 0.08), rgb(var(--primary-light) / 0.14));border:1px solid rgb(var(--primary) / 0.14)}.dark .pombo-hero{background:linear-gradient(135deg, rgb(var(--primary) / 0.22), rgb(var(--primary-dark) / 0.3));border-color:rgb(var(--primary-light) / 0.18)}.pombo-hero-inner{display:flex;gap:1.25rem;align-items:center;justify-content:space-between}.pombo-hero-copy{min-width:0}.pombo-eyebrow{margin:0 0 0.5rem;font-size:0.8125rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:rgb(var(--primary))}.dark .pombo-eyebrow{color:rgb(var(--primary-light))}.pombo-hero h2{margin:0 0 0.5rem;font-size:2rem;line-height:1.1;font-weight:700;letter-spacing:-0.02em}.pombo-hero p{margin:0 0 1.5rem;font-size:1.0625rem;opacity:0.8}.pombo-actions{display:flex;flex-wrap:wrap;gap:0.75rem}.pombo-btn,.pombo-btn-ghost{display:inline-flex;align-items:center;gap:0.4rem;padding:0.65rem 1.15rem;border-radius:0.65rem;font-weight:600;font-size:0.9375rem;text-decoration:none;border:1px solid transparent;transition:transform 0.12s ease, background 0.12s ease}.pombo-btn{background:rgb(var(--primary));color:#fff!important}.pombo-btn:hover{background:rgb(var(--primary-dark));transform:translateY(-1px)}.pombo-btn-ghost{background:rgb(255 255 255 / 0.75);color:rgb(var(--primary))!important;border-color:rgb(var(--primary) / 0.25)}.pombo-btn-ghost:hover{background:#fff;transform:translateY(-1px)}.dark .pombo-btn-ghost{background:rgb(255 255 255 / 0.06);color:rgb(var(--primary-light))!important;border-color:rgb(var(--primary-light) / 0.3)}.pombo-hero-art{flex:0 0 46%;min-width:0;max-width:330px}.pombo-hero-art img{display:block;width:100%;border-radius:0.5rem;border:1px solid rgb(var(--primary) / 0.18);box-shadow:0 8px 24px rgb(15 23 42 / 0.1)}.dark .pombo-hero-art img{border-color:rgb(var(--primary-light) / 0.22);box-shadow:0 8px 24px rgb(0 0 0 / 0.35)}@media (max-width: 860px){.pombo-hero{padding:2rem 1.5rem}.pombo-hero h2{font-size:1.75rem}.pombo-hero-inner{flex-direction:column;align-items:stretch}.pombo-hero-art{flex:1 1 auto;max-width:none}}.pombo-strip{display:flex;gap:1.5rem;align-items:center;margin:1.5rem 0 2rem;padding:1.25rem;border-radius:1rem;border:1px solid rgb(var(--default-border-color))}.pombo-strip-body{flex:1 1 auto;min-width:0}.pombo-strip-body h3{margin:0 0 0.4rem;font-size:1.125rem;font-weight:700}.pombo-strip-body p{margin:0 0 1rem;opacity:0.8}@media (max-width: 860px){.pombo-strip{flex-direction:column;align-items:stretch}}.pombo-strip-doc{flex:0 0 34%;max-width:260px}.pombo-strip-doc img{display:block;width:100%;border-radius:0.4rem;border:1px solid rgb(var(--default-border-color))}#body-template-type [data-component-part=\"field-meta\"]{display:inline-flex!important;flex-wrap:wrap;align-items:center;gap:0.5rem}#body-template-type [data-component-part=\"field-meta\"]>div{margin-right:0!important;order:1}#body-template-type [data-component-part=\"field-meta\"]::before{padding:0.125rem 0.5rem;border-radius:0.375rem;font-size:inherit;font-weight:500;line-height:1.25rem;white-space:nowrap}#body-template-type [data-component-part=\"field-meta\"]::before{content:\"só WhatsApp\";order:2;background:rgb(22 163 74 / 0.1);color:#15803d}.dark #body-template-type [data-component-part=\"field-meta\"]::before{background:rgb(74 222 128 / 0.12);color:#4ade80}#body-recipient-phone [data-component-part=\"field-meta\"],#body-recipient-email [data-component-part=\"field-meta\"]{display:inline-flex!important;flex-wrap:wrap;align-items:center;gap:0.5rem}#body-recipient-phone [data-component-part=\"field-meta\"]>div,#body-recipient-email [data-component-part=\"field-meta\"]>div{margin-right:0!important;order:1}#body-recipient-phone [data-component-part=\"field-meta\"]::before,#body-recipient-email [data-component-part=\"field-meta\"]::before,#body-recipient-phone [data-component-part=\"field-meta\"]::after,#body-recipient-email [data-component-part=\"field-meta\"]::after{padding:0.125rem 0.5rem;border-radius:0.375rem;font-size:inherit;font-weight:500;line-height:1.25rem;white-space:nowrap}#body-recipient-phone [data-component-part=\"field-meta\"]::before{content:\"só WhatsApp\";order:2;background:rgb(22 163 74 / 0.1);color:#15803d}#body-recipient-email [data-component-part=\"field-meta\"]::before{content:\"só e-mail\";order:2;background:rgb(37 99 235 / 0.1);color:#1d4ed8}#body-recipient-phone [data-component-part=\"field-meta\"]::after,#body-recipient-email [data-component-part=\"field-meta\"]::after{content:\"required\";order:3;background:rgb(254 226 226 / 0.5);color:#dc2626}.dark #body-recipient-phone [data-component-part=\"field-meta\"]::before{background:rgb(74 222 128 / 0.12);color:#4ade80}.dark #body-recipient-email [data-component-part=\"field-meta\"]::before{background:rgb(96 165 250 / 0.12);color:#60a5fa}.dark #body-recipient-phone [data-component-part=\"field-meta\"]::after,.dark #body-recipient-email [data-component-part=\"field-meta\"]::after{background:rgb(239 68 68 / 0.15);color:#f87171}"}],"page":{"pagePath":"api-reference/notificações/enviar-uma-notificação","slug":"/api-reference/notificações/enviar-uma-notificação","pageMetadata":{"title":"Enviar uma notificação","description":"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /notifications","href":"/api-reference/notificações/enviar-uma-notificação","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Enviar uma notificação","description":"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /notifications","href":"/api-reference/notificações/enviar-uma-notificação","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createNotification","tags":["Notificações"],"summary":"Enviar uma notificação","description":"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\n","x-codeSamples":[{"lang":"python","label":"Sem anexo","source":"import requests\n\nURL = \"https://pombo.digital/api/integrations/v1/notifications\"\nheaders = {\n \"Authorization\": \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n}\n\nnotification = {\n \"template_id\": \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n \"channel\": \"WHATSAPP\",\n \"recipient_full_name\": \"Maria Silva\",\n \"recipient_tax_id\": \"12345678901\",\n \"recipient_tax_id_type\": \"CPF\",\n \"recipient_phone\": \"+5511999998888\",\n \"sender\": {\n \"name\": \"Sua Empresa Ltda\",\n \"tax_id\": \"00000000000191\",\n \"tax_id_type\": \"CNPJ\",\n \"contact_phone\": \"+5511988887777\",\n },\n \"parameters\": {\"{{1}}\": \"Maria\"},\n}\n\nrequests.post(URL, headers=headers, json=notification)\n"},{"lang":"python","label":"Com anexo","source":"import json, requests\n\nURL = \"https://pombo.digital/api/integrations/v1/notifications\"\nheaders = {\n \"Authorization\": \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n}\n\nnotification = {\n \"template_id\": \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n \"channel\": \"WHATSAPP\",\n \"recipient_full_name\": \"Maria Silva\",\n \"recipient_tax_id\": \"12345678901\",\n \"recipient_tax_id_type\": \"CPF\",\n \"recipient_phone\": \"+5511999998888\",\n \"sender\": {\n \"name\": \"Sua Empresa Ltda\",\n \"tax_id\": \"00000000000191\",\n \"tax_id_type\": \"CNPJ\",\n \"contact_phone\": \"+5511988887777\",\n },\n \"parameters\": {\"{{1}}\": \"Maria\"},\n}\n\n# O mesmo objeto de sempre, agora como uma parte, com o arquivo ao lado.\n# Nao defina Content-Type: a biblioteca monta o boundary.\nwith open(\"contrato.pdf\", \"rb\") as pdf:\n requests.post(\n URL,\n headers=headers,\n files={\n \"notification\": (None, json.dumps(notification), \"application/json\"),\n \"file\": (\"contrato.pdf\", pdf, \"application/pdf\"),\n },\n )\n"},{"lang":"curl","label":"Sem anexo","source":"curl -X POST https://pombo.digital/api/integrations/v1/notifications \\\n -H \"Authorization: Bearer sk_live_...\" \\\n -H \"Idempotency-Key: cobranca-2026-08-31-0001\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"template_id\":\"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\"channel\":\"WHATSAPP\",\"recipient_full_name\":\"Maria Silva\",\"recipient_tax_id\":\"12345678901\",\"recipient_tax_id_type\":\"CPF\",\"recipient_phone\":\"+5511999998888\",\"sender\":{\"name\":\"Sua Empresa Ltda\",\"tax_id\":\"00000000000191\",\"tax_id_type\":\"CNPJ\",\"contact_phone\":\"+5511988887777\"},\"parameters\":{\"{{1}}\":\"Maria\"}}'\n"},{"lang":"curl","label":"Com anexo","source":"# Nao passe -H \"Content-Type\": o -F monta o boundary.\ncurl -X POST https://pombo.digital/api/integrations/v1/notifications \\\n -H \"Authorization: Bearer sk_live_...\" \\\n -H \"Idempotency-Key: cobranca-2026-08-31-0001\" \\\n -F 'notification={\"template_id\":\"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\"channel\":\"WHATSAPP\",\"recipient_full_name\":\"Maria Silva\",\"recipient_tax_id\":\"12345678901\",\"recipient_tax_id_type\":\"CPF\",\"recipient_phone\":\"+5511999998888\",\"sender\":{\"name\":\"Sua Empresa Ltda\",\"tax_id\":\"00000000000191\",\"tax_id_type\":\"CNPJ\",\"contact_phone\":\"+5511988887777\"},\"parameters\":{\"{{1}}\":\"Maria\"}};type=application/json' \\\n -F 'file=@contrato.pdf;type=application/pdf'\n"},{"lang":"javascript","label":"Sem anexo","source":"const URL = \"https://pombo.digital/api/integrations/v1/notifications\";\nconst headers = {\n Authorization: \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n};\n\nconst notification = {\n template_id: \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n channel: \"WHATSAPP\",\n recipient_full_name: \"Maria Silva\",\n recipient_tax_id: \"12345678901\",\n recipient_tax_id_type: \"CPF\",\n recipient_phone: \"+5511999998888\",\n sender: {\n name: \"Sua Empresa Ltda\",\n tax_id: \"00000000000191\",\n tax_id_type: \"CNPJ\",\n contact_phone: \"+5511988887777\",\n },\n parameters: { \"{{1}}\": \"Maria\" },\n};\n\nawait fetch(URL, {\n method: \"POST\",\n headers: { ...headers, \"Content-Type\": \"application/json\" },\n body: JSON.stringify(notification),\n});\n"},{"lang":"javascript","label":"Com anexo","source":"const URL = \"https://pombo.digital/api/integrations/v1/notifications\";\nconst headers = {\n Authorization: \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n};\n\nconst notification = {\n template_id: \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n channel: \"WHATSAPP\",\n recipient_full_name: \"Maria Silva\",\n recipient_tax_id: \"12345678901\",\n recipient_tax_id_type: \"CPF\",\n recipient_phone: \"+5511999998888\",\n sender: {\n name: \"Sua Empresa Ltda\",\n tax_id: \"00000000000191\",\n tax_id_type: \"CNPJ\",\n contact_phone: \"+5511988887777\",\n },\n parameters: { \"{{1}}\": \"Maria\" },\n};\n\n// O mesmo objeto de sempre, agora como uma parte, com o arquivo ao lado.\n// Nao defina Content-Type: o FormData monta o boundary.\nconst form = new FormData();\nform.append(\n \"notification\",\n new Blob([JSON.stringify(notification)], { type: \"application/json\" })\n);\nform.append(\"file\", pdfFile, \"contrato.pdf\");\n\nawait fetch(URL, { method: \"POST\", headers, body: form });\n"}],"parameters":["8c959b11-67d4-4c77-8c7b-09eae48ebbfe"],"requestBody":"e8939fdc-1bed-4acd-8466-498c253e28e6","responses":{"200":"7cf94552-b929-457b-a734-935454f86d80","201":"867d0c96-5c4e-4c63-90f4-00960833ba42","400":"db2299e6-10f3-418d-8011-f8799085a844","401":"2f9e04ee-acea-48d7-bea0-5287e2cd434c","402":"f69eba61-4a52-40a6-9860-9f7e17ef693f","404":"fdbb1f9a-d663-4d69-ac61-a691bb72fdd9","409":"8e692cff-56f7-4e50-9af1-4e9e17dfa225","413":"8fc9760b-c43c-4927-89d2-18fb41190100","422":"5f9e26d2-93b9-4f74-a3ee-a986c533cac8","429":"dee8b608-e63a-4f21-b888-435234d185f1","500":"6ce0cd66-5fe3-4b9c-a8c9-3fde50e878ed"},"method":"post","type":"path","servers":["08d165bc-8615-4cf3-87a1-64e91eaf7bd4"],"security":["f5b17345-c161-456e-92b9-13801984e98a"],"path":"/notifications","baseUrlOptions":["https://pombo.digital/api/integrations/v1"],"title":"Enviar uma notificação","codeSamples":[{"label":"Sem anexo","lang":"python","source":"import requests\n\nURL = \"https://pombo.digital/api/integrations/v1/notifications\"\nheaders = {\n \"Authorization\": \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n}\n\nnotification = {\n \"template_id\": \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n \"channel\": \"WHATSAPP\",\n \"recipient_full_name\": \"Maria Silva\",\n \"recipient_tax_id\": \"12345678901\",\n \"recipient_tax_id_type\": \"CPF\",\n \"recipient_phone\": \"+5511999998888\",\n \"sender\": {\n \"name\": \"Sua Empresa Ltda\",\n \"tax_id\": \"00000000000191\",\n \"tax_id_type\": \"CNPJ\",\n \"contact_phone\": \"+5511988887777\",\n },\n \"parameters\": {\"{{1}}\": \"Maria\"},\n}\n\nrequests.post(URL, headers=headers, json=notification)\n"},{"label":"Com anexo","lang":"python","source":"import json, requests\n\nURL = \"https://pombo.digital/api/integrations/v1/notifications\"\nheaders = {\n \"Authorization\": \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n}\n\nnotification = {\n \"template_id\": \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n \"channel\": \"WHATSAPP\",\n \"recipient_full_name\": \"Maria Silva\",\n \"recipient_tax_id\": \"12345678901\",\n \"recipient_tax_id_type\": \"CPF\",\n \"recipient_phone\": \"+5511999998888\",\n \"sender\": {\n \"name\": \"Sua Empresa Ltda\",\n \"tax_id\": \"00000000000191\",\n \"tax_id_type\": \"CNPJ\",\n \"contact_phone\": \"+5511988887777\",\n },\n \"parameters\": {\"{{1}}\": \"Maria\"},\n}\n\n# O mesmo objeto de sempre, agora como uma parte, com o arquivo ao lado.\n# Nao defina Content-Type: a biblioteca monta o boundary.\nwith open(\"contrato.pdf\", \"rb\") as pdf:\n requests.post(\n URL,\n headers=headers,\n files={\n \"notification\": (None, json.dumps(notification), \"application/json\"),\n \"file\": (\"contrato.pdf\", pdf, \"application/pdf\"),\n },\n )\n"},{"label":"Sem anexo","lang":"curl","source":"curl -X POST https://pombo.digital/api/integrations/v1/notifications \\\n -H \"Authorization: Bearer sk_live_...\" \\\n -H \"Idempotency-Key: cobranca-2026-08-31-0001\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"template_id\":\"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\"channel\":\"WHATSAPP\",\"recipient_full_name\":\"Maria Silva\",\"recipient_tax_id\":\"12345678901\",\"recipient_tax_id_type\":\"CPF\",\"recipient_phone\":\"+5511999998888\",\"sender\":{\"name\":\"Sua Empresa Ltda\",\"tax_id\":\"00000000000191\",\"tax_id_type\":\"CNPJ\",\"contact_phone\":\"+5511988887777\"},\"parameters\":{\"{{1}}\":\"Maria\"}}'\n"},{"label":"Com anexo","lang":"curl","source":"# Nao passe -H \"Content-Type\": o -F monta o boundary.\ncurl -X POST https://pombo.digital/api/integrations/v1/notifications \\\n -H \"Authorization: Bearer sk_live_...\" \\\n -H \"Idempotency-Key: cobranca-2026-08-31-0001\" \\\n -F 'notification={\"template_id\":\"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\"channel\":\"WHATSAPP\",\"recipient_full_name\":\"Maria Silva\",\"recipient_tax_id\":\"12345678901\",\"recipient_tax_id_type\":\"CPF\",\"recipient_phone\":\"+5511999998888\",\"sender\":{\"name\":\"Sua Empresa Ltda\",\"tax_id\":\"00000000000191\",\"tax_id_type\":\"CNPJ\",\"contact_phone\":\"+5511988887777\"},\"parameters\":{\"{{1}}\":\"Maria\"}};type=application/json' \\\n -F 'file=@contrato.pdf;type=application/pdf'\n"},{"label":"Sem anexo","lang":"javascript","source":"const URL = \"https://pombo.digital/api/integrations/v1/notifications\";\nconst headers = {\n Authorization: \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n};\n\nconst notification = {\n template_id: \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n channel: \"WHATSAPP\",\n recipient_full_name: \"Maria Silva\",\n recipient_tax_id: \"12345678901\",\n recipient_tax_id_type: \"CPF\",\n recipient_phone: \"+5511999998888\",\n sender: {\n name: \"Sua Empresa Ltda\",\n tax_id: \"00000000000191\",\n tax_id_type: \"CNPJ\",\n contact_phone: \"+5511988887777\",\n },\n parameters: { \"{{1}}\": \"Maria\" },\n};\n\nawait fetch(URL, {\n method: \"POST\",\n headers: { ...headers, \"Content-Type\": \"application/json\" },\n body: JSON.stringify(notification),\n});\n"},{"label":"Com anexo","lang":"javascript","source":"const URL = \"https://pombo.digital/api/integrations/v1/notifications\";\nconst headers = {\n Authorization: \"Bearer sk_live_...\",\n \"Idempotency-Key\": \"cobranca-2026-08-31-0001\",\n};\n\nconst notification = {\n template_id: \"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N\",\n channel: \"WHATSAPP\",\n recipient_full_name: \"Maria Silva\",\n recipient_tax_id: \"12345678901\",\n recipient_tax_id_type: \"CPF\",\n recipient_phone: \"+5511999998888\",\n sender: {\n name: \"Sua Empresa Ltda\",\n tax_id: \"00000000000191\",\n tax_id_type: \"CNPJ\",\n contact_phone: \"+5511988887777\",\n },\n parameters: { \"{{1}}\": \"Maria\" },\n};\n\n// O mesmo objeto de sempre, agora como uma parte, com o arquivo ao lado.\n// Nao defina Content-Type: o FormData monta o boundary.\nconst form = new FormData();\nform.append(\n \"notification\",\n new Blob([JSON.stringify(notification)], { type: \"application/json\" })\n);\nform.append(\"file\", pdfFile, \"contrato.pdf\");\n\nawait fetch(URL, { method: \"POST\", headers, body: form });\n"}],"requestExampleLanguages":["python","bash","javascript"],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","body.channel":"WHATSAPP","body.recipient_full_name":"Maria Silva","body.recipient_tax_id":"12345678901","body.recipient_tax_id_type":"CPF","body.parameters":{"{{1}}":"Maria","{{2}}":"R$ 1.200,00","{{3}}":"parcela em atraso","{{4}}":"5","{{5}}":"Vega Cobranças LTDA","{{6}}":"12.345.678/0001-99","{{7}}":"contato@black101.example.com"},"body.sender.name":"Vega Cobranças LTDA","body.sender.tax_id":"12345678000199","body.sender.tax_id_type":"CNPJ","body.sender.contact_phone.oneOf.0":"+5511988887777","body.recipient_phone":"+5511999998888"},{"body.template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","body.channel":"EMAIL","body.recipient_full_name":"João Souza","body.recipient_tax_id":"98765432100","body.recipient_tax_id_type":"CPF","body.parameters":{"{{1}}":"João"},"body.sender.name":"Aurora Recuperação de Crédito ME","body.sender.tax_id":"98765432000188","body.sender.tax_id_type":"CNPJ","body.sender.contact_phone.oneOf.0":"+5511988887777","body.recipient_email":"joao.souza@example.com"}]},"dependencies":{"parameters":{"8c959b11-67d4-4c77-8c7b-09eae48ebbfe":{"name":"Idempotency-Key","in":"header","required":false,"description":"Chave de idempotência do envio. Letras, dígitos, sublinhados e hifens.\n\nCom a **mesma chave**:\n\n- **tudo igual**, mesmo corpo e, se houver, mesmo arquivo: `200` com o corpo original e o cabeçalho `Idempotent-Replayed: true`\n- **qualquer diferença**, no corpo ou no arquivo: `409 IDEMPOTENCY_KEY_REUSED`\n\n**O arquivo faz parte da chave**, para que dois documentos diferentes nunca sejam confundidos com a mesma notificação. Na prática: para repetir um envio com anexo, reenvie os mesmos bytes.\n\n**A chave nunca é liberada.** Para repetir um envio que falhou, use uma chave nova.\n\nAté 255 caracteres. Uma chave mal formada é recusada com `400`, sem `error_code`, mas não antes de tudo: o formato do corpo, o `channel`, `file_transfer_id`, `attachment_id` e `organization_id` são conferidos primeiro, e num `multipart/form-data` as partes já foram lidas antes disso.\n","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","examples":["cobranca-2026-08-31-0001"],"isRequired":false,"description":"Chave de idempotência do envio. Letras, dígitos, sublinhados e hifens.\n\nCom a **mesma chave**:\n\n- **tudo igual**, mesmo corpo e, se houver, mesmo arquivo: `200` com o corpo original e o cabeçalho `Idempotent-Replayed: true`\n- **qualquer diferença**, no corpo ou no arquivo: `409 IDEMPOTENCY_KEY_REUSED`\n\n**O arquivo faz parte da chave**, para que dois documentos diferentes nunca sejam confundidos com a mesma notificação. Na prática: para repetir um envio com anexo, reenvie os mesmos bytes.\n\n**A chave nunca é liberada.** Para repetir um envio que falhou, use uma chave nova.\n\nAté 255 caracteres. Uma chave mal formada é recusada com `400`, sem `error_code`, mas não antes de tudo: o formato do corpo, o `channel`, `file_transfer_id`, `attachment_id` e `organization_id` são conferidos primeiro, e num `multipart/form-data` as partes já foram lidas antes disso.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"description":"Com anexo, tudo vai numa chamada só: sem anexo, `application/json`; com anexo, `multipart/form-data` com as partes `notification` e `file`. Não existe endpoint separado para subir o arquivo.\n","content":{"application/json":{"schema":{"type":"object","required":["template_id","channel","recipient_full_name","recipient_tax_id","recipient_tax_id_type","parameters","sender"],"properties":{"template_id":{"type":"string","description":"O modelo a usar. Em WhatsApp precisa estar `APPROVED`.","examples":["PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"isRequired":true,"uniqueKey":"template_id","typeLabel":"string"},"channel":{"type":"string","enum":["WHATSAPP","EMAIL"],"description":"Em maiúsculas. Qualquer outro valor é recusado com `400 Invalid request: channel must be WHATSAPP or EMAIL`.","isRequired":true,"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"recipient_full_name":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"recipient_full_name","typeLabel":"string"},"recipient_tax_id":{"type":"string","pattern":"^([0-9]{11}|[0-9]{14})$","description":"CPF (11 dígitos) ou CNPJ (14 dígitos), só dígitos.","isRequired":true,"uniqueKey":"recipient_tax_id","typeLabel":"string"},"recipient_tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"description":"Um valor fora de `CPF` e `CNPJ` é recusado com `400`.","isRequired":true,"uniqueKey":"recipient_tax_id_type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","additionalProperties":true,"description":"As variáveis do modelo. **As chaves são o marcador literal**, entre chaves duplas, como `\"{{1}}\"`. Não é o índice `1` e não é o nome da variável.\n\nAs chaves vêm de `variables` em `GET /templates/{id}`. Envie `{}` se o modelo não tiver variáveis. Uma chave faltando é recusada com `400 INVALID_PARAMETERS: Missing required parameter: {{1}}`.\n\nOs marcadores do rodapé do remetente não estão entre elas e **não devem ser enviados**. São as três últimas variáveis do modelo, chamadas `__sender_name`, `__sender_tax_id` e `__sender_phone`, e o Pombo as preenche a partir do `sender`. Mandar o marcador de qualquer uma delas em `parameters` faz a chamada ser recusada.\n","examples":[{"{{1}}":"Maria"}],"isRequired":true,"uniqueKey":"parameters","typeLabel":"object"},"sender":{"type":"object","description":"Quem aparece como remetente da notificação. Permite enviar em nome próprio ou em nome de um cliente. Em ambos os casos o Pombo mantém o registro de qual credencial emitiu.\n\n**Não existe remetente padrão da organização nesta API:** o `sender` é declarado em cada envio.\n\n`contact_phone` e `contact_email` são independentes: declare um, o outro ou os dois. Nenhum dos dois é obrigatório sozinho, mas **em WhatsApp, num modelo que carrega o rodapé do remetente, pelo menos um dos dois precisa estar presente**, e um envio que não declara nenhum é recusado. Em e-mail nada muda: o rodapé é montado no momento do envio e simplesmente omite a linha de contato.\n","required":["name","tax_id","tax_id_type"],"properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Razão social ou nome do remetente. No máximo 200 caracteres: acima disso a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.name must be at most 200 characters`.\n\n**Só texto simples.** Os caracteres `\u003c`, `>` e `\"` e os caracteres de controle (quebras de linha incluídas) são recusados com `400 INVALID_SENDER` e a mensagem `sender.name must be plain text`. O nome é reproduzido literalmente no rodapé do e-mail e no laudo, e uma quebra de linha forjaria uma segunda linha de rodapé.\n","isRequired":true,"uniqueKey":"sender.name","typeLabel":"string"},"tax_id":{"type":"string","pattern":"^([0-9]{11}|[0-9]{14})$","description":"CPF (11 dígitos) ou CNPJ (14 dígitos), só dígitos.\n\n**A quantidade de dígitos não basta:** o documento é conferido pelo dígito verificador (MOD-11) e precisa corresponder ao `tax_id_type` declarado: um CNPJ declarado como `CPF` é recusado. A recusa é `400 INVALID_SENDER`, com a mensagem `sender.tax_id must be a valid CPF` ou `sender.tax_id must be a valid CNPJ`.\n","isRequired":true,"uniqueKey":"sender.tax_id","typeLabel":"string"},"tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"isRequired":true,"uniqueKey":"sender.tax_id_type","typeLabel":"enum\u003cstring>"},"contact_phone":{"oneOf":[{"type":"string","pattern":"^\\+[0-9]{10,15}$","description":"Um telefone para onde o destinatário pode responder, impresso no rodapé da mensagem. Não é o número de origem: esse é `sender_phone`, e o Pombo é quem o resolve.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_email`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nFormato internacional, começando por `+`, com 10 a 15 dígitos. Fora desse formato a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_phone must be in format +CODE_PHONE with 10-15 digits (e.g., +5511999998888)`.\n\nDeclarando também `contact_email`, os dois são impressos, o telefone primeiro. Ausente, o rodapé usa o e-mail. Não há queda para o telefone da organização: o rodapé mostra apenas o que este `sender` declarou.\n","examples":["+5511999998888"],"uniqueKey":"sender.contact_phone.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^\\+[0-9]{10,15}$","description":"Um telefone para onde o destinatário pode responder, impresso no rodapé da mensagem. Não é o número de origem: esse é `sender_phone`, e o Pombo é quem o resolve.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_email`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nFormato internacional, começando por `+`, com 10 a 15 dígitos. Fora desse formato a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_phone must be in format +CODE_PHONE with 10-15 digits (e.g., +5511999998888)`.\n\nDeclarando também `contact_email`, os dois são impressos, o telefone primeiro. Ausente, o rodapé usa o e-mail. Não há queda para o telefone da organização: o rodapé mostra apenas o que este `sender` declarou.\n","examples":["+5511999998888"],"uniqueKey":"sender.contact_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"sender.contact_phone","typeLabel":"string | null"},"contact_email":{"oneOf":[{"type":"string","format":"email","description":"Um e-mail para onde o destinatário pode responder, impresso no rodapé da mensagem, depois de `contact_phone` quando os dois são declarados e sozinho quando é o único.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_phone`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nPrecisa ser um endereço válido. Fora disso a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_email must be a valid email address`.\n\nNão é o endereço de origem da mensagem: esse vem do domínio verificado da organização.\n","examples":["contato@empresa.com.br"],"uniqueKey":"sender.contact_email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","description":"Um e-mail para onde o destinatário pode responder, impresso no rodapé da mensagem, depois de `contact_phone` quando os dois são declarados e sozinho quando é o único.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_phone`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nPrecisa ser um endereço válido. Fora disso a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_email must be a valid email address`.\n\nNão é o endereço de origem da mensagem: esse vem do domínio verificado da organização.\n","examples":["contato@empresa.com.br"],"uniqueKey":"sender.contact_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"sender.contact_email","typeLabel":"string\u003cemail> | null"}},"isRequired":true,"uniqueKey":"sender","typeLabel":"object"},"recipient_phone":{"type":"string","pattern":"^\\+[0-9]{10,15}$","description":"Formato internacional, começando por `+`. Ausente num envio de WhatsApp, a chamada é recusada com `400` e `error_code` igual a `INVALID_RECIPIENT`.\n","examples":["+5511999998888"],"uniqueKey":"recipient_phone","typeLabel":"string"},"recipient_email":{"type":"string","format":"email","description":"Ausente num envio de e-mail, a chamada é recusada com `400` e `error_code` igual a `INVALID_RECIPIENT`.\n","uniqueKey":"recipient_email","typeLabel":"string\u003cemail>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"whatsapp":{"title":"whatsapp","value":{"template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","channel":"WHATSAPP","recipient_full_name":"Maria Silva","recipient_tax_id":"12345678901","recipient_tax_id_type":"CPF","recipient_phone":"+5511999998888","sender":{"name":"Vega Cobranças LTDA","tax_id":"12345678000199","tax_id_type":"CNPJ","contact_phone":"+5511988887777"},"parameters":{"{{1}}":"Maria","{{2}}":"R$ 1.200,00","{{3}}":"parcela em atraso","{{4}}":"5","{{5}}":"Vega Cobranças LTDA","{{6}}":"12.345.678/0001-99","{{7}}":"contato@black101.example.com"}}},"email":{"title":"email","value":{"template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","channel":"EMAIL","recipient_full_name":"João Souza","recipient_tax_id":"98765432100","recipient_tax_id_type":"CPF","recipient_email":"joao.souza@example.com","sender":{"name":"Aurora Recuperação de Crédito ME","tax_id":"98765432000188","tax_id_type":"CNPJ","contact_phone":"+5511988887777"},"parameters":{"{{1}}":"João"}}}},"exampleType":"examples"},"multipart/form-data":{"schema":{"type":"object","required":["notification","file"],"properties":{"notification":{"type":"object","required":["template_id","channel","recipient_full_name","recipient_tax_id","recipient_tax_id_type","parameters","sender"],"properties":{"template_id":{"type":"string","description":"O modelo a usar. Em WhatsApp precisa estar `APPROVED`.","examples":["PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"isRequired":true,"uniqueKey":"notification.template_id","typeLabel":"string"},"channel":{"type":"string","enum":["WHATSAPP","EMAIL"],"description":"Em maiúsculas. Qualquer outro valor é recusado com `400 Invalid request: channel must be WHATSAPP or EMAIL`.","isRequired":true,"uniqueKey":"notification.channel","typeLabel":"enum\u003cstring>"},"recipient_full_name":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"notification.recipient_full_name","typeLabel":"string"},"recipient_tax_id":{"type":"string","pattern":"^([0-9]{11}|[0-9]{14})$","description":"CPF (11 dígitos) ou CNPJ (14 dígitos), só dígitos.","isRequired":true,"uniqueKey":"notification.recipient_tax_id","typeLabel":"string"},"recipient_tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"description":"Um valor fora de `CPF` e `CNPJ` é recusado com `400`.","isRequired":true,"uniqueKey":"notification.recipient_tax_id_type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","additionalProperties":true,"description":"As variáveis do modelo. **As chaves são o marcador literal**, entre chaves duplas, como `\"{{1}}\"`. Não é o índice `1` e não é o nome da variável.\n\nAs chaves vêm de `variables` em `GET /templates/{id}`. Envie `{}` se o modelo não tiver variáveis. Uma chave faltando é recusada com `400 INVALID_PARAMETERS: Missing required parameter: {{1}}`.\n\nOs marcadores do rodapé do remetente não estão entre elas e **não devem ser enviados**. São as três últimas variáveis do modelo, chamadas `__sender_name`, `__sender_tax_id` e `__sender_phone`, e o Pombo as preenche a partir do `sender`. Mandar o marcador de qualquer uma delas em `parameters` faz a chamada ser recusada.\n","examples":[{"{{1}}":"Maria"}],"isRequired":true,"uniqueKey":"notification.parameters","typeLabel":"object"},"sender":{"type":"object","description":"Quem aparece como remetente da notificação. Permite enviar em nome próprio ou em nome de um cliente. Em ambos os casos o Pombo mantém o registro de qual credencial emitiu.\n\n**Não existe remetente padrão da organização nesta API:** o `sender` é declarado em cada envio.\n\n`contact_phone` e `contact_email` são independentes: declare um, o outro ou os dois. Nenhum dos dois é obrigatório sozinho, mas **em WhatsApp, num modelo que carrega o rodapé do remetente, pelo menos um dos dois precisa estar presente**, e um envio que não declara nenhum é recusado. Em e-mail nada muda: o rodapé é montado no momento do envio e simplesmente omite a linha de contato.\n","required":["name","tax_id","tax_id_type"],"properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Razão social ou nome do remetente. No máximo 200 caracteres: acima disso a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.name must be at most 200 characters`.\n\n**Só texto simples.** Os caracteres `\u003c`, `>` e `\"` e os caracteres de controle (quebras de linha incluídas) são recusados com `400 INVALID_SENDER` e a mensagem `sender.name must be plain text`. O nome é reproduzido literalmente no rodapé do e-mail e no laudo, e uma quebra de linha forjaria uma segunda linha de rodapé.\n","isRequired":true,"uniqueKey":"notification.sender.name","typeLabel":"string"},"tax_id":{"type":"string","pattern":"^([0-9]{11}|[0-9]{14})$","description":"CPF (11 dígitos) ou CNPJ (14 dígitos), só dígitos.\n\n**A quantidade de dígitos não basta:** o documento é conferido pelo dígito verificador (MOD-11) e precisa corresponder ao `tax_id_type` declarado: um CNPJ declarado como `CPF` é recusado. A recusa é `400 INVALID_SENDER`, com a mensagem `sender.tax_id must be a valid CPF` ou `sender.tax_id must be a valid CNPJ`.\n","isRequired":true,"uniqueKey":"notification.sender.tax_id","typeLabel":"string"},"tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"isRequired":true,"uniqueKey":"notification.sender.tax_id_type","typeLabel":"enum\u003cstring>"},"contact_phone":{"oneOf":[{"type":"string","pattern":"^\\+[0-9]{10,15}$","description":"Um telefone para onde o destinatário pode responder, impresso no rodapé da mensagem. Não é o número de origem: esse é `sender_phone`, e o Pombo é quem o resolve.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_email`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nFormato internacional, começando por `+`, com 10 a 15 dígitos. Fora desse formato a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_phone must be in format +CODE_PHONE with 10-15 digits (e.g., +5511999998888)`.\n\nDeclarando também `contact_email`, os dois são impressos, o telefone primeiro. Ausente, o rodapé usa o e-mail. Não há queda para o telefone da organização: o rodapé mostra apenas o que este `sender` declarou.\n","examples":["+5511999998888"],"uniqueKey":"notification.sender.contact_phone.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^\\+[0-9]{10,15}$","description":"Um telefone para onde o destinatário pode responder, impresso no rodapé da mensagem. Não é o número de origem: esse é `sender_phone`, e o Pombo é quem o resolve.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_email`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nFormato internacional, começando por `+`, com 10 a 15 dígitos. Fora desse formato a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_phone must be in format +CODE_PHONE with 10-15 digits (e.g., +5511999998888)`.\n\nDeclarando também `contact_email`, os dois são impressos, o telefone primeiro. Ausente, o rodapé usa o e-mail. Não há queda para o telefone da organização: o rodapé mostra apenas o que este `sender` declarou.\n","examples":["+5511999998888"],"uniqueKey":"notification.sender.contact_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"notification.sender.contact_phone","typeLabel":"string | null"},"contact_email":{"oneOf":[{"type":"string","format":"email","description":"Um e-mail para onde o destinatário pode responder, impresso no rodapé da mensagem, depois de `contact_phone` quando os dois são declarados e sozinho quando é o único.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_phone`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nPrecisa ser um endereço válido. Fora disso a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_email must be a valid email address`.\n\nNão é o endereço de origem da mensagem: esse vem do domínio verificado da organização.\n","examples":["contato@empresa.com.br"],"uniqueKey":"notification.sender.contact_email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","description":"Um e-mail para onde o destinatário pode responder, impresso no rodapé da mensagem, depois de `contact_phone` quando os dois são declarados e sozinho quando é o único.\n\nOpcional. Em WhatsApp, num modelo que carrega o rodapé do remetente, é preciso declarar este campo ou `contact_phone`: omitir os dois é recusado. Em e-mail os dois podem faltar.\n\nPrecisa ser um endereço válido. Fora disso a chamada é recusada com `400 INVALID_SENDER` e a mensagem `sender.contact_email must be a valid email address`.\n\nNão é o endereço de origem da mensagem: esse vem do domínio verificado da organização.\n","examples":["contato@empresa.com.br"],"uniqueKey":"notification.sender.contact_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"notification.sender.contact_email","typeLabel":"string\u003cemail> | null"}},"isRequired":true,"uniqueKey":"notification.sender","typeLabel":"object"},"recipient_phone":{"type":"string","pattern":"^\\+[0-9]{10,15}$","description":"Formato internacional, começando por `+`. Ausente num envio de WhatsApp, a chamada é recusada com `400` e `error_code` igual a `INVALID_RECIPIENT`.\n","examples":["+5511999998888"],"uniqueKey":"notification.recipient_phone","typeLabel":"string"},"recipient_email":{"type":"string","format":"email","description":"Ausente num envio de e-mail, a chamada é recusada com `400` e `error_code` igual a `INVALID_RECIPIENT`.\n","uniqueKey":"notification.recipient_email","typeLabel":"string\u003cemail>"}},"description":"O mesmo objeto aceito em `application/json`, enviado como uma parte de `Content-Type: application/json`. **Envie esta parte primeiro:** ela é validada enquanto o arquivo ainda está subindo.\n","isRequired":true,"uniqueKey":"notification","typeLabel":"object"},"file":{"type":"string","format":"binary","description":"O documento. `application/pdf`, `image/png` ou `image/jpeg`. Até 20 MB para PDF e 5 MB para imagem.\n\n**Um anexo por notificação.** A parte é singular: para mandar vários documentos, junte-os em um único PDF antes de enviar.\n\n**Em `WHATSAPP` o par com o modelo é obrigatório nos dois sentidos:** um modelo `DOCUMENT` ou `IMAGE` exige esta parte, e um modelo `TEXT` a recusa, com `400` nos dois desencontros. O tipo também precisa casar: um modelo `DOCUMENT` recusa uma imagem e um modelo `IMAGE` recusa um PDF, igualmente com `400`.\n\nEssa conferência depende de o modelo já ter sido aprovado pela Meta: um modelo de WhatsApp que ainda não recebeu o identificador da Meta passa direto por ela. Na prática isso não muda nada, porque um envio de WhatsApp exige `template_status: APPROVED` de qualquer forma.\n\n**Em `EMAIL` é sempre opcional, e aceito com qualquer `template_type`.** O envio por e-mail não consulta o tipo do modelo, então um modelo `TEXT` com anexo simplesmente leva o anexo.\n\n**Duas partes, e só essas duas.** Uma terceira parte qualquer (`encoding`, `filename`, `mime_type` ou qualquer outro nome) é recusada com `400 Invalid request: multipart/form-data accepts exactly one notification part and one file part`. O nome do arquivo e o tipo saem do próprio cabeçalho da parte `file`, e não há corpo em base64.\n","isRequired":true,"uniqueKey":"file","typeLabel":"file"}},"uniqueKey":"","typeLabel":"object"},"encoding":{"notification":{"contentType":"application/json"},"file":{"contentType":"application/pdf, image/png, image/jpeg"}},"examples":{"whatsapp_anexo":{"title":"whatsapp_anexo","description":"A parte `notification` carrega o objeto abaixo; a parte `file` carrega o PDF.\n","value":{"notification":{"template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","channel":"WHATSAPP","recipient_full_name":"Maria Silva","recipient_tax_id":"12345678901","recipient_tax_id_type":"CPF","recipient_phone":"+5511999998888","sender":{"name":"Vega Cobranças LTDA","tax_id":"12345678000199","tax_id_type":"CNPJ","contact_phone":"+5511988887777"},"parameters":{"{{1}}":"Maria"}},"file":"\u003cconteúdo binário de contrato.pdf>"}},"email_anexo":{"title":"email_anexo","value":{"notification":{"template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","channel":"EMAIL","recipient_full_name":"João Souza","recipient_tax_id":"98765432100","recipient_tax_id_type":"CPF","recipient_email":"joao.souza@example.com","sender":{"name":"Aurora Recuperação de Crédito ME","tax_id":"98765432000188","tax_id_type":"CNPJ","contact_phone":"+5511988887777"},"parameters":{"{{1}}":"João"}},"file":"\u003cconteúdo binário de contrato.pdf>"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7cf94552-b929-457b-a734-935454f86d80":{"description":"**Repetição idempotente.** O mesmo `Idempotency-Key` com o mesmo corpo (**e, quando há anexo, o mesmo arquivo**) devolve `200` com o corpo original da primeira chamada. Nenhuma notificação nova foi criada e nenhum envio foi descontado.\n\nO `200` é o sinal de repetição: a primeira chamada devolve `201`.\n","headers":{"Idempotent-Replayed":{"description":"Presente apenas na repetição, sempre `true`.","schema":{"type":"string","examples":["true"]}}},"content":{"application/json":{"schema":{"type":"object","description":"A notificação devolvida pelo envio.","properties":{"notification_id":{"type":"string","uniqueKey":"notification_id","typeLabel":"string"},"organization_id":{"type":"string","description":"A organização dona da conta e do saldo. Não confunda com `sender`, que é em nome de quem a notificação sai.","uniqueKey":"organization_id","typeLabel":"string"},"template_id":{"type":"string","uniqueKey":"template_id","typeLabel":"string"},"channel":{"type":"string","enum":["WHATSAPP","EMAIL"],"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"recipient_full_name":{"type":"string","uniqueKey":"recipient_full_name","typeLabel":"string"},"recipient_tax_id":{"type":"string","uniqueKey":"recipient_tax_id","typeLabel":"string"},"recipient_tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"uniqueKey":"recipient_tax_id_type","typeLabel":"enum\u003cstring>"},"recipient_phone":{"oneOf":[{"type":"string","uniqueKey":"recipient_phone.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipient_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipient_phone","typeLabel":"string | null"},"recipient_email":{"oneOf":[{"type":"string","uniqueKey":"recipient_email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipient_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipient_email","typeLabel":"string | null"},"contact_id":{"type":"string","description":"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`.\n","examples":["PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"contact_id","typeLabel":"string"},"line_id":{"oneOf":[{"type":"string","description":"A linha de WhatsApp usada no envio. `null` em `EMAIL`.","examples":["PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"line_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"A linha de WhatsApp usada no envio. `null` em `EMAIL`.","examples":["PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"line_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"line_id","typeLabel":"string | null"},"parameters":{"type":"object","additionalProperties":true,"description":"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\n**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.\n","examples":[{"{{1}}":"Maria"}],"uniqueKey":"parameters","typeLabel":"object"},"message":{"type":"string","description":"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.\n","uniqueKey":"message","typeLabel":"string"},"content_sha256":{"oneOf":[{"type":"string","description":"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.\n","examples":["3b1c8d6e4f2a0b9c7d5e3f1a8c6d2b0e9f7a5c3d1e8f6b4a2c0d9e7f5a3b1c8d"],"uniqueKey":"content_sha256.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n","examples":["3b1c8d6e4f2a0b9c7d5e3f1a8c6d2b0e9f7a5c3d1e8f6b4a2c0d9e7f5a3b1c8d"],"uniqueKey":"content_sha256.oneOf.1","typeLabel":"null"}],"uniqueKey":"content_sha256","typeLabel":"string | null"},"message_format":{"type":"string","enum":["html","text"],"description":"Se `message` é HTML ou texto simples. Sempre em minúsculas.","uniqueKey":"message_format","typeLabel":"enum\u003cstring>"},"notification_status":{"type":"string","enum":["DRAFT","PENDING","PROCESSING","COMPLETED","FAILED"],"description":"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`.\n","uniqueKey":"notification_status","typeLabel":"enum\u003cstring>"},"notification_delivery_status":{"type":"string","enum":["PENDING","ENQUEUED","SENT","DELIVERED","READ","FAILED"],"description":"**O campo que responde se a mensagem chegou.** Caminho normal: `PENDING` → `ENQUEUED` → `SENT` → `DELIVERED` → `READ`.\n\nNo envio, um `EMAIL` foi observado em `ENQUEUED` e um `WHATSAPP` em `SENT`.\n\n**Nunca retrocede**, e `FAILED` é terminal. Você pode não observar todos os estados intermediários. Em e-mail não espere `READ`.\n","uniqueKey":"notification_delivery_status","typeLabel":"enum\u003cstring>"},"sender":{"type":"object","description":"O remetente como a notificação o devolve. São os dados que identificam a parte no laudo.\n\nOs 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.\n","properties":{"name":{"type":"string","description":"O nome declarado no envio.","uniqueKey":"sender.name","typeLabel":"string"},"tax_id":{"type":"string","description":"Apenas dígitos, sem pontuação.","uniqueKey":"sender.tax_id","typeLabel":"string"},"tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"uniqueKey":"sender.tax_id_type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"sender","typeLabel":"object"},"sender_phone":{"oneOf":[{"type":"string","description":"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.\n","examples":["5511952134898"],"uniqueKey":"sender_phone.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n","examples":["5511952134898"],"uniqueKey":"sender_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"sender_phone","typeLabel":"string | null"},"sender_email":{"oneOf":[{"type":"string","description":"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.\n\nSe 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.\n","examples":["ola@pombo.digital"],"uniqueKey":"sender_email.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n\nSe 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.\n","examples":["ola@pombo.digital"],"uniqueKey":"sender_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"sender_email","typeLabel":"string | null"},"created_by_type":{"type":"string","enum":["api_key","user"],"description":"Quem criou a notificação: `api_key` quando ela veio desta API, `user` quando alguém a criou pelo painel.\n\nÉ 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.\n","uniqueKey":"created_by_type","typeLabel":"enum\u003cstring>"},"created_by_user_id":{"type":"string","description":"**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ê.\n\nQuando `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.\n","examples":["PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"created_by_user_id","typeLabel":"string"},"idempotency_key":{"oneOf":[{"type":"string","description":"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.\n","uniqueKey":"idempotency_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n","uniqueKey":"idempotency_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"idempotency_key","typeLabel":"string | null"},"batch_id":{"oneOf":[{"type":"string","description":"O lote a que a notificação pertence, quando veio de um envio em massa.","uniqueKey":"batch_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O lote a que a notificação pertence, quando veio de um envio em massa.","uniqueKey":"batch_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"batch_id","typeLabel":"string | null"},"batch_item_id":{"oneOf":[{"type":"string","description":"O item do lote correspondente a esta notificação.","uniqueKey":"batch_item_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O item do lote correspondente a esta notificação.","uniqueKey":"batch_item_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"batch_item_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"sent_at":{"oneOf":[{"type":"string","format":"date-time","description":"Quando o Pombo entregou a mensagem ao provedor. `null` até o envio ocorrer.","uniqueKey":"sent_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Quando o Pombo entregou a mensagem ao provedor. `null` até o envio ocorrer.","uniqueKey":"sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"sent_at","typeLabel":"string\u003cdate-time> | null"},"delivered_at":{"oneOf":[{"type":"string","format":"date-time","description":"Quando o provedor confirmou a entrega ao destinatário. `null` enquanto não houver confirmação.","uniqueKey":"delivered_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Quando o provedor confirmou a entrega ao destinatário. `null` enquanto não houver confirmação.","uniqueKey":"delivered_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivered_at","typeLabel":"string\u003cdate-time> | null"},"failed_at":{"oneOf":[{"type":"string","format":"date-time","description":"Quando o envio falhou em definitivo. `null` quando não houve falha.","uniqueKey":"failed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Quando o envio falhou em definitivo. `null` quando não houve falha.","uniqueKey":"failed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"failed_at","typeLabel":"string\u003cdate-time> | null"},"attachments":{"type":"array","description":"O anexo que viajou nesta chamada, já validado, guardado e com a sua impressão digital. Vazio quando o envio não levou arquivo.\n\n**Confira aqui, sem uma segunda chamada.** Como o arquivo entra na mesma requisição, o `hash` já existe quando o envio responde: compare-o com o resumo do arquivo que você tinha e a verificação termina aqui.\n","items":{"type":"object","description":"Um anexo da notificação, com a impressão digital do arquivo.\n\n**É aqui que você confere o que foi notificado.** O `hash` é a impressão digital registrada no laudo: calcule o mesmo resumo do arquivo que você enviou e compare, e você prova que o documento anexado é o documento que você tinha.\n","properties":{"attachment_id":{"type":"string","description":"O identificador do arquivo guardado, **opaco**: é o mesmo que aparece no laudo, e serve para citar um anexo específico num chamado de suporte. Não há endpoint para resolvê-lo: tudo o que você precisa conferir já está nos campos ao lado.\n","uniqueKey":"attachments.items.[INDEX].attachment_id","typeLabel":"string"},"filename":{"type":"string","description":"O nome já normalizado pelo Pombo, e o nome que o destinatário recebeu. Compare com o que você enviou: pode não ser igual.\n","uniqueKey":"attachments.items.[INDEX].filename","typeLabel":"string"},"mime_type":{"type":"string","enum":["application/pdf","image/png","image/jpeg"],"uniqueKey":"attachments.items.[INDEX].mime_type","typeLabel":"enum\u003cstring>"},"size_bytes":{"type":"integer","uniqueKey":"attachments.items.[INDEX].size_bytes","typeLabel":"integer"},"hash":{"type":"string","description":"A impressão digital do arquivo, a mesma que consta no laudo.","examples":["9f2c1d7a4b6e8f0c2a4d6e8f0b1c3d5e7f9a1b3c5d7e9f1a3b5c7d9e1f3a5b7c"],"uniqueKey":"attachments.items.[INDEX].hash","typeLabel":"string"},"hash_algorithm":{"type":"string","description":"Literalmente `SHA-256`, com hífen e em maiúsculas. Compare a string exata.","examples":["SHA-256"],"uniqueKey":"attachments.items.[INDEX].hash_algorithm","typeLabel":"string"},"hash_encoding":{"type":"string","examples":["hex"],"uniqueKey":"attachments.items.[INDEX].hash_encoding","typeLabel":"string"}},"uniqueKey":"attachments.items.[INDEX]","typeLabel":"object"},"uniqueKey":"attachments","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"notification_id":"\u003cstring>","organization_id":"\u003cstring>","template_id":"\u003cstring>","channel":"WHATSAPP","recipient_full_name":"\u003cstring>","recipient_tax_id":"\u003cstring>","recipient_tax_id_type":"CPF","recipient_phone":"\u003cstring>","recipient_email":"\u003cstring>","contact_id":"PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N","line_id":"PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N","parameters":{"{{1}}":"Maria"},"message":"\u003cstring>","content_sha256":"3b1c8d6e4f2a0b9c7d5e3f1a8c6d2b0e9f7a5c3d1e8f6b4a2c0d9e7f5a3b1c8d","message_format":"html","notification_status":"DRAFT","notification_delivery_status":"PENDING","sender":{"name":"\u003cstring>","tax_id":"\u003cstring>","tax_id_type":"CPF"},"sender_phone":"5511952134898","sender_email":"ola@pombo.digital","created_by_type":"api_key","created_by_user_id":"PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N","idempotency_key":"\u003cstring>","batch_id":"\u003cstring>","batch_item_id":"\u003cstring>","created_at":"2023-11-07T05:31:56Z","sent_at":"2023-11-07T05:31:56Z","delivered_at":"2023-11-07T05:31:56Z","failed_at":"2023-11-07T05:31:56Z","attachments":[{"attachment_id":"\u003cstring>","filename":"\u003cstring>","mime_type":"application/pdf","size_bytes":123,"hash":"9f2c1d7a4b6e8f0c2a4d6e8f0b1c3d5e7f9a1b3c5d7e9f1a3b5c7d9e1f3a5b7c","hash_algorithm":"SHA-256","hash_encoding":"hex"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"867d0c96-5c4e-4c63-90f4-00960833ba42":{"description":"Notificação criada e aceita para envio.\n\nA resposta confirma a criação, não a entrega. O envio consome um crédito do saldo da organização e não pode ser cancelado.\n","content":{"application/json":{"schema":{"type":"object","description":"A notificação devolvida pelo envio.","properties":{"notification_id":{"type":"string","uniqueKey":"notification_id","typeLabel":"string"},"organization_id":{"type":"string","description":"A organização dona da conta e do saldo. Não confunda com `sender`, que é em nome de quem a notificação sai.","uniqueKey":"organization_id","typeLabel":"string"},"template_id":{"type":"string","uniqueKey":"template_id","typeLabel":"string"},"channel":{"type":"string","enum":["WHATSAPP","EMAIL"],"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"recipient_full_name":{"type":"string","uniqueKey":"recipient_full_name","typeLabel":"string"},"recipient_tax_id":{"type":"string","uniqueKey":"recipient_tax_id","typeLabel":"string"},"recipient_tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"uniqueKey":"recipient_tax_id_type","typeLabel":"enum\u003cstring>"},"recipient_phone":{"oneOf":[{"type":"string","uniqueKey":"recipient_phone.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipient_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipient_phone","typeLabel":"string | null"},"recipient_email":{"oneOf":[{"type":"string","uniqueKey":"recipient_email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipient_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipient_email","typeLabel":"string | null"},"contact_id":{"type":"string","description":"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`.\n","examples":["PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"contact_id","typeLabel":"string"},"line_id":{"oneOf":[{"type":"string","description":"A linha de WhatsApp usada no envio. `null` em `EMAIL`.","examples":["PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"line_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"A linha de WhatsApp usada no envio. `null` em `EMAIL`.","examples":["PBD_WALN_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"line_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"line_id","typeLabel":"string | null"},"parameters":{"type":"object","additionalProperties":true,"description":"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\n**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.\n","examples":[{"{{1}}":"Maria"}],"uniqueKey":"parameters","typeLabel":"object"},"message":{"type":"string","description":"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.\n","uniqueKey":"message","typeLabel":"string"},"content_sha256":{"oneOf":[{"type":"string","description":"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.\n","examples":["3b1c8d6e4f2a0b9c7d5e3f1a8c6d2b0e9f7a5c3d1e8f6b4a2c0d9e7f5a3b1c8d"],"uniqueKey":"content_sha256.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n","examples":["3b1c8d6e4f2a0b9c7d5e3f1a8c6d2b0e9f7a5c3d1e8f6b4a2c0d9e7f5a3b1c8d"],"uniqueKey":"content_sha256.oneOf.1","typeLabel":"null"}],"uniqueKey":"content_sha256","typeLabel":"string | null"},"message_format":{"type":"string","enum":["html","text"],"description":"Se `message` é HTML ou texto simples. Sempre em minúsculas.","uniqueKey":"message_format","typeLabel":"enum\u003cstring>"},"notification_status":{"type":"string","enum":["DRAFT","PENDING","PROCESSING","COMPLETED","FAILED"],"description":"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`.\n","uniqueKey":"notification_status","typeLabel":"enum\u003cstring>"},"notification_delivery_status":{"type":"string","enum":["PENDING","ENQUEUED","SENT","DELIVERED","READ","FAILED"],"description":"**O campo que responde se a mensagem chegou.** Caminho normal: `PENDING` → `ENQUEUED` → `SENT` → `DELIVERED` → `READ`.\n\nNo envio, um `EMAIL` foi observado em `ENQUEUED` e um `WHATSAPP` em `SENT`.\n\n**Nunca retrocede**, e `FAILED` é terminal. Você pode não observar todos os estados intermediários. Em e-mail não espere `READ`.\n","uniqueKey":"notification_delivery_status","typeLabel":"enum\u003cstring>"},"sender":{"type":"object","description":"O remetente como a notificação o devolve. São os dados que identificam a parte no laudo.\n\nOs 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.\n","properties":{"name":{"type":"string","description":"O nome declarado no envio.","uniqueKey":"sender.name","typeLabel":"string"},"tax_id":{"type":"string","description":"Apenas dígitos, sem pontuação.","uniqueKey":"sender.tax_id","typeLabel":"string"},"tax_id_type":{"type":"string","enum":["CPF","CNPJ"],"uniqueKey":"sender.tax_id_type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"sender","typeLabel":"object"},"sender_phone":{"oneOf":[{"type":"string","description":"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.\n","examples":["5511952134898"],"uniqueKey":"sender_phone.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n","examples":["5511952134898"],"uniqueKey":"sender_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"sender_phone","typeLabel":"string | null"},"sender_email":{"oneOf":[{"type":"string","description":"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.\n\nSe 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.\n","examples":["ola@pombo.digital"],"uniqueKey":"sender_email.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n\nSe 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.\n","examples":["ola@pombo.digital"],"uniqueKey":"sender_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"sender_email","typeLabel":"string | null"},"created_by_type":{"type":"string","enum":["api_key","user"],"description":"Quem criou a notificação: `api_key` quando ela veio desta API, `user` quando alguém a criou pelo painel.\n\nÉ 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.\n","uniqueKey":"created_by_type","typeLabel":"enum\u003cstring>"},"created_by_user_id":{"type":"string","description":"**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ê.\n\nQuando `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.\n","examples":["PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N"],"uniqueKey":"created_by_user_id","typeLabel":"string"},"idempotency_key":{"oneOf":[{"type":"string","description":"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.\n","uniqueKey":"idempotency_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.\n","uniqueKey":"idempotency_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"idempotency_key","typeLabel":"string | null"},"batch_id":{"oneOf":[{"type":"string","description":"O lote a que a notificação pertence, quando veio de um envio em massa.","uniqueKey":"batch_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O lote a que a notificação pertence, quando veio de um envio em massa.","uniqueKey":"batch_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"batch_id","typeLabel":"string | null"},"batch_item_id":{"oneOf":[{"type":"string","description":"O item do lote correspondente a esta notificação.","uniqueKey":"batch_item_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O item do lote correspondente a esta notificação.","uniqueKey":"batch_item_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"batch_item_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"sent_at":{"oneOf":[{"type":"string","format":"date-time","description":"Quando o Pombo entregou a mensagem ao provedor. `null` até o envio ocorrer.","uniqueKey":"sent_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Quando o Pombo entregou a mensagem ao provedor. `null` até o envio ocorrer.","uniqueKey":"sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"sent_at","typeLabel":"string\u003cdate-time> | null"},"delivered_at":{"oneOf":[{"type":"string","format":"date-time","description":"Quando o provedor confirmou a entrega ao destinatário. `null` enquanto não houver confirmação.","uniqueKey":"delivered_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Quando o provedor confirmou a entrega ao destinatário. `null` enquanto não houver confirmação.","uniqueKey":"delivered_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivered_at","typeLabel":"string\u003cdate-time> | null"},"failed_at":{"oneOf":[{"type":"string","format":"date-time","description":"Quando o envio falhou em definitivo. `null` quando não houve falha.","uniqueKey":"failed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Quando o envio falhou em definitivo. `null` quando não houve falha.","uniqueKey":"failed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"failed_at","typeLabel":"string\u003cdate-time> | null"},"attachments":{"type":"array","description":"O anexo que viajou nesta chamada, já validado, guardado e com a sua impressão digital. Vazio quando o envio não levou arquivo.\n\n**Confira aqui, sem uma segunda chamada.** Como o arquivo entra na mesma requisição, o `hash` já existe quando o envio responde: compare-o com o resumo do arquivo que você tinha e a verificação termina aqui.\n","items":{"type":"object","description":"Um anexo da notificação, com a impressão digital do arquivo.\n\n**É aqui que você confere o que foi notificado.** O `hash` é a impressão digital registrada no laudo: calcule o mesmo resumo do arquivo que você enviou e compare, e você prova que o documento anexado é o documento que você tinha.\n","properties":{"attachment_id":{"type":"string","description":"O identificador do arquivo guardado, **opaco**: é o mesmo que aparece no laudo, e serve para citar um anexo específico num chamado de suporte. Não há endpoint para resolvê-lo: tudo o que você precisa conferir já está nos campos ao lado.\n","uniqueKey":"attachments.items.[INDEX].attachment_id","typeLabel":"string"},"filename":{"type":"string","description":"O nome já normalizado pelo Pombo, e o nome que o destinatário recebeu. Compare com o que você enviou: pode não ser igual.\n","uniqueKey":"attachments.items.[INDEX].filename","typeLabel":"string"},"mime_type":{"type":"string","enum":["application/pdf","image/png","image/jpeg"],"uniqueKey":"attachments.items.[INDEX].mime_type","typeLabel":"enum\u003cstring>"},"size_bytes":{"type":"integer","uniqueKey":"attachments.items.[INDEX].size_bytes","typeLabel":"integer"},"hash":{"type":"string","description":"A impressão digital do arquivo, a mesma que consta no laudo.","examples":["9f2c1d7a4b6e8f0c2a4d6e8f0b1c3d5e7f9a1b3c5d7e9f1a3b5c7d9e1f3a5b7c"],"uniqueKey":"attachments.items.[INDEX].hash","typeLabel":"string"},"hash_algorithm":{"type":"string","description":"Literalmente `SHA-256`, com hífen e em maiúsculas. Compare a string exata.","examples":["SHA-256"],"uniqueKey":"attachments.items.[INDEX].hash_algorithm","typeLabel":"string"},"hash_encoding":{"type":"string","examples":["hex"],"uniqueKey":"attachments.items.[INDEX].hash_encoding","typeLabel":"string"}},"uniqueKey":"attachments.items.[INDEX]","typeLabel":"object"},"uniqueKey":"attachments","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"enfileirada":{"title":"enfileirada","value":{"notification_id":"PBD_NOT_01J9Z2Q8XK3M7WPTV6RB4CYH0N","organization_id":"PBD_ORG_01J8A1B2C3D4E5F6G7H8J9K0LM","template_id":"PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N","channel":"EMAIL","recipient_full_name":"João Souza","recipient_tax_id":"98765432100","recipient_tax_id_type":"CPF","recipient_phone":null,"recipient_email":"joao.souza@example.com","contact_id":"PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N","line_id":null,"message":"Prezado(a) João, consta débito em aberto.","message_format":"html","notification_status":"PENDING","notification_delivery_status":"ENQUEUED","sender":{"name":"Aurora Recuperação de Crédito ME","tax_id":"98765432000188","tax_id_type":"CNPJ"},"sender_phone":null,"sender_email":"ola@pombo.digital","created_by_user_id":"PBD_APIKEY_01J9Z2Q8XK3M7WPTV6RB4CYH0N","idempotency_key":"cobranca-2026-08-31-0001","created_at":"2026-08-27T14:03:11.482Z","attachments":[]}},"com_anexo":{"title":"com_anexo","description":"O arquivo viajou na mesma chamada, então o `hash` já vem aqui: a verificação não precisa de uma segunda requisição.\n","value":{"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,"message":"Prezada Maria, consta débito de R$ 1.200,00.","message_format":"text","notification_status":"PENDING","notification_delivery_status":"ENQUEUED","idempotency_key":"cobranca-2026-08-31-0003","created_at":"2026-08-27T14:03:11.482Z","attachments":[{"attachment_id":"PBD_ATCH_01J9Z2Q8XK3M7WPTV6RB4CYH0N","filename":"contrato.pdf","mime_type":"application/pdf","size_bytes":184320,"hash":"9f2c1d7a4b6e8f0c2a4d6e8f0b1c3d5e7f9a1b3c5d7e9f1a3b5c7d9e1f3a5b7c","hash_algorithm":"SHA-256","hash_encoding":"hex"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"db2299e6-10f3-418d-8011-f8799085a844":{"description":"Requisição inválida. Repetir sem alterar nada devolve o mesmo erro.\n\nUm corpo JSON mal formado cai aqui, com `400`, e não em `500`. Nada é enviado e nada é cobrado.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"json_malformado":{"title":"json_malformado","value":{"code":10400,"http_code":400,"message":"Invalid request: malformed JSON"}},"canal_invalido":{"title":"canal_invalido","value":{"code":10400,"http_code":400,"message":"Invalid request: channel must be WHATSAPP or EMAIL"}},"campo_faltando":{"title":"campo_faltando","value":{"code":10400,"http_code":400,"message":"Invalid request: Missing required fields: template_id","error_code":"MISSING_REQUIRED_FIELD"}},"organization_id_proibido":{"title":"organization_id_proibido","value":{"code":10400,"http_code":400,"message":"Invalid request: organization_id is not accepted on this endpoint: the API key decides the organization","error_code":"ORGANIZATION_ID_FORBIDDEN"}},"anexo_por_id":{"title":"anexo_por_id","description":"O primeiro erro de quem vem do fluxo antigo de duas chamadas. Nesta API o arquivo viaja na própria requisição, como a parte `file` de um `multipart/form-data`.\n","value":{"code":10400,"http_code":400,"message":"Invalid request: attachment_id is not available on the integrations lane; use multipart/form-data with a file part"}},"transferencia_de_arquivo":{"title":"transferencia_de_arquivo","value":{"code":10400,"http_code":400,"message":"Invalid request: file_transfer_id is not available on the integrations lane","error_code":"FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE"}},"constante_de_modelo":{"title":"constante_de_modelo","value":{"code":10400,"http_code":400,"message":"Invalid request: language_code must not be sent: it is set by the server","error_code":"TEMPLATE_CONSTANT_FORBIDDEN"}},"remetente_invalido":{"title":"remetente_invalido","value":{"code":10400,"http_code":400,"message":"Invalid request: sender is required and must be an object","error_code":"INVALID_SENDER"}},"destinatario_invalido":{"title":"destinatario_invalido","value":{"code":10400,"http_code":400,"message":"Invalid request: recipient_phone is required for this channel","error_code":"INVALID_RECIPIENT"}},"telefone_invalido":{"title":"telefone_invalido","value":{"code":10400,"http_code":400,"message":"Invalid request: recipient_phone must start with '+' (e.g., +5511999998888)"}},"tipo_de_documento_invalido":{"title":"tipo_de_documento_invalido","value":{"code":10400,"http_code":400,"message":"Invalid request: recipient_tax_id_type must be CPF or CNPJ"}},"chave_de_idempotencia_invalida":{"title":"chave_de_idempotencia_invalida","value":{"code":10400,"http_code":400,"message":"Invalid request: Idempotency-Key may only contain letters, digits, underscores and hyphens"}},"arquivo_grande_demais":{"title":"arquivo_grande_demais","description":"O anexo grande demais é `400`, **não `413`**. Os limites vêm do tipo do arquivo: 20 MB para PDF, 5 MB para imagem.\n","value":{"code":10400,"http_code":400,"message":"Invalid request: File size exceeds maximum allowed (20MB)"}},"partes_fora_de_ordem":{"title":"partes_fora_de_ordem","description":"A parte `notification` é validada enquanto o arquivo ainda sobe, então precisa vir **antes** da parte `file`.\n","value":{"code":10400,"http_code":400,"message":"Invalid request: The notification part is required and must come before the file part"}},"partes_demais":{"title":"partes_demais","value":{"code":10400,"http_code":400,"message":"Invalid request: multipart/form-data accepts exactly one notification part and one file part"}},"variaveis_invalidas":{"title":"variaveis_invalidas","value":{"code":"INVALID_PARAMETERS","http_code":400,"message":"Missing required parameter: {{1}}"}}},"exampleType":"examples"}},"exampleType":"examples"},"2f9e04ee-acea-48d7-bea0-5287e2cd434c":{"description":"Credencial ausente, inválida ou revogada. A resposta é **idêntica** nos três casos: o Pombo não informa qual deles ocorreu, para que não se possa descobrir por tentativa quais credenciais já existiram.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalida":{"title":"invalida","value":{"code":10401,"http_code":401,"message":"Invalid API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"f69eba61-4a52-40a6-9860-9f7e17ef693f":{"description":"Envios insuficientes. É o único erro que se resolve **sem alterar a requisição**: compre envios e repita.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"texto":{"title":"texto","value":{"code":"INSUFFICIENT_CREDITS","http_code":402,"message":"Insufficient credits to perform this operation"}},"numerico":{"title":"numerico","value":{"code":10402,"http_code":402,"message":"Insufficient credits to perform this operation"}}},"exampleType":"examples"}},"exampleType":"examples"},"fdbb1f9a-d663-4d69-ac61-a691bb72fdd9":{"description":"Recurso não encontrado. Um recurso de **outra organização** também responde `404`, e não `403`, porque a distinção revelaria que o identificador existe. Vale para os dois `GET` e também para o `template_id` de um envio.\n\nO `404` de modelo em `POST /notifications` é devolvido direto pela rota, então **não traz `request_id` no corpo**, ao contrário dos erros que passam pelo tratador geral. O cabeçalho `x-request-id` está sempre lá: use o cabeçalho.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"numerico":{"title":"numerico","value":{"code":10404,"http_code":404,"message":"Template not found"}},"texto":{"title":"texto","value":{"code":"NOT_FOUND","http_code":404,"message":"Notification not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"8e692cff-56f7-4e50-9af1-4e9e17dfa225":{"description":"Duas causas, distinguidas por `code` e `error_code`.\n\n**`CONTACT_CONFLICT`.** Os dados do destinatário divergem de um contato já cadastrado. Os contatos são unificados pelo `tax_id`. Corrija a divergência antes de repetir: a mesma requisição devolve o mesmo conflito. O corpo traz `conflict_type`, `existing_contact` e `input_data` para você reconciliar.\n\n**`IDEMPOTENCY_KEY_REUSED`.** O `Idempotency-Key` já foi usado com um corpo diferente, **ou com o mesmo corpo e outro arquivo**, que conta igual. Use uma chave nova. Este corpo é lançado, não devolvido, então vem **sem `http_code`**.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"},"conflict_type":{"type":"string","enum":["tax_id_phone_mismatch","phone_tax_id_mismatch","name_mismatch"],"uniqueKey":"conflict_type","typeLabel":"enum\u003cstring>"},"existing_contact":{"type":"object","description":"O contato já cadastrado no Pombo.","additionalProperties":true,"uniqueKey":"existing_contact","typeLabel":"object"},"input_data":{"type":"object","description":"Os dados que você enviou, para comparação.","additionalProperties":true,"uniqueKey":"input_data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"telefone_diferente":{"title":"telefone_diferente","value":{"code":"CONTACT_CONFLICT","http_code":409,"message":"Contato com este CPF já existe com um número de telefone diferente","conflict_type":"tax_id_phone_mismatch","existing_contact":{"contact_id":"PBD_CNT_01J9Z2Q8XK3M7WPTV6RB4CYH0N","name":"Maria Silva","tax_id":"12345678901","phone":"+5511999998888"},"input_data":{"name":"Maria S. Silva","phone":"+5511888887777","tax_id":"12345678901","tax_id_type":"CPF"}}},"chave_reutilizada":{"title":"chave_reutilizada","value":{"code":10409,"message":"Idempotency-Key already used with a different request","error_code":"IDEMPOTENCY_KEY_REUSED"}}},"exampleType":"examples"}},"exampleType":"examples"},"8fc9760b-c43c-4927-89d2-18fb41190100":{"description":"A **mensagem renderizada** excede o limite de certificação. **Nada foi enviado e nada foi cobrado**: o Pombo recusa antes de registrar, em vez de certificar um texto truncado.\n\nÉ o único `413` desta API. **Um arquivo grande demais é `400`, não `413`.** Veja `400`.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"grande":{"title":"grande","value":{"code":"MESSAGE_TOO_LARGE_TO_CERTIFY","http_code":413,"message":"A mensagem tem 82134 caracteres e excede o limite de 60000 para certificação. Reduza o conteúdo (ou o HTML colado nos dados personalizados) e envie novamente. O envio não foi realizado."}}},"exampleType":"examples"}},"exampleType":"examples"},"5f9e26d2-93b9-4f74-a3ee-a986c533cac8":{"description":"Recusado por regra de negócio. O `code` diz qual. Em `POST /templates` o único caso é `10422`, conteúdo recusado pela política; os demais são do envio.\n\n`SENDER_CHOICE_REQUIRED` significa que a organização tem mais de um endereço de envio utilizável. O Pombo não escolhe entre eles, porque o endereço de origem é certificado no laudo.\n\nA contagem é dos endereços dedicados **verificados** da organização, mais o endereço compartilhado do Pombo. Com exatamente um utilizável, é ele que envia; com mais de um, o envio é recusado.\n\nNa prática: uma organização **sem** endereço dedicado verificado envia pelo endereço compartilhado do Pombo, e esse é o caso comum. Uma organização que verificou **um** endereço próprio passa a ter dois utilizáveis e recebe o `422`.\n\n**A saída é falar com o suporte do Pombo**, que ajusta quais endereços ficam utilizáveis para a organização. Nenhuma chamada desta API resolve isso.\n","content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"modelo_nao_aprovado":{"title":"modelo_nao_aprovado","value":{"code":"TEMPLATE_NOT_APPROVED","http_code":422,"message":"Template PBD_TPL_01J9Z2Q8XK3M7WPTV6RB4CYH0N is not approved (current status: PENDING)"}},"escolha_de_remetente":{"title":"escolha_de_remetente","value":{"code":"SENDER_CHOICE_REQUIRED","http_code":422,"message":"Escolha o endereço de envio desta notificação."}},"politica_de_conteudo":{"title":"politica_de_conteudo","description":"Só em `POST /templates`, na criação do modelo. O corpo não diz qual regra falhou: reveja o texto.\n","value":{"code":10422,"http_code":422,"message":"Content policy violation detected"}}},"exampleType":"examples"}},"exampleType":"examples"},"dee8b608-e63a-4f21-b888-435234d185f1":{"description":"Limite de requisições excedido. São três contagens independentes, em janelas de um minuto: 50 por credencial, 200 por organização, 300 por IP.\n\n**Espere o que o `Retry-After` manda esperar**, em segundos. Os cabeçalhos `RateLimit-Limit`, `RateLimit-Remaining` e `RateLimit-Reset` vêm em toda resposta, não só no `429`.\n","headers":{"Retry-After":{"description":"Quantos segundos esperar antes de repetir.","schema":{"type":"integer","examples":[43]}},"RateLimit-Limit":{"description":"O teto da janela.","schema":{"type":"integer","examples":[200]}},"RateLimit-Remaining":{"description":"Quantas requisições ainda cabem na janela.","schema":{"type":"integer","examples":[0]}},"RateLimit-Reset":{"description":"Quantos segundos faltam para a janela virar.","schema":{"type":"integer","examples":[43]}}},"content":{"application/json":{"schema":{"type":"object","description":"O envelope de erro, com quatro campos.\n\n**Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O `code` vale `10000 + http_code` em um caminho e uma string arbitrária em outro, então não acrescenta nada ao status e muda de tipo entre operações vizinhas.\n","required":["message"],"properties":{"message":{"type":"string","description":"Descrição da falha, para diagnóstico. Em inglês ou em português. Não é estável.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"oneOf":[{"type":"integer","title":"Número, na validação genérica","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":10400,"uniqueKey":"code.oneOf.0","typeLabel":"integer"},{"type":"string","title":"Texto, nos erros específicos","description":"**Não ramifique por este campo.** O tipo muda entre operações vizinhas: um `404` de modelo traz `10404` e um `404` de notificação traz `\"NOT_FOUND\"`. Para tratar erros em código, use o status HTTP.\n","example":"IDEMPOTENCY_KEY_REUSED","uniqueKey":"code.oneOf.1","typeLabel":"string"}],"uniqueKey":"code","typeLabel":"integer | string"},"http_code":{"type":"integer","description":"**Opcional.** O status HTTP repetido no corpo. Presente quando o erro é devolvido diretamente, ausente quando é lançado e tratado pelo tratador geral. Nunca exija este campo no cliente.\n","uniqueKey":"http_code","typeLabel":"integer"},"error_code":{"type":"string","enum":["MISSING_REQUIRED_FIELD","INVALID_SENDER","ORGANIZATION_ID_FORBIDDEN","INVALID_RECIPIENT","TEMPLATE_CONSTANT_FORBIDDEN","FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE","IDEMPOTENCY_KEY_REUSED"],"description":"O campo a usar para ramificar. **Opcional na prática:** alguns `400` igualmente específicos não o trazem, como o de `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal formado. Quando estiver ausente, use o status HTTP.\n","uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"limite":{"title":"limite","value":{"code":"RATE_LIMIT_EXCEEDED","http_code":429,"message":"Too many requests. Please try again later."}}},"exampleType":"examples"}},"exampleType":"examples"},"6ce0cd66-5fe3-4b9c-a8c9-3fde50e878ed":{"description":"Erro interno. Em `POST /notifications`, um `500` **não garante que nada foi enviado**: consulte antes de repetir.\n","content":{"application/json":{"schema":{"type":"object","description":"O corpo do `500` é reduzido e **não** traz `http_code`.","properties":{"code":{"type":"string","examples":["INTERNAL_ERROR"],"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","examples":["Internal Server Error"],"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"O mesmo valor do cabeçalho `x-request-id`. **Registre-o:** é por ele que o suporte encontra a requisição exata.\n","examples":["req_01M1C5ZKGBGRNW6QHXTP2EM7Y7"],"uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"interno":{"title":"interno","value":{"code":"INTERNAL_ERROR","message":"Internal Server Error","request_id":"req_01M1C5ZKGBGRNW6QHXTP2EM7Y7"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"f5b17345-c161-456e-92b9-13801984e98a":{"bearerAuth":{"type":"http","scheme":"bearer","description":"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.\n\nA credencial identifica a organização: `organization_id` não é aceito em nenhuma requisição.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"08d165bc-8615-4cf3-87a1-64e91eaf7bd4":{"url":"https://pombo.digital/api/integrations/v1","description":"Produção"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"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.\n\nA credencial identifica a organização: `organization_id` não é aceito em nenhuma requisição.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"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.\n\nA credencial identifica a organização: `organization_id` não é aceito em nenhuma requisição.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"pombo-digital","siteName":"Pombo.Digital","title":"Enviar uma notificação - Pombo.Digital","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T14:54:49.747Z","originalFileLocation":"api-reference/notificações/enviar-uma-notificação.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Pombo.Digital\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Enviar uma notificação - Pombo.Digital\">\u003cmeta data-mint-head property=\"og:description\" content=\"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Pombo.Digital\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.pombo.digital/api-reference/notificações/enviar-uma-notificação\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://pombo-digital.mintlify.site/_mintlify/api/og/v2?division=Notifica%C3%A7%C3%B5es\u0026amp;title=Enviar+uma+notifica%C3%A7%C3%A3o\u0026amp;description=Emite+uma+notifica%C3%A7%C3%A3o+extrajudicial+certificada+a+partir+de+um+modelo+preenchido.%0A\u0026amp;theme=0a0c86c88ccc26bfbb751982\u0026amp;signature=92527adc64e783d65cf73a3f6ea2ed1402167caf6076dd7f8ba681b4ba003fe5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Enviar uma notificação - Pombo.Digital\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://pombo-digital.mintlify.site/_mintlify/api/og/v2?division=Notifica%C3%A7%C3%B5es\u0026amp;title=Enviar+uma+notifica%C3%A7%C3%A3o\u0026amp;description=Emite+uma+notifica%C3%A7%C3%A3o+extrajudicial+certificada+a+partir+de+um+modelo+preenchido.%0A\u0026amp;theme=0a0c86c88ccc26bfbb751982\u0026amp;signature=92527adc64e783d65cf73a3f6ea2ed1402167caf6076dd7f8ba681b4ba003fe5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/pombo-digital/UMb0_KyuiIqUp_kU/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Pombo.Digital\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F5EF4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.pombo.digital/api-reference/notificações/enviar-uma-notificação\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.pombo.digital/#organization\",\"name\":\"Pombo.Digital\",\"url\":\"https://docs.pombo.digital\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/pombo-digital/6JDRLMzfLY2oWrjf/logo/light.png?fit=max\u0026auto=format\u0026n=6JDRLMzfLY2oWrjf\u0026q=85\u0026s=4dc120cc1feb87982d48a6449f85555e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.pombo.digital#website\",\"name\":\"Pombo.Digital\",\"url\":\"https://docs.pombo.digital\",\"publisher\":{\"@id\":\"https://docs.pombo.digital/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o#webpage\",\"url\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o\",\"name\":\"Enviar uma notificação\",\"description\":\"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\",\"dateModified\":\"2026-10-12T14:54:49.747Z\",\"isPartOf\":{\"@id\":\"https://docs.pombo.digital#website\"},\"breadcrumb\":{\"@id\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Pombo.Digital\",\"item\":\"https://docs.pombo.digital\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enviar uma notificação\",\"item\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o#apireference\",\"headline\":\"Enviar uma notificação\",\"name\":\"Enviar uma notificação\",\"description\":\"Emite uma notificação extrajudicial certificada a partir de um modelo preenchido.\",\"url\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o\",\"mainEntityOfPage\":{\"@id\":\"https://docs.pombo.digital/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o#webpage\"},\"dateModified\":\"2026-10-12T14:54:49.747Z\",\"publisher\":{\"@id\":\"https://docs.pombo.digital/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.pombo.digital#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Pombo.Digital\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Pombo.Digital\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/notifica%C3%A7%C3%B5es/enviar-uma-notifica%C3%A7%C3%A3o.md","siteName":"Pombo.Digital","nav":{"global":null,"tabs":[{"tab":"Guias","pages":[{"title":"Guias","href":""}]},{"tab":"API","groups":[{"group":"Referência da API","pages":[{"title":"Introdução","href":"/api/introducao"},{"title":"Quickstart","href":"/api/quickstart"},{"title":"Idempotência","href":"/api/idempotencia"},{"title":"Erros","href":"/api/erros"},{"title":"Limites de uso","href":"/api/limites-de-uso"}]},{"group":"Modelos","pages":[{"title":"Criar um modelo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /templates","href":"/api-reference/modelos/criar-um-modelo"},{"title":"Listar modelos","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /templates","href":"/api-reference/modelos/listar-modelos"},{"title":"Consultar um modelo","description":"Devolve um modelo pelo identificador, com as variáveis que o envio precisa preencher.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /templates/{id}","href":"/api-reference/modelos/consultar-um-modelo"}]},{"group":"Notificações","pages":[{"title":"Enviar uma notificação","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /notifications","href":"/api-reference/notificações/enviar-uma-notificação"},{"title":"Listar notificações","description":"Lista as notificações da sua organização, da mais recente para a mais antiga.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /notifications","href":"/api-reference/notificações/listar-notificações"},{"title":"Consultar uma notificação","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /notifications/{id}","href":"/api-reference/notificações/consultar-uma-notificação"},{"title":"Baixar o laudo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /notifications/{id}/report/download","href":"/api-reference/notificações/baixar-o-laudo"}]},{"group":"Saldo","pages":[{"title":"Consultar o saldo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /usage","href":"/api-reference/saldo/consultar-o-saldo"}]}]},{"tab":"Novidades","pages":[{"title":"Novidades","href":"/novidades"}]}]},"basePath":"","title":"Enviar uma notificação - Pombo.Digital","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}