Esta ferramenta de linha de comando (CLI) permite o envio em lote de mensagens para a Caixa Postal do Gov.br, utilizando arquivos CSV para dados dos cidadãos e JSON para configurações de envio.
- Sistema Operacional: Linux, macOS ou Windows (com suporte a Make).
- Linguagem: Python 3.10 ou superior instalado.
- Acesso: Chave de API (
api_key) e Templates aprovados no Gov.br.
O sistema funciona lendo pares de arquivos dentro da pasta data/. Para cada envio, você precisa de um arquivo .csv (dados) e um arquivo .json (configuração) com o nome correspondente, isso pode ser gerado com o assistente de configuração.
Crie um arquivo nomedoenvio.csv.
- Obrigatório: Deve conter uma coluna chamada
cpf. - Opcional: Outras colunas que servirão como variáveis (tags) para o template da mensagem.
- Formatação: O sistema remove automaticamente pontuação (pontos e traços) dos CPFs e garante 11 dígitos.
Exemplo (data/aviso_vacinacao.csv):
cpf,nome,data_agendamento,local
123.456.789-00,João Silva,25/10/2023,Posto Central
98765432100,Maria Oliveira,26/10/2023,Posto SulA ferramenta possui um assistente de configuração automatizado.
-
Abra o terminal na pasta raiz do projeto.
-
Execute o comando de configuração:
make setupO que isso faz? Cria uma pasta
venv, atualiza opipe instala todas as bibliotecas necessárias (Pandas, Requests, Aiohttp, etc.).
Tem duas formas de configurar os arquivos
1. Usando o comando make setup
2. Copiando o arquivo .csv para a pasta datae criando um .json para cada envio.
O comando make setup vai perguntar a pasta onde está o arquivo .csvaponte o caminho e responda as perguntas relacionadas ao envio para criação do arquivo de configuração.
Crie um arquivo .json na pasta data/ com o mesmo nome do CSV adicionado de .json.
Copie seu arquivo .csvpara a pasta data/
Atenção: Se o CSV é
aviso_vacinacao.csv, o JSON deve seraviso_vacinacao.csv.json.
Estrutura do JSON:
{
"api_key": "SUA_CHAVE_DE_API_AQUI",
"env": "HOMOLOGACAO",
"assunto": "Aviso de Vacinação",
"template_id": "ID_DO_TEMPLATE_NO_GOVBR",
"versao": "1.0",
"tags": ["nome", "data_agendamento", "local"]
}Campos:
env: Use"HOMOLOGACAO"para testes ou"PRODUCAO"para envios reais.tags: Lista exata dos nomes das colunas do CSV que devem ser enviadas para preencher o template.template_id: O ID do modelo cadastrado no sistema do Gov.br.
Após colocar os arquivos na pasta data/, execute:
make enviarO sistema irá:
- Ler todos os CSVs da pasta
data. - Validar se existe o JSON de configuração correspondente.
- Processar os envios em lotes (padrão de 250.000 destinatários por lote).
- Exibir o progresso no terminal.
Durante a execução, o sistema gera logs detalhados na pasta data/ e exibe um resumo no terminal.
Exemplo de saída no terminal:
--------------STATS_CAIXA_POSTAL--------------
SUCESSO: 1500
FALHA: 5
CPF não encontrado: 3
Erro de validação: 2
Arquivos de Log:
*.out_msg.log: Contém o detalhe técnico da resposta da API para cada lote enviado.
Para remover arquivos de log, cache e arquivos temporários gerados após o envio:
make limparPara remover tudo, incluindo o ambiente virtual (resetar a instalação):
make limpar-setup- Erro "Python 3 não está instalado": Instale o Python no seu sistema operacional.
- O script roda mas não envia nada: Verifique se o arquivo JSON tem exatamente o nome
nome_do_csv.csv.json. - Erro de Token/Auth: Verifique se a
api_keyestá correta e se oenvestá apontando para o ambiente correto (HOMOLOGACAO/PRODUCAO).
- A Caixa Postal Gov.br é um domicílio digital do cidação, forte e seguro, autenticado pelo gov.br. Nela é possível os órgaõs da Administração enviar comunicação personalizada aos cidadadões.
O órgão da administração pública define a estratégia de comunicação e o conteúdo da mensagem.
-
Criação do Template: O órgão desenha o modelo da mensagem, que é composto por textos fixos e variáveis (ex:
{{nome}},{{protocolo}}) para personalização.Homologação pelo MGI: O template deve ser cadastrado previamente na Caixa Postal, garantindo conformidade com a portaria SGD/MGI 4.444/2024.
-
Consulta de Disponibilidade: O órgão utiliza o endpoint
GET /orgao/templatespara listar e confirmar os modelos ativos e suas respectivas versões.
Com o template aprovado, o órgão prepara os dados dos destinatários.
- Estrutura da Lista: Para cada envio, é necessário associar o CPF do cidadão às Tags (variáveis) que preencherão o template.
O órgão decide como e quando a mensagem deve chegar ao cidadão.
-
Envio Imediato: Utiliza o
POST /orgao/mensagem/enviarpara disparos diretos e instantâneos. -
Criação de Eventos: Para campanhas estruturadas, utiliza-se o
POST /orgao/eventos, onde é possível agrupar várias listas sob um mesmo nome de evento. -
Gestão de Tempo: O endpoint
POST /orgao/eventos/agendarpermite programar o disparo para uma data futura ou reagendar listas existentes. Se a data não for enviada, o sistema assume disparo imediato.
Documentação Completa: https://api-orgaos-cxpostal.estaleiro.serpro.gov.br/swagger/index.html