10. Web Service do CT-e
10.2. Envia CT-e OS
10.1. Envia CT-e Síncrono novo
« Anterior
10.3. Envia GTV-e
Próximo »

10.2. Envia CT-e OS

Envia CT-e OS - serviço síncrono

Assinatura

string EnviaCTeOS(string siglaWS, string versao, string nomeCertificado, string CTeOS, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, out CTeOSAssinado, out string nroProtocolo, out string dhProtocolo, string proxy, string usuario, string senha, string licenca)

Descrição:

Web Service para envio de CT-e OS, modelo 67. O Web Service é síncrono e trata-se da única forma de enviar o novo modelo de CT-e OS.

Web Service do CTeOS:

Envio síncrono de CT-e OS

A recepção síncrona foi criada para atender o CT-e OS, sendo a única forma de enviar CT-e OS existente.

Envio de CT-e OS individual

O WS de recepção de CT-e OS não aceita a recepção em lote.

Processo Síncrono

O processo de recepção é síncrono, assim o WS já devolve o resultado do processamento do CT-e OS.

Escolha do Ambiente

A funcionalidade utiliza o valor informado na tag tpAmb do CT-e OS, assim o usuário deve tomar o cuidado de informar o tpAmb corretamente para que a CT-e OS não seja enviada para o ambiente indesejado.

Preenchimento do nomeCertificado informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL, formas possíveis:

1. uso de certificado digital existente no repositório MY do CSP do usuário corrente (currentuser)

É a forma de mais comum de uso, cabe ressaltar que é a única forma de uso de certificado digital do tipo A3 que a DLL oferece.
O usuário deve passar como parâmetro o campo assunto do certificado no parâmetro NomeCertificado para que a DLL localize um certificado digital com mesmo assunto no repositório MY do currentuser do equipamento.
Esta forma de uso requer a prévia instalação do certificado digital na conta do usuário do Windows (logon) que irá utilizar o certificado digital.

2. uso de certificado digital em arquivo no formato pfx

Permite o de uso de certificado digital em arquivo formato pfx.
O caminho da localização (path) do arquivo pfx deve ser passado para a DLL no formato: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "ARQUIVO|c:\certificado.pfx|senha".
Esta opção só funciona com certificado digital do tipo A1.

3. uso de certificado digital em string base64

Permite uso o arquivo do certificado digital em formato pfx convertido em uma string base64. O certificado digital em string base64 deve ser passado para a DLL no formato: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
Esta opção só funciona com certificado digital do tipo A1. É uma opção de uso que oferece maior versatilidade, pois permite o armazenamento do certificado digital em banco de dados na aplicação. É a forma mais indicada para uso em ASP.NET.

Parâmetros:

nome tipo fluxo descrição
siglaWS string entrada informar a sigla do WS de envio, veja Tabela de siglaWS
versao string entrada informar a versão da mensagem do WS: 4.00. O valor 3.00 pode ser informado até o fim da vigência da versão 3.00 previsto para 31/01/2024).
NomeCertificado string entrada informar o certificado digital que será utilizado para assinatura:
1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS".
2. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha".
3. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
CT-e OS string entrada informar o CT-e OS que deseja transmitir, o CT-e OS não deve estar assinada.
msgDados string saída retorna a mensagem XML enviada para o WS.
msgRetWS string saída retorna a mensagem XML de resposta do WS
cStat inteiro saída retorna o resultado da chamada do WS.
msgResultado string saída retorna a literal do resultado da chamada do WS
CTeOSAssinado string saída retorna o CT-e OS assinado
nroProtocolo string saída retorna o número do protocolo de autorização de uso do CT-e OS.
dhProtocolo string saída retorna a data e hora da autorização de uso do CT-e OS.
proxy string entrada 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'
usuario string entrada informar o usuário para autenticação no proxy se necessário
senha string entrada informar a senha de autenticação no proxy se necessário
licenca string entrada informar a chave da licença de uso, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento, para maiores detalhes veja as condições de uso

Retorno:

O resultado da chamada do EnviaCTeOS é o XML da procCTe do CT-e OS autorizado ou denegado, em caso de rejeição o retorno será "".

O parâmetro cStat retorna um código numérico com os seguintes significados:

cStat - código devolvido pelo Web Service da SEFAZ

A relação abaixo é meramente exemplificativa e não está atualizada. Como a SEFAZ cria novas validações que resultam em novos códigos de retorno, procure analisar o retorno do msgResultado que devolve a literal da mensagem de erro e não deixe de consultar as NT e o MOC que são as documentações técnicas oficiais do CT-e. A simples busca do conteúdo do msgResultado no google pode ajudar a compreender o motivo do problema e a solução do caso.

Se o CT-e OS foi recepcionado e processado pelo WS teremos os seguintes códigos de retorno:

código Mensagem origem regra
100 Autorizado o uso do CT-e WS -
108 Serviço Paralisado Momentaneamente (curto prazo) WS B03
109 Serviço Paralisado sem Previsão WS B04
114 SVC-[SP/RS] desabilitada pela SEFAZ de Origem WS C05
203 Rejeição: Emissor não habilitado para emissão do CT-e WS N88
204 Rejeição: Duplicidade de CT-e [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD] WS N105
205 Rejeição: CT-e está denegado na base de dados da SEFAZ WS N107
206 Rejeição: Número de CT-e já está inutilizado na Base de dados da SEFAZ WS N108
207 Rejeição: CNPJ do emitente inválido WS N82
209 Rejeição: IE do emitente inválida WS N84
212 Rejeição: Data de emissão CT-e posterior a data de recebimento WS N80
213 Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital WS F03
214 Rejeição: Tamanho da mensagem excedeu o limite estabelecido WS B01
215 Rejeição: Falha no schema XML WS D01
218 Rejeição: CT-e já está cancelado na base de dados da SEFAZ [nProt:999999999999999][dhCanc: AAAA-MM-DDTHH:MM:SS TZD]. WS N106
225 Rejeição: Falha no Schema XML do CT-e WS D01
226 Rejeição: Código da UF do Emitente diverge da UF autorizadora WS N03
227 Rejeição: Erro na composição do Campo ID WS N12
228 Rejeição: Data de Emissão muito atrasada WS N81
229 Rejeição: IE do emitente não informada WS N83
230 Rejeição: IE do emitente não cadastrada WS N86
231 Rejeição: IE do emitente não vinculada ao CNPJ WS N87
238 Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente WS C07
239 Rejeição: Cabeçalho - Versão do arquivo XML não suportada WS C08
242 Rejeição: Elemento cteCabecMsg inexistente no SOAP Header WS C01
243 Rejeição: XML Mal Formado WS B02
247 Rejeição: Sigla da UF do Emitente diverge da UF autorizadora WS N04
252 Rejeição: Ambiente informado diverge do Ambiente de recebimento WS N01
253 Rejeição: Dígito Verificador da chave de acesso composta inválido WS N13
267 Rejeição: CT-e Complementar referência um CT-e inexistente WS N118
269 Rejeição: CNPJ Emitente do CT-e Complementar difere do CNPJ do CT complementado WS N109
280 Rejeição: Certificado Transmissor inválido WS A01
281 Rejeição: Certificado Transmissor Data Validade WS A02
282 Rejeição: Certificado Transmissor sem CNPJ WS A07
283 Rejeição: Certificado Transmissor - erro Cadeia de Certificação WS A03
284 Rejeição: Certificado Transmissor revogado WS A05
285 Rejeição: Certificado Transmissor difere ICP-Brasil WS A06
286 Rejeição: Certificado Transmissor erro no acesso a LCR WS A04
290 Rejeição: Certificado Assinatura inválido WS E01
291 Rejeição: Certificado Assinatura Data Validade WS E02
292 Rejeição: Certificado Assinatura sem CNPJ WS E03
293 Rejeição: Certificado Assinatura - erro Cadeia de Certificação WS E04
294 Rejeição: Certificado Assinatura revogado WS E06
295 Rejeição: Certificado Assinatura difere ICP-Brasil WS E07
296 Rejeição: Certificado Assinatura erro no acesso a LCR WS E05
297 Rejeição: Assinatura difere do calculado WS F02
298 Rejeição: Assinatura difere do padrão do Projeto WS F01
301 Uso Denegado: Irregularidade fiscal do emitente WS N89
402 Rejeição: XML da área de dados com codificação diferente de UTF-8 WS D05
404 Rejeição: Uso de prefixo de namespace não permitido WS D04
409 Rejeição: Campo cUF inexistente no elemento cteCabecMsg do SOAP Header WS C02
410 Rejeição: UF informada no campo cUF não é atendida pelo WebService WS C03
411 Rejeição: Campo versaoDados inexistente no elemento cteCabecMsg do SOAP Header WS C06
414 Rejeição: Código de Município diverge da UF de término da prestação WS N132
444 Rejeição: CNPJ do tomador inválido WS N92
445 Rejeição: CPF do tomador inválido WS N93
447 Rejeição: Código de Município diverge da UF de localização tomador WS N94
448 Rejeição: IE do tomador inválida WS N100
456 Rejeição: Código de Município diverge da UF de início da prestação WS N130
458 Rejeição: Grupo de CT-e normal não informado para CT-e normal WS N14
459 Rejeição: Grupo de CT-e complementar não informado para CT-e complementar WS N15
481 Rejeição: IE deve ser informada para tomador Contribuinte WS N96
482 Rejeição: IE do tomador isento deve ser preenchida com “ISENTO” WS N97
483 Rejeição: IE não pode ser informada para tomador não contribuinte WS N98
489 Rejeição: IE do tomador não cadastrada WS N101
490 Rejeição: IE do tomador não vinculada ao CNPJ WS N102
491 Rejeição: CT-e complementado é diferente de Normal ou Substituição WS N120
493 Rejeição: Código de Município diverge da UF de envio WS N128
496 Rejeição: Grupo CT-e de Anulação não informado para o CT-e de Anulação WS N30
497 Rejeição: CT-e objeto da anulação inexistente WS N40
498 Rejeição: CT-e objeto da anulação deve estar com a situação autorizada (não pode estar cancelado ou denegado) WS N42
499 Rejeição: CT-e de anulação deve ter tipo de emissão = normal WS N31
500 Rejeição: CT-e objeto da anulação deve ter Tipo = 0 (normal) ou 3 (Substituição) WS N44
501 Rejeição: Autorização do CT-e de Anulação deve ocorrer em até 60 dias da data de autorização do CT-e objeto de anulação WS N45
502 Rejeição: CT-e de anulação deve ter o valor do ICMS e de prestação iguais ao CT-e original WS N46
503 Rejeição: CT-e substituto deve ter tipo de emissão = normal WS N52
505 Rejeição: Grupo CT-e de Substituição não informado para o CT-e de Substituição WS N53
510 Rejeição: CNPJ do emitente do CT-e substituto deve ser igual ao informado no CT-e substituído WS N68
513 Rejeicao: UF nao atendida pela SVC-[SP/RS] WS C04
515 Rejeição: O tpEmis informado só é válido na contingência SVC WS N08
516 Rejeição: O tpEmis informado é incompatível com SVC-[SP/RS] WS N09
517 Rejeição: CT-e informado em SVC deve ser Normal WS N10
520 Rejeição: CT-e não pode receber mais do que 10 CT-e Complementares WS N122
531 Rejeição: Valor a receber deve ser menor ou igual Valor da Prestação WS N27
536 Rejeição: Município do Tomador inexistente WS N95
537 Rejeição: Município de Envio inexistente WS N129
539 Rejeição: Duplicidade de CT-e, com diferença na Chave de Acesso [chCTe: [9999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD] WS N104
541 Rejeição: Município de início da prestação inexistente WS N131
542 Rejeição: Município de término da prestação inexistente WS N133
552 Rejeição: O CNPJ/CPF do tomador do CT-e substituto deve ser igual ao informado no CTe substituído WS N69
553 Rejeição: A IE do emitente do CT-e substituto deve ser igual ao informado no CT-e substituído WS N70
558 Rejeição: A IE do tomador do CT-e substituto deve ser igual ao informado no CT-e substituído WS N71
559 Rejeição: A UF de início da prestação deve ser igual ao informado no CT-e substituído WS N72
560 Rejeição: A UF de fim da prestação deve ser igual ao informado no CT-e substituído WS N73
563 Rejeição: A substituição de um CT-e deve ocorrer no prazo máximo de 60 dias contados da data de autorização do CT-e objeto de Substituição WS N74
565 Rejeição: O CT-e só pode ser anulado pelo emitente WS N43
566 Rejeição: CT-e objeto da anulação não pode ter sido anulado anteriormente WS N47
567 Rejeição: CT-e objeto da anulação não pode ter sido substituído anteriormente WS N48
568 Rejeição: CT-e a ser substituído inexistente WS N62
569 Rejeição: CT-e a ser substituído deve estar com a situação autorizada (não pode estar cancelado ou denegado) WS N64
570 Rejeição: CT-e a ser substituído não pode ter sido substituído anteriormente WS N65
571 Rejeição: CT-e a ser substituído deve ter Tipo = 0 (normal) ou 3 (Substituição) WS N67
572 Rejeição: CT-e de anulação inexistente WS N76
573 Rejeição: CT-e de anulação informado deve ter Tipo=2(Anulação) WS N78
577 Rejeição: CT-e a ser substituído não pode ter sido anulado anteriormente quando informados os documentos emitidos pelo tomador contribuinte WS N75
578 Rejeição: Chave de acesso do CT-e anulado deve ser igual ao substituído WS N79
579 Rejeição: Versão informada para o modal não suportada WS N17
580 Rejeição: Falha no Schema XML específico para o modal WS N18
586 Rejeição: Data e Justificativa de entrada em contingência não devem ser informadas para tipo de emissão diferente de FS-DA. WS N05
587 Rejeição: Data e Justificativa de entrada em contingência devem ser informadas WS N06
588 Rejeição: Data de entrada em contingência posterior a data de emissão. WS N07
598 Rejeição: Usar somente o namespace padrao do CT-e WS D02
599 Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagem WS D03
614 Rejeição: IE do Substituto Tributário inválida WS N85
615 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (modelo diferente de 67) WS N36
616 Rejeição: Chave de acesso de CT-e substituido inválida (modelo diferente de 67) WS N58
617 Rejeição: UF do tomador não aceita ISENTO com Inscrição Estadual WS N99
650 Rejeição: Valor total do serviço superior ao limite permitido (R$ 9.999.999,99) WS N25
655 Rejeição: CT-e complementado deve estar com a situação autorizada (não pode estar cancelado ou denegado) WS N121
658 Rejeição: CT-e objeto da anulação não pode ter sido complementado WS N49
659 Rejeição: CT-e substituído não pode ter sido complementado WS N66
670 Rejeição: Série utilizada não permitida no webservice WS N02
671 Rejeição: CT-e complementado no CT-e Complementar com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD]. WS N119
672 Rejeição: CT-e de Anulação com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD]. WS N77
673 Rejeição: CT-e Substituído com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD] WS N63
674 Rejeição: CT-e Objeto de Anulação com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] WS N41
675 Rejeição: Valor do imposto não corresponde à base de cálculo X alíquota WS N26
676 Rejeição: CFOP informado inválido WS N29
699 Rejeição: CNPJ autorizado para download inválido WS N134
700 Rejeição: CPF autorizado para download inválido WS N135
712 Rejeição: Código de Município diverge da UF de localização do emitente WS N90
713 Rejeição: Município do Emitente inexistente WS N91
715 Rejeição: Documento autorizado ao XML duplicado no CT-e WS N136
719 Rejeição: IE do Tomador não informada WS N103
721 Rejeição: Chave de acesso inválida (modelo diferente de 67) WS N11
735 Rejeição: CT-e de anulação para CT-e com tomador contribuinte exige evento de Prestação de Serviço em Desacordo WS N50
736 Rejeição: Existe CT-e de anulação autorizado há mais de 15 dias sem a autorização do CT-e Substituto WS N51
751 Rejeição: UF de início e Fim da prestação devem estar preenchidas para Transporte de Pessoas WS N19
752 Rejeição: Município de início e Fim da prestação devem estar preenchidos para Transporte de Pessoas WS N20
753 Rejeição: Percurso inválido WS N21
754 Rejeição: Os documentos referenciados devem estar preenchidos para excesso de bagagem WS N23
757 Rejeição: O tomador do serviço deve estar informado para Transporte de Pessoas e Valores WS N22
758 Rejeição: Existe CT-e OS de Transporte de Valores autorizado há mais de 45 dias sem informar as GTV [chCTe: 99999999999999999999999999999999999999999999] WS N24
760 Rejeição: INSS deve ser preenchido para tomador pessoa jurídica WS N28
761 Rejeição: Dígito Verificador inválido na Chave de acesso de CT-e objeto da anulação WS N32
762 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (Ano < 2009 ou Ano maior que Ano corrente) WS N33
763 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (Mês = 0 ou Mês > 12) WS N34
764 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (CNPJ zerado ou digito inválido) WS N35
766 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (número CT = 0) WS N37
767 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (Tipo de emissão inválido) WS N38
768 Rejeição: Chave de acesso de CT-e objeto da anulação inválida (UF inválida) WS N39
769 Rejeição: Dígito Verificador inválido na Chave de acesso de CT-e substituído WS N54
770 Rejeição: Chave de acesso de CT-e substituído inválida (Ano < 2009 ou Ano maior que Ano corrente) WS N55
771 Rejeição: Chave de acesso de CT-e substituído inválida (Mês = 0 ou Mês > 12) WS N56
772 Rejeição: Chave de acesso de CT-e substituído inválida (CNPJ zerado ou digito inválido) WS N57
774 Rejeição: Chave de acesso de CT-e substituído inválida (número CT = 0) WS N59
775 Rejeição: Chave de acesso de CT-e substituído inválida (Tipo de emissão inválido) WS N60
776 Rejeição: Chave de acesso de CT-e substituído inválida (UF inválida) WS N61
777 Rejeição: Dígito Verificador inválido na Chave de acesso de CT-e complementado WS N110
778 Rejeição: Chave de acesso de CT-e complementado inválida (Ano < 2009 ou Ano maior que Ano corrente) WS N111
779 Rejeição: Chave de acesso de CT-e complementado inválida (Mês = 0 ou Mês > 12) WS N112
780 Rejeição: Chave de acesso de CT-e complementado inválida (CNPJ zerado ou digito inválido) WS N113
782 Rejeição: Chave de acesso de CT-e complementado inválida (número CT = 0) WS N115
783 Rejeição: Chave de acesso de CT-e complementado inválida (Tipo de emissão inválido) WS N116
784 Rejeição: Chave de acesso de CT-e complementado inválida (UF inválida) WS N117
785 Rejeição: Chave de acesso de CT-e complementado inválida (modelo diferente de 67) WS N114
798 Rejeição: Os dados específicos do modal devem estar preenchidos para Transporte de pessoas e Excesso de Bagagem WS N16
804 Rejeição: O CNPJ/CPF do tomador do CT-e complementar deve ser igual ao informado no CT-e complementado WS N123
805 Rejeição: A IE do emitente do CT-e complementar deve ser igual ao informado no CT-e complementado WS N124
810 Rejeição: A IE do tomador do CT-e complementar deve ser igual ao informado no CT-e complementado WS N125
811 Rejeição: A UF de início da prestação deve ser igual ao informado no CT-e complementado WS N126
812 Rejeição: A UF de fim da prestação deve ser igual ao informado no CT-e complementado WS N127

Histórico de atualização:

Mensagens XML - versão 3.00:

Exemplo de CTe-OS

 

Exemplos de uso:

Visual Basic 6.0

 
'
'  declaração dos parâmetros da chamada da DLL
'
Dim siglaWS As String         ' informar a sigla do WS de envio:
                              ' . sigla da UF, caso a UF tenha aplicação própria (MG, MS, MT, PR, RS e SP).
                              ' . RS, caso a UF seja usuária da SVRS - SEFAZ Virtual do RS (AM, BA, CE, DF, ES,
                              '      GO, MA, RJ, RN, RO, SC, SE, e TO);
                              ' . SP, caso a UF seja usuária da SVSP - SEFAZ Virtual de SP (AP, PE e RR);
                              ' . RS quando desejar acessar a SVC-RS (AP, MT, MS, PE, RR e SP);
                              ' . SP quando desejar acessar a SVC-SP (AM, BA, CE, DF, ES, GO, MA, MG, PA, RJ,
                              '      RN, RO, RS, SC, SE, e TO);
Dim CTeOS As String           ' informar o XML do CT-e OS
Dim nomeCertificado As String ' informar nome do titular do certificado a ser utilizado na assinatura e conexão SSL
Dim versao As String          ' informar a versão da mensagem do WS - 4.00
Dim msgDados As String        ' retorna a mensagem XML enviada para o WS
Dim msgRetWS As String        ' retorna a mensagem XML de resposta do WS
Dim msgResultado As String    ' retorna a literal do resultado da chamada do WS
Dim CTeOSAssinado As String   ' retorna XML do CT-e assinado
Dim nroProtocolo As String    ' retorna o número do nro do protocolo de autorização de uso do CTeOS
Dim dhProtocolo As String     ' retorna a data e hora de autorização de uso do CTeOS
Dim proCTeOS As String        ' retorno o procCTeOS autorizado
Dim proxy As String           ' 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'
Dim usuario As String         ' informar o usuário para autenticação no proxy se necessário
Dim senha As String           ' informar a senha de autenticação no proxy se necessário
Dim licenca As String         ' informar a chave da licença de uso, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as [condições de uso](https://www.flexdocs.net/cte_util.htm "condições de uso")
Dim cStat As Long             ' retorna o código do resultado da chamada do WS
'
' inicializa parâmetros de entrada
'
siglaWS = "SP"          ' SEFAZ Virtual do RS
versao = "4.00"         ' informar a versão da mensagem do WS - 3.00/4.00
nomeCertificado = "CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR"     ' campo assunto do certificado digital que será utilizado
'
' inicializa os dados do proxy, informar com valores se o ambiente utilizar proxy
'
proxy = ""              ' informar IP:porta ou url:porta
usuario = ""            ' informar o usuario
senha = ""              ' informar a senha
'
' inicializa a licenca de uso da DLL, necessário para utilizar a DLL em ambiente de produção, não alterar as letras para maiúsculas
'
licenca = ""
'
' inicializa parâmetros de saída que receberão os retornos da DLL
'
msgDados = ""           ' retorna a mensagem XML enviado pela DLL - lote de CT-e
msgRetWS = ""           ' retorna a mensagem XML de resposta do WS
msgResultado = ""       ' retorna a literal do resultado da chamada do WS
nroProtocolo = ""       ' retorna o número do nro do protocolo de autorização de uso do CTeOS
dhProtocolo = ""        ' retorna a data e hora de autorização de uso do CTeOS
CTeOSAssinado = ""      ' retorna o CT-e eOS-e assinado
cStat = 0
proCTeOS = ""           ' rerorna o proCTeOS se autorizado
'
' carrega o CT-e no parâmetro de entrada
'
'------------------------------------------------------------------------------
'
'  ********************************IMPORTANTE************************************
'  caso o XML do CT-e tenha sido gravado em UTF-8 (com uso da função encode_UTF8)
'  É NECESSÁRIO voltar o XML para ANSI, uma opção seria utilizar o decode_UTF8 a
'  outra opção é utilizar o LerArquivoANSI:
'    https://www.flexdocs.net/guiaCTe/funcao.utilidades.LerArquivoANSI.html
'
'  A melhor opção é não converter os XML que serão utilizados pela aplicação em UTF-8
'
'  SÓ FAÇA A CONVERSÃO DO STRING DO XML EM UTF-8 COM O procCTe
'
'------------------------------------------------------------------------------
Dim nomeArquivo As String  ' nome do arquivo que contem o CTe
'
nomeArquivo = App.Path & "\CTeOS-4acentuado.xml"
'
' importante: verificar a existência do arquivo solicitado na pasta do VB e indicar o caminho correto para ele em modo debug
'
'  Carrega o conteúdo do nome do arquivo em CTe, só funciona para arquivo com codificação ANSI.
'
Open nomeArquivo For Input As #1
CTeOS = Input$(LOF(1), 1)
Close #1
'
' instancia a DLL
'
Dim objCTeUtil As Object
 
Set objCTeUtil = CreateObject("CTe_Util.Util")
 
'
Screen.MousePointer = vbHourglass    ' ampulheta

proCTeOS = objCTeUtil.EnviaCTeOS(siglaWS, _
                              versao, _
                              nomeCertificado, _
                              CTeOS, _
                              msgDados, _
                              msgRetWS, _
                              cStat, _
                              msgResultado, _
                              CTeOSAssinado, _
                              nroProtocolo, _
                              dhProtocolo, _
                              proxy, _
                              usuario, _
                              senha, _
                              licenca)
 
Screen.MousePointer = vbDefault ' normal

If cStat = 100 Then
   '
   '  grava CT-e Assinado
   '
   nomeArquivo = "proCTeOS.xml"
   Open nomeArquivo For Output As #1
   Print #1, proCTeOS
   Close #1
   MsgBox Str(cStat) & " - " & msgResultado, vbInformation, "Informação"
Else
   '
   '  grava Log do Erro
   '
   nomeArquivo = "logErro.txt"
   Open nomeArquivo For Output As #1
   Print #1, "EnviaCTeOS :" & Now
   Print #1, "siglaWS      = [" & siglaWS & "]"
   Print #1, "Certificado  = [" & nomeCertificado & "]"
   Print #1, "versao       = [" & versao & "]"
   Print #1, "CTeOS  = [" & CTeOS & "]"
   Print #1, "msgDados     = [" & msgDados & "]"
   Print #1, "msgResultado = [" & msgResultado & "]"
   Print #1, "msgRetWS     = [" & msgRetWS & "]"
   Close #1
 
   MsgBox Str(cStat) & " - " & msgResultado & vbCrLf & vbCrLf & msgRetWS, vbError, "Atenção: Falha no envio..."
 
End If
10.2. Envia CT-e OS
10. Web Service do CT-e
« Anterior
10.1. Envia CT-e Síncrono novo
Próximo »
10.3. Envia GTV-e