Estou tentando desenvolver uma biblioteca de emissão de NFes. Eu ja criei uma estrutura e uma função que possuem todos os campos da NFe. Porém agora sofro de uma dúvida cruel. Como posso saber quais campos realmente devo informar no xml da nota? Existe algum manual além do ANEXO I - Leiaute e Regra de Validação que informe quando um campo é realmente obrigatório? Claro que existem tags como IDE e dados da NFe que são obrigatórias, mas como eu posso saber se devo por exemplo especificar quais CNPJs podem acessar a NFe no campo autCNPJs?
O manual diz que se não precisa, não coloca, mas como eu vou saber se precisa?
Fala, @Pedro
Pelo anexo I do manual da SEFAZ você pode olhar a cardinalidade dos campos. Veja como exemplo o endereço do destinatário.
O manual indica que campos como número e logradouro são obrigatórios (cardinalidade 1-1), já campos como telefone e nome do país são opcionais (cardinalidade 0-1).
Sobre o autCNPJs, você fala deste ponto do manual?
Se for o caso, aí você deve informar pessoas que não são o destinatário ou o transportador da nota, mas que mesmo assim precisam baixar esta nota via portal ou webservice da SEFAZ. Exemplo, algumas empresas informam neste campo o CNPJ da contabilidade, para que se necessário o contador possa acessar por conta própria o xml das notas emitidas pela empresa.
Como citado na cadinalidade do grupo (0-10), você pode informar até 10 CNPJs ou CPFs, porém, o envio dessa informação é opcional.
Muito obrigado, mesmo lendo o manual eu tinha perdido mesmo esse detalhe. Faz sentido agora.