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}, ;
{sLicencaCTeLibraryDLL},(&{sResultado}),{bExibeErro}, ;
(&{iCdRetorno}),(&{sRetdhProtocolo},{bAssincrono})) 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, 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. 
  • {sLicencaCTeLibraryDLL} é usado para informar a chave da licença da DLL CTeLibraryDLL. 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} é 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} é uma variável do tipo boolean e seu uso é opcional. Passando True, o envio será feito no modo assíncrono. Passando False ou não passando o parâmetro, 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.
  • {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)) to bOk

If bOk Begin
: // Código para tratar CT-e enviado com sucesso
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.