Olá pessoal, estou desenvolvendo um "componente" para poder gerar NFS-e, e depois de alguns problemas/duvidas, obtive progresso!
Consegui emitir o arquivo XML (Sem assinar), utilizando a classe gerada através do Schema.
Para comparar se estava correto, emitimos uma nota fiscal pelo website da prefeitura e fizemos o download do xml para referência.
Comparei os xml e agora me surgiram algumas duvidas, vamos la?
Então la vai...
1 - No cabeçalho do meu xml o encoding é utf-16, enquanto no xml da prefeitura é utf-8
(Meu: <?xml version="1.0" encoding="utf-16" ?>, Prefeitura: <?xml version="1.0" encoding="UTF-8" ?> )
Isso irá me trazer problemas futuros? Pelo que vi a validação do XML é bem rigorosa;
2 - O elemento CompNfse da prefeitura é: <CompNfse xmlns="http://www.abrasf.org.br/nfse.xsd">, e o meu ficou:
<CompNfse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.abrasf.org.br/nfse.xsd">
Engraçado, o meu ficou mais completo com os atributos: xmlns:xsd e xmlns:xsi a mais, porem como dito, utilizei a classe gerada pelo schema da prefeitura.
Isso irá me trazer problemas futuros? Pelo que vi a validação do XML é bem rigorosa;
3 - O elemento Nfse da prefeitura é: <Nfse xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00">, e o meu ficou:
<Nfse versao="1.00">, Isso irá me trazer problemas futuros?
4 - Os elementos InfNfse e Numero (filho do InfNfse) possuem um número, que no caso é o número da nota fiscal.
<InfNfse Id="149263380001834390000011201200000000001">
<Numero>201200000000001</Numero>
Esse "Id" é gerado pelo webservice da prefeitura? Ou eu devo gerar isso, se for eu, como gerar?
O "Numero", é o número da nota fiscal prefixado com o ano vigente, em 2013 o número vai resetar?
Esse número é criado por mim? Ou a prefeitura vai falar qual o número da minha proxima nota fiscal?
5 - Agora que tenho meu XML gerado e não assinado, devo assinar correto?
Para isso devo possuir o Certificado Digital.
No momento estou em posse do certificado: e-Cnpj A3 (Token USB), esse certificado pelo que vi não serve para essa tarefa que estou realizando correto?
Então no site da serasa existem os certificados para NF-e (Acredito que também seja para NFS-e correto?), sendo eles:
Certificado A1:
O NF-e A1 é indicado para empresas que emitem poucas notas fiscais por dia. É válido por 1 ano e é armazenado no computador do titular. (Não tem token usb)
Certificado A3:
O NF-e A3 é indicado para empresas que emitem poucas notas fiscais por dia. É válido por 3 anos e é armazenado em dispositivo portátil – Cartão Inteligente ou Token USB. (Vai vir com o token e complicar a vida toda)
Certificado A3 para HSM:
É válido por 3 anos e é armazenado em dispositivos de HSM (sigla em inglês para Módulo de Segurança de Hardware), a ser adquirido no mercado. (Vai literalmente complicar mais ainda)
Certificado Servidor NF-e.:
É válido por 1 ano e apresenta a possibilidade de estabelecer conexões SSL, que permitem a troca segura e criptografada de dados entre o software ERP (sigla em ingês para Sistema integrado de gestão empresarial ) e a aplicação de emissão de notas. (Acredito
que seja esse)
Fiquei na dúvida de qual pedir para comparem:
Certificado A1 ou Certificado Servidor NF-e.?
Sendo que o A1 custa 250,00 reais e o Servidor NF-e custa 1890,00 reais.
O Ai diz que serve para empresas com pouco volume de nota fiscal, existe alguma trava nele?
Como eles irão controlar quantas notas irei emitir?
Digamos que a empresa que estou desenvolvendo o sistema vai emitir cerca de 500 notas fiscais por dia, o certificado A1 não serve? Tem que ser o Servidor NF-e?
Essa dúvida é a mais complicada, pois dependo do certificado para assinar o xml e passar para o WebService.
Já discuti um pouco sobre isso no tópico: http://social.msdn.microsoft.com/Forums/pt-BR/clientept/thread/1303ba51-cc1b-4c2e-98f5-1e29e2dc53bd
Porem, decidir fazer um tópico para meu assunto, afim de obter respostas mais exatas.
Agraceço a todos, e em especial ao Leandro de Souza, que me ajudou até agora.
Leandro de Souza: Você possui algum email/msn/skype/gtalk para eu poder tirar umas duvidas com você? (Prometo não lhe importunar atoa)
Muito obrigado a todos.
Leandro Daldegam