- 11.5. CriaProc
11.5.1. CriaProcCTe - 11.5. CriaProc
« Anterior - 11.5.2. CriaProcCancCTe
Próximo »
11.5.1. CriaProcCTe
Cria o procCTe - estrutura de distribuição de CT-e composto pelo CT-e e respectivo protocolo de autorização de uso.
Assinatura
string CriaProcCTe(string siglaWS, ref string CTeAssinado, out string protocolo, out string retCancCTe, out int resultado, string nomeCertificado, out string msgResultado, string proxy, string usuario, string senha)
Descrição:
A funcionalidade é útil para criar o procCTe quando o CT-e teve o uso autorizado pela SEFAZ, mas não houve retorno do Web Service ou houve uma falha na gravação do procCTe.
A identificação do WS de acessado deverá ser informada no parâmetro siglaWS.
Preenchimento da siglaWS
a sigla RS, caso a UF seja usuária da SEFAZ Virtual (AM, BA, CE, ES, GO, MA, PR, RJ, RN, RO, SC, SE, e TO);
a sigla da UF, caso a UF tenha aplicação própria (MG, MS, MT, RS e SP).
Preenchimento do nomeCertificado
Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL.
Parâmetros:
| nome | tipo | fluxo | descrição |
|---|---|---|---|
| siglaWS | string | entrada | informar a sigla do WS de envio, informar a sigla RS, caso a UF seja usuária da SEFAZ Virtual (AM, BA, CE, ES, GO, MA, PR, RJ, RN, RO, SC, SE, e TO); caso a UF tenha aplicação própria (MG, MS, MT, RS e SP), informar a sigla da própria UF. |
| CTeAssinado | string | entrada/saída | informar o CT-e assinado |
| Protocolo | string | saída | retorna o número do protocolo de autorização de uso |
| retCancCTe | string | saída | retorna o XML da homologação de cancelamento se o CT-e estiver cancelado |
| resultado | inteiro | saída | retorna o código do resultado da chamada do WS |
| nomeCertificado | string | entrada | informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" |
| msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
| 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 |
Retorno:
O resultado da chamada do CriaProcCTe é a mensagem XML composta pelo CT-e e respectivo protocolo de autorização de uso do CT-e gerado de acordo com o leiaute de distribuição do CT-e previsto no Manual de Integração do Contribuinte
O parâmetro resultado retorna um código numérico com os seguintes significados:
| código | Mensagem |
|---|---|
| 6201 | cteProc do CT-e (situação Autorizado) montado com sucesso |
| 6202 | Erro: Conteúdo do XML informado como CT-e no parâmetro de entrada (CTeAssinado) mal formado [Erro Windows] |
| 6203 | Erro: tag tpAmb inexistente no XML informado como CT-e no parâmetro de entrada(CTeAssinado) [Erro Windows] |
| 6204 | Erro: tag UF do emitente inexistente no XML informado como CT-e no parâmetro de entrada(CTeAssinado) [Erro Windows] |
| 6205 | Erro: tag infCte não localizada no XML informado como CT-e no parâmetro de entrada(CTeAssinado) |
| 6206 | Erro: tag infCte não localizada no arquivo de entrada [Erro Windows] |
| 6207 | Erro: tag cStat não localizada na mensagem de retorno [Erro Windows] |
| 6208 | Erro: tag xMotivo não localizada na mensagem de retorno [Erro Windows] |
| 6209 | Erro: tag tpAmb não localizada na mensagem de retorno [Erro Windows] |
| 6210 | Erro: tag verAplic não localizada na mensagem de retorno [Erro Windows] |
| 6211 | Erro: tag dhRecbto não localizada na mensagem de retorno [Erro Windows] |
| 6212 | Erro: tag nProt não localizada na mensagem de retorno [Erro Windows] |
| 6213 | Erro: tag digVal não localizada na mensagem de retorno [Erro Windows] |
| 6214 | Erro: |
| 6215 | Erro inesperado ao tratar o XML do retorno do WS[Erro Windows] |
| 6216 | cteProc da CT-e (situação Cancelado) montado com sucesso |
| 6217 | cteProc da CT-e (situação Denegado) montado com sucesso |
| 6218 | Erro: O parâmetro siglaWS deve ser informado |
| 6219 | Erro: Falha no acesso ao protCTe do XML da resposta do WS [Erro Windows] |
Histórico de atualização:
- 2011-12-30 - v1.0- Versão preliminar.
XML:
Exemplo de XML de Proc criado pela funcionalidade
<?xml version="1.0" encoding="UTF-8"?> <cteProc xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04"> <CTe xmlns="http://www.portalfiscal.inf.br/cte"> <infCte versao="1.04" Id="CTe35110899999999000191570010000001011000001018"> <ide> <cUF>35</cUF> <cCT>00000101</cCT> <CFOP>5353</CFOP> <natOp>PRESTACAO DE SERVICO</natOp> <forPag>0</forPag> <mod>57</mod> <serie>1</serie> <nCT>101</nCT> <dhEmi>2011-08-20T18:24:19</dhEmi> <tpImp>1</tpImp> <tpEmis>1</tpEmis> <cDV>8</cDV> <tpAmb>2</tpAmb> <tpCTe>0</tpCTe> <procEmi>0</procEmi> <verProc>4.0</verProc> <cMunEnv>3503208</cMunEnv> <xMunEnv>ARARAQUARA</xMunEnv> <UFEnv>SP</UFEnv> <modal>01</modal> <tpServ>0</tpServ> <cMunIni>3505708</cMunIni> <xMunIni>BARUERI</xMunIni> <UFIni>SP</UFIni> <cMunFim>3503208</cMunFim> <xMunFim>ARARAQUARA</xMunFim> <UFFim>SP</UFFim> <retira>0</retira> <toma03> <toma>0</toma> </toma03> </ide> <compl> <xEmi>ITALO</xEmi> <Entrega> <semData> <tpPer>0</tpPer> </semData> <semHora> <tpHor>0</tpHor> </semHora> </Entrega> <origCalc>BARUERI</origCalc> <destCalc>ARARAQUARA</destCalc> <xObs>;Documento emitido por ME ou EPP optante pelo Simples Nacional;Nao gera direito a credito fiscal de ICMS</xObs> </compl> <emit> <CNPJ>99999999000191</CNPJ> <IE>181288960178</IE> <xNome>TESTANDO TESTANDO LTDA-ME</xNome> <xFant>GMP</xFant> <enderEmit> <xLgr>RUA EXPEDICIONARIO</xLgr> <nro>123</nro> <xBairro>VILA YAMADA</xBairro> <cMun>3503208</cMun> <xMun>ARARAQUARA</xMun> <CEP>14802150</CEP> <UF>SP</UF> <fone>1234567891</fone> </enderEmit> </emit> <rem> <CNPJ>61365284015136</CNPJ> <IE>206274823111</IE> <xNome>TESTANDO TESTANDO LTDA-ME</xNome> <xFant>TESTANDO TESTANDO LTDA-ME</xFant> <fone>1234567891</fone> <enderReme> <xLgr>AV. PROJETADA</xLgr> <nro>751</nro> <xBairro>NOVA ALVORADA</xBairro> <cMun>3505708</cMun> <xMun>BARUERI</xMun> <CEP>06463400</CEP> <UF>SP</UF> <cPais>1058</cPais> <xPais>BRASIL</xPais> </enderReme> <infNFe> <chave>35110561375284015136550140028647541589947329</chave> </infNFe> </rem> <dest> <CPF>06760213874</CPF> <IE>ISENTO</IE> <xNome>TESTANDO TESTANDO LTDA-ME</xNome> <fone>1633312039</fone> <enderDest> <xLgr>AL. FERRAZ</xLgr> <nro>106</nro> <xBairro>FONTE</xBairro> <cMun>3503208</cMun> <xMun>ARARAQUARA</xMun> <CEP>14802428</CEP> <UF>SP</UF> <cPais>1058</cPais> <xPais>BRASIL</xPais> </enderDest> </dest> <vPrest> <vTPrest>2.00</vTPrest> <vRec>2.00</vRec> <Comp> <xNome>FRETE PESO</xNome> <vComp>2.00</vComp> </Comp> </vPrest> <imp> <ICMS> <ICMS45> <CST>41</CST> </ICMS45> </ICMS> </imp> <infCTeNorm> <infCarga> <vCarga>88.30</vCarga> <proPred>CAIXA</proPred> <xOutCat>DVD</xOutCat> <infQ> <cUnid>01</cUnid> <tpMed>Kg</tpMed> <qCarga>2.0000</qCarga> </infQ> <infQ> <cUnid>03</cUnid> <tpMed>CAIXA</tpMed> <qCarga>1.0000</qCarga> </infQ> </infCarga> <infModal versaoModal="1.04"> <rodo> <RNTRC>06013631</RNTRC> <dPrev>2011-08-14</dPrev> <lota>0</lota> </rodo> </infModal> </infCTeNorm> </infCte> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference URI="#CTe35110899999999000191570010000001011000001018"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>cGkh9p2OT/dDA3jTw/4DuLfzdCd=</DigestValue> </Reference> </SignedInfo> <SignatureValue>jfGyueaAABym1GmPMn6IGKRj99fMKwu39BtaxtUruL6ssEcaKQfo8t3qbpB9rnM8sh3iaTaf0DBP5bMjotL/2wsUXtot7vWZi+hzJIMX0Gq0d179xVK85Ey1ohkvEYt3NYSO7GygpMqTJdKvKG1uKuvlnERSjlI5aEd/9V0yZ00=</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv0XRoWy4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCQlIxEzARBgNVBAoMCklDUC1CcmFzaWwxIDAeBgNVBAsMF0NhaXhhIEVjb25vbWljYSBGZWRlcmFsMRkwFwYDVQQDDBBBQyBDQUlYQSBQSi0xIHYxMB4XDTExMTExMTA2MDg0NloXDTEyMTExMDA2MDg0NlowgY4xCzAJBgNVBAYTAkJSMRMwEQYDVQQKDApJQ1AtQnJhc2lsMSAwHgYDVQQLDBdDYWl4YSBFY29ub21pY2EgRmVkZXJhbDEZMBcGA1UECwwQQUMgQ0FJWEEgUEotMSBWMTEtMCsGA1UEAwwkTSBSIE0gS0FUTyBBU0FLVVJBIC0gRVBQOjY5NjIxMTg3OTE1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0751AtgqX3lAPZpQTIQWWSpXuoEN+JYiJrA99Toz2oLfRPjPPINj8J7IFHQ0sT3KzhNIykVxYAL22tpX9dvnUMs1mm0C/O+ImEzGr7xqSFVd7sp9qsdrc/JWEUaRVqKUwZSd38HWBEAwPNFBa3/UN1EhXgjev+pH4oKsu1msthwIDAQABo4ICxjCCAsIwDgYDVR0PAQH/BAQDAgXgMCkGA1UdJQQiMCAGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAjAdBgNVHQ4EFgQU22ocgo1bv7EO0N4T6wMl9l+cCV0wHwYDVR0jBBgwFoAUF8RVhQ+bjMcBI4CdEbNH3LOT1qswgcQGA1UdEQSBvDCBuYEWbXJlZ2luYS5rYXRvQGdtYWlsLmNvbaAXBgVgTAEDB6AOBAwwMDAwMDAwMDAwMDCgPQYFYEwBAwSgNAQyMTQwOTE5NzI2OTYyMTE4NzkxNTE2ODY1MDA4MjEwMDAwMDAwMDAwMDAwMDAwU1NQU1CgGQYFYEwBAwOgEAQOMTAxNDI3ODUwMDAxOTCgLAYFYEwBAwKgIwQhTUFSQ0lBIFJFR0lOQSBNSVlVS0kgS0FUTyBBU0FLVVJBMGYGA1UdIARfMF0wWwYGYEwBAgEJMFEwTwYIKwYBBQUHAgEWQ2h0dHA6Ly9jZXJ0aWZpY2Fkb2RpZ2l0YWwuY2FpeGEuZ292LmJyL2RvY3VtZW50b3MvZHBjYWMtY2FpeGFwai5wZGYwgbwGA1UdHwSBtDCBsTAuoCygKoYoaHR0cDovL2xjci5jYWl4YS5nb3YuYnIvYWNjYWl4YXBqMXYxLmNybDAvoC2gK4YpaHR0cDovL2xjcjIuY2FpeGEuZ292LmJyL2FjY2FpeGFwajF2MS5jcmwwTqBMoEqGSGh0dHA6Ly9yZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9DQUlYQS9BQ0NBSVhBUEovYWNjYWl4YXBqMXYxLmNybDBXBggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKGO2h0dHA6Ly9jZXJ0aWZpY2Fkb2RpZ2l0YWwuY2FpeGEuZ292LmJyL2FpYS9hY2NhaXhhcGoxdjEucDdiMA0GCSqGSIb3DQEBBQUAA4IBAQB7lxQ/YPm3Tl4CqTVuPmo/ipWlM7mqMUIh4if2shlXXlZwzotNLdacsr1nh9wFLETVSn6T4gllo42aSgOgaYmzhzeITKsEw4NdMq4RkCKytuxbIqAPmTD8gZEV144AK6aB8sThv8LpZ+D002LTRG9t013C3DbiGeYD3Cdu1gxRDHOW1lWula+9e5tPZ8Bbh/BDR5cSFUWBzt3ellQ4BJY+xh2a2iteM9+KAHsZChIPrHPRV/LG5HSlpxlAtkGSxZDK5EIEYJ7SVpWovV1oUnz8PvKO2nQQKflTLVSE9C+NbfjXfD6f5GtED6q4AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate> </X509Data> </KeyInfo> </Signature> </CTe> <protCTe versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte"> <infProt> <tpAmb>2</tpAmb> <verAplic>SP_PL_CTe_104</verAplic> <chCTe>35110899999999000191570010000001011000001018</chCTe> <dhRecbto>2011-08-20T18:24:22</dhRecbto> <nProt>135110002038337</nProt> <digVal>nBkh9p2OT/dDA3jTw/4DuLfzdZM=</digVal> <cStat>100</cStat> <xMotivo>Autorizado o uso do CT-e</xMotivo> </infProt> </protCTe> </cteProc>
Importante
O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.
Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e sendo desnecessária, pois os browser exibem formatado.
Exemplos de uso:
Visual Basic 6.0
' ' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' Dim siglaWS As String ' informar a sigla do WS de envio, informar a sigla RS, caso a UF seja usuária da SEFAZ Virtual (AM, BA, CE, ES, GO, MA, PR, RJ, RN, RO, SC, SE, e TO); caso a UF tenha aplicação própria (MG, MS, MT, RS e SP), informar a sigla da própria UF. Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim CTeAssinado As String ' informar o CT-e assinado Dim retCancCTe As String ' retorna o XML da homologação de cancelamento se o CT-e estiver cancelado Dim nomeCertificado As String ' informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" Dim protocolo As String ' retorna o número do protocolo de autorização de uso 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 resultado As Long ' retorna o código do resultado da chamada do WS Dim procCTe As String ' retorna o procCTe gerado pela funcionalidade Dim nomeArquivo As String ' nome do arquivo assinado para gerar o proc ' nomeArquivo = "c:\exemplo.xml" ' ' importante: verificar a existência do arquivo solicitado na pasta do VB e indicar o caminho correto para ele ' Carrega o conteúdo do nome do arquivo em CTeAssinado ' Open nomeArquivo For Input As #1 CTeAssinado = Input$(LOF(1), 1) Close #1 ' nomeCertificado = "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" siglaWS = "RS" ' informar a sigla WS retCancCTe = "" ' retorna o XML da homologação de cancelamento se o CT-e estiver cancelado proxy = "" ' preencher estes campos somente em caso de existência de proxy na rede usuario = "" senha = "" protocolo = "" ' número do protocolo + dd/mm/aa HH:MM:SS msgResultado = "" ' literal da mensagem de resultado da chamada da função procCTe = "" ' retorna o procCTe gerado pela funcionalidade resultado = 0 ' retorna o código do resultado da chamada do WS ' ' referenciando a DLL em late binding ' não é necessário fazer o reference da DLL ' o intelisense não funciona ' Dim objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' Screen.MousePointer = vbHourglass ' ponteiro ampulheta ' ' procCTe = objCTeUtil.CriaProcCTe(siglaWS, CTeAssinado, protocolo, retCancCTe, resultado, nomeCertificado, msgResultado, proxy, usuario, senha) ' ' Screen.MousePointer = vbDefault ' ponteiro normal ' ' tratar retorno ' If (resultado = 6201 Or resultado = 6216 Or resultado = 6217) Then ' ' grava Proc CT-e ' nomeArquivo = "procCTe.xml" Open nomeArquivo For Output As #1 Print #1, procCTe Close #1 MsgBox msgResultado + Chr(13) + Chr(13) + procCTe, vbInformation, "Informação" Else MsgBox "Processo de montagem procCTe falhou..." & vbCrLf & msgResultado, vbExclamation, "Atenção" End If ' ' liberar DLL ' Set objCTeUtil = Nothing
- 11.5.1. CriaProcCTe
11.5. CriaProc - « Anterior
11.5. CriaProc - Próximo »
11.5.2. CriaProcCancCTe