User API with PIX

Overview

Um pagamento via open banking se faz via um fluxo relativamente complexo, envolvendo diferentes sistemas, essa documentação engloba apenas uma parte do fluxo, na qual após já terem sido validadas algumas questões como consentimento e autorização, podemos receber duas requisições, a de "criação de um pagamento" e a "consulta de um pagamento", mais detalhes e referências estão logo a seguir.

Nomenclaturas dos envolvidos

Debtor:

Pessoa que está pagando, ou seja, estará tirando dinheiro de sua conta e enviando para alguma empresa/pessoa

Iniciadora:

Empresa/site que inicia o fluxo, é onde estará ocorrendo a compra, um bom exemplo são marketplaces como Mercado Livre, Americanas e Magalu.

Detentora:

Banco onde se encontra o dinheiro do Debtor, por exemplo o banco da Randon, nessa documentação parte da perspectiva da Detentora.

Creditor:

Empresa/pessoa que receberá o dinheiro

Referências

Muito importante entender esse diagrama de sequencia, pois é uma visão mais ampla do processo, sempre tendo em mente que o serviço em questão é o da Detentora
Diagrama de Sequencia Open Banking
Documentação mais antiga do Open Banking sobre pagamentos, ainda muito útil https://openbanking-brasil.github.io/areadesenvolvedor/#fase-3-apis-do-open-banking-brasil-api-pagamentos
Documentação mais recente do Open Banking link: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1737751/Inicia+o+de+Pagamentos

Collection Postman


Environment Postman


Fluxo geral - Diagrama sequencial

Randon POST/payments Opah PagamentoResponse [Se haver saldo suficiente] POST /v1/banking/openbanking/pagamento GET /v1/banking/openbanking/conta/saldo POST /auth/realms/randon/protocol/openid-connect/token SaldoResponse TokenAcessoResponse [Se o pagamento n for barrado ou já exista] Insere registro do pagamento no serviço SQS(AWS)

Endpoints

Open Banking

Default

Up
post /auth/realms/randon/protocol/openid-connect/token
Buscar token de acesso ao Open-Banking. (authRealmsRandonProtocolOpenidConnectTokenPost)
Buscar token de acesso ao Open-Banking.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/x-www-form-urlencoded

Form parameters

grant_type (optional)
Form Parameter
client_id (optional)
Form Parameter
client_secret (optional)
Form Parameter

Return type

Example data

Content-Type: application/json
{
  "access_token" : "access_token",
  "refresh_expires_in" : 6,
  "scope" : "scope",
  "token_type" : "token_type",
  "expires_in" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Sucesso na autenticação. TokenAcessoResponse

400

A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ErrorResponse

401

Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse

Up
get /v1/banking/openbanking/conta/saldo
Visualizar saldo da conta para o contexto do Open-Banking. (v1BankingOpenbankingContaSaldoGet)
Visualizar saldo da conta para o contexto do Open-Banking.

Query parameters

consentId (required)
Query Parameter

Return type

Example data

Content-Type: application/json
{
  "consentId" : "consentId",
  "conta" : "conta",
  "saldo" : 0.8008281904610115,
  "dataHora" : "dataHora",
  "agencia" : "agencia"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Sucesso na busca do saldo de um usuario. SaldoResponse

401

Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse

403

O token tem escopo incorreto ou uma política de segurança foi violada. ErrorResponse

404

O recurso solicitado não existe ou não foi implementado. ErrorResponse

Up
post /v1/banking/openbanking/pagamento
Criar o registro de uma pagamento no contexto do Open-Banking. (v1BankingOpenbankingPagamentoPost)
Criar o registro de uma pagamento no contexto do Open-Banking.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Request body

body OpenBankingPixMessage (required)
Body Parameter

Example data

Content-Type: application/json
{
  "body": {
    "data": {
      "cnpjInitiator": "string",
      "consentId": "string",
      "contentHash": "string",
      "creationDateTime": "string",
      "creditorAccount": {
        "accountType": "CACC",
        "ispb": "string",
        "issuer": "string",
        "number": "string"
      },
      "endToEnd": "string",
      "ibgeTownCode": "string",
      "jti": "string",
      "localInstrument": "DICT",
      "payment": {
        "amount": "string",
        "currency": "string"
      },
      "paymentId": "string",
      "proxy": "string",
      "qrCode": "string",
      "remittanceInformation": "string",
      "transactionIdentification": "string"
    }
  },
  "headers": {
    "authorization": "string",
    "x-fapi-auth-date": "string",
    "x-fapi-customer-ip-address": "string",
    "x-fapi-interaction-id": "string",
    "x-content-hash": "string",
    "x-customer-user-agent": "string",
    "x-idempotency-key": "string",
    "x-jti": "string",
    "x-organisation-id": "string"
  }
}

Request headers

x-content-hash (required)
Header Parameter

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

201

Sucesso ao criar registro de um pagamento

204

Já existe um pagamento criado com o msm ID

401

Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse

403

O token tem escopo incorreto ou uma política de segurança foi violada. ErrorResponse

404

O recurso solicitado não existe ou não foi implementado. ErrorResponse

422

Pagamento rejeitado pro regra de idempotência ErrorResponse

Up
get /v1/banking/openbanking/status/pagamento
Visualizar status de um pagamento para o contexto do Open-Banking. (v1BankingOpenbankingStatusPagamentoGet)
Visualizar saldo da conta para o contexto do Open-Banking.

Query parameters

paymentId (required)
Query Parameter

Return type

Example data

Content-Type: application/json
{
  "localInstrument" : "",
  "endToEndId" : "endToEndId",
  "proxy" : "proxy",
  "consentId" : "consentId",
  "remittanceInformation" : "remittanceInformation",
  "paymentId" : "paymentId",
  "creditorAccount" : {
    "number" : "number",
    "accountType" : "",
    "ispb" : "ispb",
    "issuer" : "issuer"
  },
  "statusUpdateDateTime" : "statusUpdateDateTime",
  "cnpjInitiator" : "cnpjInitiator",
  "payment" : {
    "amount" : "amount",
    "currency" : "currency"
  },
  "ibgeTownCode" : "ibgeTownCode",
  "rejectionReason" : "",
  "creationDateTime" : "creationDateTime",
  "status" : "",
  "transactionIdentification" : "transactionIdentification"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Sucesso na busca do status de um pagamento, StatusPagamentoResponse

401

Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse

403

O token tem escopo incorreto ou uma política de segurança foi violada. ErrorResponse

404

O recurso solicitado não existe ou não foi implementado. ErrorResponse

Models

[ Jump to Methods ]

Table of Contents

  1. AccountPaymentsOpenBanking
  2. Body
  3. CreditorAccountOpenBanking
  4. Data
  5. Error
  6. ErrorResponse
  7. Headers
  8. LocalInstrumentOpenBanking
  9. Meta
  10. OpenBankingPixMessage
  11. PaymentPixOpenBanking
  12. PaymentRejectionReasonOpenBanking
  13. PaymentStatusOpenBanking
  14. SaldoResponse
  15. StatusPagamentoResponse
  16. TokenAcessoResponse
  17. openidconnect_token_body

AccountPaymentsOpenBanking Up

Enumeração de tipos de contas bancárias

Body Up

data (optional)

CreditorAccountOpenBanking Up

Schema das informações de uma conta bancária
accountType (optional)
ispb (optional)
String ISPB do banco
issuer (optional)
String Agencia do banco
number (optional)
String Numbero da conta bancária com o digito verificador

Data Up

cnpjInitiator (optional)
consentId (optional)
contentHash (optional)
creationDateTime (optional)
creditorAccount (optional)
endToEnd (optional)
ibgeTownCode (optional)
jti (optional)
localInstrument (optional)
payment (optional)
paymentId (optional)
proxy (optional)
qrCode (optional)
remittanceInformation (optional)
transactionIdentification (optional)

Error Up

code (optional)
String Código de identificação do erro
detail (optional)
String Detalhe do erro
title (optional)
String Título do erro

ErrorResponse Up

Schema para response padrão de erro.
errors (optional)
meta (optional)

Headers Up

authorization (optional)
x-fapi-auth-date (optional)
x-fapi-customer-ip-address (optional)
x-fapi-interaction-id (optional)
x-content-hash (optional)
x-customer-user-agent (optional)
x-idempotency-key (optional)
x-jti (optional)
x-organisation-id (optional)

LocalInstrumentOpenBanking Up

Enumeração de tipo de um pagamento

Meta Up

requestDateTime (optional)
String Horário do retorno da requisição
totalPages (optional)
Integer Total de páginas format: int32
totalRecords (optional)
Integer Total de registros format: int32

OpenBankingPixMessage Up

body (optional)
headers (optional)

PaymentPixOpenBanking Up

Schema das infos relativas a valor e moeda de um pagamento
amount (optional)
String Valor do pagamento
currency (optional)
String Moeda utilizada no pagamento

PaymentRejectionReasonOpenBanking Up

Enumeração dos motivos de rejeição de um pagamento

PaymentStatusOpenBanking Up

Enumeração de status de um pagamento

SaldoResponse Up

Schema para response do endpoint de saldo de um usuario.
agencia (optional)
String Agência da conta
consentId (optional)
String Id do consentimento
conta (optional)
String Número da conta
dataHora (optional)
String Horário do retorno da requisição
saldo (optional)
BigDecimal Saldo da conta

StatusPagamentoResponse Up

Schema para response do endpoint de status de um pagamento.
cnpjInitiator (optional)
String CNPJ da iniciadora
consentId (optional)
String Id do consentimento
creationDateTime (optional)
String Horário de criação do pagamento
creditorAccount (optional)
endToEndId (optional)
String Código de identificação ponta a ponta
ibgeTownCode (optional)
String Código IBGE da cidade
localInstrument (optional)
payment (optional)
paymentId (optional)
String Id do pagamento
proxy (optional)
String Chave utilizada para o pagamento
rejectionReason (optional)
remittanceInformation (optional)
String Informação adicional do pagamento
status (optional)
statusUpdateDateTime (optional)
String Horário de atualização do status do pagamento
transactionIdentification (optional)
String Identificador da transação

TokenAcessoResponse Up

Schema para response do endpoint de autenticação.
access_token (optional)
String Token de acesso
expires_in (optional)
Integer Tempo de expiração do token em milisegundos format: int32
refresh_expires_in (optional)
Integer Tempo de expiração do token de atualização em milisegundos format: int32
scope (optional)
String Escopo dos dados encriptados no JWT
token_type (optional)
String Tipo do token de acesso

openidconnect_token_body Up

grant_type (optional)
client_id (optional)
client_secret (optional)
Português, Brasil