12. Gerar XML do CT-e
12.11. Pagamento RT
12.10.9.3. IBS e CBS obsoleto
« Anterior
12.12. CT-e Normal e Substituto
Próximo »

12.11. Pagamento RT


Assinatura

string pgto(int nPag, string idTransacao, int tpMeioPgto, string CNPJReceb, string CNPJBasePSP)

Descrição:

Funcionalidade para gerar o XML do grupo de Informações da transação de pagamento no DFe.

Este grupo de informações deverá ser informado sempre que a transação de pagamento for iniciada antes da emissão do DFe.

Exemplos: boleto gerado antes da emissão do DFe; QR Code dinâmico Pix gerado antes da emissão do DFe.

Neste caso, o DFe deverá reportar os dados das transações financeiras previamente iniciadas, ainda que estejam pendentes de efetivo pagamento e liquidação.

Aplica-se a CTe, CTeOS e CTeSimp.

Parâmetros:

nome tipo tam. obrig. descrição
nPag inteiro 3 sim informar o numerador único de cada ocorrência de pagamento.
Faixa válida: 1 -99.
idTransacao string 2-35 sim informar o identificador específico da transação financeira, de acordo com a transação de pagamento.
O próprio schema impede que se repita dentro do grupo.
tpMeioPgto inteiro 2 sim informar o código do meio de pagamento utilizado:
01-Boleto
02-Pix QRCode dinâmico
03-Pix automático
04-Pix chave ou QRCode estático
05-TED
06-TEF / booktransfer.
CNPJReceb string 14 sim informar o CNPJ completo do recebedor do pagamento (fornecedor, plataforma, ou outra entidade que receba o pagamento do adquirente).
Observação: indicar o CNPJ responsável por receber dinheiro do adquirente na transação de pagamento. É possível que o CNPJ do recebedor seja diferente do CNPJ do fornecedor constante no documento fiscal.
CNPJBasePSP string 8 sim informar o CNPJ base da instituição financeira ou de pagamento utilizada pelo recebedor do pagamento (fornecedor, plataforma, ou outra entidade que receba o pagamento do adquirente).


Diagrama:

DiagramaIdentificaçãoAnterior

Retorno:

Um string com o grupo XML de Informações da transação de pagamento no DFe.

O leiaute admite até 99 ocorrências, assim concatenar os grupos caso existam mais de um grupo de informação.

XML:

Exemplo de XML com uma ocorrência

 
<pgto nPag="1" idTransacao="155752567068">
    <tpMeioPgto>05</tpMeioPgto>
    <CNPJReceb>V9ZAVL7W000162</CNPJReceb>
<CNPJBasePSP>00000000</CNPJBasePSP>
</pgto>

Exemplo de XML com duas ocorrências

 
<pgto nPag="1" idTransacao="155752567068">
    <tpMeioPgto>05</tpMeioPgto>
    <CNPJReceb>V9ZAVL7W000162</CNPJReceb>
<CNPJBasePSP>00000000</CNPJBasePSP>
</pgto>
<pgto nPag="2" idTransacao="155752467481">
    <tpMeioPgto>05</tpMeioPgto>
    <CNPJReceb>V9ZAVL7W000162</CNPJReceb>
<CNPJBasePSP>00000000</CNPJBasePSP>
</pgto>

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 Informações da transação de pagamento no DFe==========
'
Dim pgto As String
Dim nPag As Long
Dim idTrasacao As String
Dim tpMeioPgto As Long
Dim CNPJReceb As String
Dim CNPJBasePSP 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 Informações da transação de pagamento no DFes=======================
'
'

nPag = 1                        ' numerador único de cada ocorrência de pagamento

idTrasacao ="155752567068"      ' Identificador específico da transação financeira

tpMeioPgto = 5                  ' Código do meio de pagamento utilizado
                                ' 01-Boleto
                                ' 02-Pix QRCode dinâmico
                                ' 03-Pix automático
                                ' 04-Pix chave ou QRCode estático
                                ' 05-TED
                                ' 06-TEF / booktransfer

CNPJReceb = "V9ZAVL7W000162"    ' CNPJ completo do recebedor do pagamento
                                ' (fornecedor, plataforma, ou outra entidade que
                                ' receba o pagamento do adquirente)

CNPJBasePSP = "00000000"        ' CNPJ base da instituição financeira ou de
                                ' pagamento utilizada pelo recebedor do pagamento
                                ' (fornecedor, plataforma, ou outra entidade que
                                ' receba o pagamento do adquirente)

 
pgto = objCTeUtil.pgto(nPag, idTransacao, tpMeioPgto, CNPJReceb, CNPJBasePSP)
 
' concatenar os resultados caso exista mais de um grupo de informação.

MsgBox "Informações da transação de pagamento no DFes: " + pgto, vbInformation, "Resultado"

c#

 
// inicialização dos campos
 
int nPag = 1;                          // numerador único de cada ocorrência de pagamento
 
string idTransacao = "155752567068";   // Identificador específico da transação financeira
 
int tpMeioPgto = 5;                    // Código do meio de pagamento utilizado
                                       // 01-Boleto
                                       // 02-Pix QRCode dinâmico
                                       // 03-Pix automático
                                       // 04-Pix chave ou QRCode estático
                                       // 05-TED
                                       // 06-TEF / booktransfer
 
string CNPJReceb = "V9ZAVL7W000162";   // CNPJ completo do recebedor do pagamento
                                       // (fornecedor, plataforma, ou outra entidade que
                                       // receba o pagamento do adquirente)
 
string CNPJBasePSP = "00000000";       // CNPJ base da instituição financeira ou de
                                       // pagamento utilizada pelo recebedor do pagamento
                                       // (fornecedor, plataforma, ou outra entidade que
                                       // receba o pagamento do adquirente)
 
 
CTe_Util.Util util = new CTe_Util.Util();
 
// gera grupo pag
 
string pgto = util.pgto( nPag, idTransacao, tpMeioPgto, CNPJReceb, CNPJBasePSP);
 
MessageBox.Show(pgto);
12.11. Pagamento RT
12. Gerar XML do CT-e
« Anterior
12.10.9.3. IBS e CBS obsoleto
Próximo »
12.12. CT-e Normal e Substituto