openapi: 3.0.0 info: title: API InsuranceCapitalizationTitle - Open Insurance Brasil description: | API de Título de Capitalização do Open Insurance Brasil - Fase 2.\ Traz informações de plano, eventos, e liquidações mantidas nas instituições transmissoras por seus clientes.\ Não possui segregação entre pessoa natural e pessoa jurídica.\ Requer consentimento do cliente para todos os `endpoints`. # Orientações A `Role` do diretório de participantes relacionada à presente API é a `DADOS`.\ 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 (conta, contrato, etc.) esteja disponível na instituição transmissora (ou seja, sem boqueios de qualquer natureza e com todas as autorizações/consentimentos já autorizados).\ 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 InsuranceCapitalizationTitle Para cada um dos `paths` desta API, além dos escopos (`scopes`) indicados existem `permissions` que deverão ser observadas: ### `/plans` - permissions: - GET: **CAPITALIZATION_TITLE_READ** ### `/{planId}/plan-info` - permissions: - GET: **CAPITALIZATION_TITLE_PLANINFO_READ** ### `/{planId}/events` - permissions: - GET: **CAPITALIZATION_TITLE_EVENTS_READ** ### `/{planId}/settlements` - permissions: - GET: **CAPITALIZATION_TITLE_SETTLEMENTS_READ** version: 1.4.0 contact: name: Governança do Open Insurance Brasil url: 'https://www.gov.br/susep' servers: - url: 'https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1' description: Servidor de Produção - url: 'https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1' description: Servidor de Homologação tags: - name: InsuranceCapitalizationTitle description: 'Operações consulta de informações gerais, eventos e liquidações de Título de Capitalização' paths: /insurance-capitalization-title/plans: get: tags: - InsuranceCapitalizationTitle summary: Obtem a lista de identificação de InsuranceCapitalizationTitle description: "Método para obter a lista de identificação de InsuranceCapitalizationTitle" operationId: "getInsuranceCapitalizationTitle" parameters: - $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" responses: "200": $ref: '#/components/responses/OKResponseInsuranceCapitalizationTitle' "204": $ref: "#/components/responses/NoContent" "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/UnprocessableEntity' "429": $ref: '#/components/responses/TooManyRequests' "500": $ref: '#/components/responses/InternalServerError' security: - OpenId: - openid OAuth2Security: - 'consent:consentId' - capitalization-title /insurance-capitalization-title/{planId}/plan-info: get: tags: - InsuranceCapitalizationTitle summary: Obtém as informações gerais do plano identificado por {planId} description: "Método para obter as informações gerais do plano" operationId: "getInsuranceCapitalizationTitleplanIdPlanInfo" parameters: - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: "#/components/parameters/planId" responses: "200": $ref: '#/components/responses/OKResponseInsuranceCapitalizationTitlePlanInfo' "204": $ref: "#/components/responses/NoContent" "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/UnprocessableEntity' "429": $ref: '#/components/responses/TooManyRequests' "500": $ref: '#/components/responses/InternalServerError' security: - OpenId: - openid OAuth2Security: - 'consent:consentId' - capitalization-title /insurance-capitalization-title/{planId}/events: get: tags: - InsuranceCapitalizationTitle summary: Obtém os dados de eventos do plano identificado por {planId} description: "Método para obter os dados de sorteios e resgates associados ao plano" operationId: "getInsuranceCapitalizationTitleplanIdEvents" parameters: - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: "#/components/parameters/planId" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: "200": $ref: '#/components/responses/OKResponseInsuranceCapitalizationTitleEvent' "204": $ref: "#/components/responses/NoContent" "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/UnprocessableEntity' "429": $ref: '#/components/responses/TooManyRequests' "500": $ref: '#/components/responses/InternalServerError' security: - OpenId: - openid OAuth2Security: - 'consent:consentId' - capitalization-title /insurance-capitalization-title/{planId}/settlements: get: tags: - InsuranceCapitalizationTitle summary: Obtém os dados de liquidações do plano identificado por {planId} description: "Método para obter os dados de liquidações do plano." operationId: "getInsuranceCapitalizationTitleplanIdSettlement" parameters: - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: "#/components/parameters/planId" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: "200": $ref: '#/components/responses/OKResponseInsuranceCapitalizationTitleSettlement' "204": $ref: "#/components/responses/NoContent" "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/UnprocessableEntity' "429": $ref: '#/components/responses/TooManyRequests' "500": $ref: '#/components/responses/InternalServerError' security: - OpenId: - openid OAuth2Security: - 'consent:consentId' - capitalization-title components: schemas: ResponseInsuranceCapitalizationTitle: type: object required: - data - links - meta properties: data: type: array items: type: object required: - brand properties: brand: type: object description: Marca reportada pelo participante do Open Insurance required: - name - companies properties: name: type: string description: Nome da marca reportada pelo participante do Open Insurance example: EMPRESA A Seguros companies: type: array items: type: object required: - companyName - cnpjNumber - products properties: companyName: description: Nome da sociedade pertencente à marca type: string maxLength: 200 example: Nome da sociedade cnpjNumber: description: CNPJ da sociedade pertencente à marca type: string pattern: '^\d{14}$' example: "12345678901234" products: type: array items: type: object required: - productName - planId properties: productName: description: Nome comercial do produto associado ao plano type: string maxLength: 70 example: "Produto Exemplo" planId: description: planId - Identificador do contrato do plano type: string links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' ResponseInsuranceCapitalizationTitlePlanInfo: type: object required: - data - links - meta properties: data: $ref: '#/components/schemas/InsuranceCapitalizationTitlePlanInfo' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' InsuranceCapitalizationTitlePlanInfo: type: object required: - series properties: series: description: Dados Gerais da Série type: array items: $ref: "#/components/schemas/InsuranceCapitalizationTitleSeries" InsuranceCapitalizationTitleSeries: description: Dados Gerais da Série type: object required: - seriesId - modality - susepProcessNumber - serieSize - uploadQuota - capitalizationQuota - raffleQuota - gracePeriodForFullRedemption - updateIndex - readjustmentIndex - bonusClause - frequency - interestRate - titles properties: planId: description: Identificação do plano type: string seriesId: description: Identificação da série type: string maxLength: 60 modality: type: string description: Modalidade example: TRADICIONAL enum: [TRADICIONAL, INSTRUMENTO_GARANTIA, COMPRA_PROGRAMADA, POPULAR, FILANTROPIA_PREMIAVEL] susepProcessNumber: type: string description: Número do processo SUSEP. maxLength: 20 example: "15414622222222222" commercialName: type: string description: Denominação comercial do produto de propriedade exclusiva da sociedade de capitalização. Condicional, caso selecionada as opções "Filantropia Premiável" ou "Popular" no campo "Modalidade". maxLength: 100 example: Denominação comercial do produto serieSize: type: integer description: Quantidade máxima possível de títulos que pode ser emitida para uma mesma série maxLength: 10 example: 5000000 uploadQuota: description: Percentual da contribuição destinado aos custos de despesas com corretagem, colocação e administração do título de capitalização, emissão, divulgação, lucro da sociedade de capitalização e eventuais despesas relativas ao custeio da contemplação obrigatória e da distribuição de bônus allOf: - $ref: '#/components/schemas/PercentageDetails' capitalizationQuota: description: Percentual da contribuição destinado à constituição de capital referente ao direito de resgate allOf: - $ref: '#/components/schemas/PercentageDetails' raffleQuota: description: Percentual da contribuição destinado a custear os sorteios, se previstos no plano allOf: - $ref: '#/components/schemas/PercentageDetails' gracePeriodRedemption: type: integer description: Intervalo de tempo mínimo entre contratação e resgate parcial do direito, em meses. maxLength: 3 example: 48 gracePeriodForFullRedemption: type: integer description: Intervalo de tempo mínimo entre contratação e resgate total do direito, em meses maxLength: 3 example: 48 updateIndex: type: string description: Descreve o índice de atualização das reservas. example: IPCA enum: [INDICE_REMUNERACAO_BASICA_DEPOSITOS_POUPANCA, IPCA, INCC, INPC, IGPM, OUTROS] updateIndexOthers: type: string description: Descreve o índice de atualização utilizado quando outro que não previamente relacionado nos domínios do campo. maxLength: 100 example: Índice de atualização Outros readjustmentIndex: type: string description: Índice de reajuste das contribuições e do capital para vigências acima de doze meses example: IPCA enum: [INDICE_REMUNERACAO_BASICA_DEPOSITOS_POUPANCA, IPCA, INCC, INPC, IGPM, OUTROS] readjustmentIndexOthers: type: string description: Descreve o índice de reajuste utilizado quando outro que não previamente relacionado nos domínios do campo. maxLength: 100 example: Índice de reajuste Outros bonusClause: type: boolean description: Cláusula de bônus example: false frequency: type: string description: Tipo de Contribuição - pagamento único, pagamento mensal ou periódico example: MENSAL enum: [UNICO, MENSAL, PERIODICO] frequencyDescription: type: string description: Descrição do Tipo de Contribuição (Quando o Tipo de Contribuição for 3. Pagamento Periódico) maxLength: 100 interestRate: description: Taxa de juros efetiva real mensal utilizada para remuneração do título de capitalização. allOf: - $ref: '#/components/schemas/PercentageDetails' broker: description: Dados do corretor (quando houver) type: array items: $ref: "#/components/schemas/InsuranceCapitalizationTitleBroker" titles: description: Dados Gerais do Título type: array items: $ref: "#/components/schemas/InsuranceCapitalizationTitleTitle" InsuranceCapitalizationTitleBroker: type: object required: - susepBrokerCode - brokerDescription properties: susepBrokerCode: type: string description: Código SUSEP do corretor. maxLength: 12 example: "123123123" brokerDescription: description: Nome ou Razão Social do Corretor type: string maxLength: 200 InsuranceCapitalizationTitleTitle: type: object required: - titleId - registrationForm - issueTitleDate - termStartDate - termEndDate - rafflePremiumAmount - contributionAmount - subscriber - technicalProvisions properties: titleId: description: Identificação do título de capitalização type: string maxLength: 60 registrationForm: description: Identificação da ficha de cadastro ou contrato comercial type: string maxLength: 50 issueTitleDate: description: Data de Emissão do Título type: string format: date example: "2023-01-30" termStartDate: description: Data de início de vigência do título de capitalização. type: string format: date example: "2023-01-30" termEndDate: description: Data de fim de vigência do título de capitalização. type: string format: date example: "2023-01-30" rafflePremiumAmount: description: Valor do premio de sorteio allOf: - $ref: "#/components/schemas/AmountDetails" contributionAmount: description: Corresponde ao pagamento efetuado pelo subscritor à sociedade de capitalização para a aquisição do título de capitalização, podendo ser única, periódica ou mensal. Em todas as situações indicar para qual periodicidade de pagamento se aplicam os valores(pagamento mensal, pagamento único ou periódico). allOf: - $ref: "#/components/schemas/AmountDetails" subscriber: description: Dados Gerais do Título type: array items: $ref: "#/components/schemas/InsuranceCapitalizationTitleSubscriber" technicalProvisions: description: Informações de Provisões técnicas type: array items: $ref: "#/components/schemas/InsuranceCapitalizationTitleTechnicalProvisions" InsuranceCapitalizationTitleSubscriber: type: object required: - subscriberName - subscriberDocumentType - subscriberDocumentNumber - subscriberAddress - subscriberTownName - subscriberCountrySubDivision - subscriberCountryCode - subscriberPostCode properties: subscriberName: description: Nome ou Razão Social do Subscritor type: string maxLength: 144 example: Nome do Subscritor subscriberDocumentType: description: Tipo de Documento do Subscritor type: string enum: [CPF, CNPJ, PASSAPORTE, OUTROS] example: OUTROS subscriberDocumentTypeOthers: description: Tipo de Documento do Subscritor, caso seja selecionado OUTROS. type: string subscriberDocumentNumber: description: Documento de Identificação do Subscritor type: string maxLength: 40 subscriberPhones: description: Lista com telefones do subscritor (quando houver) type: array items: $ref: '#/components/schemas/RequestorPhone' subscriberAddress: description: | Endereço do subscritor type: string maxLength: 200 pattern: '[\w\W\s]*' example: "Av Naburo Ykesaki, 1270" subscriberAddressAdditionalInfo: type: string maxLength: 30 pattern: '[\w\W\s]*' example: Fundos description: Alguns logradouros ainda necessitam ser especificados por meio de complemento. subscriberTownName: type: string maxLength: 50 pattern: '[\w\W\s]*' example: Rio de Janeiro description: | Localidade: O nome da localidade corresponde à designação da cidade ou município no qual o endereço está localizado. Cidade do subscritor subscriberCountrySubDivision: description: Estado do subscritor allOf: - $ref: "#/components/schemas/EnumCountrySubDivision" subscriberCountryCode: description: | Código do pais de acordo com o código “alpha3” do ISO-3166. País do subscritor type: string maxLength: 3 example: BRA subscriberPostCode: description: | Código de Endereçamento Postal: Composto por um conjunto numérico de oito dígitos, o objetivo principal do CEP é orientar e acelerar o encaminhamento, o tratamento e a entrega de objetos postados nos Correios, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios. p.ex. '01311000'. Código Postal do subscritor, Obrigatório, se houver type: string pattern: '\d{8}|^NA$' maxLength: 8 example: "17500001" holder: description: Dados Gerais do Titular type: array items: $ref: "#/components/schemas/InsuranceCapitalizationTitleHolder" InsuranceCapitalizationTitleHolder: type: object required: - holderName - holderDocumentType - holderDocumentNumber - holderAddress - holderTownName - holderCountrySubDivision - holderCountryCode - holderPostCode - holderRedemption - holderRaffle properties: holderName: description: Nome ou Razão Social do Titular type: string maxLength: 144 example: Nome do Titular holderDocumentType: description: Tipo de Documento do Titular type: string enum: [CPF, CNPJ, PASSAPORTE, OUTROS] example: OUTROS holderDocumentTypeOthers: description: Tipo de Documento do Titular, caso seja selecionado OUTROS. type: string holderDocumentNumber: description: Documento de Identificação do Titular type: string maxLength: 40 holderPhones: description: Lista com telefones do Titular (quando houver) type: array items: $ref: '#/components/schemas/RequestorPhone' holderAddress: description: | Endereço do titular type: string maxLength: 200 pattern: '[\w\W\s]*' example: "Av Naburo Ykesaki, 1270" holderAddressAdditionalInfo: type: string maxLength: 30 pattern: '[\w\W\s]*' example: Fundos description: Alguns logradouros ainda necessitam ser especificados por meio de complemento. holderTownName: type: string maxLength: 50 pattern: '[\w\W\s]*' example: Rio de Janeiro description: | Localidade: O nome da localidade corresponde à designação da cidade ou município no qual o endereço está localizado. Cidade do titular holderCountrySubDivision: description: Estado do titular allOf: - $ref: "#/components/schemas/EnumCountrySubDivision" holderCountryCode: description: | Código do pais de acordo com o código “alpha3” do ISO-3166. País do titular type: string maxLength: 3 example: BRA holderPostCode: description: | Código de Endereçamento Postal: Composto por um conjunto numérico de oito dígitos, o objetivo principal do CEP é orientar e acelerar o encaminhamento, o tratamento e a entrega de objetos postados nos Correios, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios. p.ex. '01311000'. Código Postal do titular, Obrigatório, se houver type: string pattern: '\d{8}|^NA$' maxLength: 8 example: "17500001" holderRedemption: type: boolean description: Titular do direito de resgate? example: false holderRaffle: type: boolean description: Titular do direito de sorteio? example: false RequestorPhone: type: object properties: countryCallingCode: type: string maxLength: 4 pattern: '^\d{2,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 - 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 EnumCountrySubDivision: type: string description: "Enumeração referente a cada sigla da unidade da federação que identifica o estado ou o distrito federal, no qual o endereço está localizado. p.ex. 'AC'. São consideradas apenas as siglas para os estados brasileiros" enum: - AC - AL - AP - AM - BA - CE - DF - ES - GO - MA - MT - MS - MG - PA - PB - PR - PE - PI - RJ - RN - RS - RO - RR - SC - SP - SE - TO example: RJ InsuranceCapitalizationTitleTechnicalProvisions: description: (Esses valores poderão sofrer alterações no momento do resgate/pagamento,conforme regras do produto nas condições gerais) type: object required: - pmcAmount - pdbAmount - prAmount - pspAmount properties: pmcAmount: description: Valor da PMC (fim do mes) - Valor da Provisão Matemática para Capitalização (PMC), no fim de cada mês. Caso não haja saldo informar nulo allOf: - $ref: '#/components/schemas/AmountDetails' pdbAmount: description: Valor da PDB (fim do mes) - Valor da Provisão para Distribuição de Bônus (PDB), no fim de cada mês. Caso não haja saldo informar nulo allOf: - $ref: '#/components/schemas/AmountDetails' prAmount: description: Valor da PR (fim do mes) - Valor da Provisão para Resgate (PR), no fim de cada mês. Caso não haja saldo informar nulo allOf: - $ref: '#/components/schemas/AmountDetails' pspAmount: description: Valor da PSP (fim do mes) - Valor da Provisão de Sorteios a Pagar (PSP), no fim de cada mês. Caso não haja saldo informar nulo allOf: - $ref: '#/components/schemas/AmountDetails' ResponseInsuranceCapitalizationTitleEvent: type: object required: - data - links - meta properties: data: $ref: '#/components/schemas/InsuranceCapitalizationTitleEvent' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' InsuranceCapitalizationTitleEvent: type: array items: properties: titleId: description: Código identificador do título na sociedade. type: string maxLength: 80 eventType: description: Tipo de Evento type: string enum: [SORTEIO, RESGATE] event: type: object properties: raffle: type: object required: - raffleAmount - raffleDate - raffleSettlementDate properties: raffleAmount: description: Montante do capital sorteado (prêmio de sorteio bruto, livre de IOF, quando aplicável) allOf: - $ref: '#/components/schemas/AmountDetails' raffleDate: description: Data de realização do sorteio type: string format: date example: "2023-01-30" raffleSettlementDate: description: Data da liquidação financeira do capital sorteado type: string format: date example: "2023-01-30" redemption: type: object required: - redemptionType - redemptionAmount - redemptionBonusAmount - redemptionRequestDate - redemptionSettlementDate properties: redemptionType: description: Tipo de resgate type: string enum: [ANTECIPADO_PARCIAL, ANTECIPADO_TOTAL, FINAL_VIGENCIA] redemptionAmount: description: Valor de resgate. (Valor bruto de resgate, livre de IOF, quando aplicável) allOf: - $ref: '#/components/schemas/AmountDetails' redemptionBonusAmount: description: Valor do Bonus. (Valor bruto do bonus resgatado, livre de IOF, quando aplicável) allOf: - $ref: '#/components/schemas/AmountDetails' unreturnedAmount: description: Valor não restituido. (Valor bruto não restituido ao titular em caso de resgate antecipado) allOf: - $ref: '#/components/schemas/AmountDetails' redemptionRequestDate: description: Data de solicitação do resgate type: string format: date example: "2023-01-30" redemptionSettlementDate: description: Data da liquidação financeira do resgate type: string format: date example: "2023-01-30" ResponseInsuranceCapitalizationTitleSettlement: type: object required: - data - links - meta properties: data: $ref: '#/components/schemas/InsuranceCapitalizationTitleSettlement' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' InsuranceCapitalizationTitleSettlement: type: array items: required: - settlementId - settlementFinancialAmount - settlementPaymentDate - settlementDueDate properties: settlementId: description: Identificador da Contribuicao type: string settlementFinancialAmount: description: Valor da contribuicao allOf: - $ref: '#/components/schemas/AmountDetails' settlementPaymentDate: description: Data da Contribuicao type: string format: date example: "2023-01-30" settlementDueDate: description: Data de Vencimento da Contribuicao type: string format: date example: "2023-01-30" AmountDetails: type: object required: - amount - currency properties: amount: type: number pattern: '^\d{1,16}\.\d{2}$' example: 2000.00 currency: description: Moeda da Parcela, de acordo com ISO-4217. type: string pattern: '^(\w{3}){1}$' example: BRL PercentageDetails: type: number pattern: '^\d{1,3}\.\d{1,9}$' example: 10.00 Links: type: object properties: self: type: string description: URL da página atualmente requisitada pattern: ^(https:\/\/)(.*?)(\/open-insurance\/insurance-capitalization-title\/v\d+)(\/insurance-capitalization-title.*)?$ example: "https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title" first: type: string description: URL da primeira página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/insurance-capitalization-title\/v\d+)(\/insurance-capitalization-title.*)?$ example: "https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title" prev: type: string description: URL da página anterior de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/insurance-capitalization-title\/v\d+)(\/insurance-capitalization-title.*)?$ example: "https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title" next: type: string description: URL da próxima página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/insurance-capitalization-title\/v\d+)(\/insurance-capitalization-title.*)?$ example: "https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title" last: type: string description: URL da última página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/insurance-capitalization-title\/v\d+)(\/insurance-capitalization-title.*)?$ example: "https://api.organizacao.com.br/open-insurance/insurance-capitalization-title/v1/insurance-capitalization-title" Meta: type: object properties: totalRecords: type: integer description: Total de registros encontrados example: 10 totalPages: type: integer description: Total de páginas para os registros encontrados example: 1 required: - totalRecords - totalPages 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 maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string maxLength: 2048 requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string maxLength: 2048 format: date-time example: '2021-08-20T08:30:00Z' additionalProperties: false meta: $ref: '#/components/schemas/Meta' additionalProperties: false 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.' parameters: planId: name: planId in: path required: true schema: type: string maxLength: 60 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. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.' required: true schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 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: capitalization-title: Escopo necessário para acesso à API. O controle dos endpoints específicos é feito via permissions. responses: OKResponseInsuranceCapitalizationTitle: description: Dados de ResponseInsuranceCapitalizationTitle obtidos com sucesso headers: x-fapi-interaction-id: schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/json: schema: $ref: '#/components/schemas/ResponseInsuranceCapitalizationTitle' OKResponseInsuranceCapitalizationTitlePlanInfo: description: Dados de ResponseInsuranceCapitalizationTitlePlanInfo obtidos com sucesso headers: x-fapi-interaction-id: schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/json: schema: $ref: '#/components/schemas/ResponseInsuranceCapitalizationTitlePlanInfo' OKResponseInsuranceCapitalizationTitleEvent: description: Dados de ResponseInsuranceCapitalizationTitleEvent obtidos com sucesso headers: x-fapi-interaction-id: schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/json: schema: $ref: '#/components/schemas/ResponseInsuranceCapitalizationTitleEvent' OKResponseInsuranceCapitalizationTitleSettlement: description: Dados de ResponseInsuranceCapitalizationTitleSettlement obtidos com sucesso headers: x-fapi-interaction-id: schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/json: schema: $ref: '#/components/schemas/ResponseInsuranceCapitalizationTitleSettlement' NoContent: description: "O recurso solicitado não existe ou não foi localizado." content: application/json; charset=utf-8: schema: $ref: "#/components/schemas/ResponseError" 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' 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' UnprocessableEntity: description: O servidor entende o tipo de conteúdo da entidade da requisição, e a sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError'