CTeEnviar

A função CTeEnviar é usada para enviar um CT-e para o Web Service da SEFAZ.

Tipo de Retorno

Boolean

Pacote

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

Sintaxe

Move (CTeEnviar({sArquivoXML},{sSiglaWS},(&{sNrReciboEnvio}), ;
{sNmCertificado},{sProxy},{sUsuario},{sSenha}, ;
{sLicencaDLL},(&{sResultado}),{bExibeErro}, ;
(&{iCdRetorno}),(&{sRetdhProtocolo}),{bAssincrono},[{sArquivoAutorizado}])) to {bRetorno}

Onde:

  • {sArquivoXML} é o caminho completo do arquivo XML sem assinatura que será enviado à SEFAZ. O arquivo deve estar sem assinatura, pois a própria função se encarrega de fazer a assinatura do arquivo após validar sua estrutura. Sendo assim, se a busca retornar uma rejeição, será necessário regerar o arquivo sem a assinatura para tentar um novo envio, visto que o arquivo anterior já está com a assinatura e não poderá ser usado com esta função.
  • {sSiglaWS} é a sigla do Web Service para o qual será enviada a solicitação. Veja mais detalhes aqui.
  • &{sNrReciboEnvio} é uma variável do tipo String que precisa ser passada por referência. Se o CT-e for enviado com sucesso, você receberá de volta nesta variável o número do recibo de envio. O número do recibo de envio é obrigatório para conseguir consultar o resultado do processamento do CT-e com a função CTeBuscar. Jamais faça um novo envio antes de consultar o resultado do envio anterior, pois a cada envio é gerado um novo número de recibo. Se o CT-e de um primeiro envio for autorizado, somente o número do recibo deste envio será válido para recuperar o XML autorizado com a função CTeBuscar.
  • {sNmCertificado} é 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. Você pode obter esta string e armazená-la em um campo de sua base de dados com a função CTePegaNomeCertificado.
  • {sProxy} é usado para informar ’http://proxyserver:port’ quando existir uso de proxy no ambiente. 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 do tipo ’http://192.168.15.1:443’.
  • {sUsuario} é usado para informar o usuário para autenticação no proxy, se necessário. 
  • {sSenha} é usado informar a senha de autenticação no proxy, se necessário. 
  • {sLicencaDLL} é 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.
  • &{sResultado} é uma variável do tipo String que precisa ser passada por referência. Após a execução da função, esta variável terá uma mensagem literal com o resultado da chamada. No caso de erro, será a mensagem de erro.
  • {bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução.
  • &{iCdRetorno} é uma variável do tipo Integer que precisa ser passada por referência. Após a execução da função, esta variável terá o código de retorno (cStat) devolvido pela SEFAZ ou um código de erro interno.
  • &{sRetdhProtocolo} disponível a partir da versão 2019/01, é uma variável do tipo String que precisa ser passada por referência. Se o envio foi no modo síncrono e o CT-e foi recepcionado com sucesso, este parâmetro retornará a data e hora da autorização de uso do CT-e.
  • {bAssincrono} disponível a partir da versão 2019/01, é uma variável do tipo boolean. Passando True, o envio será feito no modo assíncrono. Passando False, a função fará o envio no modo síncrono e, caso a SEFAZ que receber a solicitação não suporte o modo síncrono, será reenviado em modo assíncrono.
  • {sArquivoAutorizado} parâmetro opcional, passando a ser obrigatório quando o parâmetro {bAssincrono} for igual a falso. Está disponível a partir da versão 2020/01, é o caminho completo onde será salvo o arquivo XML autorizado, quando enviado com sucesso no modo síncrono.
  • {bRetorno} é o retorno da chamada da função. True indica que o CT-e foi enviado. Um retorno False indica que o CT-e não foi enviado. Neste caso, consulte o valor de iCdRetorno e sResultado para saber o motivo do não envio.

Exemplo

Move (CTeEnviar(sArquivo,Pessoas.sSiglaWS,(&sNrRecibo),"","","","","",(&sResultado),False, ;
(&iCdRetorno),(&sRetdhProtocolo),Config.iAssincrono,sArquivoAssinado)) to bOk

If (iCdRetorno = 100) Begin
: // Código para tratar CT-e enviado com sucesso no modo síncrono
End
Else Begin
If bOk Begin
: // Código para tratar CT-e enviado com sucesso no modo assíncrono
End
Else Begin
: // Código para tratar CT-e com erro no envio
End

Um exemplo de uso desta função pode ser encontrado na Workspace de exemplo que acompanha a CTeLibrary, no arquivo cCTeDataDictionary.dd.

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