diff --git a/swagger-apis/webhook/1.0.0-rc.1.yml b/swagger-apis/webhook/1.0.0-rc.1.yml new file mode 100644 index 000000000..0fdaf9703 --- /dev/null +++ b/swagger-apis/webhook/1.0.0-rc.1.yml @@ -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 Convenção de Webhook, 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: gt-interfaces@openbankingbr.org + 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' diff --git a/swagger-apis/webhook/index.html b/swagger-apis/webhook/index.html index 0b0d0d43b..472ec8c1b 100644 --- a/swagger-apis/webhook/index.html +++ b/swagger-apis/webhook/index.html @@ -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:[],