Skip to content

Releases: edusouza/inter-pj-cli

inter-pj v0.6.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:34
ed35f3f

Pix Cobrança: cobranças Pix imediatas e com vencimento, com o QR Code, os Pix recebidos e as suas devoluções, locations, lotes de cobranças e pagamentos no sandbox.

Adicionado

  • inter-pj pix cob criar: cria uma cobrança Pix imediata (QR Code dinâmico) com chave, valor (opcionalmente alterável pelo pagador), expiração (30m, 2h, 7d), devedor, texto ao pagador e informações adicionais, conferidos antes de qualquer requisição. O txid é gerado (ou vem de --txid) e aparece no resumo; com ele, um resultado incerto sai com o código 9 e vem com o comando que consulta a cobrança e o que repete a criação sem duplicá-la, na mesma conta (com -p, --config, --ambiente e as demais opções da linha de comando que escolheram a conta, como no Acompanhe com depois da criação). Resumo, confirmação, --sim, --simular e, depois de criada, o QR Code no terminal (--qrcode) ou em PNG (--qrcode-png); uma falha do QR Code depois da criação é um aviso, com o comando que grava a imagem depois, e não um erro (#34).
  • inter-pj pix cob revisar <txid>: altera valor, expiração, devedor, chave, texto e informações adicionais de uma cobrança imediata, ou a remove (--remover), depois de consultá-la e mostrar o antes e o depois; cobranças pagas ou removidas são recusadas sem nenhuma alteração (#34).
  • inter-pj pix cob consultar <txid>: status, valor, criação e expiração no fuso local, devedor, location, os Pix que pagaram a cobrança (com o valor devolvido) e o copia e cola, com --qrcode e --qrcode-png enquanto ela estiver ativa e não tiver expirado (#34).
  • inter-pj pix cob listar: cobranças imediatas criadas em um período (datas com os dias de Brasília, qualquer que seja o fuso da máquina, ou data e hora com fuso; padrão: últimos 30 dias), com filtros de status, CPF/CNPJ do devedor e location, todas as páginas (ou --pagina), em texto com totais, JSON ou CSV com os nomes da API, que no terminal passa pelo filtro da saída em texto (#34).
  • inter-pj pix cobv criar: cria uma cobrança Pix com vencimento pelas opções ou por --arquivo (JSON com os campos da API, ou - para a entrada padrão, com pix cobv modelo de exemplo): vencimento, validade após o vencimento, devedor com e-mail e endereço, multa, juros (ao dia, ao mês ou ao ano, em dias corridos ou úteis, ou um valor por dia), abatimento e desconto até 3 datas ou por dia de antecipação, conferidos antes de qualquer requisição; campos desconhecidos no arquivo são recusados e as mensagens apontam o campo. O resumo avisa sobre multa e juros que não chegam a valer e prazos de desconto já passados. O txid, a confirmação, --simular, o QR Code e o resultado incerto funcionam como em pix cob criar (#35).
  • inter-pj pix cobv modelo: imprime um arquivo de exemplo para pix cobv criar --arquivo, com dados fictícios e vencimento em 30 dias (#35).
  • inter-pj pix cobv revisar <txid>: altera ou remove uma cobrança com vencimento, mostrando o antes e o depois; muda só o que for informado (um novo vencimento mantém a validade, e um desconto sem data vale até a véspera do vencimento) e confere o resultado com a cobrança atual, sem nenhuma alteração se falhar; cobranças pagas ou removidas são recusadas, e um resultado incerto sai com o código 9 e o comando que confere a cobrança (#35).
  • inter-pj pix cobv consultar <txid> e inter-pj pix cobv listar: a cobrança com vencimento, validade, devedor e endereço, recebedor, encargos em palavras, os Pix que a pagaram e o QR Code; a listagem tem os filtros de pix cob listar e --lote, e o rodapé soma o que os Pix das cobranças pagas trouxeram, com os encargos (#35).
  • inter-pj pix recebidos listar e inter-pj pix recebidos consultar <e2eId>: os Pix recebidos em um período, com filtros de cobrança (txid, com ou sem), devolução (com ou sem) e CPF/CNPJ do pagador, todas as páginas (ou --pagina), em texto com totais, JSON ou CSV (no terminal, com o filtro da saída em texto); a consulta mostra o que foi devolvido, o que está em devolução e o que ainda pode ser devolvido, com as devoluções (#36).
  • inter-pj pix devolucao solicitar <e2eId> --valor V|--tudo: devolve um Pix recebido, todo ou em parte, com os trilhos de segurança dos pagamentos: consulta do Pix antes, com recusa local de uma devolução maior que o que resta dele; resumo com o valor por extenso e a produção em destaque; confirmação só de um terminal, ou --sim; limite_por_operacao; --simular; e um id de devolução gerado (ou --id) que torna segura a repetição de um resultado incerto, que sai com o código 9 (um script que repete o comando passa um --id fixo). Repetir um id que o Pix já tem apenas mostra a devolução existente. --natureza e --descricao; com --aguardar, acompanha até o fim (#36).
  • inter-pj pix devolucao consultar <e2eId> <id> [--aguardar]: em que pé está uma devolução; com --aguardar, sai com 5 se ela não foi realizada (com o motivo) e 8 se o tempo acabou. Em solicitar --aguardar, uma falha da espera depois de a API aceitar a devolução mostra a devolução aceita e sai com 9 (#36).
  • inter-pj pix loc criar --tipo cob|cobv, listar (por tipo, com ou sem cobrança, em texto, JSON ou CSV) e consultar <id>: as locations, endereços dos QR Codes das cobranças, para criar antes e usar com --loc (#37).
  • inter-pj pix loc desvincular <id>: desvincula a cobrança de uma location depois de consultá-la e pedir confirmação, avisando que o QR Code deixa de levar à cobrança; uma location sem cobrança é recusada sem nenhuma alteração. Um resultado incerto de criar ou de desvincular sai com o código 9 e o comando que o confere (#37).
  • inter-pj pix lote-cobv criar <id> --arquivo e revisar <id> --arquivo: cria ou altera um lote de cobranças com vencimento a partir de um arquivo JSON (nos campos da API) ou de uma planilha CSV (uma cobrança por linha, com os caminhos dos campos da API nas colunas), com pix lote-cobv modelo json|csv de exemplo. Todas as cobranças são conferidas antes do envio, e um arquivo com alguma inválida é recusado inteiro, com a linha e o campo de cada problema, txids repetidos e os estragos que o Excel faz em números longos e zeros à esquerda incluídos. Resumo com o total e as primeiras cobranças, confirmação, --sim e --simular; na revisão, célula vazia não muda nada e status remove a cobrança (#38).
  • inter-pj pix lote-cobv consultar <id> [--aguardar], sumario <id>, situacao <id> em-processamento|criada|negada e listar (em texto, JSON ou CSV, no terminal com o filtro da saída em texto): em que pé está cada cobrança do lote, com o motivo das negadas; com --aguardar, sai com 5 se alguma foi negada e 8 se o tempo acabou (#38).
  • inter-pj pix cob pagar <txid>, inter-pj pix cobv pagar <txid> e inter-pj pix sandbox pagar-qrcode --copia-e-cola: pagam cobranças Pix no sandbox, para testar o fluxo completo, pelo valor da cobrança ou do código (ou --valor), com o comando que confere o pagamento na mesma conta; em produção, são recusados antes de qualquer requisição (#39).
  • Biblioteca: InterClient::pix, a API Pix, com as cobranças imediatas (cob): Pix::criar_cob (com o seu txid, que torna segura a repetição de uma criação de resultado incerto), criar_cob_sem_txid, revisar_cob (inclusive a remoção), consultar_cob (com os Pix que a pagaram e suas devoluções) e listar_cobs/listar_todas_cobs por período de criação, com filtros de CPF/CNPJ, location e status. CobSolicitada::validar confere localmente a chave Pix, os valores (até 10 dígitos e 2 casas), a expiração, o devedor, os textos, as informações adicionais e as regras do Pix Saque e do Pix Troco; Txid valida (26 a 35 letras e dígitos) e gera txids (#34).
  • Biblioteca: cobranças Pix com vencimento (cobv): Pix::criar_cobv, revisar_cobv (inclusive a remoção), consultar_cobv e listar_cobvs/listar_todas_cobvs, que também filtram pelo lote. CobvSolicitada::validar confere o devedor (nome, e-mail, endereço, UF e CEP), a multa e o abatimento (valor fixo ou percentual), os juros (as 8 modalidades), os descontos (até 3 datas, antes do vencimento, ou por dia de antecipação) e os valores, que precisam ser menores que o da cobrança quando fixos (#35).
  • Biblioteca: Pix recebidos e devoluções: Pix::listar_pix_recebidos/listar_todos_pix_recebidos (período, txid, com ou sem cobrança, com ou sem devolução, CPF/CNPJ do pagador), consultar_pix_recebido, devolver (com o seu IdDevolucao, que torna segura a repetição; natureza e descrição conferidas antes do envio) e consultar_devolucao (#36).
  • Biblioteca: locations de payload — Pix::criar_loc, listar_locs/listar_todas_locs (com ou sem cobrança, por tipo), consultar_loc (com o txid vinculado) e desvincular_loc (#37).
  • Biblioteca: lotes de cobranças com vencimento — Pix::criar_lote_cobv (cada cobrança conferida como na criação avulsa, com o erro apontando o item, e sem txids repetidos), revisar_lote_cobv, consultar_lote_cobv (situação e problema de cada cobrança), sumario_lote_cobv, consultar_lote_cobv_por_situacao e listar_lotes_cobv/listar_todos_lotes_cobv (#38).
  • Biblioteca: pagamentos de cobranças Pix no sandbox — Pix::pagar_cob_no_sandbox, pagar_cobv_no_sandbox e pagar_copia_e_cola_no_sandbox, recusados fora do sandbox antes de qualquer requisição (#39).

Alterado

  • Os códigos de saída 5 e 8 valem também para pix devolucao solicitar, pix devolucao consultar e pix lote-cobv consultar com --aguardar (devolução não realizada ou cobrança do lote negada; tempo esgotado).
  • Os arquivos JSON de --arquivo (cobranças, DARF, lotes de pagamentos e de cobranças) recusam um campo repetido no mesmo objeto, com a linha, em vez de ficar com o último em silêncio (#483).
  • Na saída em texto, as tabelas e os blocos de rótulo e valor trocam por � também os caracteres que invertem ou escondem texto (controles bidirecionais, de largura zero, o BOM e os separadores de linha e de parágrafo), e o filtro vale para os títulos e o...
Read more

inter-pj v0.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:17
2f43b74

Cobranças: boletos com Pix para os clientes da empresa, da emissão ao cancelamento, com o QR Code do Pix no terminal e em PNG.

Adicionado

  • inter-pj cobranca emitir: emite uma cobrança com boleto e Pix pelas opções (casos simples) ou por --arquivo (JSON com os campos da API, inclusive beneficiário final e nota fiscal, ou - para a entrada padrão), conferida localmente com mensagens que apontam a opção ou o campo; campos desconhecidos no arquivo são recusados. O resumo mostra o valor por extenso, até quando vale o desconto e quando a cobrança não paga é cancelada, e avisa sobre multa e juros que não chegam a valer (--dias-agenda 0 cancela a cobrança no vencimento), prazo de desconto já passado e vencimento no mesmo dia (só até as 19h59). Confirmação, --sim e --simular; sem chave de idempotência, um resultado incerto sai com o código 9 e vem com o comando que procura a cobrança antes de emiti-la de novo. Com --aguardar [--timeout 60s], espera a emissão e mostra o boleto e o Pix, com --qrcode e --qrcode-png (#28).
  • inter-pj cobranca modelo: imprime um arquivo de exemplo para cobranca emitir --arquivo, com dados fictícios e vencimento em 30 dias (#28).
  • inter-pj cobranca consultar <codigo>: situação, valores, encargos, pagador, boleto (linha digitável formatada e código de barras) e Pix de uma cobrança, em texto ou JSON; --qrcode desenha o QR Code do Pix no terminal (preto no branco em qualquer tema; sem cores com NO_COLOR ou saída redirecionada) e --qrcode-png o grava em PNG, depois de conferir o CRC do copia e cola; sem um Pix que dê o QR Code, os dois terminam com o código 5, sem mostrar a cobrança (#29, #31).
  • inter-pj cobranca pdf <codigo> [--saida ARQUIVO|-] [--sobrescrever]: PDF da cobrança com o boleto e o QR Code, gravado com permissão 600 (#29).
  • inter-pj cobranca listar: cobranças de um período por vencimento (padrão), emissão ou pagamento, com filtros de situação, pagador, CPF/CNPJ, seu número e tipo, ordem e todas as páginas (ou --pagina), em texto com totais, JSON ou CSV com os nomes da API (#29).
  • inter-pj cobranca sumario: quantidade e valor das cobranças do período por situação, com total, em texto, JSON ou CSV (#29).
  • inter-pj cobranca cancelar <codigo> --motivo TEXTO: cancela uma cobrança depois de consultá-la, mostrá-la e pedir confirmação; cobranças pagas, canceladas ou expiradas são recusadas sem nenhuma alteração, e, sem terminal nem --sim, nenhuma requisição é feita. Um resultado incerto (tempo esgotado, erro 5xx) sai com o código 9, como em editar e pagar, com o comando que confere a cobrança (#30).
  • inter-pj cobranca editar <codigo> [--valor] [--vencimento]: altera o valor e o vencimento, os únicos campos que a API aceita, mostrando o antes e o depois; com --aguardar, acompanha a alteração até o fim, saindo com 5 se ela não foi feita e 8 se o tempo acabou (#30).
  • inter-pj cobranca edicao <codigo-edicao> [--aguardar [--recem-pedida]]: mostra em que pé está uma alteração; --recem-pedida, que o comando sugerido por editar traz, continua a espera enquanto a API ainda não mostra a alteração (#30).
  • inter-pj cobranca pagar <codigo> --com boleto|pix: paga uma cobrança no sandbox, para testar o fluxo completo; em produção, é recusado antes de qualquer requisição (#32).
  • Biblioteca: InterClient::cobranca, com Cobranca::emitir (cobrança com boleto e Pix, conferida localmente: seu número, valor, pagador com CPF/CNPJ, UF e CEP, desconto, multa, mora, mensagem, formas de recebimento e nota fiscal, cuja chave de acesso confere número e série; o tipo de pessoa vem do documento) e Cobranca::consultar (situação, valores, encargos, boleto, Pix e nota fiscal) (#28).
  • Biblioteca: Cobranca::listar e listar_todas (período por vencimento, emissão ou pagamento, situação, pagador, seu número, tipo e ordenação, com páginas de até 1.000), sumario (quantidade e valor por situação), pdf, cancelar (com o motivo conferido por cobranca::motivo_cancelamento), editar (vencimento e valor) com consultar_edicao, e pagar_no_sandbox, recusado fora do sandbox sem nenhuma requisição (#29, #30, #32).

Alterado

  • Os códigos de saída 5 e 8 valem também para cobranca emitir, cobranca editar e cobranca edicao com --aguardar (cobrança não emitida ou alteração não feita; tempo esgotado), e o 9, para uma consulta de cobranca emitir ou cobranca editar com --aguardar que falha de um jeito que esperar não resolve. Nesses dois comandos, os erros 8 e 9 trazem o código da cobrança ou da alteração pedida e o comando que a acompanha. 429, 5xx e falhas de rede durante a espera só adiam a próxima consulta, e, em cobranca edicao, um código que a API não conhece é um erro na hora, a não ser com --recem-pedida: aí o 404 só adia a próxima consulta e, se durar até o fim do tempo, o comando sai com 8, como em editar.

inter-pj v0.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 11:45
4d5d290

Pagamentos: boletos, contas e tributos, DARF e lotes, com os trilhos de segurança do Pix.

Adicionado

  • inter-pj pagamento boleto pagar <codigo>: paga ou agenda (--data) boletos, contas de consumo e tributos pela linha digitável ou pelo código de barras, conferidos localmente. Valor e vencimento vêm do código quando ele os traz, e o resumo avisa, mostrando os dois lados, quando --valor ou --vencimento diferem dele, e também quando o pagamento fica para depois do vencimento; --beneficiario pede à API que confira o CPF/CNPJ de quem recebe. Mesmos trilhos do Pix: confirmação, --sim, --simular e limite_por_operacao. Como a API não tem chave de idempotência, um resultado incerto sai com o código 9 e vem com o comando que confere o pagamento antes de repeti-lo, na mesma conta (com -p, --config, --ambiente e as demais opções da linha de comando que escolheram a conta) e com o aviso de que uma lista vazia logo depois do erro não prova que nada foi pago (#23, #336).
  • inter-pj pagamento boleto listar: pagamentos por código de barras de um período (até 90 dias; padrão: incluídos nos últimos 30 dias), por data de inclusão, pagamento ou vencimento (--filtrar-por), código (--codigo) ou transação (--codigo-transacao), em texto, JSON ou CSV (#24).
  • inter-pj pagamento boleto cancelar <codigo-transacao>: cancela um agendamento depois de mostrá-lo (beneficiário, valor, data e status) e pedir confirmação; sem terminal, exige --sim e não faz nenhuma requisição (#24).
  • inter-pj pagamento darf pagar: DARF sem código de barras pelas opções ou por --arquivo (JSON com os campos da API, ou - para a entrada padrão), validado localmente com mensagens que apontam o campo; campos desconhecidos no arquivo são recusados. O resumo mostra principal, multa, juros e o total por extenso, e avisa sobre DARF vencido sem acréscimos. Mesmos trilhos dos demais pagamentos. Misturar --arquivo com uma opção do DARF, ou dar uma opção sem as outras, é recusado com o que fazer (--multa vai em valorMulta no arquivo). Os textos da resposta aparecem sem quebras de linha nem caracteres de controle (#25, #355, #360).
  • inter-pj pagamento darf listar: DARFs pagos em um período, ou incluídos nos últimos 30 dias, por código da receita ou da solicitação, em texto, JSON ou CSV; o CSV mostrado no terminal passa pelo filtro da saída em texto (#25, #355).
  • inter-pj pagamento lote enviar --arquivo: lotes de 2 a 150 boletos, contas, tributos e DARFs a partir de um arquivo JSON (os campos da API, com tipoPagamento) ou de uma planilha CSV (, ou ;, com ou sem BOM, como o Excel salva). O lote inteiro é conferido antes do envio, e todos os problemas são listados com a linha ou a posição e o campo, sem enviar nada; o resumo mostra os totais por tipo, cada pagamento e avisos (vencimentos passados, valores diferentes dos do código). Pagamentos repetidos no arquivo (o mesmo código, ou o mesmo DARF) são recusados, porque com --sim um aviso não impediria o pagamento em dobro; --permitir-repetidos os aceita. Mesmos trilhos dos demais pagamentos; os comandos sugeridos levam as opções que escolheram a conta (#26, #372, #381).
  • inter-pj pagamento lote consultar <id-lote>: status do lote e de cada pagamento; com --aguardar [--timeout 5m], decide pelo status de cada pagamento: sai com 0 quando todos foram pagos ou agendados (avisando dos agendados), 5 quando algum não foi feito ou tem um status desconhecido, e 8 quando o tempo acabou com o lote em processamento ou com pagamentos aguardando aprovação. Uma consulta que falha durante a espera (429, 5xx, rede) não a interrompe (#26, #369, #376).
  • inter-pj pagamento lote modelo [json|csv]: arquivos de exemplo com dados fictícios e os códigos de teste do sandbox. No CSV, as células que o Excel estraga ao abrir o arquivo (números longos em notação científica, códigos da receita sem o zero à esquerda) são recusadas com a explicação (#26).
  • Biblioteca: boleto::CodigoBarras valida e decodifica localmente a linha digitável (47 dígitos para boletos, 48 para contas e tributos) e o código de barras (44 dígitos): dígitos verificadores (módulos 10 e 11), conversão entre linha e código, banco, segmento, valor e vencimento, considerando o reinício do fator de vencimento em 22/02/2025 (#23).
  • Biblioteca: Banking::pagar_boleto (boletos, contas e tributos com código de barras, com validação local do valor), Banking::pagamentos (filtros por período, tipo de data, código e transação) e Banking::cancelar_pagamento (agendamentos) (#23, #24).
  • Biblioteca: Banking::pagar_darf (DARF sem código de barras, com validação local do código da receita, da referência, dos textos e dos valores; PagamentoDarfError::campo diz qual campo falhou) e Banking::darfs (filtros por período, código da receita e solicitação) (#25).
  • Biblioteca: Banking::enviar_lote (lotes de 2 a 150 boletos e DARFs, validados item a item) e Banking::consultar_lote (status do lote e de cada pagamento) (#26).
  • Biblioteca: Error::may_have_been_processed diz se uma operação pode ter sido processada apesar do erro (só depois que a requisição dela foi enviada), para quem decide se pode repeti-la (#338).

Alterado

  • limite_por_operacao vale também para os pagamentos: boletos, DARFs e cada pagamento de um lote.
  • Os códigos de saída 5 e 8 valem também para pagamento lote consultar --aguardar (algum pagamento não foi feito; tempo esgotado, também com pagamentos aguardando aprovação).
  • Novo código de saída 9: um envio cujo resultado ficou incerto (tempo esgotado, erro 5xx, resposta ilegível depois do envio) sai com ele, e não mais com 6 ou 1, para que um script distinga "pode ter sido feito, confira" de "não foi feito, pode repetir" (um 429 ou uma conexão recusada continuam com 6). Vale para os pagamentos e para pix enviar. Uma falha ao pedir o token de acesso não é mais tomada por um envio incerto, porque nada foi enviado (#335, #338).
  • Biblioteca: as falhas de rede do pedido do token de acesso são Error::TokenTransport, e não mais Error::Transport, que fica para as da própria operação (#338).
  • Os erros de uso (uma opção desconhecida, um valor inválido, opções que não combinam, um argumento que falta) saem em português, como todas as outras mensagens, com as mesmas dicas e a linha de uso; o clap os escrevia em inglês. O código de saída continua 2 (#360).

Corrigido

  • As datas seguem o calendário do banco: "hoje" é o dia em Brasília, qualquer que seja o fuso da máquina, em pagamento boleto pagar (agendamento, data passada, aviso de vencimento), nos períodos padrão das listagens e em pix enviar. Num servidor em UTC perto da meia-noite, um agendamento para amanhã era tomado por um pagamento de hoje e pago na hora (#337).
  • A saída em texto troca por � os caracteres de controle vindos da API (nomes, descrições, status, mensagens de erro): as sequências de escape não chegam mais ao terminal, onde poderiam reescrever a tela, e uma quebra de linha num campo do extrato ou das consultas não simula mais uma linha. O filtro tem limites: as mensagens de erro da API ainda podem ocupar mais de uma linha, e os caracteres que invertem ou escondem texto (bidirecionais, de largura zero) não são trocados. O JSON continua com o texto exato; o CSV também, salvo o apóstrofo que protege as planilhas de fórmulas (#403).

inter-pj v0.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:07
58672c9

Pix: envio e consulta, com trilhos de segurança.

Adicionado

  • inter-pj pix enviar: Pix por chave (--chave), código copia e cola (--copia-e-cola) ou dados bancários (--ispb, --agencia, --conta, --tipo-conta, --documento, --nome), com descrição e agendamento (--data) (#20).
  • Trilhos de segurança do envio (#19):
    • validação local da chave (CPF/CNPJ com dígitos verificadores, inclusive o CNPJ alfanumérico; e-mail; celular +55; chave aleatória), do valor, da descrição e dos dados bancários;
    • resumo antes do envio, com o valor por extenso e o ambiente de produção em destaque;
    • confirmação [s/N] digitada em um terminal (respostas de pipe não valem) ou --sim para scripts;
    • --simular, que mostra a requisição sem enviar nada;
    • chave de idempotência exibida e --id-idempotente para repetir um envio interrompido sem pagar duas vezes, com aviso quando o resultado é incerto (tempo esgotado, 5xx);
    • limite_por_operacao no perfil, que vale mesmo com --sim.
  • Copia e cola decodificado e conferido localmente (CRC16): o resumo mostra recebedor, cidade, chave ou cobrança, identificador e mensagem; o valor do código prevalece em códigos estáticos; textos do código passam por um filtro de caracteres de controle (#20).
  • inter-pj pix consultar <codigo>: status, recebedor, erros e histórico de um Pix enviado; --aguardar [--timeout 60s] consulta a cada 6 s até um status final (#21).
  • Valores em reais aceitos como 150,00, 1.500,00 ou 150.00, recusando formas ambíguas (1.500).
  • Códigos de saída 7 (operação cancelada na confirmação) e 8 (tempo de espera esgotado em pix consultar --aguardar).
  • Biblioteca: Banking::enviar_pix (com x-id-idempotente; repetido automaticamente só quando certamente não foi processado) e Banking::consultar_pix; documento::Documento, pix::ChavePix, pix::BrCode, IdIdempotente e Error::InvalidInput.
  • Biblioteca: documento::Documento valida CPF e CNPJ (inclusive o CNPJ alfanumérico), pix::ChavePix reconhece e normaliza chaves Pix (CPF, CNPJ, e-mail, celular +55 e chave aleatória) e pix::BrCode decodifica o Pix copia e cola, conferindo o CRC16 (#20).
  • Biblioteca: Banking::enviar_pix (por chave, dados bancários ou copia e cola, com x-id-idempotente) e Banking::consultar_pix (status e histórico), com validação local do pagamento e repetição automática só quando o envio certamente não foi processado (#20, #21).
  • Site de documentação no GitHub Pages (https://edusouza.github.io/inter-pj-cli/), construído com o Zensical a partir de site/, para quem usa a CLI e para quem a desenvolve: primeiros passos, guias, a referência de comandos, a segurança, a arquitetura e como contribuir. A referência de comandos é gerada da ajuda do binário e as demais páginas derivadas (changelog, segurança, arquitetura, roadmap, contribuição e biblioteca) são cópias dos arquivos do repositório, com os links reescritos.
  • O crate sitegen, que gera essas páginas e confere os comandos inter-pj ... citados nas páginas escritas à mão: um comando que não existe mais reprova a construção do site.
  • O workflow pages.yml: constrói o site em modo estrito nos pull requests e o publica a partir da main.

inter-pj v0.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 13:45
5f28f0c

Extrato: consulta, extrato enriquecido, PDF e exportação.

Adicionado

  • inter-pj extrato [--inicio] [--fim] [--dividir-periodo]: transações do período (padrão: últimos 30 dias), com entradas, saídas e resultado; o limite de 90 dias da API é conferido antes da chamada e períodos maiores podem ser divididos (#13).
  • inter-pj extrato completo: detalhes de cada transação (Pix, boletos, pagamentos, transferências, tarifas...), filtros --tipo-operacao e --tipo-transacao, paginação manual (--pagina, --tamanho-pagina) ou --todas-paginas, com modo scroll acima de 10.000 transações e dicas para os erros de scroll (#14).
  • inter-pj extrato pdf [--saida ARQUIVO|-] [--sobrescrever]: PDF do período gravado com permissão 600, sem sobrescrever arquivos por engano (#15).
  • --formato csv (RFC 4180) para saldo e extrato, com --separador ';' para o Excel em português e proteção contra fórmulas em textos de terceiros (#16).
  • Retentativas automáticas com espera exponencial e Retry-After para 429, 5xx e falhas de conexão, somente em requisições seguras de repetir; --tentativas N, INTER_TENTATIVAS e --sem-retentativa (#17).
  • Biblioteca: Banking::extrato, extrato_completo, extrato_completo_todas, iniciar_scroll, continuar_scroll e extrato_pdf; Periodo, FiltroExtrato, TipoTransacao, TipoOperacao, Detalhe e RetryPolicy.

Alterado

  • Tempo limite das requisições da CLI ampliado para 60 s (páginas de extrato e PDFs grandes).

inter-pj v0.1.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 12:47
21104fa

Diagnóstico do arquivo de configuração.

Adicionado

  • inter-pj config verificar: confere o arquivo de configuração e o perfil. Mostra cada problema com a linha e a correção: caminhos do Windows entre aspas duplas, sintaxe do TOML, o que falta no perfil, arquivos que não existem, certificado e chave aceitos pela biblioteca TLS, conta corrente e permissões. Sai com código 3 quando encontra um erro, e --json dá o resultado para scripts (#164).
  • inter-pj config verificar --corrigir: troca as aspas duplas dos caminhos do Windows por aspas simples, mantendo recuo, comentários e fim de linha, e guarda o original em config.toml.bak (permissão 600, sem sobrescrever uma cópia anterior) (#164).

Corrigido

  • Um caminho do Windows entre aspas duplas (certificado = "C:\Users\...") deixava de ser um erro em inglês sobre dígitos unicode. Agora a mensagem, em português, explica o escape do TOML, indica as aspas simples e sugere o config verificar. O conteúdo da linha continua sem aparecer, porque pode ter o client_secret (#164).
  • Os comandos avisam quando um caminho lido do arquivo tem um caractere de controle. Isso acontece quando \n ou \t entre aspas duplas viram uma quebra de linha ou uma tabulação (#164).
  • A linha informada num erro do arquivo de configuração saía com um a menos quando o erro apontava o início de uma linha, como numa chave desconhecida (#164).
  • O modelo do config init e o README usam aspas simples nos caminhos e explicam o motivo (#164).

inter-pj v0.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 12:47
632b8ac

Primeira versão: autenticação e saldo.

Adicionado

  • inter-pj saldo [--data AAAA-MM-DD]: saldo disponível, bloqueios e limite, em texto (R$ no formato brasileiro) ou JSON com valores exatos (#8).
  • inter-pj auth token (escopos, --renovar, --exibir) e inter-pj auth limpar [--todos] (#6, #7).
  • inter-pj config init|caminho|mostrar: modelo de configuração com permissão 600, locais padrão e configuração efetiva com a origem de cada valor e segredos ocultos (#5).
  • Perfis em arquivo TOML com precedência flag > variável de ambiente > arquivo; client_secret apenas por INTER_CLIENT_SECRET ou arquivo (#5, #4).
  • Autenticação OAuth2 client credentials com mTLS via rustls, escopos mínimos por comando, renovação automática após 401 e verificação dos escopos concedidos (#6).
  • Cache local de tokens por integração (arquivo 600, gravação atômica), respeitando o limite de 5 chamadas/min do endpoint de token (#7).
  • Mensagens de erro em português a partir do formato problem details da API, com dicas, e códigos de saída documentados (#9).
  • Biblioteca inter-pj reutilizável, com registro de endpoints verificado contra a especificação OpenAPI (#2, #10).
  • CI com formatação, clippy, testes em Linux/macOS/Windows, MSRV 1.88, documentação, cargo-deny e gitleaks; workflow de release com binários e checksums (#3, #11).