Notificações - Open Finance
Introdução
O produto de Iniciação de pagamentos utiliza um serviço de notificação para enviar a atualização de estados de consentimento e estados de pagamento.
Segue algumas características importantes do serviço de notificação.
- As notificações podem ser recebidas via Webhook ou SQS a ser definida no momento de integração.
- O serviço de notificação utiliza o método HTTP POST para realizar as publicações
- Caso ocorra algum problema de publicação da notificação, o serviço de notificação possuí uma regra de retry para publicar o evento até 3 vezes.
- O time da Bit Capital consegue realizar o reprocessamento de notificações que excederam a regra de retry.
Atualização de Estados de Consentimento
O sistema de atualização de estados de consentimento permite que os usuários acompanhem e atualizem as informações de consentimento relacionadas aos seus clientes.
As atualizações dos estados de um consentimento são notificados em tempo real.
O tipo de evento publicado será open-finance-payment-consents.
Abaixo segue um exemplo de uma chamada POST.
{
"payload": {
"status": "ENUM",
"payment": {
"date": "string",
"type": "ENUM",
"amount": "string",
"details": {
"creditorAccount": {
"ispb": "string",
"issuer": "string",
"number": "string",
"accountType": "ENUM"
},
"localInstrument": "ENUM"
},
"currency": "ENUM"
},
"creditor": {
"name": "string",
"cpfCnpj": "string",
"personType": "ENUM"
},
"consentId": "string",
"loggedUser": {
"document": {
"rel": "ENUM",
"identification": "string"
}
},
"debtorAccount": {
"ispb": "string",
"issuer": "string",
"number": "string",
"accountType": "ENUM"
},
"creationDateTime": "string",
"expirationDateTime": "string",
"statusUpdateDateTime": "string"
},
"eventType": "open-finance-payment-consents"
}
Descrição dos campos
Campo | Descrição do campo |
---|---|
status | Campo do tipo ENUM. Estado do consentimento. |
payment.date | Data do pagamento |
payment.type | Campo do tipo eNUM. Tipo de pagamento. Atualmente somente será preenchida com o valor PIX |
amount | Valor do pagamento |
loggedUser.identification | Número de identificação do usuário (Pessoa natural) pagador / logado. |
creditorAccount.ispb | ISPB do banco referente a conta relacionada a pessoa recebedora. |
creditorAccount.issuer | Agência do banco referente a conta relacionada a pessoa recebedora. |
creditorAccount.number | Número da conta do banco referente a conta relacionada a pessoa recebedora. |
creditorAccount.accountType | Campo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa recebedora informada no objeto creditor. (CACC; SVGS; TRAN; SLRY). |
localInstrument | Campo tipo ENUM. Especifica a forma da iniciação de pagamento (MANU; DICT; QRDN; QRES; INIC) |
currency | Campo do tipo eNUM. Tipo da moeda. Atualmente somente será preenchida com o valor BRL (Real brasileiro) |
creditor.name | Nome da que se refere a pessoa recebedora. Em caso de pessoa natural nome completo do titular da conta do recebedor. |
creditor.cpfCnpj | Número do documento de identificação da que se refere a pessoa recebedora |
creditor.personType | Campo do tipo ENUM. Titular, pessoa natural ou jurídica a quem se referem os dados do recebedor. (PESSOA_NATURAL; PESSOA_JURIDICA). |
consentId | Identificação do consentimento |
loggedUser.rel | Tipo de documento de identificação do usuário (Pessoa natural) pagador / logado. |
businessIdentity.identification | Número do CNPJ do titular pessoa jurídica relacionada ao usuário (Pessoa natural) informado no objeto loggedUser. |
debtorAccount.ispb | ISPB do banco referente a conta relacionada a pessoa pagadora. |
debtorAccount.issuer | Agência do banco referente a conta relacionada a pessoa pagadora. |
debtorAccount.number | Número da conta do banco referente a conta relacionada a pessoa pagadora. |
debtorAccount.accountType | Campo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa pagadora. (CACC; SVGS; TRAN; SLRY). |
creationDateTime | Data e horário de criação do consentimento |
expirationDateTime | Data e horário de expiração do consentimento |
statusUpdateDateTime | Data e horário de última atualização do consentimento |
eventType | Tipo do evento. |
Atualização de Estados de Pagamento
O sistema de atualização de estados de pagamento permite que os usuários acompanhem e atualizem as informações de pagamentos relacionadas aos seus clientes.
As atualizações dos estados de um pagamento são notificados após obtermos resposta da instituição detentora.
Pooling de pagamentos
Os pagamentos realizados através de um iniciador de pagamento são de responsabilidade de outra instituição.
Essa instituição é a instituição detentora.Para atualizar o estado de um pagamento a Bit Capital possui um sistema de pooling que de forma exponencial realiza a consulta do pagamento. Quando realizamos uma consulta do pagamento e identificamos que o estado do pagamento foi atualizado, esta informação é publicada via serviço de notificações.
O tipo de evento publicado será open-finance-payment_.
Abaixo segue um exemplo de uma chamada POST.
{
"payload": {
"status": "ENUM",
"payment": {
"amount": "string",
"currency": "ENUM"
},
"consentId": "string",
"paymentId": "string",
"endToEndId": "string",
"cnpjInitiator": "string",
"debtorAccount": {
"ispb": "string",
"issuer": "string",
"number": "string",
"accountType": "ENUM"
},
"creditorAccount": {
"ispb": "string",
"issuer": "string",
"number": "string",
"accountType": "ENUM"
},
"localInstrument": "ENUM",
"creationDateTime": "string",
"statusUpdateDateTime": "string"
},
"eventType": "open-finance-payments"
}
Falhas na atualização do estado de pagamento
O sistema de pooling de pagamentos em outras instituições possui um número de tentativas para consultar um pagamento. Existem dois tipos de cenários onde realizamos notificação caso haja falha.
Pagamento não atualizado
Caso o pooling realize dez tentativas para consultar a atualização do estado de pagamento e não ocorra uma atualização o campo indicando o motivo da falha(failureReason) será preenchido com falha de atualização no pagamento (ERROR_BANK_UPDATE_PAYMENT)
Excesso de tentativas com erro
Caso o pooling realize cinco tentativas para consultar a atualização do estado de pagamento e receba erros (4xx;5xx) o campo indicando o motivo da falha(failureReason) será preenchido com falha de atualização no pagamento (ERROR_EXCESSIVE_RETRY)
Descrição de campos
Campo | Descrição do campo |
---|---|
status | Campo do tipo ENUM. Estado do pagamento. |
payment.amount | Valor do pagamento |
payment.currency | Campo do tipo ENUM. Tipo da moeda. Atualmente somente será preenchida com o valor BRL (Real brasileiro) |
consentId | Identificação do consentimento atrelado ao pagamento. |
paymentId | Identificação do pagamento |
endToEndId | Identificação única da transação PIX. |
cnpjInitiator | CNPJ do iniciador de pagamentos. |
debtorAccount.ispb | ISPB do banco referente a conta relacionada a pessoa pagadora. |
debtorAccount.issuer | Agência do banco referente a conta relacionada a pessoa pagadora. |
debtorAccount.number | Número da conta do banco referente a conta relacionada a pessoa pagadora. |
debtorAccount.accountType | Campo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa pagadora. (CACC; SVGS; TRAN; SLRY). |
creditorAccount.ispb | ISPB do banco referente a conta relacionada a pessoa recebedora. |
creditorAccount.issuer | Agência do banco referente a conta relacionada a pessoa recebedora. |
creditorAccount.number | Número da conta do banco referente a conta relacionada a pessoa recebedora. |
creditorAccount.accountType | Campo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa recebedora. (CACC; SVGS; TRAN; SLRY). |
localInstrument | Campo tipo ENUM. Especifica a forma da iniciação de pagamento (MANU; DICT; QRDN; QRES; INIC) |
creationDateTime | Data e horário de criação do pagamento |
statusUpdateDateTime | Data e horário de última atualização do pagamento |
failureReason | Campo identificando que houve falha na atualização do estado de pagamento. (ERROR_EXCESSIVE_RETR; ERROR_BANK_UPDATE_PAYMENT) |
eventType | Tipo do evento. |
Updated about 1 year ago