openapi: 3.0.0 info: title: API Webhook - Open Insurance Brasil description: | API de Webhook é responsável por notificar eventos definidos em cada uma das APIs que possuem a funcionalidade no Open Insurance Brasil. version: 1.1.0 contact: name: Governança do Open Insurance Brasil url: 'https://www.gov.br/susep' servers: - url: 'https://api.organizacao.com.br/open-insurance/webhook/v1' description: Servidor de Produção - url: 'https://api.organizacao.com.br/open-insurance/webhook/v1' description: Servidor de Homologação tags: - name: Quote description: Notificações de mudanças de estados da cotação referente a alguma das APIs de Cotação de Danos e Pessoas. - name: Capitalization Title description: Notificações de mudanças de payload referente a API de Produtos de Título de Capitalização. - name: Quote Capitalization Title description: Notificações de mudanças de estados da cotação referente a API de Cotação de Título de Capitalização. - name: Dynamic Fields description: Notificações de mudanças no payload da API de Campos Dinâmicos. paths: '/quote/{versionApi}/request/{consentId}/quote-status': post: tags: - Quote summary: Notificações de mudanças de estados da cotação referente a alguma das APIs de Cotação de Danos e Pessoas. operationId: quoteNotification description: Notificações de mudanças de estados da cotação referente a alguma das APIs de Cotação de Danos e Pessoas. 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 da cotação. required: true responses: '202': $ref: '#/components/responses/202Webhook' '/products-services/{authorisationServerId}/{versionApi}/capitalization-title': post: tags: - Capitalization Title summary: Notificações de mudanças de payload referente a API de Produtos de Título de Capitalização. operationId: productCaptalizationNotification description: Notificações de mudanças de payload referente a API de Produtos de Título de Capitalização. parameters: - $ref: '#/components/parameters/authorisationServerId' - $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 payload referente a API de Produtos de Título de Capitalização. required: true responses: '202': $ref: '#/components/responses/202Webhook' '/quote-capitalization-title/{versionApi}/request/{consentId}/quote-status': post: tags: - Quote Capitalization Title summary: Notificações de mudanças de estados da cotação referente a API de Cotação de Título de Capitalização. operationId: quoteCaptalizationNotification description: Notificações de mudanças de estados da cotação referente a API de Cotação de Título de Capitalização. 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 da cotação. required: true responses: '202': $ref: '#/components/responses/202Webhook' '/dynamic-fields/{authorisationServerId}/{versionApi}/damage-and-person': post: tags: - Dynamic Fields summary: Notificações de mudanças no payload da API de Campos Dinâmicos. operationId: dynamicFieldsNotificationDamageAndPerson description: Notificações de mudanças no payload da API de Campos Dinâmicos. parameters: - $ref: '#/components/parameters/authorisationServerId' - $ref: '#/components/parameters/versionApi' - $ref: '#/components/parameters/xWebhookInteractionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestBodyWebhook' description: Payload enviado para notificar mudanças no payload da API de Campos Dinâmicos. required: true responses: '202': $ref: '#/components/responses/202Webhook' '/dynamic-fields/{authorisationServerId}/{versionApi}/capitalization-title': post: tags: - Dynamic Fields summary: Notificações de mudanças no payload da API de Campos Dinâmicos. operationId: dynamicFieldsNotificationCapitalizationTitle description: Notificações de mudanças no payload da API de Campos Dinâmicos. parameters: - $ref: '#/components/parameters/authorisationServerId' - $ref: '#/components/parameters/versionApi' - $ref: '#/components/parameters/xWebhookInteractionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestBodyWebhook' description: Payload enviado para notificar mudanças no payload da API de Campos Dinâmicos. 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 seguradora na notificação enviada pelo Webhook. parameters: authorisationServerId: name: authorisationServerId in: path description: | O authorisationServerId identifica o servidor de autorização no qual houve uma alteração de API. required: true schema: type: string maxLength: 40 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:initiator:C1DD93123 como exemplo para consentId temos: - o namespace(urn) - o identificador associado ao namespace da instituição transnmissora (initiator) - o identificador específico dentro do namespace (C1DD93123). 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 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 seguradora na notificação enviada pelo Webhook. schema: $ref: '#/components/schemas/xWebhookInteractionId'