openapi: 3.0.0 info: title: API Notifications - Open Insurance Brasil description: | API que trata da criação de notificações para o Open Insurance Brasil Fase 3. Não possui segregação entre pessoa natural e pessoa jurídica. version: 1.0.0 license: name: Apache 2.0 url: "http://www.apache.org/licenses/LICENSE-2.0" contact: name: Governança do Open Insurance Brasil - Especificações url: "https://www.gov.br/susep" servers: - url: "https://api.seguro.com.br/open-insurance/notifications/v1" description: Servidor de Produção - url: "https://apih.seguro.com.br/open-insurance/notifications/v1" description: Servidor de Homologação tags: - name: Quotes description: Operações para notificação de cotações. paths: "/quote-notification": post: tags: - Quotes summary: Criar notificação para alteração do status da cotação. operationId: postQuoteNotification description: Criar notificação quando o status da cotação (na seguradora) for alterado para ACPT OU RJCT. parameters: - $ref: "#/components/parameters/Authorization" - $ref: "#/components/parameters/xFapiAuthDate" - $ref: "#/components/parameters/xFapiCustomerIpAddress" - $ref: "#/components/parameters/xFapiInteractionId" - $ref: "#/components/parameters/xCustomerUserAgent" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateQuoteNotification" description: Payload para criação da notificação. required: true responses: "201": $ref: "#/components/responses/201QuoteNotificationCreated" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "405": $ref: "#/components/responses/MethodNotAllowed" "406": $ref: "#/components/responses/NotAcceptable" "415": $ref: "#/components/responses/UnsupportedMediaType" "422": $ref: "#/components/responses/UnprocessableEntity" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" default: $ref: "#/components/responses/Default" security: - OAuth2Security: - notifications components: schemas: CreateQuoteNotification: type: object description: Objeto contendo dados da notificação. required: - data properties: data: type: object required: - consentId - status properties: consentId: $ref: "#/components/schemas/ConsentId" status: type: string enum: - ACPT - RJCT description: | Trata o status atualizado da cotação relacionada consentId específico. O detalhamento do status em questão deve ser consultado junto a seguradora. Descrição dos possíveis estados da cotação agora: - ACPT: ACEITA - Cotação aceita pela seguradora. - RJCT: REJEITADA - Cotação rejeitada pela seguradora. additionalProperties: false ConsentId: 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 transmissora(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). type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 example: "urn:initiator:C1DD93123" ResponseError: type: object required: - errors properties: errors: type: array minItems: 1 maxItems: 13 items: type: object required: - code - title - detail properties: code: description: Código de erro específico do endpoint type: string pattern: '[\w\W\s]*' maxLength: 255 title: description: Título legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 2048 additionalProperties: false meta: $ref: "#/components/schemas/Meta" additionalProperties: false Meta: type: object description: Meta informações referente à API requisitada. required: - totalRecords - totalPages - requestDateTime properties: totalRecords: type: integer format: int32 description: Número total de registros no resultado example: 1 totalPages: type: integer format: int32 description: Número total de páginas no resultado example: 1 requestDateTime: description: Data e hora da consulta, conforme especificação RFC-3339, formato UTC. type: string maxLength: 20 format: date-time example: "2021-05-21T08:30:00Z" additionalProperties: false parameters: Authorization: name: Authorization in: header description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado required: true schema: type: string pattern: '[\w\W\s]*' maxLength: 2048 xCustomerUserAgent: name: x-customer-user-agent in: header description: Indica o user-agent que o usuário utiliza. required: false schema: type: string pattern: '[\w\W\s]*' minLength: 1 maxLength: 100 xFapiAuthDate: name: x-fapi-auth-date in: header description: "Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a [RFC7231](https://tools.ietf.org/html/rfc7231).Exemplo: Sun, 10 Sep 2017 19:43:31 UTC" required: false schema: type: string pattern: '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$' minLength: 29 maxLength: 29 xFapiCustomerIpAddress: name: x-fapi-customer-ip-address in: header description: O endereço IP do usuário se estiver atualmente logado com o receptor. required: false schema: type: string pattern: '[\w\W\s]*' minLength: 1 maxLength: 100 xFapiInteractionId: name: x-fapi-interaction-id in: header description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.' required: false schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 securitySchemes: OAuth2Security: type: oauth2 flows: clientCredentials: tokenUrl: "https://authserver.example/token" scopes: notifications: Escopo necessário para acesso à API Notifications. responses: UnsupportedMediaType: description: O formato do payload não é um formato suportado. content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" BadRequest: description: A requisição foi mal formada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" Forbidden: description: O token tem escopo incorreto ou uma política de segurança foi violada content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" InternalServerError: description: Ocorreu um erro no gateway da API ou no microsserviço content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" MethodNotAllowed: description: O consumidor tentou acessar o recurso com um método não suportado content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" NotAcceptable: description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" NotFound: description: O recurso solicitado não existe ou não foi implementado content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" TooManyRequests: description: A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" Unauthorized: description: Cabeçalho de autenticação ausente/inválido ou token inválido content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" Default: description: Erro inesperado. content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" 201QuoteNotificationCreated: description: Recurso de notificação criado com sucesso. headers: x-fapi-interaction-id: description: | Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta. schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 example: 85bac523-d3ae-2289-b106-330a6218710d UnprocessableEntity: description: O servidor entende o tipo de conteúdo da entidade da requisição, e a sintaxe da requisição está correta, mas não foi possível processar as instruções presentes content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError"