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/pessoaIniciadora:
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 dinheiroReferê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 DetentoraDiagrama 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
Endpoints
Open Banking
post /auth/realms/randon/protocol/openid-connect/token
get /v1/banking/openbanking/conta/saldo
post /v1/banking/openbanking/pagamento
get /v1/banking/openbanking/status/pagamento
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. TokenAcessoResponse400
A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ErrorResponse401
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. SaldoResponse401
Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse403
O token tem escopo incorreto ou uma política de segurança foi violada. ErrorResponse404
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 pagamento204
Já existe um pagamento criado com o msm ID401
Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse403
O token tem escopo incorreto ou uma política de segurança foi violada. ErrorResponse404
O recurso solicitado não existe ou não foi implementado. ErrorResponse422
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, StatusPagamentoResponse401
Cabeçalho de autenticação ausente/inválido ou token inválido. ErrorResponse403
O token tem escopo incorreto ou uma política de segurança foi violada. ErrorResponse404
O recurso solicitado não existe ou não foi implementado. ErrorResponseModels
[ Jump to Methods ]Table of Contents
AccountPaymentsOpenBanking
Body
CreditorAccountOpenBanking
Data
Error
ErrorResponse
Headers
LocalInstrumentOpenBanking
Meta
OpenBankingPixMessage
PaymentPixOpenBanking
PaymentRejectionReasonOpenBanking
PaymentStatusOpenBanking
SaldoResponse
StatusPagamentoResponse
TokenAcessoResponse
openidconnect_token_body
CreditorAccountOpenBanking
Up
Schema das informações de uma conta bancária
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)
ErrorResponse
Up
Schema para response padrão de erro.
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)
PaymentPixOpenBanking
Up
Schema das infos relativas a valor e moeda 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
Português, Brasil