Fluxo de envio de Pix
A transação de pagamento, assim que confirmada pelo cliente pagador, é realizada em quatro etapas: a primeira em uma comunicação partindo do participante indireto para o liquidante, duas de comunicação entre o liquidante e o SPI, e a última é a notificação do liquidante para o indireto com o resultado da operação, que poderá ser de efetivação, não efetivação por alguma regra de negócio ou mesmo a de alguma falha operacional.
Por essa razão, jamais o participante, direto ou indireto, poderá interpretar que a entrega para a próxima instância significa transferência realizada; é preciso aguardar o final do ciclo de pagamento para ter certeza.
Iniciação de pagamentos
A iniciação de pagamentos consiste na etapa de (OUT1) preparar as informações e disponibilizá-las para que o usuário final possa, a partir de suas análises, confirmar sua operação de envio do pagamento. A execução desta etapa cria o registro que, após confirmado (OUT3), será efetivamente encaminhado para o SPI.
A iniciação pode se dar de quatro maneiras distintas:
Iniciação por Chave DICT
Ao iniciar um pagamento por Chave DICT, deverá ser seguido o seguinte fluxo:
- DICT A - Consultar o DICT Interno.
- Se a chave Pix for encontrada no DICT Interno significa que o destinatário é correntista da própria instituição. Neste caso, o participante deve fazer uma liquidação interna (OUT5), ou seja, debitar e creditar as contas em seu próprio sistema, não encaminhando a liquidação para o liquidante, notificando, em seguida, seus clientes (OUT13, IN9), e finalizando o fluxo;
- Se a chave não for encontrada no DICT Interno, pesquisá-la no DICT B (liquidante), e dar segmento ao fluxo;
Importante:
Liquidações internas deverão ser reportadas ao BACEN através do arquivo 1201, discutido adiante neste mesmo material;
- DICT B - Consultar o DICT liquidante
- Se a chave não for encontrada no DICT liquidante, dar ciência ao usuário pagador e finalizar o fluxo, antes da etapa de confirmação;
- Se a chave for encontrada do DICT liquidante, retornar as informações do destinatário (conforme manual de experiência do usuário Pix – BACEN). A partir deste momento já é possível realizar a CONFIRMAÇÃO DO PAGAMENTO.
Importante:
É neste momento que ocorre a primeira atuação do mecanismo de prevenção à varredura de chaves DICT do BACEN, com retirada de fichas do Bucket do participante, sendo 1 ficha para chave encontrada no DICT e 3 fichas para chave não encontrada.
É imprescindível que o participante indireto faça o controle do seu próprio Bucket de fichas afim de evitar erros de rate limit.
Consultar o Manual Operacional do DICT para acompanhar as regulamentações do BACEN referente a este tema https://www.bcb.gov.br/estabilidadefinanceira/pix?modalAberto=regulamentacao_pix.
Solicitamos os campos abaixo na iniciação por chave Pix:
Campo | Descrição | Formato | Obrigatório |
---|---|---|---|
pagador | Dados do pagador (banco, agência, conta, documento) | object | Não |
chave | Valor e tipo da Chave DICT do recebedor, conforme tabela Tipos de chaves | object | Não |
openFinance | Se a iniciação estiver partindo de uma ITP (iniciadora de pagamentos no âmbito do Open Finance) informar aqui o identificador da transação Pix e CNPJ do iniciador de pagamento | object | Não |
campoLivre | Mensagem destinada ao recebedor | string | Não |
dataAgendamento | Data do agendamento da transação, em caso de agendamento | date | Não |
Resposta:
Campo | Descrição | Formato | Nullable |
---|---|---|---|
pagamentoId | Identificador do pagamento gerado pelo Banco BS2 | string | Não |
endToEndId | Identificador único da transação | string | Sim |
criadoEmUtc | Data de criação da transação | date-time | Não |
status | Status da transação de pagamento, conforme tabela Status do pagamento | string | Não |
pagador | Dados do pagador (banco, agência, conta, documento) | object | Não |
recebedor | Dados do recebedor (banco, agência, conta, documento) | object | Não |
Iniciação de pagamento por chave Pix
Iniciação por dados bancários
A iniciação do pagamento por dados bancários (OUT1), é uma operação análoga ao envio de TED e consiste, basicamente, em informar BANCO, AGÊNCIA, TIPO DE CONTA, NÚMERO DA CONTA e DOCUMENTO do destinatário.
Recomendamos que o participante realize as consistências de Banco e Agência, a partir de algum cadastro local ou serviço para tal finalidade, e realize também a validação do número do documento (CPF ou CNPJ). Tudo validado, apresentar para o usuário pagador e aguardar pela CONFIRMAÇÃO DO PAGAMENTO.
Importante:
Em tempo de iniciação não há como validar se a conta do destinatário é existente, ou se o tipo de conta ou mesmo o número documento do destinatário estão conforme informados neste momento. Esses dados serão validados, após a confirmação, pela instituição recebedora.
Solicitamos os campos:
Campo | Descrição | Formato | Obrigatório |
---|---|---|---|
pagador | Dados do pagador do Pix (banco, agência, conta, documento) | object | Sim |
recebedor | Dados do recebedor do Pix (banco, agência, conta, documento) | object | Sim |
openFinance | Se a iniciação estiver partindo de uma ITP (iniciadora de pagamentos no âmbito do Open Finance) informar aqui a identificador da transação Pix e CNPJ do iniciador de pagamento | object | Sim |
campoLivre | Mensagem destinada ao recebedor | string | Não |
dataAgendamento | Data do agendamento da transação, em caso de agendamento | date | Sim |
Resposta:
Campo | Descrição | Formato | Nullable |
---|---|---|---|
pagamentoId | Identificador do pagamento gerado pelo Banco BS2 | string | Não |
endToEndId | Identificador único da transação | string | Sim |
criadoEmUtc | Data de criação da transação | date-time | Não |
status | Status da transação de pagamento, conforme tabela Status do pagamento | string | Não |
pagador | Dados do pagador do Pix (banco, agência, conta, documento) | object | Não |
recebedor | Dados do recebedor do Pix (banco, agência, conta, documento) | object | Não |
Iniciação de pagamento por dados manuais
Iniciação por leitura de QR CODE ou por código 'copia e cola'
A leitura de um QR CODE, quando realizada pelo aplicativo da instituição ou mesmo por algum dispositivo para esta finalidade, tem como retorno uma sequência de caracteres, a qual chamaremos aqui de CÓDIGO DO QR-CODE. Uma vez obtido esse código, pode-se partir para a iniciação.
O procedimento Copia e Cola do QR CODE pressupõe que esse código já seja conhecido, sendo dispensável então a etapa de leitura, permitindo que se realize a etapa de iniciação.
Iniciação por QR CODE
Na chamada da iniciação por QR CODE estático ou dinâmico solicitamos os campos:
Campo | Descrição | Formato | Obrigatório |
---|---|---|---|
pagador | Dados do pagador (banco, agência, conta, documento) | object | Sim |
openFinance | Se a iniciação estiver partindo de uma ITP (iniciadora de pagamentos no âmbito do Open Finance) informar aqui a identificador da transação Pix e CNPJ do iniciador de pagamento | object | Sim |
qrcode | Código do QR CODE com informações da cobrança | string | Não |
transactionId | Código informado pelo cliente no momento da geração do QR CODE e que será usado pelo mesmo para identificar o pagamento | string | Não |
campoLivre | Mensagem destinada ao recebedor | string | Não |
dataAgendamento | Data do agendamento da transação, em caso de agendamento | date | Não |
Resposta:
Campo | Descrição | Formato | Nullable |
---|---|---|---|
pagamentoId | Identificador do pagamento gerado pelo Banco BS2 | string | Não |
endToEndId | Identificador da transação | string | Sim |
criadoEm | Data de criação do pagamento | date-time | Não |
situacao | Status da transação de pagamento, conforme tabela Status do pagamento | string | Não |
pagador | Dados do pagador (banco, agência, conta, documento) | object | Não |
recebedor | Dados do recebedor (banco, agência, conta, documento) | object | Não |
qrCode | Dados da cobrança do QR CODE (valor, chave Pix, descrição, etc.) | object | Não |
Iniciação de pagamento por QRCode
Consulta a pagamentos
A partir das funcionalidades abaixo, possibilitamos consultar pagamentos utilizando o endToEnd ou identificador do pagamento.
Consulta de pagamento por Id ou EndToEndId
Nessa funcionalidade retornamos um pagamento a partir de um endToEndId ou Id de pagamento informado.
Solicitamos os campos:
Campo | Descrição | Formato | Obrigatório |
---|---|---|---|
Id | Identificador do pagamento gerado pelo Banco BS2 | string | Sim, caso o EndToEndId não tenha sido informado |
EndToEndId | Identificador da transação | string | Sim, caso o Id não tenha sido informado |
Resposta:
Campo | Descrição | Formato | Nullable |
---|---|---|---|
Id | Identificador do pagamento gerado pelo Banco BS2 | string | Não |
endToEndId | Identificador da transação | string | Sim |
transactionId | Identificador da cobrança, quando iniciado por QR CODE | string | Sim |
solicitadoEmUtc | Data e hora em que o pagamento foi solicitado pelo pagador | date-time | Não |
enviadoEmUtc | Data e hora de envio do pagamento para liquidação | date-time | Sim |
valor | Valor da transação | double | Sim |
descricaoPagamento | Mensagem destinada ao recebedor | string | Sim |
tipoPagamento | Tipo de iniciação do pagamento, conforme tabela Tipos de pagamento | string | Não |
chave | Valor da Chave DICT do recebedor | string | Sim |
qrCode | Código copia e cola do QR CODE | string | Sim |
status | Status da transação de pagamento, conforme tabela Status do pagamento | string | Não |
finalidade | Finalidade da transação, conforme tabela Finalidade da transação | string | Não |
prioridade | Prioridade de envio da transação, conforme tabela Prioridade transação | string | Não |
tipoPrioridade | Tipo de prioridade da transação, conforme tabela conforme tabela Tipo Prioridade | string | Sim |
valorSaqueOuTroco | Valor do saque ou troco quando se tratar de Pix Saque e Pix Troco | double | Sim |
ispbFacilitadorServicoSaqueOuTroco | Código do banco facilitado do serviço, em caso de transação de Pix Saque e Troco | string | Sim |
modalidadeAgente | Modalidade do agente de saque em caso de transação de Pix Saque e Troco, conforme tabela Modalidade do Agente | string | Não |
cnpjIniciador | Documento CNPJ do iniciador de pagamento | string | Sim |
pagador | Dados do pagador (banco, agência, conta, documento) | object | Não |
recebedor | Dados do recebedor (banco, agência, conta, documento) | object | Não |
cobranca | Dados da cobrança (id, pagador, data de validade, valor, chave etc.) | object | Não |
restituicoes | Apresenta as restituições vinculadas ao pagamento, caso houver | array | Sim |
motivoRejeicao | Código e descrição do motivo da rejeição da transação que foi informado pelo BACEN na PACS002, se o pagamento tiver sido rejeitado | object | Não |
agendamento | Dados do agendamento da transação de pagamento, caso houver | object | Não |
erroEmUtc | Em caso de erro na transação, apresenta a data e hora em que ocorreu | date-time | Sim |
erroDescricao | Em caso de erro na transação, apresenta a descrição da falha | string | Sim |
Cancelamento de pagamentos
Nesta funcionalidade possibilitamos o cancelamento de uma transação de pagamento que ainda não foi confirmada.
Solicitamos os campos:
Campo | Descrição | Formato | Obrigatório |
---|---|---|---|
pagamentoId | Identificador do pagamento gerado pelo Banco BS2 | string | Sim |
motivo | Descrição do motivo do cancelamento | string | Não |
Resposta:
Campo | Descrição | Formato | Nullable |
---|---|---|---|
pagamentoId | Identificador do pagamento | string | Não |
canceladoEmUtc | Data e hora do cancelamento | date-time | Não |
Updated 4 months ago