Implementação C# Cachoeiro do Itapemerim/ES

Exemplo em C#.

Consuma o webservice usando Service Refencences.
No caso abaixo eu dei o nome de WS_3201209.

string cabecalho = 
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" "+
"versao=\"2.04\">"+
"<versaoDados>2.04</versaoDados>"+
"</cabecalho>";

bool homologacao  = true;
string urlProd = "http://notafse.cachoeiro.es.gov.br:8189/NfseWSService";
string urlHomo = "http://nfsehomologacao.cachoeiro.es.gov.br:8188/nfse-cachoeirodeitapemirim-es/NfseWSService";

string sService = (homologacao ? urlHomo : urlProd);
WS_3201209.nfseClient ws = new WS_3201209.nfseClient();
ws.Endpoint.Address = new System.ServiceModel.EndpointAddress(sService); 

WS_3201209.GerarNfse req = new WS_3201209.GerarNfse();
req.GerarNfseRequest = new WS_3201209.input();
req.GerarNfseRequest.nfseCabecMsg = cabecalho;
req.GerarNfseRequest.nfseDadosMsg = dados();
var res = ws1.GerarNfse(req);

Essa mensagem tem ocorrido constantemente:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<GerarNfseResposta xmlns="http://www.abrasf.org.br/nfse.xsd" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
<ListaMensagemRetorno>
  <MensagemRetorno>
    <Codigo>EL55</Codigo>
      <Mensagem>Arquivo Inválido - Verifique a extrutura do arquivo se esta nos padrões solicitados!.</Mensagem>
    <Correcao></Correcao>
  </MensagemRetorno>
</ListaMensagemRetorno>
</GerarNfseResposta>

Mesmo o arquivo estando certo.

Depois você consulta, a Nota e ela está lá gerada. :roll_eyes:

Aviso aos navegantes:

Não usem o método GerarNfse.
Está incompleto e responde com erro EL55 para quase tudo.

Ao invés use EnviarLoteRpsSincrono.
Funciona de forma mais estável.