CTeEnviaCCe

A função CTeEnviaCCe é usada para enviar uma CC-e (Carta de Correção eletrônica) de um CT-e.

Tipo de Retorno

Boolean

Pacote

A função CTeEnviaCCe está definida no pacote CTeEnviaCCe.pkg.

Sintaxe

Move (CTeEnviaCCe(&{vtCTeEnviaCCe_Parametros})) ;
to {bRetorno}

Onde:

  • &{vtCTeEnviaCCe_Parametros} é uma variável do tipo tCTeEnviaCCe_Parametros que deve ser passada por referência. Cada campo desta variável corresponde a um parâmetro que será enviado para a função ou um retorno que será devolvido por ela. Abaixo está a definição dos campos que estão dentro da estrutura:
  • sSiglaWS: sigla do WS para onde será feito o envio;
  • iAmbiente: ambiente para o qual será enviada a consulta: // 1-Produção / 2-Homologação;
  • sNomeCertificado:  é a string que representa o certificado digital que será usado na transmissão dos dados. Se não for informado, uma tela será exibida para o usuário escolher um dos certificados instalados para o usuário corrente. Veja mais detalhes sobre como informar este parâmetro clicando aqui;
  • sVersao: versão do arquivo XML a ser enviado. Se for passado em branco a função irá considerar "4.00";
  • sChaveCTe: chave de acesso da NF-e que o evento será vinculado;
  • iNroCorrecao: número sequencial da correção, deve ser iniciada com 1 e valor máximo é 20, campo de controle do usuário, o Web Service não permite a duplicidade de numeração e nem controla a ordem crescente;
  • sDtCorrecao: é a data e hora do evento da carta de correção no formato "AAAA-MM-DTHH:MM:SS". Se a/ data e hora informada for maior que a data do WS vai ocorrer o erro 635, veja o retorno do WS e verifique se o horário do equipamento está sincronizado com o horário do WS;
  • sProxy:  informar o endereço do servidor proxy, se necessário. Por exemplo ’http://proxyserver:port’. Verificar com o cliente qual é o endereço do servidor proxy e a porta https. A porta padrão do https é 443 e, sendo assim, teríamos algo como ’http://192.168.15.1:443’;
  • sUsuarioProxy: é usado para informar o usuário para autenticação no proxy, se necessário;
  • sSenhaProxy: é usado informar a senha de autenticação no proxy, se necessário;
  • sLicencaCTeDLL: é usado para informar a chave da licença da CTeLibrary.dll. Esta função pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento. Entre em contato conosco para obter a chave de licença;
  • sArquivoRetorno: é o caminho do arquivo onde será gerado o XML de retorno da CC-e;
  • bExibeErro: indica se a função deve exibir os erros que ocorrerem (True) ou não (False);
  • vtCorrecoes: estrutura tCTeCorrecoes[] que recebe as correções a serem realizadas. Veja a documentação da estrutura tCTeCorrecoes;
  • iRetcStat: retorna o código referente ao retorno da função, sendo que 135 significa que o evento foi processado e registrado com sucesso. Códigos diferentes de 135, significa que algum erro ou rejeição ocorreu durante o processamento e será necessário consultar o parâmetro sRetMsgResultado;
  • sRetMsgDados: retorna a mensagem XML enviada ao WS pela função;
  • sRetMsgRetWS: retorna o XML completo de resposta do WS;
  • sRetMsgResultado: retorna o literal do resultado da chamada do WS;
  • sRetNroProtocolo: retorna o número do protocolo do registro do evento;
  • sRetdhProtocolo: retorna a data e hora do registro do evento;
  • iRetCodigoSalvaArq: retorna o código referente a tentativa de salvar o arquivo XML de retorno. Retorna 0 (zero), se salvo com sucesso ou 1, caso ocorra algum erro. Neste caso, será necessário consultar o parâmetro sRetMsgResultadoSalvaArq. Parâmetro adicionado na versão 2024/01;
  • sRetMsgResultadoSalvaArq: retorna o literal com o resultado da tentativa de salvar o XML com o protocolo do evento. Parâmetro adicionado na versão 2024/01.

Abaixo o conteúdo da estrutura tCTeCorrecoes:

  • sGrupoAlterado: informar o grupo de informações ao qual pertence o campo que será alterado. Exemplo: ide;
  • sCampoAlterado: informar o nome do campo que será corrigido;
  • sValorAlterado: informar o novo valor correspondente à alteração;
  • iNroItemAlteradoOPC: preencher com o índice do item alterado, caso a alteração ocorra em uma lista. Por exemplo, ao corrigir uma das NF-e do remetente, esta tag deverá indicar a posição da NF-e alterada na lista. Obs: o índice inicia em 1 (um).
  • {bRetorno} será True se a CC-e foi emitida com sucesso (iRetcStat=135). E será False para qualquer outro retorno. A função irá tratar qualquer retorno difente de 135 como erro e irá exibir o erro se o parâmetro bExibeErro for True. Se desejar fazer seus próprios tratamentos para códigos de retorno específicos, configure o parâmetro bExibeErro como False.

Exemplo

  • Um exemplo de uso da função pode ser encontrado dentro da Workspace de Exemplo na procedure CTeEnviaCCe no arquivo cCTeDataDictionary.dd.

Observações

  • Para mais detalhes sobre a sigla do Web Service a ser usada, clique aqui.
  • Para ser corrigido, o CT-e precisa estar autorizado. Não é possível corrigir um CT-e cancelado.
  • A função CTeEnviaCCe está disponível a partir da versão 2014/01 da CTeLibrary.

Perguntas & Respostas sobre a CC-e

Quando podemos emitir a CC-e?

A CC-e pode ser emitida para "corrigir" alguns erros de preenchimento do CT-e.

O que pode ser corrigido com a CC-e?

O CONVENIO SINIEF 06/89 veda a correção das seguintes informações relacionadas com o Fato Gerador do ICMS do CT-e:

"Art. 58-B Fica permitida a utilização de carta de correção, para regularização de erro ocorrido na emissão de documentos fiscais relativos à prestação de serviço de transporte, desde que o erro não esteja relacionado com:

I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da prestação;
II - a correção de dados cadastrais que implique mudança do emitente, tomador, remetente ou do destinatário;
III - a data de emissão ou de saída."

É possível emitir a CC-e para acompanhar a prestação de serviço (CT-e + CC-e)?

Não existe impedimento para emitir uma CC-e para corrigir um CT-e de um seriço que ainda não foi prestado, contudo o procedimento mais adequado nesta situação é o cancelamento do CT-e incorreto e a emissão de um CT-e com os dados corretos.

Existe algum modelo ou leiaute para imprimir a CC-e?

Não existe modelo ou leiaute de impressão da CC-e, assim como inexiste o modelo de impresso para a carta de correção em papel. Entendemos que a carta de correção é uma correspondência do emissor emitida para o tomador do serviço para informar o erro de preenchimento do CT-e e pode ser impresso no padrão que o emissor julgar conveniente.

O que devo informar na CC-e?

  • chave de acesso do CT-e objeto da correção;
  • data e hora da correção;
  • sequencial da correção (1 a 20), a última correção substitui a correção anterior;
  • correções - indicar as tags corrigidas e o novos conteúdos.

Já tenho uma carta de correção registrada e preciso fazer uma nova carta de correção, como devo agir?

A carta de correção com data mais recente substitui as cartas de correções existentes, assim a nova carta de correção deve consolidar todas as correções.

Emiti uma carta de correção com dados incorretos, como devo agir?

A carta de correção com data mais recente substitui as cartas de correções existentes, assim basta emitir uma carta de correção com os dados corretos.

Emiti uma carta de correção para um CT-e incorretamente, como devo agir?

Não existe cancelamento de carta de correção, assim o procedimento mais adequado para esta situação seria a emissão de uma nova carta de correção que não tenha a correção indevida.

O que devo fazer com a carta de correção emitida?

O XML da carta de correção e a resposta de registro da carta de correção deve ser mantida em arquivo pelo emissor, além de ser enviada para o tomador do serviço.

A carta de correção deve ser enviada para o tomador do serviço?

Sim, o XML da carta de correção e a resposta de registro da carta de correção deve ser enviada para o tomador do serviço.

A carta de correção deve ser impressa?

A Carta de Correção eletrônica é um documento eletrônico e não precisa ser impressa.

O CT-e também é um documento eletrônico, mas imprimimos o DACTE, não vale o mesmo raciocínio para a CC-e?

Para o CT-e existe o DACTE que é um documento fiscal em papel previsto na legislação tributária necessário para acompanhar a prestação de serviço acobertada por CT-e e não se confunde com o CT-e que é documento fiscal distinto do DACTE.

Se fosse necessário imprimir a CC-e, a legislação teria criado um Documento Auxiliar da Carta de Correção eletrônico como fez com o DACTE. Assim, não existe previsão legal de impressão da Carta de Correção eletrônica, a obrigação do emissor é registrar a Carta de Correção eletrônica na SEFAZ e comunicar o destinatário, somente isto.

Também cabe ressaltar que a Carta de Correção não é um documento fiscal formal, pois nem requer a AIDF - Autorização de Impressão de Documento Fiscal para uso da Carta de Correção.

O meu cliente exige a Carta de Correção eletrônica impressa em papel, o que posso fazer?

Não existe nenhuma disposição legal que estabelece a necessidade de imprimir a Carta de Correção eletrônica em papel, assim o usuário pode enviar uma comunicação para tomador informando as alterações registradas pela Carta de Correção eletrônica caso entenda conveniente. Importante observar que não existe nenhum modelo oficial de carta de correção, assim acreditamos que o mais adequado seja comunicar somente o registro da Carta de Correção eletrônica por e-mail para que o destinatário consulte o teor da Carta de Correção eletrônica no Portal da SEFAZ, podendo imprimi-la no portal caso entenda necessário.

Não encontrou o que precisava, entre em contato conosco.