Skip to content

Commit

Permalink
Merge pull request #1675 from Sensedia/ORB-2915
Browse files Browse the repository at this point in the history
feat(Webhook): ORB-2915 - Nova Versao
  • Loading branch information
FelipeBaumgartel authored Jul 4, 2023
2 parents 2be5232 + d91314a commit 67eda47
Show file tree
Hide file tree
Showing 2 changed files with 153 additions and 2 deletions.
150 changes: 150 additions & 0 deletions swagger-apis/webhook/1.0.0-rc.1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
openapi: 3.0.0
info:
title: API Webhook - Open Finance Brasil
description: |
API de Webhook é responsável por notificar eventos definidos em cada uma das APIs que possuem a funcionalidade no Open Finance Brasil.
Informações sobre endpoints suportados e funcionamento podem ser encontrados na página <a href="https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/105021661/Conven+o+de+Webhook">Convenção de Webhook</a>, disponível no portal do desenvolvedor do Open Finance Brasil.
version: '1.0.0-rc.1'
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
contact:
name: Governança do Open Finance Brasil – Especificações
email: [email protected]
url: 'https://openbanking-brasil.github.io/areadesenvolvedor/'
servers:
- url: 'https://api.banco.com.br/open-banking/webhook/v1'
description: Servidor de Produção
- url: 'https://apih.banco.com.br/open-banking/webhook/v1'
description: Servidor de Homologação
tags:
- name: Consent Notification
description: Notificações de mudanças de estados de consentimentos da API de Iniciação de Pagamentos.
- name: Pix Payment Notification
description: 'Notificações de mudanças de estados do pagamento: Arranjo Pix da API de Iniciação de Pagamentos.'

paths:
'/payments/{versionApi}/consents/{consentId}':
post:
tags:
- Consent Notification
summary: Notificações de mudanças de estados de consentimentos da API de Iniciação de Pagamentos.
operationId: consentNotification
description: Notificações de mudanças de estados de consentimentos da API de Iniciação de Pagamentos.
parameters:
- $ref: '#/components/parameters/consentId'
- $ref: '#/components/parameters/versionApi'
- $ref: '#/components/parameters/xWebhookInteractionId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RequestBodyWebhook'
description: Payload enviado para notificar a alteração no estado do consentimento.
required: true
responses:
'202':
$ref: '#/components/responses/202Webhook'
'/payments/{versionApi}/pix/payments/{paymentId}':
post:
tags:
- Pix Payment Notification
summary: 'Notificações de mudanças de estados do pagamento: Arranjo Pix da API de Iniciação de Pagamentos.'
operationId: pixPaymentNotification
description: 'Notificações de mudanças de estados do pagamento: Arranjo Pix da API de Iniciação de Pagamentos.'
parameters:
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/versionApi'
- $ref: '#/components/parameters/xWebhookInteractionId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RequestBodyWebhook'
description: Payload enviado para notificar a alteração no estado do pagamento.
required: true
responses:
'202':
$ref: '#/components/responses/202Webhook'
components:
schemas:
RequestBodyWebhook:
type: object
required:
- data
properties:
data:
type: object
description: Informações referentes à chamada realizada.
required:
- timestamp
properties:
timestamp:
type: string
format: date-time
description: Data e hora em que ocorreu o evento responsável pelo disparo da notificação via webhook, conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format).
maxLength: 20
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
example: '2021-05-21T08:30:00Z'
xWebhookInteractionId:
type: string
pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
maxLength: 100
description: Identificador único recebido da detentora de conta na notificação enviada pelo Webhook.
parameters:
consentId:
name: consentId
in: path
description: |
O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name.
Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource
Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN
seja um identificador de recurso persistente e independente da localização.
Considerando a string urn:bancoex:C1DD33123 como exemplo para consentId temos:
- o namespace(urn)
- o identificador associado ao namespace da instituição transnmissora (bancoex)
- o identificador específico dentro do namespace (C1DD33123).
Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141).
required: true
schema:
type: string
pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$'
maxLength: 256
versionApi:
name: versionApi
in: path
description: Identifica a versão da API que deverá ser utilizada para recebimento da notificação via webhook
required: true
schema:
type: string
pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$'
maxLength: 256
paymentId:
name: paymentId
in: path
description: Identificador da operação de pagamento.
required: true
schema:
type: string
pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
maxLength: 100
xWebhookInteractionId:
name: x-webhook-interaction-id
in: header
description: Identificador único para cada tentativa de notificação realizada. O identificador deverá seguir o padrão UID [RFC4122](https://tools.ietf.org/html/rfc4122).
required: true
schema:
type: string
pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
minLength: 1
maxLength: 100
responses:
202Webhook:
description: Requisição aceita para processamento posterior.
headers:
x-webhook-interaction-id:
description: Identificador único recebido da detentora de conta na notificação enviada pelo Webhook.
schema:
$ref: '#/components/schemas/xWebhookInteractionId'
5 changes: 3 additions & 2 deletions swagger-apis/webhook/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@
urls: [
{"name": "1.0.0-beta1", "url": "./1.0.0-beta1.yml"},
{"name": "1.0.0-beta.2", "url": "./1.0.0-beta.2.yml"},
{"name": "1.0.0-beta.3", "url": "./1.0.0-beta.3.yml"}
{"name": "1.0.0-beta.3", "url": "./1.0.0-beta.3.yml"},
{"name": "1.0.0-rc.1", "url": "./1.0.0-rc.1.yml"}
],
"urls.primaryName": "1.0.0-beta.3", // default spec
"urls.primaryName": "1.0.0-rc.1", // default spec
dom_id: '#swagger-ui',
deepLinking: true,
supportedSubmitMethods:[],
Expand Down

0 comments on commit 67eda47

Please sign in to comment.