API para envio automático de correspondências
O seu sistema envia o PDF e o endereço. Nós imprimimos, envelopamos e postamos nos Correios.
Contas novas ganham R$ 50 em créditos, o suficiente para 3 cartas simples.
POST /v1/letters
{
"to": { "cep": "01001-000", ... },
"file": "fatura-outubro.pdf",
"color": true
}O que o seu sistema faz com a API
A API serve para quem já gera documentos no próprio sistema, como faturas, boletos ou avisos, e precisa que eles cheguem impressos.
Enviar uma correspondência a partir de um PDF
O seu sistema gera o documento, como já faz para o e-mail, e manda o arquivo junto com o endereço do destinatário.
Escolher impressão colorida ou em preto e branco
Um campo da requisição define a cor. O layout, o logo e o texto são os do seu PDF.
Consultar a situação de cada envio
Pelo id da correspondência, você vê se ela foi recebida, impressa ou postada.
Evitar envios duplicados
Com o cabeçalho Idempotency-Key, uma requisição repetida depois de uma falha de rede não cria uma segunda correspondência.
Testar antes de ir para produção
Use uma chave de teste durante o desenvolvimento e troque pela chave de produção quando a integração estiver pronta.
Verificar endereços físicos
A mesma API pede verificações de endereço físico e confere o código que a pessoa digitou.
Exemplo: enviar uma fatura automaticamente
O sistema de faturamento emite a fatura de outubro em PDF e faz esta requisição, com o arquivo e o endereço do cliente.
Requisição
curl https://api.cartaflow.com.br/v1/letters \
-H "Authorization: Bearer $CARTAFLOW_API_KEY" \
-H "Idempotency-Key: fatura-2026-10-0042" \
-F "to[name]=Destinatário Exemplo" \
-F "to[address_line1]=Rua Exemplo, 128" \
-F "to[address_line2]=Ap. 52" \
-F "to[district]=Centro" \
-F "to[city]=São Paulo" \
-F "to[state]=SP" \
-F "to[cep]=01001-000" \
-F "color=true" \
-F "file=@fatura-outubro.pdf"import { readFile } from 'node:fs/promises';
const form = new FormData();
form.append('to[name]', 'Destinatário Exemplo');
form.append('to[address_line1]', 'Rua Exemplo, 128');
form.append('to[address_line2]', 'Ap. 52');
form.append('to[district]', 'Centro');
form.append('to[city]', 'São Paulo');
form.append('to[state]', 'SP');
form.append('to[cep]', '01001-000');
form.append('color', 'true');
form.append('file', new Blob([await readFile('fatura-outubro.pdf')]), 'fatura-outubro.pdf');
const res = await fetch('https://api.cartaflow.com.br/v1/letters', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CARTAFLOW_API_KEY}`,
'Idempotency-Key': 'fatura-2026-10-0042',
},
body: form,
});
const letter = await res.json();import os
import requests
letter = requests.post(
"https://api.cartaflow.com.br/v1/letters",
headers={
"Authorization": f"Bearer {os.environ['CARTAFLOW_API_KEY']}",
"Idempotency-Key": "fatura-2026-10-0042",
},
data={
"to[name]": "Destinatário Exemplo",
"to[address_line1]": "Rua Exemplo, 128",
"to[address_line2]": "Ap. 52",
"to[district]": "Centro",
"to[city]": "São Paulo",
"to[state]": "SP",
"to[cep]": "01001-000",
"color": "true",
},
files={"file": open("fatura-outubro.pdf", "rb")},
).json()Exemplo ilustrativo da API, sujeito a mudanças antes do lançamento. A referência completa da API está na documentação.
Ver documentaçãoResposta
{
"id": "ltr_8Kq2wX4m",
"object": "letter",
"status": "received",
"pages": 2,
"to": {
"name": "Destinatário Exemplo",
"cep": "01001-000",
"city": "São Paulo",
"state": "SP"
},
"created_at": "2026-10-13T14:20:00Z"
}A API responde com o id da correspondência e a situação received. O sistema guarda esse id junto com a fatura.
Depois, consulta o id para saber quando ela foi impressa e postada. A chave de idempotência garante que, se a chamada for repetida, o cliente não recebe duas faturas.
A situação de cada envio
Cada correspondência passa por estas situações. A API mostra em qual delas ela está.
| Código | Situação | O que significa |
|---|---|---|
received | Recebida | A API aceitou a correspondência e ela entrou na fila de impressão. |
printed | Impressa | A correspondência foi impressa e colocada no envelope. |
posted | Postada | A correspondência foi entregue aos Correios. A partir daqui, a entrega segue o serviço postal. |
canceled | Cancelada | O envio foi cancelado antes da impressão. |

Onde a API costuma entrar
Em qualquer sistema que já sabe quando uma correspondência precisa sair.
- ERP e CRMO sistema que guarda os dados do cliente dispara a correspondência sem que ninguém precise exportar arquivos.
- FaturamentoCada fatura ou boleto emitido sai impresso para o endereço do cliente.
- Sistema de cobrançaUm aviso sai quando uma conta vence sem pagamento ou quando uma notificação formal é necessária.
- Agendas e cadastrosLembretes de consulta, revisão ou renovação saem na data certa, a partir da agenda ou do cadastro de clientes.
- Eventos do seu produtoCadastro aprovado, alteração de contrato ou envio de cartão geram a correspondência quando o evento acontece.
A API também faz a verificação de endereço físico, para confirmar que um cliente recebe correspondência no endereço que informou. Para envios sem integração, use o envio em massa pelo painel.
Perguntas sobre a API
Para valores e planos, veja os preços.

O que é uma API de envio de correspondências?
É uma forma de o seu sistema enviar correspondências físicas com uma requisição HTTP. Você manda o conteúdo em PDF e o endereço do destinatário, e a CartaFlow imprime, envelopa e posta nos Correios.
Quais linguagens posso usar?
Qualquer linguagem que faça requisições HTTP. Os exemplos desta página estão em cURL, Node.js e Python, e a mesma chamada funciona em PHP, Java, Go, Ruby ou C#.
Como evito enviar a mesma correspondência duas vezes?
Envie o cabeçalho Idempotency-Key com um valor único por envio, como o número da fatura. Se a requisição for repetida com a mesma chave, a API devolve a correspondência que já foi criada.
Onde fica a documentação da API?
Em docs.cartaflow.com.br, com a referência completa da API. Os exemplos desta página mostram o formato das chamadas.
Existe um ambiente de testes?
Sim. Você desenvolve com uma chave de teste e passa para a chave de produção quando a integração estiver pronta.
Como acompanho um envio?
Consulte a correspondência pelo id. A situação mostra se ela foi recebida, impressa ou postada. Depois da postagem, a entrega segue o serviço postal, e o prazo não é garantido pela CartaFlow.
Quanto custa usar a API?
Envios pela API custam o mesmo que pelo painel: a mensalidade do plano mais o valor de cada envio. A página de preços tem uma calculadora para o seu volume.
Negócios de fora do Brasil podem usar a API?
Sim. A API atende negócios de qualquer país que precisam enviar correspondências para endereços brasileiros. A impressão e a postagem são feitas no Brasil.
Envie sua primeira carta pela API grátis.
Contas novas ganham R$ 50 em créditos, o suficiente para 3 cartas simples.