Manuais:UniNFe/EnviandoXMLPIX
Como utilizar o serviço do e-Bank PIX?
Após realizar a configuração do e-Bank no UniNFe, vamos consumir o serviço do e-Bank PIX que consiste em duas etapas. Bora conferir?
1ª etapa: Gerar a sinalização da cobrança no banco
Para conseguir gerar o PIX, você precisa sinalizar para o banco que quer criar essa cobrança e como a comunicação no UniNFe é por transmissão de arquivos, criamos um exemplo em XML de como você pode fazer isso. Para fazer o envio dessa cobrança, basta gerar o arquivo na pasta de envio com o nome e formato a seguir:
0000000000000-PIXCobCreate.xml
0000000000000 | Conteúdo livre |
-PIXCobCreate.xml | Conteúdo fixo. Sempre será "-PIXCobCreate.xml" |
O nome do arquivo de retorno é o mesmo do envio, mudando somente a extensão (final) do mesmo, conforme abaixo:
0000000000000-ret-PIXCobCreate.xml (se tudo ocorreu bem)
ou
0000000000000-ret-PIXCobCreate.err (se houve algum erro)
Estrutura do XML de envio
Para ficar mais fácil o entendimento da estrutura, vamos separar por tópicos.
Informações iniciais
<?xml version="1.0" encoding="utf-8"?> <PIXCobrancaCreateRequest versao="1.00"> <SolicitacaoPagador>Prestação de serviços em software</SolicitacaoPagador> <TipoCobranca>0</TipoCobranca> <Valor>1.00</Valor> <Chave>+5544999999999</Chave> <TxId>12345678901234567890123456789012345</TxId> <GerarQRCode>true</GerarQRCode> ...... ......
- Legenda:
- A tag <SolicitacaoPagador> é um campo livre, que pode ser utilizado para descrever o serviço prestado (tamanho máximo de 140 caracteres);
- A tag <TipoCobranca> aceita dois valores:
- 0 = Referente a cobrança sem vencimento, multas ou juros. Cobrança simples;
- 1 = Referente a cobrança com vencimento, multas e juros. Normalmente utilizada junto com o boleto.
- A tag <Valor> significa o valor do PIX sendo o ponto final como separador decimal;
- A tag <Chave> é a chave PIX do recebedor;
- A tag <TxId> é o identificador do PIX, através dele que será feita a consulta na 2ª etapa do serviço de PIX:
- Observação: deve ter entre 26 e 35 caracteres contendo apenas letras e números, sem espaço em branco ou caracter especial.
- A tag <GerarQRCode> quando true, gera um arquivo de imagem contendo o QRCode do PIX. Quando false, não gera o arquivo de imagem.
Grupo obrigatório
O grupo Beneficiário é obrigatório no XML, sendo definido após a tag <GerarQRCode>:
<Beneficiario> <Inscricao>11222333000122</Inscricao> <Nome>Empresa Teste</Nome> <Conta> <Agencia>1111</Agencia> <Numero>1111111</Numero> <Banco>756</Banco> </Conta> </Beneficiario>
- Legenda:
- A tag <Inscricao> é a informação do titular da conta do recebedor do PIX sendo CPF ou CNPJ;
- A tag <Nome> é o nome do titular da conta do recebedor do PIX;
- O grupo <Conta> terá as informações da conta que vai receber o PIX:
- A tag <Agencia> é o número da agência da conta;
- A tag <Numero> é o número da conta;
- A tag <Banco> é o código do banco do recebedor: 756 (Sicoob), 748 (Sicredi), 33 (Santander) e assim por diante.
- Observação: Temos o banco Sicoob e Bradesco implementados para PIX. Para saber mais, entre em contato com a Unimake Software.
Grupos opcionais
O grupo de tag <Calendario> é opcional no XML. Quando não informado, receberá valores padrões:
<Calendario> <Criacao>2023-05-23T10:42:05</Criacao> <Expiracao>600</Expiracao> </Calendario> OU <Calendario> <Criacao>2023-05-23T10:42:05</Criacao> <DataDeVencimento>2023-05-23T10:42:05</DataDeVencimento> <ValidadeAposVencimento>3</ValidadeAposVencimento> </Calendario>
- Legenda:
- A tag <Criacao> é a data e hora da criação do PIX. O valor padrão é DATA e HORA atual;
- A tag <Expiracao> é o tempo em segundos para expirar a cobrança PIX. O valor padrão é 86400 (24 horas);
- A tag <DataDeVencimento> é a data de vencimento do PIX. Logo você pode escolher se informa o tempo de expiração ou a data de vencimento;
- A tag <ValidadeAposVencimento> é o número de dias que a cobrança ainda poderá ser paga após o vencimento. Informar apenas se a <DataDeVencimento> existir no XML.
O grupo de tag <QRCodeConfig> é opcional no XML. Quando não informado, receberá valores padrões:
<QRCodeConfig> <Width>512</Width> <Height>512</Height> <Quality>100</Quality> <ImageFormat>2</ImageFormat> </QRCodeConfig>
- Legenda:
- A tag <Width> é a largura da imagem do QRCode. O valor padrão é 512 mega pixels;
- A tag <Height> é a altura da imagem do QRCode. O valor padrão é 512 mega pixels;
- A tag <Quality> é a qualidade da imagem gerada do QRCode (1 a 100). O valor padrão é 100;
- A tag <ImagemFormat> é o formato da imagem do QRCode. Aceita 4 valores:
- 0 = GIF;
- 1 = JPEG;
- 2 = PNG (valor padrão);
- 3 = WEBP.
O grupo de tag <Devedor> é opcional no XML. Esse grupo não receberá valores padrões:
<Devedor> <Nome>Devedor de teste</Nome> <Inscricao>00000000000</Inscricao> <CEP>87700000</CEP> <Logradouro>Rua sao joao do joao, 111, Jardim teste</Logradouro> <Cidade>Paranavaí</Cidade> <UF>PR</UF> </Devedor>
- Legenda:
- A tag <Inscricao> é o CPF ou CNPJ do devedor;
- As outras informações não precisam de legenda.
Estrutura mínima para utilizar o serviço
<?xml version="1.0" encoding="utf-8"?> <PIXCobrancaCreateRequest versao="1.00"> <SolicitacaoPagador>Prestação de serviços em software</SolicitacaoPagador> <TipoCobranca>0</TipoCobranca> <Valor>1.00</Valor> <Chave>+5544999999999</Chave> <TxId>12345678901234567890123456789012345</TxId> <GerarQRCode>true</GerarQRCode> <Beneficiario> <Inscricao>11222333000122</Inscricao> <Nome>Empresa Teste</Nome> <Conta> <Agencia>1111</Agencia> <Numero>1111111</Numero> <Banco>756</Banco> </Conta> </Beneficiario> </PIXCobrancaCreateRequest>
XML de retorno do envio: O que fazer?
Para verificar se o banco ativou a cobrança e ter a chave PIX para pagamento, você deve utilizar as informações no XML de retorno. Esse XML será gerado na pasta de retorno com o nome a seguir:
0000000000000-ret-PIXCobCreate.xml
E sua estrutura é a seguinte:
<?xml version="1.0" encoding="utf-8"?> <PIXCobrancaCreateResponse> <Status>0</Status> <Motivo>PIX Ativo (Cobrança gerada)</Motivo> <PixCopiaECola>11111111111111111111br.gov.bcb.pix1111pix.xxxxxx.com.br/qr/xxxxxxx/v2/cobv/11111111-1111-1111-1111-1111111111111111111111111111111111111XXXXXXX XX XXXXXXXXXNao_informado22222222***2222222E</PixCopiaECola> <ImageQRCode>d:\testenfe\Retorno\20230523T103002-ret-PIXCobCreate.png</ImageQRCode> </PIXCobrancaCreateResponse>
- Legenda:
- A tag <Status> é o status do PIX tendo os valores:
- 0 = Ativo (PIX gerado);
- 1 = Concluído (Já foi pago);
- 2 = Removido pelo usuário recebedor;
- 3 = Removido pelo PSP;
- 999 = Exceção/Erro.
- A tag <Motivo> é a descrição do status;
- A tag <PixCopiaECola> é a string do PIX Copia e Cola para o devedor pagar por este formato;
- A tag <ImageQRCode> é o caminho onde foi gravado a imagem do QRCode do PIX para o devedor pagar por este formato.
- A tag <Status> é o status do PIX tendo os valores:
2ª etapa: Consultar a cobrança para verificar o recebimento
Para verificar o recebimento, você deve fazer a consulta do conteúdo da tag <TxId> criada no tópico Informações inicias do XML de envio. Para fazer o envio dessa consulta, basta gerar o arquivo na pasta de envio com o nome e formato a seguir:
0000000000000-PIXGet.xml
0000000000000 | Conteúdo livre |
-PIXGet.xml | Conteúdo fixo. Sempre será "-PIXGet.xml" |
O nome do arquivo de retorno é o mesmo do envio, mudando somente a extensão (final) do mesmo, conforme abaixo:
0000000000000-ret-PIXGet.xml (se tudo ocorreu bem)
ou
0000000000000-ret-PIXGet.err (se houve algum erro)
Estrutura do XML de consulta
Para ficar mais fácil o entendimento da estrutura, vamos separar por tópicos.
Informações iniciais
<PIXGetRequest versao="1.00"> <StartDate>2023-05-23T10:42:05</StartDate> <EndDate>2023-05-23T10:42:05</EndDate> <TxId>12345678901234567890123456anvfrg</TxId> ..... .....
- Legenda:
- A tag <StarDate> é a data inicial do período da consulta;
- A tag <EndDate> é a data final do período da consulta;
- A tag <TxId> é o conteúdo que foi criado no XML de envio. É o identificador do PIX para consultar a situação e ver se foi recebido ou não.
Grupo obrigatório
O grupo Beneficiário é obrigatório no XML, sendo definido após a tag <TxId>:
<Beneficiario> <Inscricao>11222333000122</Inscricao> <Nome>Empresa Teste</Nome> <Conta> <Agencia>1111</Agencia> <Numero>1111111</Numero> <Banco>756</Banco> </Conta> </Beneficiario>
- Legenda:
- A tag <Inscricao> é a informação do titular da conta do recebedor do PIX sendo CPF ou CNPJ;
- A tag <Nome> é o nome do titular da conta do recebedor do PIX;
- O grupo <Conta> terá as informações da conta que vai receber o PIX:
- A tag <Agencia> é o número da agência da conta;
- A tag <Numero> é o número da conta;
- A tag <Banco> é o código do banco do recebedor: 756 (Sicoob), 748 (Sicredi), 33 (Santander) e assim por diante.
- Observação: Temos o banco Sicoob e Bradesco implementados para PIX. Para saber mais, entre em contato com a Unimake Software.
Estrutura mínima para utilizar o serviço
<?xml version="1.0" encoding="utf-8"?> <PIXGetRequest versao="1.00"> <StartDate>2023-05-23T10:42:05</StartDate> <EndDate>2023-05-23T10:42:05</EndDate> <TxId>12345678901234567890123456anvfrg</TxId> <Beneficiario> <Inscricao>37765786000148</Inscricao> <Nome>Dream Solutions</Nome> <Conta> <Agencia>1111</Agencia> <Numero>1111111</Numero> <Banco>756</Banco> </Conta> </Beneficiario> </PIXGetRequest>
XML de retorno da consulta: O que fazer?
Para verificar se o devedor pagou ou não a cobrança PIX, você deve utilizar as informações no XML de retorno. Esse XML será gerado na pasta de retorno com o nome a seguir:
0000000000000-ret-PIXGet.xml
E sua estrutura é a seguinte:
<?xml version="1.0" encoding="utf-8"?> <PIXGetResponse> <Status>1</Status> <Motivo>Devedor efetuou o PIX.</Motivo> <TxId>12345678901234567890123456</TxId> <Valor>0.00</Valor> <Horario>2023-05-23T10:42:05</Horario> <Pagador> <Nome>Teste nome pagador</Nome> <Inscricao>12345678901234</Inscricao> </Pagador> </PIXGetResponse>
- Legenda:
- A tag <Status> é o status do PIX podendo conter os valores:
- 1 = Devedor já efetuou o pagamento;
- 2 = Devedor não efetuou o pagamento;
- 999 = Exceção/Erro.
- A tag <Descricao> é a descrição do status;
- A tag <TxId> é o identificador do PIX que está sendo consultado;
- A tag <Valor> é o valor do PIX;
- A tag <Horario> é a data e hora que o PIX foi processado no PSP;
- Grupo <Pagador> são as informações do pagador:
- A tag <Nome> é o nome do pagador;
- A tag <Inscricao> é o CPF ou CNPJ do pagador.
- A tag <Status> é o status do PIX podendo conter os valores: