- 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:

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
