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

CampoDescrição do campo
statusCampo do tipo ENUM. Estado do consentimento.
payment.dateData do pagamento
payment.typeCampo do tipo eNUM. Tipo de pagamento.

Atualmente somente será preenchida com o valor PIX
amountValor do pagamento
loggedUser.identificationNúmero de identificação do usuário (Pessoa natural) pagador / logado.
creditorAccount.ispbISPB do banco referente a conta relacionada a pessoa recebedora.
creditorAccount.issuerAgência do banco referente a conta relacionada a pessoa recebedora.
creditorAccount.numberNúmero da conta do banco referente a conta relacionada a pessoa recebedora.
creditorAccount.accountTypeCampo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa recebedora informada no objeto creditor.
(CACC; SVGS; TRAN; SLRY).
localInstrumentCampo tipo ENUM. Especifica a forma da iniciação de pagamento (MANU; DICT; QRDN; QRES; INIC)
currencyCampo do tipo eNUM. Tipo da moeda.

Atualmente somente será preenchida com o valor BRL (Real brasileiro)
creditor.nameNome da que se refere a pessoa recebedora. Em caso de pessoa natural nome completo do titular da conta do recebedor.
creditor.cpfCnpjNúmero do documento de identificação da que se refere a pessoa recebedora
creditor.personTypeCampo do tipo ENUM. Titular, pessoa natural ou jurídica a quem se referem os dados do recebedor. (PESSOA_NATURAL; PESSOA_JURIDICA).
consentIdIdentificação do consentimento
loggedUser.relTipo de documento de identificação do usuário (Pessoa natural) pagador / logado.
businessIdentity.identificationNúmero do CNPJ do titular pessoa jurídica relacionada ao usuário (Pessoa natural) informado no objeto loggedUser.
debtorAccount.ispbISPB do banco referente a conta relacionada a pessoa pagadora.
debtorAccount.issuerAgência do banco referente a conta relacionada a pessoa pagadora.
debtorAccount.numberNúmero da conta do banco referente a conta relacionada a pessoa pagadora.
debtorAccount.accountTypeCampo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa pagadora.
(CACC; SVGS; TRAN; SLRY).
creationDateTimeData e horário de criação do consentimento
expirationDateTimeData e horário de expiração do consentimento
statusUpdateDateTimeData e horário de última atualização do consentimento
eventTypeTipo 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

CampoDescrição do campo
statusCampo do tipo ENUM. Estado do pagamento.
payment.amountValor do pagamento
payment.currencyCampo do tipo ENUM. Tipo da moeda.

Atualmente somente será preenchida com o valor BRL (Real brasileiro)
consentIdIdentificação do consentimento atrelado ao pagamento.
paymentIdIdentificação do pagamento
endToEndIdIdentificação única da transação PIX.
cnpjInitiatorCNPJ do iniciador de pagamentos.
debtorAccount.ispbISPB do banco referente a conta relacionada a pessoa pagadora.
debtorAccount.issuerAgência do banco referente a conta relacionada a pessoa pagadora.
debtorAccount.numberNúmero da conta do banco referente a conta relacionada a pessoa pagadora.
debtorAccount.accountTypeCampo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa pagadora.
(CACC; SVGS; TRAN; SLRY).
creditorAccount.ispbISPB do banco referente a conta relacionada a pessoa recebedora.
creditorAccount.issuerAgência do banco referente a conta relacionada a pessoa recebedora.
creditorAccount.numberNúmero da conta do banco referente a conta relacionada a pessoa recebedora.
creditorAccount.accountTypeCampo do tipo ENUM. Tipo de conta do banco referente a conta relacionada a pessoa recebedora.
(CACC; SVGS; TRAN; SLRY).
localInstrumentCampo tipo ENUM. Especifica a forma da iniciação de pagamento (MANU; DICT; QRDN; QRES; INIC)
creationDateTimeData e horário de criação do pagamento
statusUpdateDateTimeData e horário de última atualização do pagamento
failureReasonCampo identificando que houve falha na atualização do estado de pagamento. (ERROR_EXCESSIVE_RETR; ERROR_BANK_UPDATE_PAYMENT)
eventTypeTipo do evento.