openapi: 3.0.0 info: title: API Claim Notification - Open Insurance Brasil description: | API de aviso de sinistro do Open Insurance Brasil - Fase 3.\ Envia informações do aviso de sinistro manualmente escritas nas instituições transmissoras por seus clientes.\ Possui segregação entre pessoa natural e pessoa jurídica somente para os endPoints de dados customizáveis de cadastro.\ Requer consentimento do cliente para todos os 'endpoints'. # Orientações A `Role` do diretório de participantes relacionada à presente API é a `ICS`.\ Para todos os `endpoints` desta API é previsto o envio de um `token` através do header `Authorization`.\ Este `token` deverá estar relacionado ao consentimento (identificado pelo `consentId`) mantido na instituição transmissora dos dados, o qual permitirá a pesquisa e retorno, na API em questão, dos dados relacionados ao `consentId` específico.\ Os dados serão devolvidos na consulta desde que o `consentId` relacionado corresponda a um consentimento válido e com o status `AUTHORISED`.\ É também necessário que o recurso em questão (aviso de sinistro, etc.) esteja disponível na instituição transmissora (ou seja, sem bloqueios de qualquer natureza e com todas as autorizações/consentimentos já autorizados).\ Os dados presentes na solicitação de aviso de sinistro devem ser validados contra os dados presentes no campo `claimNotificationInformation` do consentimento. Caso exista uma divergência entre os dados informados na solicitação e no consentimento, a solicitação deve ser rejeitada com um retorno HTTP Status Code 422. Além disso, as `permissions` necessárias deverão ter sido solicitadas quando da criação do consentimento relacionado.\ Relacionamos a seguir as `permissions` necessárias para a consulta de dados em cada `endpoint` da presente API. ## Permissions necessárias para a API Claim Notification Para cada um dos `paths` desta API, além dos escopos (`scopes`) indicados existem `permissions` que deverão ser observadas: ### `/request/damage` - permissions: - POST: **CLAIM_NOTIFICATION_REQUEST_DAMAGE_CREATE** ### `/request/person` - permissions: - POST: **CLAIM_NOTIFICATION_REQUEST_PERSON_CREATE** ## Válidações Semanticas - Entidade não processável - 422 - 1 - `Idempotência:` Valida se há divergência entre chave de idempotência e informações enviadas (ERRO_IDEMPOTENCIA); - 2 - `Não Informado:` Valida itens não explicitamente informados pelo servidor - (NAO_INFORMADO). version: 1.4.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/claim-notification/v1' description: Servidor de Produção - url: 'https://apih.seguro.com.br/open-insurance/claim-notification/v1' description: Servidor de Homologação tags: - name: Claim Notification Damage description: Envia dados de solicitação de Aviso de Sinistro para Seguros de Danos - name: Claim Notification Person description: Envia dados de solicitação de Aviso de Sinistro para Seguros de Pessoas paths: /request/damage/{consentId}: post: tags: - Claim Notification Damage summary: Enviar os dados de solicitação de Aviso de Sinistro Danos operationId: postClaimNotificationDamage description: Método para a criação de solicitação Aviso de Sinistro Danos parameters: - $ref: '#/components/parameters/consentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/xIdempotencyKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateClaimNotificationDamage' description: Payload para criação do Aviso de Sinistro Danos. required: true responses: '201': $ref: '#/components/responses/201ClaimNotificationDamageCreated' '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' '422': $ref: '#/components/responses/UnprocessableEntityClaimNotification' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' default: $ref: '#/components/responses/Default' security: - OpenId: - openid OAuth2Security: - 'consent:consentId' - claim-notification /request/person/{consentId}: post: tags: - Claim Notification Person summary: Enviar dados de solicitação de Aviso de Sinistro Pessoas operationId: getClaimNotificationPerson description: Método para a criação de solicitação Aviso de Sinistro Pessoas parameters: - $ref: '#/components/parameters/consentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/xIdempotencyKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateClaimNotificationPerson' description: Payload para criação do Aviso de Sinistro Pessoas. required: true responses: '201': $ref: '#/components/responses/201ClaimNotificationPersonCreated' '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' '422': $ref: '#/components/responses/UnprocessableEntityClaimNotification' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' default: $ref: '#/components/responses/Default' security: - OpenId: - openid OAuth2Security: - 'consent:consentId' - claim-notification components: schemas: CreateClaimNotificationDamage: type: object required: - data properties: data: type: object description: Objeto contendo dados de sinistro. required: - documentType - occurrenceDate - occurrenceDescription properties: documentType: description: Tipo de Documento Emitido. type: string enum: [APOLICE_INDIVIDUAL, BILHETE, CERTIFICADO, APOLICE_INDIVIDUAL_AUTOMOVEL, APOLICE_FROTA_AUTOMOVEL, CERTIFICADO_AUTOMOVEL] policyId: description: 'Número da apólice, conforme regulamentação vigente. Condicional a seleção dos campos 1. Apólices Individual ou 2. Bilhete no campo "Tipo de Documento Emitido"' type: string maxLength: 60 example: "111111" groupCertificateId: description: Identificador do Certificado (Caso Tipo de Documento Emitido for certificado) type: string maxLength: 60 insuredObjectId: description: lista de Identificador do Objeto Segurado (Caso aplicável) type: array items: type: string maxLength: 100 example: "216731531723" occurrenceDate: description: Data de Ocorrência do Sinistro type: string format: date maxLength: 10 example: '2022-01-01' occurrenceTime: description: Horário de ocorrência do sinistro type: string pattern: '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' example: '22:18:54' occurrenceDescription: description: Descrição da Ocorrência/Relato da ocorrência type: string maxLength: 10000 customData: type: object properties: customerIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' businessIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' generalQuoteInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' riskLocationInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' insuredObjects: type: array items: $ref: '#/components/schemas/CustomInfoData' beneficiaries: type: array items: $ref: '#/components/schemas/CustomInfoData' coverages: type: array items: $ref: '#/components/schemas/CustomInfoData' generalClaimInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' CreateClaimNotificationPerson: type: object required: - data properties: data: description: Objeto contendo dados de sinistro. type: object required: - documentType - occurrenceDate - occurrenceDescription - requestorIsInsured - proposalId properties: requestorIsInsured: type: boolean description: O solicitante é o segurado? example: false requestor: description: | Objeto contendo informações do solicitante. Obrigatório caso requestorIsInsured seja false. type: object required: - name - documentType - documentNumber properties: name: type: string maxLength: 70 pattern: '[\w\W\s]*' example: string description: Nome da Instituição ou da pessoa física que está solicitando o sinistro. documentType: type: string enum: [CNPJ, CPF, RG_RE, PASSAPORTE, OUTROS] description: Tipo de documento de identificação do solicitante documentTypeOthers: type: string description: Deve ser preenchido caso o tipo de documento informado seja 'OUTROS.' documentNumber: type: string maxLength: 20 pattern: '[\w\W\s]*' example: '73677831148' description: Número do documento informado. phones: type: array items: $ref: '#/components/schemas/RequestorPhone' minItems: 1 description: Lista com telefones de contato da pessoa natural emails: type: array items: $ref: '#/components/schemas/RequestorEmail' minItems: 1 description: Lista e-mails de contato claimant: description: | Quem é o sinistrado? Opcional somente para o Seguro Viagem type: string enum: [CONJUGE, FILHO, SEGURADO] documentType: description: Tipo de Documento Emitido. type: string enum: [APOLICE_INDIVIDUAL, BILHETE, CERTIFICADO, APOLICE_INDIVIDUAL_AUTOMOVEL, APOLICE_FROTA_AUTOMOVEL, CERTIFICADO_AUTOMOVEL] policyId: description: Número da apólice, conforme regulamentação vigente type: string maxLength: 60 example: "111111" groupCertificateId: description: Identificador do Certificado(Caso Tipo de Documento Emitido for certificado) type: string maxLength: 60 insuredObjectId: description: lista de Identificador do Objeto Segurado (Caso aplicável) type: array items: type: string maxLength: 100 example: "216731531723" proposalId: description: Identificador da proposta ou certificado type: string maxLength: 60 example: "987" occurrenceDate: description: Data de Ocorrência do Sinistro type: string format: date maxLength: 10 example: '2022-01-01' occurrenceTime: description: Horário de ocorrência do sinistro type: string pattern: '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' example: '22:18:54' occurrenceDescription: description: Descrição da Ocorrência/Relato da ocorrência type: string maxLength: 10000 customData: type: object properties: customerIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' businessIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' generalQuoteInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' riskLocationInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' insuredObjects: type: array items: $ref: '#/components/schemas/CustomInfoData' beneficiaries: type: array items: $ref: '#/components/schemas/CustomInfoData' coverages: type: array items: $ref: '#/components/schemas/CustomInfoData' generalClaimInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' ResponseClaimNotificationDamage: type: object required: - data - links properties: data: type: object description: Objeto contendo dados de sinistro. required: - documentType - occurrenceDate - occurrenceDescription - protocolNumber - protocolDateTime properties: protocolNumber: description: Identificador da Solicitação do aviso de sinistro, conforme protocolo interno da seguradora avisada. type: string maxLength: 60 protocolDateTime: description: Data e hora do protocolamento do aviso de sinistro, conforme especificação RFC-3339, formato UTC. type: string format: date-time maxLength: 20 example: '2021-08-20T08:30:00Z' documentType: description: Tipo de Documento Emitido. type: string enum: [APOLICE_INDIVIDUAL, BILHETE, CERTIFICADO, APOLICE_INDIVIDUAL_AUTOMOVEL, APOLICE_FROTA_AUTOMOVEL, CERTIFICADO_AUTOMOVEL] policyId: description: 'Número da apólice, conforme regulamentação vigente. Condicional a seleção dos campos 1. Apólices Individual ou 2. Bilhete no campo "Tipo de Documento Emitido"' type: string maxLength: 60 example: "111111" groupCertificateId: description: Identificador do Certificado (Caso Tipo de Documento Emitido for certificado) type: string maxLength: 60 insuredObjectId: description: lista de Identificador do Objeto Segurado (Caso aplicável) type: array items: type: string maxLength: 100 example: "216731531723" occurrenceDate: description: Data de Ocorrência do Sinistro type: string format: date maxLength: 10 example: '2022-01-01' occurrenceTime: description: Horário de ocorrência do sinistro type: string pattern: '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' example: '22:18:54' occurrenceDescription: description: Descrição da Ocorrência/Relato da ocorrência type: string maxLength: 10000 customData: type: object properties: customerIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' businessIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' generalQuoteInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' riskLocationInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' insuredObjects: type: array items: $ref: '#/components/schemas/CustomInfoData' beneficiaries: type: array items: $ref: '#/components/schemas/CustomInfoData' coverages: type: array items: $ref: '#/components/schemas/CustomInfoData' generalClaimInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' links: $ref: '#/components/schemas/Links' ResponseClaimNotificationPerson: type: object required: - data - links properties: data: type: object description: Objeto contendo dados de sinistro. required: - documentType - occurrenceDate - occurrenceDescription - requestorIsInsured - protocolNumber - protocolDateTime - proposalId properties: protocolNumber: description: Identificador da Solicitação do aviso de sinistro, conforme protocolo interno da seguradora avisada. type: string maxLength: 60 protocolDateTime: description: Data e hora do protocolamento do aviso de sinistro, conforme especificação RFC-3339, formato UTC. type: string maxLength: 20 format: date-time example: '2021-08-20T08:30:00Z' requestorIsInsured: type: boolean description: O solicitante é o segurado? example: false requestor: description: | Objeto contendo informações do solicitante. Obrigatório caso requestorIsInsured seja false. type: object required: - name - documentType - documentNumber properties: name: type: string maxLength: 70 pattern: '[\w\W\s]*' example: string description: Nome da Instituição ou da pessoa física que está solicitando o sinistro. documentType: type: string enum: [CNPJ, CPF, RG_RE, PASSAPORTE, OUTROS] description: Tipo de documento de identificação do solicitante documentTypeOthers: type: string description: Deve ser preenchido caso o tipo de documento informado seja 'OUTROS' documentNumber: type: string maxLength: 20 pattern: '[\w\W\s]*' example: '73677831148' description: Número do documento informado. phones: type: array items: $ref: '#/components/schemas/RequestorPhone' minItems: 1 description: Lista com telefones de contato da pessoa natural emails: type: array items: $ref: '#/components/schemas/RequestorEmail' minItems: 1 description: Lista e-mails de contato claimant: description: | Quem é o sinistrado? Opcional somente para o Seguro Viagem type: string enum: [CONJUGE, FILHO, SEGURADO] documentType: description: Tipo de Documento Emitido. type: string enum: [APOLICE_INDIVIDUAL, BILHETE, CERTIFICADO, APOLICE_INDIVIDUAL_AUTOMOVEL, APOLICE_FROTA_AUTOMOVEL, CERTIFICADO_AUTOMOVEL] policyId: description: Número da apólice, conforme regulamentação vigente type: string maxLength: 60 example: "111111" groupCertificateId: description: Identificador do Certificado(Caso Tipo de Documento Emitido for certificado) type: string maxLength: 60 insuredObjectId: description: lista de Identificador do Objeto Segurado (Caso aplicável) type: array items: type: string maxLength: 100 example: "216731531723" proposalId: description: Identificador da proposta ou certificado type: string maxLength: 60 example: "987" occurrenceDate: description: Data de Ocorrência do Sinistro type: string format: date maxLength: 10 example: '2022-01-01' occurrenceTime: description: Horário de ocorrência do sinistro type: string pattern: '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' example: '22:18:54' occurrenceDescription: description: Descrição da Ocorrência/Relato da ocorrência type: string maxLength: 10000 customData: type: object properties: customerIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' customerComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' businessIdentification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessQualification: type: array items: $ref: '#/components/schemas/CustomInfoData' businessComplimentaryInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' generalQuoteInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' riskLocationInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' insuredObjects: type: array items: $ref: '#/components/schemas/CustomInfoData' beneficiaries: type: array items: $ref: '#/components/schemas/CustomInfoData' coverages: type: array items: $ref: '#/components/schemas/CustomInfoData' generalClaimInfo: type: array items: $ref: '#/components/schemas/CustomInfoData' links: $ref: '#/components/schemas/Links' RequestorEmail: type: object properties: email: type: string description: Endereço de email maxLength: 320 pattern: '\S+@\S+\.\S+' example: nome@br.net additionalProperties: false RequestorPhone: type: object properties: countryCallingCode: type: string maxLength: 4 pattern: '^\d{1,4}$|^NA$' example: '55' description: Número de DDI (Discagem Direta Internacional) para telefone de acesso ao Cliente - se aplicável areaCode: $ref: '#/components/schemas/EnumAreaCode' number: type: string maxLength: 11 pattern: '^([0-9]{8,11})|^NA$' example: '29875132' description: Número de telefone do cliente additionalProperties: false EnumAreaCode: type: string description: Número de DDD (Discagem Direta à Distância) do telefone do cliente - se houver enum: - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '21' - '22' - '24' - '27' - '28' - '31' - '32' - '33' - '34' - '35' - '37' - '38' - '41' - '42' - '43' - '44' - '45' - '46' - '47' - '48' - '49' - '51' - '53' - '54' - '55' - '61' - '62' - '63' - '64' - '65' - '66' - '67' - '68' - '69' - '71' - '73' - '74' - '75' - '77' - '79' - '81' - '82' - '83' - '84' - '85' - '86' - '87' - '88' - '89' - '91' - '92' - '93' - '94' - '95' - '96' - '97' - '98' - '99' - NA CustomInfoData: type: object description: Estrutura para identificação e transmissão de dados customizáveis. required: - fieldId - value properties: fieldId: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' maxLength: 100 description: Um identificador único usado para identificar o valor transmitido. example: "578-psd-71md6971kjh-2d414" value: description: Valor do campo identificado acima, esse campo pode ser implementado como qualquer tipo de dado (objeto, texto, número, booleano, etc.) additionalProperties: false 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 422ResponseErrorCreateClaimNotification: type: object required: - errors properties: errors: type: object minItems: 1 required: - code - title - detail properties: code: type: string enum: - ERRO_IDEMPOTENCIA - NAO_INFORMADO example: 'ERRO_IDEMPOTENCIA' description: 'Código do erro 422 de Entidade não processada.' title: type: string maxLength: 255 pattern: '[\w\W\s*]' example: 'Tentativa de alteração de requisição já processada' description: | - ERRO_ IDEMPOTENCIA: Tentativa de alteração de requisição já processada - NÃO_INFORMADO: Não informada pelo servidor detail: type: string maxLength: 2048 pattern: '[\w\W\s*]' example: 'Tentativa de alteração de requisição já processada' description: | - ERRO_ IDEMPOTENCIA: Tentativa de alteração de requisição já processada - NÃO_INFORMADO: Não informada pelo servidor meta: $ref: '#/components/schemas/Meta' XFapiInteractionId: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' maxLength: 100 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.' Links: type: object required: - redirect properties: redirect: description: Campo destinado a disponibilização de links de acesso a outros materiais. type: string example: 'https://www.abcseguros.com/endorsement?id=000123' 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: consentId: name: consentId in: path description: | O consentId é o identificador único do consentimento a ser revogado e deverá ser um URN - Uniform Resource Name. required: true schema: type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 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 page: name: page in: query description: Número da página que está sendo requisitada (o valor da primeira página é 1). schema: type: integer default: 1 minimum: 1 format: int32 pageSize: name: page-size in: query description: Quantidade total de registros por páginas. schema: type: integer default: 25 minimum: 1 format: int32 maximum: 1000 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 entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser “espelhado” pela transmissora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a transmissora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A receptora deve acatar o valor recebido da transmissora.' required: true schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 xIdempotencyKey: name: x-idempotency-key in: header description: | Cabeçalho HTTP personalizado. Identificador de solicitação exclusivo para suportar a idempotência. required: true schema: type: string minLength: 1 maxLength: 40 pattern: ^(?!\s)(.*)(\S)$ securitySchemes: OpenId: type: openIdConnect openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration' OAuth2Security: type: oauth2 description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Inclui o processo de redirecionamento e autenticação do usuário a que se referem os dados. flows: authorizationCode: authorizationUrl: 'https://authserver.example/authorization' tokenUrl: 'https://authserver.example/token' scopes: claim-notification: Escopo necessário para acesso à API Claim Notification. responses: BadRequest: description: A requisição foi malformada, 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' UnprocessableEntityClaimNotification: description: Seguir as orientações presentes na descrição deste endpoint content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/422ResponseErrorCreateClaimNotification' 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' 201ClaimNotificationDamageCreated: description: Aviso de Sinistro Danos enviado com sucesso headers: x-fapi-interaction-id: schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/json: schema: $ref: '#/components/schemas/ResponseClaimNotificationDamage' 201ClaimNotificationPersonCreated: description: Aviso de Sinistro Pessoas enviado com sucesso headers: x-fapi-interaction-id: schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/json: schema: $ref: '#/components/schemas/ResponseClaimNotificationPerson'