Receitanet liberado
O rnetclient está liberado. Após alguns anos deixando o envio da minha declaração de imposto de renda para a última hora e trabalhando não mais que três dias na engenharia reversa do Receitanet, este ano continuei o trabalho.
No repositório, vocês vão encontrar uma breve documentação do protocolo, e um cliente capaz de enviar a sua declaração e salvar o seu recibo.
Infelizmente, não pude testar ainda com uma declaração retificadora, mas cheguei a produzir mensagens idênticas àquelas geradas pelo cliente oficial da Receita.
O programa foi escrito em C, e tenta salvar o que vier do servidor, de forma razoavelmente robusta. Pensei em implementar um modo debug que salvaria todas as mensagens enviadas e recebidas para caso alguma mensagem não fosse decodificada, mas talvez não seja necessário.
Quem tiver que enviar uma declaração retificadora, por favor teste e fique à vontade para enviar relatórios de bugs à lista de e-mails software-impostos.
Agradeço ao Alexandre Oliva pelo incentivo e por sua luta em conseguir que a Receita libere o seu código-fonte. No processo, foi liberada documentação que me auxiliou no processo de engenharia reversa.
Quem já enviou a declaração e quiser testar, o servidor da receita envia uma mensagem dizendo que a declaração já foi recebida e retorna um novo recibo. Alguns campos do novo recibo serão diferentes do recibo anterior, mas não encontrei razão para que um seja menos válido que o outro.
Por enquanto vou deixar os detalhes sobre o processo de engenharia reversa para outro dia.