Automação e scripts¶
A CLI foi feita para rodar também sem ninguém olhando: num script, num cron, num CI. Três
coisas a tornam previsível: a saída em JSON ou CSV, os códigos de saída
estáveis e a separação entre stdout e stderr.
Saída para programas¶
$ inter-pj saldo --json | jq .disponivel
2850.55
Só o resultado vai para stdout. As mensagens de erro, os avisos e o -v vão para stderr,
então redirecionar a saída para um arquivo não mistura uma coisa com a outra. Os formatos
estão em formatos de saída.
Um exemplo: o extrato completo do mês, em CSV, para o sistema contábil.
#!/usr/bin/env bash
set -euo pipefail
inter-pj extrato completo --inicio 2026-08-01 --fim 2026-08-31 --todas-paginas --formato csv > agosto.csv
Reagir ao código de saída¶
Cada categoria de erro tem o seu código, e o script pode decidir pelo número:
codigo=0
inter-pj saldo --json > saldo.json || codigo=$?
case "$codigo" in
0) ;;
3|4) echo "credenciais ou configuração: precisa de uma pessoa" >&2; exit "$codigo" ;;
6) echo "o banco está indisponível: tente de novo mais tarde" >&2; exit "$codigo" ;;
*) echo "falhou com o código $codigo" >&2; exit "$codigo" ;;
esac
Num comando que move dinheiro, trate o 9 à parte: o envio pode ter sido feito, e repeti-lo às cegas
pode pagar duas vezes. Confira antes com o comando da dica; um 6 (429 ou conexão recusada) não
pagou nada e pode ser repetido.
Os códigos estão na tabela de códigos de saída.
Num cron ou num CI¶
- Informe o segredo por variável de ambiente, vinda do cofre de segredos do seu CI:
INTER_CLIENT_SECRET. A CLI nunca o aceita como opção. - Aponte para o arquivo de configuração com
INTER_CONFIG(ou--config) e escolha o perfil comINTER_PERFIL. - O cache de tokens fica em
~/.cache/inter-pj(no Windows,%LOCALAPPDATA%\inter-pj). Para mudar a pasta, useINTER_CACHE_DIRcom um caminho absoluto; a CLI recusa um relativo. Num CI sem estado entre execuções, o cache simplesmente começa vazio. - O certificado e a chave precisam existir como arquivos na máquina que roda o comando. Grave-os
a partir do cofre de segredos, com permissão
600, e apague-os no fim.
Tokens e o limite de chamadas¶
O endpoint de token do Inter aceita apenas 5 chamadas por minuto, e cada token vale 60 minutos. Para não gastar esse limite, a CLI:
- pede tokens só com os escopos de que o comando precisa;
- reaproveita o token entre execuções, num cache local (um arquivo com permissão
600).
Por isso rodar o mesmo comando em sequência, ou vários comandos que pedem os mesmos escopos,
usa um token só. Com --sem-cache, a CLI não lê nem grava o cache, e cada execução pede um
token novo, o que num laço rápido esgota o limite.
$ inter-pj auth token --escopo extrato.read
$ inter-pj auth token --escopo extrato.read --renovar
$ inter-pj auth limpar
O primeiro mostra os escopos e a validade do token (e o reaproveita do cache, se puder); o segundo ignora o cache e pede um novo; o terceiro apaga os tokens em cache do perfil.
Chamar a API diretamente¶
Para chamar a API com outra ferramenta, como o curl, o auth token --exibir imprime apenas
o token. Trate-o como uma senha.
$ curl --cert certificado.crt --key chave.key \
-H "Authorization: Bearer $(inter-pj auth token --escopo extrato.read --exibir)" \
https://cdpj-sandbox.partners.uatinter.co/banking/v2/saldo
Retentativas¶
As consultas que falham por um problema passageiro são repetidas sozinhas: o limite de
requisições (429), a instabilidade do servidor (500, 502, 503, 504) e a falha de
conexão. A espera cresce (1 s, 2 s, ...) e respeita o cabeçalho Retry-After do banco.
$ inter-pj --tentativas 5 saldo
$ inter-pj --sem-retentativa saldo
O padrão é de 3 tentativas. --tentativas N (ou INTER_TENTATIVAS) muda o número, e
--sem-retentativa desliga. Com -v, cada nova tentativa aparece em stderr.
Só quando repetir é seguro
Uma requisição só é repetida quando repetir não pode causar um efeito duplicado. As operações que movimentam dinheiro, nas próximas versões, nunca serão repetidas sozinhas. A arquitetura explica as regras.