11.5. CriaProc
11.5.1. CriaProcCTe
11.5. CriaProc
« Anterior
12. Gerar XML do CT-e - modelo 57
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.

CT-e cancelado

Não é possível montar o proCTe de um CT-e com situação cancelado, pois o WS de Consulta protocolo do CT-e utilizado para pegar os dados da autorização de uso não devolve as informações da data e hora de autorização de uso do CT-e.

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, veja Tabela de siglaWS

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, veja Tabela de siglaWS
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: do CT-e informado [DigestValue] diverge do do protocolo [DigVal], não é possível montar o procCTe, pois o CT-e informado tem conteúdo diferente do CT-e que foi autorizado!
6215 Erro inesperado ao tratar o XML do retorno do WS[Erro Windows]
6216 Erro: Impossível montar o cteProc da CT-e, pois o CT-e se encontra Cancelado [31-03-13]
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:

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 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 »
12. Gerar XML do CT-e - modelo 57