Prezados há alguns dias eu perguntei sobre um fluxo para usar com a API, alguns não tem tanta experiência com API, eu tenho alguma mais nem de longe me considero um expert, observo que existem muitos status para gerir , processando, erro, pendente entre outras.
Eu criei um registro no meu ERP e tentei simular um erro, dai informei codigo_tributacao_municipio = 100, fiz o consumo e Ok recebi um json com o status erro e um objeto mensagens um array com um elemento.
Ok consegui o que eu queria que era simular um erro.
Sabemos que a Prefeitura ela envia diversas mensagens e sugestões qdo existe alguma coisa errada com a nota, a titulo de exemplo segue abaixo algumas que eu já tive oportunidade de ver
<EnviarLoteRpsResposta xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
<ListaMensagemRetorno>
<MensagemRetorno>
<Codigo>A3</Codigo>
<Mensagem>Item da lista de serviço informado para a operação não permite tributação fora do município</Mensagem>
<Correcao>Consulte a legislação vigente para saber se o item informado permite a tributação fora do município (Foi informada a Natureza da Operação "2") (RPS Número: 6736 Série: 1S)</Correcao>
</MensagemRetorno>
<MensagemRetorno>
<Codigo>E982</Codigo>
<Mensagem>Item de serviço não corresponde à atividade informada na NFS-e</Mensagem>
<Correcao>(RPS Número: 6736 Série: 1S)</Correcao>
</MensagemRetorno>
<MensagemRetorno>
<Codigo>A1</Codigo>
<Mensagem>Item da lista de serviço, código CNAE ou código de tributação informado para a operação não está cadastrado para o prestador de serviço</Mensagem>
<Correcao>Verifique se o item ou código informado está correto. Se estiver, proceda a atualização cadastral junto à Prefeitura assim que possível, pois o item ou código informado não está cadastrado para a sua </Correcao>
</MensagemRetorno>
</ListaMensagemRetorno>
</EnviarLoteRpsResposta>
Mais seguindo, logo que recebi o json, alterei o meu código e no mesmo registro que meu ERP produziu enviei novamente agora com codigo_tributacao_municipio = 101
recebi a seguinte mensagem
Código: 400 Erro: ValidationFailed Descrição: Validation failed for entity TNfseEntity
como eu devo proceder???
como o dev deve proceder e interagir para a próxima requisição com os status que exigem alguma alteração para fazer um envio e ou consulta até que a nota seja autorizada?
Obs. notei que o json ele vem com um ID o que faço com este ID? entendo que ele representa um registro meu na sua base de dados mais na API não existe alteração PUT de uma nota, não existe exclusão qual seria o proposito de uso deste ID? eu a principio estou fazendo uso dele usando o seguinte fluxo de execução,
a) envio uma nota , recebo o json de retorno e se processando , atualizo minha base de dados com o id
b) consulto a api/nota pelo id e verifico o status se houve alguma mudança
o que entendo pela validação TNFSeEntity e sabendo o que eu fiz deve ter havido alguma duplicidade porque a nota era a mesma, eu enviei a primeira vez simulei um erro, em seguida enviei ela novamente mais em um ambiente de produção qdo ocorre um erro o usuario enviou uma nota , ocorreu um erro , ele faz alguma correção e dai envia novamente não iria ocorrer o mesmo erro?
eu estou também fazendo uso de um campo no json chamado referencia, no qual envio o meu ID de Registro , deveria não mais envialo?