12. Gerar XML do CT-e - modelo 57
12.2. Tomador de Serviço do CT-e
12.1. Identificação do CT-e
« Anterior
12.3. Dados Complementares do CT-e
Próximo »

12.2. Tomador de Serviço do CT-e

Funcionalidade para gerar o XML do grupo do Tomador de Serviço do CT-e

Assinatura

string tomador300(int toma, string CNPJ, string CPF, string IE_Opc, string xNome, string xFant_Opc, string fone_Opc, string xLgr, string nro, string xCpl_Opc, string xBairro, string cMun, string xMun, string CEP_Opc, string UF, string cPais_Opc, string xPais_Opc, string email_Opc)

Descrição:

Funcionalidade para gerar o XML do grupo do Tomador de Serviço CT-e.

Os dados cadastrais do tomador só serão informados quando o tomador do serviço for diferente de: 0-Remetente; 1-Expedidor; 2-Recebedor; 3-Destinatário.

O PAPEL DO TOMADOR

O Tomador do serviço é aquele que contrata a prestação de serviços de transporte do transportador e deve receber o XML do CT-e ou o DACTE.

Parâmetros:

nome tipo tam. obrig. descrição
toma int 1 sim Tomador de Serviço, informar: 0-Remetente, 1-Expedidor, 2-Recebedor, 3-Destinatário ou 4-Outros.
Obs.: Os dados cadastrais do tomador só serão informados quando o tomador for 4-Outros, nos demais casos serão utilizados os dados cadastrais já informados no respectivo grupo.
CNPJ string 14 sim informar o CNPJ do tomador, sem formatação ou máscara.
Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros.
Informar os zeros não significativos.
CPF string 11 sim informar o CPF do tomador, sem formatação ou máscara.
IE_Opc string 0-14 sim informar a IE do tomador, sem formatação ou máscara.
xNome string 2-60 sim informar a razão social do tomador.
xFant_Opc string 1-60 não informar o nome fantasia do tomador, pode ser omitido.
fone_Opc string 6-14 sim informar o telefone do tomador.
xLgr string 2-60 sim informar o logradouro do tomador.
nro string 2-60 sim informar o número do endereço do tomador, campo obrigatório. Informar S/N ou . (ponto) ou - (traço) para evitar falha de schema XML quando não houver número.
xCpl_Opc string 1-60 não informar o complemento do endereço do tomador, pode ser omitido.
xBairro string 2-60 sim informar o bairro do endereço do tomador.
cMun string 7 sim informar o código do município na codificação do IBGE com 7 dígitos.
xMun string 2-60 sim informar o nome do município.
CEP_Opc string 8 não informar o CEP, pode ser omitido.
UF string 2 sim informar a sigla da UF.
cPais_Opc string 4 não informar o código do pais na codificação do BACEN, se informado deve ser 1058.
xPais_Opc string 6 não informar o nome do país, se informado deve ser Brasil ou BRASIL.
email_Opc string 1-60 não informar o email do tomador.

Diagrama:

DiagramaTomador

Retorno:

Um string com o grupo XML do tomador

Histórico de atualização:

XML:

Exemplo de XML para tomador = 0-Remetente

<toma3>
    <toma>0</toma>
<toma3>

Exemplo de XML para tomador = 1-expedidor

<toma3>
    <toma>1</toma>
<toma3>

Exemplo de XML para tomador = 2-recebedor

<toma3>
    <toma>2</toma>
<toma3>

Exemplo de XML para tomador = 3-destinatário

<toma3>
    <toma>3</toma>
<toma3>

Exemplo de XML para tomador = 4-Outros

<toma4>
    <toma>4</toma>
    <CNPJ>99999999000191</CNPJ>
    <IE>123456789011</IE>
    <xNome>DIAS e DIAS TENTANDO S/A</xNome>
    <xFant>DDT</xFant>
    <fone>1133221234</fone>
    <enderToma>
        <xLgr>AV PRINCIPAL</xLgr>
        <nro>S/N</nro>
        <xCpl>10 andar</xCpl>
        <xBairro>CENTRO</xBairro>
        <cMun>3550308</cMun>
        <xMun>SAO PAULO</xMun>
        <CEP>01300000</CEP>
        <UF>SP</UF>
        <cPais>1058</cPais>
        <xPais>Brasil</xPais>
    </enderToma>
    <email>fulano@dominio.com.br</email>
</toma4>

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 ser desnecessária, pois os browser exibem formatado.

Exemplos de uso:

Visual Basic 6.0

'
'======  Dados do Dim identificação do Tomador de Serviço==========
'
Dim toma As String
Dim toma_toma As Long
Dim toma_CNPJ As String
Dim toma_CPF As String
Dim toma_IE_Opc As String
Dim toma_xNome As String
Dim toma_xFant_Opc As String
Dim toma_fone_Opc As String
Dim toma_xLgr As String
Dim toma_nro As String
Dim toma_xCpl_Opc As String
Dim toma_xBairro As String
Dim toma_cMun As String
Dim toma_xMun As String
Dim toma_CEP_Opc As String
Dim toma_UF As String
Dim toma_cPais_Opc As String
Dim toma_xPais_Opc As String
Dim toma_email_Opc As String
'
'
'====== instancia DLL==================
'
'
' 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")
 
'
'         criação dos grupos
'
'===================grupo de identificação do Tomador de Serviço=======================
'
''
toma_toma = 0                                ' Tomador do Serviço (0 - Remetente; 1 - Expedidor; 2 - Recebedor; 3- Destinatário,  4 - Outros)

'
' Os dados cadastrais do tomador 0, 1, 2 ou 3 serão ignoradas pela DLL
'
'
toma_CNPJ = ""                               ' CNPJ do tomador sem máscara de formatação
toma_CPF = ""                                ' CPF do tomador sem máscara de formatação
toma_IE_Opc = ""                             ' Inscrição Estadual do tomador sem máscara
toma_xNome = ""                              ' Razão social do tomador, evitar caracteres acentuados e &
toma_xFant_Opc = ""                          ' Nome fantasia
toma_fone_Opc = ""                           ' número do telefone sem máscara
toma_xLgr = ""                               ' logradouro
toma_nro = ""                                ' número, informar S/N quano inexistente para erro de Schema XML
toma_xCpl_Opc = ""                           ' complemento do endereço, o conteúdo pode ser omitido
toma_xBairro = ""                            ' bairro
toma_cMun = ""                               ' código do município, deve ser compatível com a UF
toma_xMun = ""                               ' nome do município
toma_CEP_Opc = ""                            ' CEP - sem máscara
toma_UF = "SP"                               ' sigla da UF
toma_cPais_Opc = ""                          ' código do pais - deve fixo em 1058 - Brasil
toma_xPais_Opc = ""                          ' nome do pais (Brasil ou BRASIL)
toma_email_Opc = ""                          ' email do tomador

'
toma = objCTeUtil.tomador300(toma_toma, toma_CNPJ, toma_CPF, toma_IE_Opc, toma_xNome, toma_xFant_Opc, toma_fone_Opc, toma_xLgr, toma_nro, toma_xCpl_Opc, toma_xBairro, toma_cMun, toma_xMun, toma_CEP_Opc, toma_UF, toma_cPais_Opc, toma_xPais_Opc, toma_email_Opc)
 
MsgBox "Grupo do Tomador de Serviço " + chr(13) + toma, vbInformation, "Resultado"
'
'======  Dados do Dim identificação do Tomador de Serviço==========
'
Dim toma As String
Dim toma_toma As Long
Dim toma_CNPJ As String
Dim toma_CPF As String
Dim toma_IE_Opc As String
Dim toma_xNome As String
Dim toma_xFant_Opc As String
Dim toma_fone_Opc As String
Dim toma_xLgr As String
Dim toma_nro As String
Dim toma_xCpl_Opc As String
Dim toma_xBairro As String
Dim toma_cMun As String
Dim toma_xMun As String
Dim toma_CEP_Opc As String
Dim toma_UF As String
Dim toma_cPais_Opc As String
Dim toma_xPais_Opc As String
Dim toma_email_Opc As String
'
'
'====== instancia DLL==================
'
'
' 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")
 
'
'         criação dos grupos
'
'===================grupo de identificação do Tomador de Serviço=======================
'
''
toma_toma = 4                                ' Tomador do Serviço (0 - Remetente; 1 - Expedidor; 2 - Recebedor; 3- Destinatário,  4 - Outros)
'
' Os dados cadastrais do tomador só devem ser informaods quando tomador = 4-Outros
'
'
toma_CNPJ = "99999999000191"                 ' CNPJ do tomador sem máscara de formatação
toma_CPF = ""                                ' CPF do tomador sem máscara de formatação
toma_IE_Opc = "123456789011"                 ' Inscrição Estadual do tomador sem máscara
toma_xNome = "DIAS e DIAS TENTANDO S/A"      ' Razão social do tomador, evitar caracteres acentuados e &
toma_xFant_Opc = "DDT"                       ' Nome fantasia
toma_fone_Opc = "1133221234"                 ' número do telefone sem máscara
toma_xLgr = "AV PRINCIPAL"                   ' logradouro
toma_nro = "S/N"                             ' número, informar S/N quano inexistente para erro de Schema XML
toma_xCpl_Opc = "10 andar"                   ' complemento do endereço, o conteúdo pode ser omitido
toma_xBairro = "CENTRO"                      ' bairro
toma_cMun = "3550308"                        ' código do município, deve ser compatível com a UF
toma_xMun = "SAO PAULO"                      ' nome do município
toma_CEP_Opc = "01300000"                    ' CEP - sem máscara
toma_UF = "SP"                               ' sigla da UF
toma_cPais_Opc = "1058"                      ' código do pais - deve fixo em 1058 - Brasil
toma_xPais_Opc = "Brasil"                    ' nome do pais (Brasil ou BRASIL)
toma_email_Opc = "fulano@dominio.com.br"     ' email do tomador

'
toma = objCTeUtil.tomador300(toma_toma, toma_CNPJ, toma_CPF, toma_IE_Opc, toma_xNome, toma_xFant_Opc, toma_fone_Opc, toma_xLgr, toma_nro, toma_xCpl_Opc, toma_xBairro, toma_cMun, toma_xMun, toma_CEP_Opc, toma_UF, toma_cPais_Opc, toma_xPais_Opc, toma_email_Opc)
 
MsgBox "Grupo do Tomador de Serviço "  + chr(13) + toma, vbInformation, "Resultado"
12.2. Tomador de Serviço do CT-e
12. Gerar XML do CT-e - modelo 57
« Anterior
12.1. Identificação do CT-e
Próximo »
12.3. Dados Complementares do CT-e