Pix Flow (outgoing)

Payments, once confirmed by the paying customer, occurs in four stages: a) first - communication from the indirect party to the liquidator; b) second and third - communication between the liquidator and the SPI; and c) notification from the liquidator to the indirect party with the result of the operation, which may be complete, incomplete due to some business rule or even due to some operational failure.

For this reason, the direct or indirect party will never be able to know that the next level stage means that the transfer has been made. We need to wait for the end of the payment cycle to be sure.

Payment Initiation

Payment initiation is the step involving the preparation of the information and making it available for the end user to, based on their analysis, confirm their payment sending operation. This will originate the record that, once confirmed, will effectively be forwarded to the SPI.

Initiation can take place in four different ways:

Initiation with DICT (Directory of Transactional Account Identifiers) Key

When initiating a payment with DICT Key, the following flow must be in place:

  1. DICT A - Check Internal DICT
    1. If the Pix key is found in the Internal DICT, it means that the recipient is an account holder at the institution itself. In this case, participant must process internal settlement (OUT5). In other words, they must debit and credit the accounts in its own system. In this case, they should not forward the settlement to the liquidator, but notify its customers (OUT13, IN9), and finalize the flow;
    2. If the key is not found in the Internal DICT, you should search for it in DICT B (liquidator), and move on with the flow;

⚠️

Important:

Internal settlements must be reported to BACEN through file 1201, which will be discussed later in this document.

  1. DICT B - Check the settling DICT
    1. If the key is not found in the settling DICT, please notify the paying user and go ahead with the flow, before the confirmation stage;
    2. If the settling DICT key is found, please return the recipient's information (according to the Pix – BACEN user experience manual). From this moment on, payment can now be confirmed.

⚠️

Important:

This is when the BACEN DICT key scanning prevention mechanism begins for the first time, as all the tokens are deleted from the participant's Bucket: 1 token for a key found in the DICT and 3 tokens for a key that is not found.

It is essential that indirect participants control their own token bucket in order to avoid rate limit errors.

Check the DICT Operational Manual to follow BACEN regulations regarding this topic https://www.bcb.gov.br/estabilidadefinanceira/pix?modalAberto=regulamentacao_pix.

Initiation can take place in four different ways:

FieldDescriptionFormatMandatory
pagadorPayer data (bank, branch, account, document)objectNo
chaveValue and type of the recipient's DICT Key, as shown in the table Types of keysobjectNo
openFinanceIf the initiation begins from an ITP (payment initiator within Open Finance), please enter the Pix transaction identifier and CNPJ of the payment initiator hereobjectNo
campoLivreMessage to recipientstringNo
dataAgendamentoTransaction scheduling date, if scheduleddateNo

Response:

FieldDescriptionFormatNullable
pagamentoIdPayment identifier generated by Banco BS2stringNo
endToEndIdUnique transaction identifierstringYes
criadoEmUtcTransaction creation datedate-timeNo
statusStatus of the payment transaction, as shown in the table Payment StatusstringNo
pagadorPayer data (bank, branch, account, document)objectNo
recebedorRecipient data (bank, branch, account, document)objectNo

Iniciação de pagamento por chave Pix

Initiation using bank details

Initiating payment using bank details (OUT1) is similar to a regular bank transfer (TED) and basically consists of informing the recipient's BANK, BRANCH, ACCOUNT TYPE, ACCOUNT NUMBER and DOCUMENT.

We recommend that participants validate the Bank and Branch information, using a dedicated local registry or service, and validate the document number (CPF or CNPJ). Once everything is validated, show it to the paying user and await PAYMENT CONFIRMATION.


⚠️

Important:

At initiation time, there is no way to validate the existence of the recipient's account, the type of account or even whether the recipient's document number are as reported at the moment. These data will be validated, after confirmation, by the receiving institution.

The following fields are required:

FieldDescriptionFormatMandatory
pagadorPix payer data (bank, branch, account, document)objectYes
recebedorPix recipient data (bank, branch, account, document)objectYes
openFinanceIf the initiation begins from an ITP (payment initiator within Open Finance), please enter the Pix transaction identifier and CNPJ of the payment initiator hereobjectYes
campoLivreMessage to recipientstringNo
dataAgendamentoTransaction scheduling date, if scheduleddateYes

Resposta:

FieldDescriptionFormatNullable
pagamentoIdPayment identifier generated by Banco BS2stringNo
endToEndIdUnique transaction identifierstringYes
criadoEmUtcTransaction creation datedate-timeNo
statusStatus of the payment transaction, as shown in the table Payment StatusstringNo
pagadorPix payer data (bank, branch, account, document)objectNo
recebedorPix recipient data (bank, branch, account, document)objectNo

Iniciação de pagamento por dados manuais

Initiation by scanning a QR CODE or using a 'copy and paste' code

Scanning a QR CODE, using the institution's app or even by a dedicated device, gives you a sequence of characters in return, which is known as QR-CODE CHARACTERS. Once you have obtained this code, you can move on to initiation.

When it comes to the QR CODE Copy and Paste procedure, as the code is already known, scanning will not be necessary to allow for the initiation stage.

Initiation using QR CODE

In static or dynamic QR CODE initiation, the following fields are required:

FieldDescriptionFormatMandatory
pagadorPayer data (bank, branch, account, document)objectYes
openFinanceIf the initiation begins from an ITP (payment initiator within Open Finance), please enter the Pix transaction identifier and CNPJ of the payment initiator hereobjectYes
qrcodeQR CODE CHARACTERS with billing informationstringNo
transactionIdCode provided by the customer when generating the QR CODE and which will be used by the customer to identify the paymentstringNo
campoLivreMessage to recipientstringNo
dataAgendamentoTransaction scheduling date, if scheduleddateNo

Resposta:

FieldDescriptionFormatNullable
pagamentoIdPayment identifier generated by Banco BS2stringNo
endToEndIdTransaction identifierstringYes
criadoEmPayment creation datedate-timeNo
situacaoStatus of the payment transaction, as shown in the table Payment StatusstringNo
pagadorPayer data (bank, branch, account, document)objectNo
recebedorRecipient data (bank, branch, account, document)objectNo
qrCodeQR CODE billing information (amount, Pix key, description, etc.)objectNo

Iniciação de pagamento por QRCode

View Payments

Using the features below, you can view payments using endToEnd or payment identifier.


Payment view by Id or EndToEndId

In this functionality, you will view a payment from an endToEndId or payment ID entered.

The following fields are required:

FieldDescriptionFormatMandatory
IdPayment identifier generated by Banco BS2stringYes, if the EndToEndId has not been entered
EndToEndIdTransaction identifierstringYes, if the Id has not been entered

Response:

FieldDescriptionFormatNullable
IdPayment identifier generated by Banco BS2stringNo
endToEndIdTransaction identifierstringYes
transactionIdBilling identifier, when initiated by QR CODEstringYes
solicitadoEmUtcDate and time payment was requested by the payerdate-timeNo
enviadoEmUtcDate and time payment is made for settlementdate-timeYes
valorTransaction amountdoubleYes
descricaoPagamentoMessage to recipientstringYes
tipoPagamentoType of payment initiation, as per table Types of paymentstringNo
chaveRecipient’s DICT key valuestringYes
qrCodeQR CODE’s copy and paste codestringYes
statusStatus of the payment transaction, as shown in the table Payment StatusstringNo
finalidadePurpose of transaction, as shown in the table Purpose of transactionstringNo
prioridadePriority of transaction, as shown in the table Transaction PrioritystringNo
tipoPrioridadeType of transaction priority, as shown in the table Type of PrioritystringYes
valorSaqueOuTrocoWithdrawal or change for Pix Saque and Pix TrocodoubleYes
ispbFacilitadorServicoSaqueOuTrocoBank code provided for the service, in case of Pix Saque and Pix TrocostringYes
modalidadeAgenteType of withdrawal agent in the case of a Pix Saque and Pix Troco transaction, according to the table Type of AgentstringNo
cnpjIniciadorCNPJ of payment initiatorstringYes
pagadorPayer data (bank, branch, account, document)objectNo
recebedorRecipient data (bank, branch, account, document)objectNo
cobrancaBilling information (id, payer, expiration date, value, key, etc.)objectNo
restituicoesView returns associated with payment, if anyarrayYes
motivoRejeicaoCode and description of the reason for denying the transaction that was informed by BACEN in PACS002, if the payment was deniedobjectNo
agendamentoPayment transaction scheduling details, if anyobjectNo
erroEmUtcIn case of a transaction error, the date and time it occurred will be displayeddate-timeYes
erroDescricaoIn case of a transaction error, a description of the error will be displayedstringYes

Obter pagamento

Canceling payments

By using this functionality, you can cancel a payment transaction that has not yet been confirmed.

The following fields are required:

FieldDescriptionFormatMandatory
pagamentoIdPayment identifier generated by Banco BS2stringYes
motivoReason for cancellationstringNo

Response:

FieldDescriptionFormatNullable
pagamentoIdPayment identifierstringNo
canceladoEmUtcDate and time of cancellationdate-timeNo

Cancelamento de uma iniciação de pagamento