Boa tarde, tenho um aplicativo bem simples de controle de estoque que desenvolvi para quebra-galho de um conhecido faz alguns anos, o mesmo me questionou recentemente sobre a possibilidade da implementação de NFe no software. Não pude lhe dar uma resposta porque nem imagino da complexidade de tal implementação.
Gostaria de saber de vocês que já trabalharam com isso se a tarefa é muito árdua ou não, se envolve burocracia, se precisa ser pessoa jurídica, obter alguma credencial, etc. Considere que eu faria isso no meu tempo livre e que também não comercializo o aplicativo. Foi desenvolvido em Java/Swing, tenho uma boa experiência com Java.
Se não me engano você precisa ser pessoa jurídica sim, pois vai precisar comprar um certificado digital e fazer o credenciamento como emissor de NF-e, mesmo para utilizar o ambiente de homologação. O desenvolvimento em si é complexo, mas nada impossível, apenas um desenvolvedor seria suficiente. Não sei lhe dizer se pessoa física pode se credenciar como emissor NF-e e adquirir um certificado digital, mas eu acho que não.
Emerzoom
Sobre o aspecto de construção do código para o projeto, vc vai precisar saber de:
conhecer webservices
entender (de verdade) mensagem SOAP
consumir os serviços da NFe dentro de seu projeto
entender (de verdade verdadeira) o que é conexão com autenticação mútua
saber criar um repositório de chaves (truststore)
entender de TLS
entender de SSL
entender de marshal e unmarshall
ter acesso a internet irrestrito para o canal da NFe em sua rede
saber a diferença entre uma chave JKS e uma chave PKCS12, quanto ao seu empacotamento e utilização
Caro @Bruno_Almeida e @Emerzoom, ficou muito grato pela ótima explanação, creio que não é viável para mim adicionar tal recurso já que vai demandar tempo e recursos que o app que fiz não condiz com a demanda.
Abraço