Skip to main content

shade-plugins-integra-contador

Consulta a situação fiscal e a Caixa Postal, gera o DAS do Simples e lista as procurações de cada cliente pela API oficial Integra Contador do SERPRO, de dentro de um robô do shade-sdk. O contrato e o e-CNPJ são os do escritório, e a cobrança do SERPRO é direto com ele. Sem tela e sem captcha: a Receita responde pela API.

O escritório contrata a Integra Contador na Loja SERPRO e recebe a consumer key e o secret. Cada cliente alcança o escritório pela procuração eletrônica que deu no e-CAC. No shade.toml do robô:

[hosts]
permitidos = ["autenticacao.sapi.serpro.gov.br", "gateway.apiserpro.serpro.gov.br"]

[credenciais]
nomes = ["INTEGRA_CONTADOR_CONSUMER_KEY", "INTEGRA_CONTADOR_CONSUMER_SECRET"]

[certificado]
modo = "fixo"
nome = "Escritório"   # o nome do e-CNPJ no cofre, com autenticacao.sapi.serpro.gov.br nos hosts dele

[config]
integra_contador_cnpj = "12345678000190"   # o CNPJ do contrato

[plugins]
integra-contador = "0.1.1"
from pathlib import Path

import shade_plugins_integra_contador as integra

# O PDF do relatório de situação fiscal: espera o tempo que o SERPRO informa.
pdf = integra.situacao_fiscal(item["cnpj"])
Path("situacao.pdf").write_bytes(pdf)
item.anexar("situacao.pdf")

# As mensagens a partir de uma data, com o conteúdo de cada uma.
for mensagem in integra.caixa_postal(item["cnpj"], "2026-10-01"):
    print(mensagem["data_envio"], mensagem["assunto"])

# A guia do DAS: gerar não paga nem declara.
guia = integra.das_simples(item["cnpj"], "2026-10")
Path("das.pdf").write_bytes(guia["pdf"])
item.saida(vencimento=guia["vencimento"], total=str(guia["valores"]["total"]))

# As procurações que o cliente deu ao escritório.
for procuracao in integra.procuracoes(item["cnpj"]):
    print(procuracao["expira_em"], procuracao["sistemas"])

As operações

Operação Devolve Serviço do SERPRO
situacao_fiscal(cnpj) os bytes do PDF SITFIS: protocolo e relatório
caixa_postal(cnpj, desde=None, *, nao_lidas=False, conteudo=True, limite=100) lista de mensagens, da mais nova para a mais antiga Caixa Postal: lista e detalhe
das_simples(cnpj, competencia, *, consolidar_em=None) pdf, numero_documento, competencia, vencimento, limite_acolhimento, valores (Decimal), observacoes PGDAS-D: gerar DAS
procuracoes(cnpj) lista com expira_em e sistemas Procurações

A linha digitável do DAS não vem na resposta da API: ela está no PDF, e o shade-plugins-documentos-fiscais confere o boleto.

  • Só leitura: nenhuma operação declara nem paga nada, então todas rodam também no ensaio.
  • Custo: cada consulta conta na fatura do SERPRO. Em caixa_postal, cada conteudo é uma consulta a mais; conteudo=False fica só com a lista. situacao_fiscal espera o tempo informado antes de pedir o relatório, porque a resposta "ainda em processamento" também é cobrada.
  • Caixa Postal cheia: a lista traz as mais recentes, até limite; .completa é False se sobrou mensagem do período. A mensagem cujo conteúdo não coube no prazo volta com conteudo None.
  • Prazo: timeout= (120 s) vale para a chamada inteira, espera e retentativas incluídas.

Os erros

Erro Quando O que o robô faz
IntegraIndisponivel SERPRO fora do ar, sem resposta, limite de pedidos, resposta fora da forma documentada, relatório que não ficou pronto no prazo o laço repete o item, pela política de retentativa do robô
RecusaDoIntegra (ErroDeNegocio, com motivo, status e codigo) sem_procuracao, contribuinte_invalido, servico_nao_contratado, contrato_de_outro_cnpj, certificado_recusado, autenticacao_recusada, acesso_negado, entrada_invalida, nao_encontrado o item falha com o motivo, sem repetir
CredencialRecusada o SERPRO recusou a consumer key ou o secret o lote para: confira na Loja SERPRO
SemCertificado o e-CNPJ não veio do cofre, venceu ou não inclui o host do login o item fica retido

Segurança

  • O e-CNPJ chega em memória e nunca vai a disco. Ele só é apresentado no login, ao host de autenticação do SERPRO.
  • A consumer key, o secret e os tokens não aparecem em evento, mensagem de erro nem exceção.
  • O plugin fala só com os dois hosts do SERPRO e não segue redirecionamento.
  • A mensagem de erro traz o código do SERPRO, nunca o texto dele, que costuma citar o CNPJ.

Licença Apache-2.0.

Metadata

Release files for shade-plugins-integra-contador 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for shade-plugins-integra-contador 0.1.1
File Interpreter ABI Platform Actions
shade_plugins_integra_contador-0.1.1-py3-none-any.whl Python 3 none any Details for shade_plugins_integra_contador-0.1.1-py3-none-any.whl

Release files / shade_plugins_integra_contador-0.1.1-py3-none-any.whl

Download URL shade_plugins_integra_contador-0.1.1-py3-none-any.whl
Size 25.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e323b1e2381255ed2120eb156e0e1fc75e3db6ac21a679dd112f66887ffbc9d
BLAKE2b-256 checksum
How to use checksums
a53735647f9bd9c71a3f53e29ac92248a14f28726f730fa50a5ba8c9328f3fac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Security for shade-plugins-integra-contador 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page