Operadora simulada
Envie um lote sintético, consulte o demonstrativo e interprete as decisões sem acesso à rede.
from voa_tiss import examples, parse_demonstrativo, validate
from voa_tiss.sandbox import demonstrativo, enviar_lote
lote = examples.load("lote-valido")
resposta = enviar_lote(lote)
assert resposta["aceito"]
protocolo = resposta["protocolo"]
resposta["numero_protocolo"]
xml = demonstrativo(protocolo)
assert validate(xml).valid
decisoes = parse_demonstrativo(xml)
decisoes
Saída[Decisao(guia_ref='0001', decision='pago', motivo='', guia_operadora='', tuss_code='', valor_glosa_cents=0, valor_liberado_cents=10000),
Decisao(guia_ref='0002', decision='pago', motivo='', guia_operadora='', tuss_code='', valor_glosa_cents=0, valor_liberado_cents=10000)]
O cenário sem_autorizacao glosa todos os itens da primeira guia e mantém as demais pagas.
resposta_com_glosa = enviar_lote(lote, cenario="sem_autorizacao")
xml_com_glosa = demonstrativo(resposta_com_glosa["protocolo"])
assert validate(xml_com_glosa).valid
decisoes_com_glosa = parse_demonstrativo(xml_com_glosa)
decisoes_com_glosa
Saída[Decisao(guia_ref='0001', decision='glosado', motivo='1818; 1818 - COBRANÇA DE PROCEDIMENTO QUE EXIGE AUTORIZAÇÃO PRÉVIA', guia_operadora='', tuss_code='', valor_glosa_cents=10000, valor_liberado_cents=0),
Decisao(guia_ref='0002', decision='pago', motivo='', guia_operadora='', tuss_code='', valor_glosa_cents=0, valor_liberado_cents=10000)]
Na API hospedada, as rotas /v1/sandbox/lotes respondem sem chave.