openapi: 3.0.0 info: title: API de ingestão da coleta de métricas description: | API que recebe os logs da troca de dados para geração de métricas. A API de reporte fornece operações que permitem a inclusão dos registros de chamada na plataforma de Coleta de Métricas. A inclusão de reportes pode ser feita de maneira individual ou em lote, conforme respectivas documentações. Os dados que são inseridos na API de Reporte são sempre processados de maneira assíncrona, e sua persistência se utiliza de consistência posterior (eventual consistency), portanto, um registro tem um tempo de processamento em que ele não estará disponível para consulta até que ele seja persistido. ## Segurança A autenticação das requisições se dará com base na assinatura do body das requisições. Requisitos: * Organização devidamente registrada no diretório * Certificado de assinatura devidamente cadastrado no diretório a nivel de organização A validação da autenticidade será baseada no certificado de assinatura do body que será validado no keystore do diretório. Todas as requisições deveram ser enviadas com o Content-Type: application/jwt.
Para assinar uma requisição a organização deverá: 1) Identifique a chave privada e o certificado de assinatura correspondente a serem usados para assinar o payload 2) Geração do JOSE Header Montar um JSON com os campos obrigatórios: * **alg** - Algoritmo que será usado para assinar o JWS. Deve ser preenchido com o valor **"PS256"**. * **kid** - Valor do identificador da chave utilizado para a assinatura. * **typ** - Tipo de conteúdo usado para trafegar mensagens na API. Deve ser preenchido com o valor **"JWT"**. E converter para Base64Url seguindo o padrão especificado na [RFC4648](https://datatracker.ietf.org/doc/html/rfc4648#section-5). 3) Montando o payload JWS Body da requisição no formato JSON convertido para Base64Url seguindo o padrão especificado na [RFC4648](https://datatracker.ietf.org/doc/html/rfc4648#section-5). 4) Gerar a assinatura digital conforme especificado na [RFC7515](https://datatracker.ietf.org/doc/html/rfc7515). 5) Juntar as partes concatenando com ponto (.) para formar o JWS **JWS = Base64url(JOSEHeader) + "." + Base64url(payload JWT) + "." + Base64url(digital signature)** A assinatura do body deve seguir o padrão JWS definido na [RFC7515](https://datatracker.ietf.org/doc/html/rfc7515). ## Grupos de endpoints ### Fase 1 - /open-insurance/channels/v1/branches - /open-insurance/channels/v1/electronic-channels - /open-insurance/channels/v1/intermediary/{countrySubDivision} - /open-insurance/channels/v1/phone-channels - /open-insurance/channels/v1/referenced-network/{countrySubDivision}/{serviceType} - /open-insurance/products-services/v1/assistance-general-assets - /open-insurance/products-services/v1/auto-extended-warranty - /open-insurance/products-services/v1/auto-insurance/{commercializationArea}/{fipeCode}/{year} - /open-insurance/products-services/v1/business - /open-insurance/products-services/v1/capitalization-title - /open-insurance/products-services/v1/condominium - /open-insurance/products-services/v1/cyber-risk - /open-insurance/products-services/v1/directors-officers-liability - /open-insurance/products-services/v1/domestic-credit - /open-insurance/products-services/v1/engineering - /open-insurance/products-services/v1/environmental-liability - /open-insurance/products-services/v1/equipment-breakdown - /open-insurance/products-services/v1/errors-omissions-liability - /open-insurance/products-services/v1/export-credit - /open-insurance/products-services/v1/extended-warranty - /open-insurance/products-services/v1/financial-risk - /open-insurance/products-services/v1/general-liability - /open-insurance/products-services/v1/global-banking - /open-insurance/products-services/v1/home-insurance/commercializationArea/{commercializationArea} - /open-insurance/products-services/v1/housing - /open-insurance/products-services/v1/life-pension - /open-insurance/products-services/v1/lost-profit - /open-insurance/products-services/v1/named-operational-risks - /open-insurance/products-services/v1/pension-plan - /open-insurance/products-services/v1/person - /open-insurance/products-services/v1/private-guarantee - /open-insurance/products-services/v1/public-guarantee - /open-insurance/products-services/v1/rent-guarantee - /open-insurance/products-services/v1/rural - /open-insurance/products-services/v1/stop-loss - /open-insurance/products-services/v1/transport ### Fase 2 - /open-insurance/consents/v1/consents - /open-insurance/consents/v1/consents/{consentId} - /open-insurance/resources/v1/resources - /open-insurance/customers/v1/personal/identifications - /open-insurance/customers/v1/personal/qualifications - /open-insurance/customers/v1/personal/complimentary-information - /open-insurance/customers/v1/business/identifications - /open-insurance/customers/v1/business/qualifications - /open-insurance/customers/v1/business/complimentary-information - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/policy-info - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/premium - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/claim - /open-insurance/insurance-auto/v1/insurance-auto - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/policy-info - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/premium - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/claim - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/policy-info - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/premium - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/claim - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/policy-info - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/premium - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/claim - /open-insurance/insurance-responsibility/v1/insurance-responsibility - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/policy-info - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/premium - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/claim - /open-insurance/insurance-rural/v1/insurance-rural - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/policy-info - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/premium - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/claim - /open-insurance/insurance-housing/v1/insurance-housing - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/policy-info - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/premium - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/claim - /open-insurance/insurance-transport/v1/insurance-transport - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/policy-info - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/premium - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/claim - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/plans - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/plan-info - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/events - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/settlements - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/contracts - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/{contractId}/contract-info - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/{contractId}/movements - /open-insurance/insurance-life-pension/v1/insurance-life-pension/contracts - /open-insurance/insurance-life-pension/v1/insurance-life-pension - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/contract-info - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/movements - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/portabilities - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/withdrawals - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/claim - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/contracts - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/contract-info - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/movements - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/portabilities - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/withdrawals - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/claim - /open-insurance/insurance-person/v1/insurance-person - /open-insurance/insurance-person/v1/insurance-person/{policyId}/policy-info - /open-insurance/insurance-person/v1/insurance-person/{policyId}/claim - /open-insurance/insurance-person/v1/insurance-person/{policyId}/movements ### Fase 3 - /open-insurance/claim-notification/v1/request/damage/{consentId} - /open-insurance/claim-notification/v1/request/person/{consentId} - /open-insurance/endorsement/v1/request/{consentId} - /open-insurance/quote-patrimonial/v1/lead/request - /open-insurance/quote-patrimonial/v1/lead/request/{consentId} - /open-insurance/quote-patrimonial/v1/home/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/home/request - /open-insurance/quote-patrimonial/v1/home/request/{consentId} - /open-insurance/quote-patrimonial/v1/condominium/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/condominium/request - /open-insurance/quote-patrimonial/v1/condominium/request/{consentId} - /open-insurance/quote-patrimonial/v1/business/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/business/request - /open-insurance/quote-patrimonial/v1/business/request/{consentId} - /open-insurance/quote-patrimonial/v1/diverse-risks/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/diverse-risks/request - /open-insurance/quote-patrimonial/v1/diverse-risks/request/{consentId} ### Fases 2 e 3 - /open-insurance/consents/v2/consents - /open-insurance/consents/v2/consents/{consentId} - /open-insurance/resources/v2/resources version: 1.0.10 servers: - url: 'https://ingestion-api.opinbrasil.com.br' description: Servidor de Producao - url: 'https://ingestion-api-sandbox.opinbrasil.com.br' description: Servidor de Homologacao paths: /report-api/v1/server-event: post: summary: Inclusão unitária de reporte pelo servidor description: Inclusão de reporte individual na plataforma por um participante no papel de transmissor (lado que recebeu a chamada). operationId: reportServerEvent requestBody: content: application/jwt: schema: $ref: "#/components/schemas/eventBody" responses: "200": $ref: "#/components/responses/reportEventResponse200" "400": $ref: "#/components/responses/reportEventResponse400" "401": $ref: "#/components/responses/reportEventResponse401" "406": $ref: "#/components/responses/reportEventResponse406" "415": $ref: "#/components/responses/reportEventResponse415" "500": $ref: "#/components/responses/reportEventResponse500" /report-api/v1/server-batch: post: summary: Inclusão em massa de reportes pelo transmissor description: | Inclusão de reportes em massa na plataforma. Ao enviar um lote de reportes, a plataforma vai fazer o processo de validação de cada reporte de maneira síncrona e devolver o resultado dessa validação na resposta, sendo que o status HTTP de retorno vai refletir esse resultado (vide documentação de cada status de retorno). No entanto, o processamento de cada reporte ocorrerá de maneira assíncrona. O limite de registros de cada lote é 5.000 registros. operationId: reportServerBatch requestBody: content: application/jwt: schema: $ref: "#/components/schemas/batchBody" responses: "200": $ref: "#/components/responses/reportBatchResponse200" "207": $ref: "#/components/responses/reportBatchResponse207" "400": $ref: "#/components/responses/reportBatchResponse400" "401": $ref: "#/components/responses/reportBatchResponse401" "406": $ref: "#/components/responses/reportBatchResponse406" "413": $ref: "#/components/responses/reportBatchResponse413" "415": $ref: "#/components/responses/reportBatchResponse415" "500": $ref: "#/components/responses/reportBatchResponse500" /report-api/v1/client-event: post: summary: Inclusão unitária de reporte pelo cliente description: Inclusão de reporte individual na plataforma por um participante no papel de receptor (lado que iniciou a chamada). operationId: reportClientEvent requestBody: content: application/jwt: schema: $ref: "#/components/schemas/eventBody" responses: "200": $ref: "#/components/responses/reportEventResponse200" "400": $ref: "#/components/responses/reportEventResponse400" "401": $ref: "#/components/responses/reportEventResponse401" "406": $ref: "#/components/responses/reportEventResponse406" "415": $ref: "#/components/responses/reportEventResponse415" "500": $ref: "#/components/responses/reportEventResponse500" /report-api/v1/client-batch: post: summary: Inclusão em massa de reportes pelo lado do cliente (iniciador de chamada) description: | Inclusão de reportes em massa na plataforma. Ao enviar um lote de reportes, a plataforma vai fazer o processo de validação de cada reporte de maneira síncrona e devolver o resultado dessa validação na resposta, sendo que o status HTTP de retorno vai refletir esse resultado (vide documentação de cada status de retorno). No entanto, o processamento de cada reporte ocorrerá de maneira assíncrona. O limite de registros de cada lote é de 5.000 registros. operationId: reportClientBatch requestBody: content: application/jwt: schema: $ref: "#/components/schemas/batchBody" responses: "200": $ref: "#/components/responses/reportBatchResponse200" "207": $ref: "#/components/responses/reportBatchResponse207" "400": $ref: "#/components/responses/reportBatchResponse400" "401": $ref: "#/components/responses/reportBatchResponse401" "406": $ref: "#/components/responses/reportBatchResponse406" "413": $ref: "#/components/responses/reportBatchResponse413" "415": $ref: "#/components/responses/reportBatchResponse415" "500": $ref: "#/components/responses/reportBatchResponse500" components: parameters: authorizationParameter: name: Authorization in: header description: Token de acesso required: true schema: type: string example: "Bearer 9fu19ef0i12je0ifj12102ijf0i2je" schemas: reportBody: type: object properties: reportId: type: string example: d12eid123d123dnodn2i3 fapiInteractionId: type: string description: | Um UID [RFC4122](https://tools.ietf.org/html/rfc4122). Restrição: obrigatório para os endpoints com exceção da fase 1. example: "731d7aa0-09c3-4fa5-b024-905934d794e7" pattern: '^[a-zA-Z0-9][a-zA-Z0-9\\-]{0,99}$ ' minLength: 1 maxLength: 100 endpoint: type: string example: "/open-insurance/insurance-rural/v1/insurance-rural/{policyId}/claim" enum: - /open-insurance/channels/v1/branches - /open-insurance/channels/v1/electronic-channels - /open-insurance/channels/v1/intermediary/{countrySubDivision} - /open-insurance/channels/v1/phone-channels - /open-insurance/channels/v1/referenced-network/{countrySubDivision}/{serviceType} - /open-insurance/products-services/v1/assistance-general-assets - /open-insurance/products-services/v1/auto-extended-warranty - /open-insurance/products-services/v1/auto-insurance/{commercializationArea}/{fipeCode}/{year} - /open-insurance/products-services/v1/business - /open-insurance/products-services/v1/capitalization-title - /open-insurance/products-services/v1/condominium - /open-insurance/products-services/v1/cyber-risk - /open-insurance/products-services/v1/directors-officers-liability - /open-insurance/products-services/v1/domestic-credit - /open-insurance/products-services/v1/engineering - /open-insurance/products-services/v1/environmental-liability - /open-insurance/products-services/v1/equipment-breakdown - /open-insurance/products-services/v1/errors-omissions-liability - /open-insurance/products-services/v1/export-credit - /open-insurance/products-services/v1/extended-warranty - /open-insurance/products-services/v1/financial-risk - /open-insurance/products-services/v1/general-liability - /open-insurance/products-services/v1/global-banking - /open-insurance/products-services/v1/home-insurance/commercializationArea/{commercializationArea} - /open-insurance/products-services/v1/housing - /open-insurance/products-services/v1/life-pension - /open-insurance/products-services/v1/lost-profit - /open-insurance/products-services/v1/named-operational-risks - /open-insurance/products-services/v1/pension-plan - /open-insurance/products-services/v1/person - /open-insurance/products-services/v1/private-guarantee - /open-insurance/products-services/v1/public-guarantee - /open-insurance/products-services/v1/rent-guarantee - /open-insurance/products-services/v1/rural - /open-insurance/products-services/v1/stop-loss - /open-insurance/products-services/v1/transport - /open-insurance/consents/v1/consents - /open-insurance/consents/v1/consents/{consentId} - /open-insurance/resources/v1/resources - /open-insurance/customers/v1/personal/identifications - /open-insurance/customers/v1/personal/qualifications - /open-insurance/customers/v1/personal/complimentary-information - /open-insurance/customers/v1/business/identifications - /open-insurance/customers/v1/business/qualifications - /open-insurance/customers/v1/business/complimentary-information - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/policy-info - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/premium - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/claim - /open-insurance/insurance-auto/v1/insurance-auto - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/policy-info - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/premium - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/claim - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/policy-info - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/premium - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/claim - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/policy-info - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/premium - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/claim - /open-insurance/insurance-responsibility/v1/insurance-responsibility - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/policy-info - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/premium - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/claim - /open-insurance/insurance-rural/v1/insurance-rural - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/policy-info - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/premium - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/claim - /open-insurance/insurance-housing/v1/insurance-housing - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/policy-info - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/premium - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/claim - /open-insurance/insurance-transport/v1/insurance-transport - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/policy-info - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/premium - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/claim - /open-insurance/claim-notification/v1/request/damage/{consentId} - /open-insurance/claim-notification/v1/request/person/{consentId} - /open-insurance/endorsement/v1/request/{consentId} - /open-insurance/quote-patrimonial/v1/lead/request - /open-insurance/quote-patrimonial/v1/lead/request/{consentId} - /open-insurance/quote-patrimonial/v1/home/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/home/request - /open-insurance/quote-patrimonial/v1/home/request/{consentId} - /open-insurance/quote-patrimonial/v1/condominium/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/condominium/request - /open-insurance/quote-patrimonial/v1/condominium/request/{consentId} - /open-insurance/quote-patrimonial/v1/business/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/business/request - /open-insurance/quote-patrimonial/v1/business/request/{consentId} - /open-insurance/quote-patrimonial/v1/diverse-risks/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/diverse-risks/request - /open-insurance/quote-patrimonial/v1/diverse-risks/request/{consentId} - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/plans - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/plan-info - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/events - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/settlements - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/contracts - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/{contractId}/contract-info - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/{contractId}/movements - /open-insurance/insurance-life-pension/v1/insurance-life-pension/contracts - /open-insurance/insurance-life-pension/v1/insurance-life-pension - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/contract-info - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/movements - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/portabilities - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/withdrawals - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/claim - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/contracts - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/contract-info - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/movements - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/portabilities - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/withdrawals - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/claim - /open-insurance/insurance-person/v1/insurance-person - /open-insurance/insurance-person/v1/insurance-person/{policyId}/policy-info - /open-insurance/insurance-person/v1/insurance-person/{policyId}/claim - /open-insurance/insurance-person/v1/insurance-person/{policyId}/movements - /open-insurance/consents/v2/consents - /open-insurance/consents/v2/consents/{consentId} - /open-insurance/resources/v2/resources url: type: string example: "/open-insurance/insurance-rural/v1/12345/claim" minLength: 2 pattern: "^\/[a-zA-Z-]{2,}(\/.*)?$" statusCode: type: integer example: 200 minimum: 100 maximum: 599 httpMethod: type: string example: "GET" enum: - GET - POST - PUT - DELETE - PATCH correlationId: type: string example: "577869e5-4c63-4b19-9235-a18d22c80986" minLength: 1 additionalInfo: type: object properties: consentId: type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 example: "urn:bancoex:C1DD33123" description: |- O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name. Um URN, conforme definido na 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. Restrição: para endpoints que não sejam de fase 1 e tenham obtido statusCode 200-299, este campo é obrigatório timestamp: type: string example: "2022-11-07T17:26:32Z" description: "Data e hora envio ou recebimento da requisição. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format)." maxLength: 20 format: date-time pattern: '^((?:(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2}(?:\.\d+)?))(Z)?)$' processTimespan: type: integer example: "120" description: Tempo de processamento da requisição. Deverá ser informado em milliseconds. minimum: 1 clientOrgId: type: string example: "1fb79963-4bff-4204-9370-93aceb8a2f0d" description: | Id da organização do cliente. Opcional para endpoints de fase 1. Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). Restrição: obrigatório para os endpoints com exceção da fase 1. pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' clientSSId: type: string example: "2a59c2a3-529f-41c6-97e3-77395e9951ca" description: | Id do Software Statement do cliente. Opcional para endpoints de fase 1. * Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). * Não é permitido trocar dados entre uma mesma marca. A validação é feita com base no nome cadastrado do Authorisation Server e Software Statement. Caso os dois possuam um mesmo nome cadastrado, entende-se que é uma mesma marca e o reporte não será aceito. Restrição: obrigatório para os endpoints com exceção da fase 1. pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' serverOrgId: type: string example: "ff66b95a-d817-4fbe-949a-c5912e240189" description: | Id da organização do servidor Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' serverASId: type: string example: "f8cd7b48-197d-419b-8680-f42226111b6f" description: | Id do Authorization Server do servidor. * Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). * Não é permitido trocar dados entre uma mesma marca. A validação é feita com base no nome cadastrado do Authorisation Server e Software Statement. Caso os dois possuam um mesmo nome cadastrado, entende-se que é uma mesma marca e o reporte não será aceito. pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' endpointUriPrefix: type: string format: uri description: Base do URL da requisição example: "https://openbanking.instituicao.com.br" minimum: 8 pattern: "^(https?:\/\/)?([a-zA-Z0-9-]+\\.)+[a-zA-Z-]{2,}$" success: type: object properties: reportId: type: string example: "7eb81ba1-9011-4c58-9d5b-1098550d2fca" correlationId: type: string example: FWUCp4yOA1b87LUJpgn1Mf52wi9KEF11 status: type: string example: ACCEPTED required: - reportId - correlationId - status additionalProperties: false response400: type: object properties: correlationId: type: string example: FWUCp4yOA1b87LUJpgn1Mf52wi9KEF11 status: type: string example: DISCARDED message: type: string example: "Missing fields: endpoint" required: - status - message additionalProperties: false response401: type: object properties: message: type: string example: "Unauthorized" required: - message additionalProperties: false response404: type: object properties: message: type: string example: "Not Found" required: - message additionalProperties: false response406: type: object properties: message: type: string example: "Content-Type not accepted" required: - message additionalProperties: false response413: type: object properties: message: type: string example: "Record limit exceeded" required: - message additionalProperties: false response415: type: object properties: message: type: string example: "Unsupported media type" required: - message additionalProperties: false response500: type: object properties: message: type: string example: "Internal Server Error" required: - message additionalProperties: false batchBody: type: object properties: organisationId: type: string example: "c1ddd896-1145-4177-9b58-8a6e310557e2" events: type: array items: "$ref": "#/components/schemas/eventBody" required: - "organisationId" - "events" eventBody: type: object properties: fapiInteractionId: type: string description: | Um UID [RFC4122](https://tools.ietf.org/html/rfc4122). Restrição: obrigatório para os endpoints com exceção da fase 1. example: "731d7aa0-09c3-4fa5-b024-905934d794e7" pattern: '^[a-zA-Z0-9][a-zA-Z0-9\\-]{0,99}$' minLength: 1 maxLength: 100 endpoint: type: string example: "/open-insurance/insurance-rural/v1/insurance-rural/{policyId}/claim" enum: - /open-insurance/channels/v1/branches - /open-insurance/channels/v1/electronic-channels - /open-insurance/channels/v1/intermediary/{countrySubDivision} - /open-insurance/channels/v1/phone-channels - /open-insurance/channels/v1/referenced-network/{countrySubDivision}/{serviceType} - /open-insurance/products-services/v1/assistance-general-assets - /open-insurance/products-services/v1/auto-extended-warranty - /open-insurance/products-services/v1/auto-insurance/{commercializationArea}/{fipeCode}/{year} - /open-insurance/products-services/v1/business - /open-insurance/products-services/v1/capitalization-title - /open-insurance/products-services/v1/condominium - /open-insurance/products-services/v1/cyber-risk - /open-insurance/products-services/v1/directors-officers-liability - /open-insurance/products-services/v1/domestic-credit - /open-insurance/products-services/v1/engineering - /open-insurance/products-services/v1/environmental-liability - /open-insurance/products-services/v1/equipment-breakdown - /open-insurance/products-services/v1/errors-omissions-liability - /open-insurance/products-services/v1/export-credit - /open-insurance/products-services/v1/extended-warranty - /open-insurance/products-services/v1/financial-risk - /open-insurance/products-services/v1/general-liability - /open-insurance/products-services/v1/global-banking - /open-insurance/products-services/v1/home-insurance/commercializationArea/{commercializationArea} - /open-insurance/products-services/v1/housing - /open-insurance/products-services/v1/life-pension - /open-insurance/products-services/v1/lost-profit - /open-insurance/products-services/v1/named-operational-risks - /open-insurance/products-services/v1/pension-plan - /open-insurance/products-services/v1/person - /open-insurance/products-services/v1/private-guarantee - /open-insurance/products-services/v1/public-guarantee - /open-insurance/products-services/v1/rent-guarantee - /open-insurance/products-services/v1/rural - /open-insurance/products-services/v1/stop-loss - /open-insurance/products-services/v1/transport - /open-insurance/consents/v1/consents - /open-insurance/consents/v1/consents/{consentId} - /open-insurance/resources/v1/resources - /open-insurance/customers/v1/personal/identifications - /open-insurance/customers/v1/personal/qualifications - /open-insurance/customers/v1/personal/complimentary-information - /open-insurance/customers/v1/business/identifications - /open-insurance/customers/v1/business/qualifications - /open-insurance/customers/v1/business/complimentary-information - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/policy-info - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/premium - /open-insurance/insurance-acceptance-and-branches-abroad/v1/insurance-acceptance-and-branches-abroad/{policyId}/claim - /open-insurance/insurance-auto/v1/insurance-auto - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/policy-info - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/premium - /open-insurance/insurance-auto/v1/insurance-auto/{policyId}/claim - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/policy-info - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/premium - /open-insurance/insurance-financial-risk/v1/insurance-financial-risk/{policyId}/claim - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/policy-info - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/premium - /open-insurance/insurance-patrimonial/v1/insurance-patrimonial/{policyId}/claim - /open-insurance/insurance-responsibility/v1/insurance-responsibility - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/policy-info - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/premium - /open-insurance/insurance-responsibility/v1/insurance-responsibility/{policyId}/claim - /open-insurance/insurance-rural/v1/insurance-rural - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/policy-info - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/premium - /open-insurance/insurance-rural/v1/insurance-rural/{policyId}/claim - /open-insurance/insurance-housing/v1/insurance-housing - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/policy-info - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/premium - /open-insurance/insurance-housing/v1/insurance-housing/{policyId}/claim - /open-insurance/insurance-transport/v1/insurance-transport - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/policy-info - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/premium - /open-insurance/insurance-transport/v1/insurance-transport/{policyId}/claim - /open-insurance/claim-notification/v1/request/damage/{consentId} - /open-insurance/claim-notification/v1/request/person/{consentId} - /open-insurance/endorsement/v1/request/{consentId} - /open-insurance/quote-patrimonial/v1/lead/request - /open-insurance/quote-patrimonial/v1/lead/request/{consentId} - /open-insurance/quote-patrimonial/v1/home/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/home/request - /open-insurance/quote-patrimonial/v1/home/request/{consentId} - /open-insurance/quote-patrimonial/v1/condominium/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/condominium/request - /open-insurance/quote-patrimonial/v1/condominium/request/{consentId} - /open-insurance/quote-patrimonial/v1/business/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/business/request - /open-insurance/quote-patrimonial/v1/business/request/{consentId} - /open-insurance/quote-patrimonial/v1/diverse-risks/request/{consentId}/quote-status - /open-insurance/quote-patrimonial/v1/diverse-risks/request - /open-insurance/quote-patrimonial/v1/diverse-risks/request/{consentId} - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/plans - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/plan-info - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/events - /open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title/{planId}/settlements - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/contracts - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/{contractId}/contract-info - /open-insurance/insurance-financial-assistance/v1/insurance-financial-assistance/{contractId}/movements - /open-insurance/insurance-life-pension/v1/insurance-life-pension/contracts - /open-insurance/insurance-life-pension/v1/insurance-life-pension - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/contract-info - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/movements - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/portabilities - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/withdrawals - /open-insurance/insurance-life-pension/v1/insurance-life-pension/{pensionIdentification}/claim - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/contracts - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/contract-info - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/movements - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/portabilities - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/withdrawals - /open-insurance/insurance-pension-plan/v1/insurance-pension-plan/{pensionIdentification}/claim - /open-insurance/insurance-person/v1/insurance-person - /open-insurance/insurance-person/v1/insurance-person/{policyId}/policy-info - /open-insurance/insurance-person/v1/insurance-person/{policyId}/claim - /open-insurance/insurance-person/v1/insurance-person/{policyId}/movements - /open-insurance/consents/v2/consents - /open-insurance/consents/v2/consents/{consentId} - /open-insurance/resources/v2/resources url: type: string example: "/open-insurance/insurance-rural/v1/12345/claim" minLength: 2 pattern: "^\/[a-zA-Z-]{2,}(\/.*)?$" statusCode: type: integer example: 200 minimum: 100 maximum: 599 httpMethod: type: string example: "GET" enum: - GET - POST - PUT - DELETE - PATCH correlationId: type: string example: "577869e5-4c63-4b19-9235-a18d22c80986" minLength: 1 additionalInfo: type: object properties: consentId: type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 example: "urn:bancoex:C1DD33123" description: |- O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name. Um URN, conforme definido na 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. Restrição: para endpoints que não sejam de fase 1 e tenham obtido statusCode 200-299, este campo é obrigatório timestamp: type: string example: "2022-11-07T17:26:32Z" description: "Data e hora envio ou recebimento da requisição. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format)." maxLength: 20 format: date-time pattern: '^((?:(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2}(?:\.\d+)?))(Z)?)$' processTimespan: type: integer example: "120" description: Tempo de processamento da requisição. Deverá ser informado em milliseconds. minimum: 1 clientOrgId: type: string example: "1fb79963-4bff-4204-9370-93aceb8a2f0d" description: | Id da organização do cliente. Opcional para endpoints de fase 1. Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). Restrição: obrigatório para os endpoints com exceção da fase 1. pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' clientSSId: type: string example: "2a59c2a3-529f-41c6-97e3-77395e9951ca" description: | Id do Software Statement do cliente. Opcional para endpoints de fase 1. * Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). * Não é permitido trocar dados entre uma mesma marca. A validação é feita com base no nome cadastrado do Authorisation Server e Software Statement. Caso os dois possuam um mesmo nome cadastrado, entende-se que é uma mesma marca e o reporte não será aceito. Restrição: obrigatório para os endpoints com exceção da fase 1. pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' serverOrgId: type: string example: "ff66b95a-d817-4fbe-949a-c5912e240189" description: | Id da organização do servidor Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' serverASId: type: string example: "f8cd7b48-197d-419b-8680-f42226111b6f" description: | Id do Authorization Server do servidor. * Os ids devem ser válidos e cadastrados no diretório, respeitando seus respectivos ambientes (sandbox e production). * Não é permitido trocar dados entre uma mesma marca. A validação é feita com base no nome cadastrado do Authorisation Server e Software Statement. Caso os dois possuam um mesmo nome cadastrado, entende-se que é uma mesma marca e o reporte não será aceito. pattern: '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$' endpointUriPrefix: type: string format: uri description: Base do URL da requisição example: "https://openbanking.instituicao.com.br" minimum: 8 pattern: "^(https?:\/\/)?([a-zA-Z0-9-]+\\.)+[a-zA-Z-]{2,}$" required: - endpoint - url - statusCode - httpMethod - correlationId - timestamp - processTimespan - serverOrgId - serverASId responses: reportEventResponse200: description: Registro recebido com sucesso. content: application/json: schema: "$ref": "#/components/schemas/success" reportEventResponse400: description: Ocorre quando uma requisição não envia os dados obrigatórios. content: application/json: schema: "$ref": "#/components/schemas/response400" reportEventResponse401: description: Ocorre quando uma requisição não é autorizada. content: application/json: schema: "$ref": "#/components/schemas/response401" reportEventResponse404: description: Ocorre quando o reporte não é encontrado. content: application/json: schema: "$ref": "#/components/schemas/response404" reportEventResponse406: description: Ocorre quando um cliente espera uma resposta diferente de application/json usando o header Accept. content: application/json: schema: "$ref": "#/components/schemas/response406" reportEventResponse415: description: Ocorre quando uma requisição envia um Content-Type diferente de application/jwt. content: application/json: schema: "$ref": "#/components/schemas/response415" reportEventResponse500: description: É devolvido quando ocorre um erro não identificado no servidor. content: application/json: schema: "$ref": "#/components/schemas/response500" reportBatchResponse200: description: | O status 200 representa a situação onde todos os registros enviados no lote foram validados e serão direcionados para processamento. A operação vai devolver um array com todos os resultados, e garantir que ele esteja na mesma ordem do array de requisição. content: application/json: schema: type: array items: "$ref": "#/components/schemas/success" reportBatchResponse207: description: | O status 207 (Multi-Status) informa ao solicitante que o formato da solicitação está correto, mas que entradas do array da solicitação contém erro de validação, independente da quantidade. Ou seja, se todos os elementos do array informado estiverem com falha de validação, a operação vai devolver o status 207, e no corpo da resposta todos os elementos do array estarão com o status DISCARDED e com suas respectivas mensagens. A operação vai devolver um array com todos os resultados, e garantir que ele esteja na mesma ordem do array de requisição. content: application/json: schema: type: array items: "$ref": "#/components/schemas/response400" reportBatchResponse400: description: O formato do corpo da requisição não é um array. content: application/json: schema: type: object properties: message: type: string example: "Invalid payload format: MUST be an array" required: - message additionalProperties: false reportBatchResponse401: description: Ocorre quando uma requisição não é autorizada. content: application/json: schema: "$ref": "#/components/schemas/response401" reportBatchResponse406: description: Ocorre quando um cliente espera uma resposta diferente de application/json usando o header Accept. content: application/json: schema: "$ref": "#/components/schemas/response406" reportBatchResponse413: description: | A quantidade de registros enviados excede o limite da operação, ou o tamanho do payload excede o limite configurado no servidor http. content: application/json: schema: "$ref": "#/components/schemas/response413" reportBatchResponse415: description: Ocorre quando uma requisição envia um Content-Type diferente de application/jwt. content: application/json: schema: "$ref": "#/components/schemas/response415" reportBatchResponse500: description: É devolvido quando ocorre um erro não identificado no servidor. content: application/json: schema: "$ref": "#/components/schemas/response500" getReportResponse200: description: Retorna os dados encontrados para o reporte id consultado. content: application/json: schema: "$ref": "#/components/schemas/reportBody"