Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Webhook): ORB-2992 - Criar nova versão da API - 1.0.0-rc.2 #1795

Merged
merged 1 commit into from
Jul 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 150 additions & 0 deletions swagger-apis/webhook/1.0.0-rc.2.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.2'
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 @@ -49,9 +49,10 @@
{"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-rc.1", "url": "./1.0.0-rc.1.yml"}
{"name": "1.0.0-rc.1", "url": "./1.0.0-rc.1.yml"} ,
{"name": "1.0.0-rc.2", "url": "./1.0.0-rc.2.yml"}
],
"urls.primaryName": "1.0.0-beta.3", // default spec
"urls.primaryName": "1.0.0-rc.2", // default spec
dom_id: '#swagger-ui',
deepLinking: true,
supportedSubmitMethods:[],
Expand Down
Loading