Ir para o conteúdo

Uso

Configuração

Toda chamada usa um SeiClient configurado com o endpoint do seu SEI e as credenciais do serviço. Os valores também podem vir de variáveis de ambiente SEIGOV_*.

from seigov import SeiClient

sei = SeiClient(
    url="https://sei.<seu-orgao>.gov.br/sei/ws/SeiWS.php",
    sigla_sistema="MEU_SISTEMA",
    identificacao_servico="minha-chave",
    id_unidade="110000001",   # opcional; padrão para as operações
)
Variável de ambiente Campo
SEIGOV_URL url
SEIGOV_SIGLA_SISTEMA sigla_sistema
SEIGOV_IDENTIFICACAO_SERVICO identificacao_servico
SEIGOV_ID_UNIDADE id_unidade

Consultas

proc = sei.consultar_procedimento("12.1.000000077-4")
doc  = sei.consultar_documento("0003934")
pub  = sei.consultar_publicacao(id_documento="1140000000872")

Cada uma devolve um DataFrame. Use raw=True para o objeto serializado do zeep.

Listagens

sei.listar_unidades()
sei.listar_series()
sei.listar_tipos_procedimento()
sei.listar_usuarios()
sei.listar_hipoteses_legais()
sei.listar_estados(); sei.listar_cidades(id_estado="...")

Em lote

# empilha num único DataFrame; coluna 'protocolo' + 'erro' (isola falhas)
sei.consultar_procedimentos(["12.1.0001-1", "12.1.0002-2"])
sei.consultar_documentos(["0003934", "0003935"])

Por processo

# linha do tempo completa, ordenada por data/hora
sei.listar_andamentos_completo("12.1.000000077-4")

# eventos de marcador do processo (texto, data/hora, usuário e marcador)
sei.listar_andamentos_marcadores("12.1.000000077-4")

# documentos do processo (reconstruídos a partir dos andamentos)
sei.listar_documentos_processo("12.1.000000077-4")

# publicações do processo
sei.listar_publicacoes_processo("12.1.000000077-4")

Escrita

Operações de escrita alteram dados

Valide em ambiente de homologação/treino antes de usar em produção.

sei.gerar_procedimento({"IdTipoProcedimento": "100000368",
                        "Especificacao": "Processo de teste"})
sei.incluir_documento({"Tipo": "G", "IdSerie": "3", "Descricao": "..."})
sei.lancar_andamento("12.1.0001-1", id_tarefa="65",
                     atributos=[{"Nome": "DESCRICAO", "Valor": "texto"}])
sei.enviar_processo("12.1.0001-1", unidades_destino=["110000002"])

SIP (permissões)

from seigov import SipClient

sip = SipClient(
    url="https://sei.<seu-orgao>.gov.br/sip/controlador_ws.php?servico=sip",
    chave_acesso="...", id_sistema="100000100",
)
sip.listar_permissao(id_unidade="110000001")

Erros

Falhas de SOAP viram SeiFault; problemas de conexão/timeout viram SeiError, com mensagem clara (lembre-se da restrição por IP).

from seigov import SeiError
try:
    sei.consultar_bloco("999999")
except SeiError as e:
    print(e)