From 632b8aeded9a50cfb58f83653422d04942402bfa Mon Sep 17 00:00:00 2001 From: GabrielLLR Date: Mon, 1 Dec 2025 14:44:56 -0300 Subject: [PATCH 1/2] =?UTF-8?q?GT=20Portabilidade=20de=20Cr=C3=A9dito:=20p?= =?UTF-8?q?atch:=20Ajuste=20de=20BOM=20para=20uso=20do=20Pages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gitattributes | 31 + .../capitalization-bonds/1.0.0-rc3.0.yml | 2 +- swagger-apis/capitalization-bonds/1.0.0.yml | 2 +- swagger-apis/capitalization-bonds/1.0.1.yml | 2 +- .../capitalization-bonds/2.0.0-beta.1.yml | 2 +- .../capitalization-bonds/2.0.0-beta.2.yml | 2 +- .../capitalization-bonds/2.0.0-rc.1.yml | 2 +- swagger-apis/capitalization-bonds/2.0.0.yml | 2 +- swagger-apis/common/2.0.0-rc.1.yml | 2 +- swagger-apis/common/2.0.0.yml | 2 +- swagger-apis/common/2.0.1.yml | 2 +- .../credit-portability/1.0.0-beta.1.yml | 2 +- .../credit-portability/1.0.0-beta.2.yml | 4 +- .../credit-portability/1.0.0-beta.3.yml | 2 +- .../credit-portability/1.0.0-rc.1.yml | 2 +- swagger-apis/credit-portability/1.0.0.yml | 4 +- .../opendata-unarranged/1.0.0-beta.1.yml | 2 +- .../opendata-unarranged/1.0.0-beta.2.yml | 2 +- .../opendata-unarranged/1.0.0-rc.1.yml | 2 +- swagger-apis/opendata-unarranged/1.0.0.yml | 2 +- swagger-apis/opendata-unarranged/1.0.1.yml | 2 +- .../1.0.0-beta.1.yml | 3097 +++++++++++++++++ swagger-apis/products-services/1.0.0.yml | 2 +- 23 files changed, 3151 insertions(+), 23 deletions(-) create mode 100644 gitattributes create mode 100644 swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml diff --git a/gitattributes b/gitattributes new file mode 100644 index 00000000..9d0a58e4 --- /dev/null +++ b/gitattributes @@ -0,0 +1,31 @@ +# =========================== +# 🔧 Git Attributes Config +# For OpenAPI / Swagger Specs +# Enforces UTF-8 + LF endings +# =========================== + +# --- Text files: UTF-8 and LF --- +*.yml text eol=lf working-tree-encoding=UTF-8 +*.yaml text eol=lf working-tree-encoding=UTF-8 +*.json text eol=lf working-tree-encoding=UTF-8 +*.csv text eol=lf working-tree-encoding=UTF-8 +*.md text eol=lf working-tree-encoding=UTF-8 +*.txt text eol=lf working-tree-encoding=UTF-8 +*.html text eol=lf working-tree-encoding=UTF-8 + +# --- Optional: Normalize JS/CSS if present --- +*.js text eol=lf working-tree-encoding=UTF-8 +*.css text eol=lf working-tree-encoding=UTF-8 + +# --- Binary formats (never alter) --- +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.ico binary +*.pdf binary +*.zip binary + +# --- Prevent GitHub Pages (Jekyll) from altering files --- +# Combine this with a .nojekyll file in the root +# to ensure .yml and other static files are served raw diff --git a/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml b/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml index 904bd563..8c024c7a 100644 --- a/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml +++ b/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/capitalization-bonds/1.0.0.yml b/swagger-apis/capitalization-bonds/1.0.0.yml index 7a5dbf6a..4f7c4627 100644 --- a/swagger-apis/capitalization-bonds/1.0.0.yml +++ b/swagger-apis/capitalization-bonds/1.0.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/capitalization-bonds/1.0.1.yml b/swagger-apis/capitalization-bonds/1.0.1.yml index e4da05c1..f06a1761 100644 --- a/swagger-apis/capitalization-bonds/1.0.1.yml +++ b/swagger-apis/capitalization-bonds/1.0.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/capitalization-bonds/2.0.0-beta.1.yml b/swagger-apis/capitalization-bonds/2.0.0-beta.1.yml index e175e5d7..c4bd2531 100644 --- a/swagger-apis/capitalization-bonds/2.0.0-beta.1.yml +++ b/swagger-apis/capitalization-bonds/2.0.0-beta.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/capitalization-bonds/2.0.0-beta.2.yml b/swagger-apis/capitalization-bonds/2.0.0-beta.2.yml index 48509249..2e1c2266 100644 --- a/swagger-apis/capitalization-bonds/2.0.0-beta.2.yml +++ b/swagger-apis/capitalization-bonds/2.0.0-beta.2.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/capitalization-bonds/2.0.0-rc.1.yml b/swagger-apis/capitalization-bonds/2.0.0-rc.1.yml index 41118039..18db0765 100644 --- a/swagger-apis/capitalization-bonds/2.0.0-rc.1.yml +++ b/swagger-apis/capitalization-bonds/2.0.0-rc.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/capitalization-bonds/2.0.0.yml b/swagger-apis/capitalization-bonds/2.0.0.yml index 9c966c47..2d46ab08 100644 --- a/swagger-apis/capitalization-bonds/2.0.0.yml +++ b/swagger-apis/capitalization-bonds/2.0.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Capitalization-bonds - Open Finance Brasil description: | diff --git a/swagger-apis/common/2.0.0-rc.1.yml b/swagger-apis/common/2.0.0-rc.1.yml index 1d85567b..7829577d 100644 --- a/swagger-apis/common/2.0.0-rc.1.yml +++ b/swagger-apis/common/2.0.0-rc.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: APIs OpenData do Open Finance Brasil description: As APIs descritas neste documento são referentes as APIs da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/common/2.0.0.yml b/swagger-apis/common/2.0.0.yml index ada9d268..4efe00f2 100644 --- a/swagger-apis/common/2.0.0.yml +++ b/swagger-apis/common/2.0.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: APIs OpenData do Open Finance Brasil description: As APIs descritas neste documento são referentes as APIs da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/common/2.0.1.yml b/swagger-apis/common/2.0.1.yml index 4390fdeb..70640b2a 100644 --- a/swagger-apis/common/2.0.1.yml +++ b/swagger-apis/common/2.0.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: APIs OpenData do Open Finance Brasil description: As APIs descritas neste documento são referentes as APIs da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/credit-portability/1.0.0-beta.1.yml b/swagger-apis/credit-portability/1.0.0-beta.1.yml index d7dd8181..e370794d 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.1.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Credit Portability - Open Finance Brasil description: | diff --git a/swagger-apis/credit-portability/1.0.0-beta.2.yml b/swagger-apis/credit-portability/1.0.0-beta.2.yml index 18d370a6..87482514 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.2.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.2.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Credit Portability - Open Finance Brasil description: | @@ -2496,4 +2496,4 @@ components: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' \ No newline at end of file + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' diff --git a/swagger-apis/credit-portability/1.0.0-beta.3.yml b/swagger-apis/credit-portability/1.0.0-beta.3.yml index b5849724..4f6d04e9 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.3.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.3.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Credit Portability - Open Finance Brasil description: | diff --git a/swagger-apis/credit-portability/1.0.0-rc.1.yml b/swagger-apis/credit-portability/1.0.0-rc.1.yml index 51469b4a..ca96413e 100644 --- a/swagger-apis/credit-portability/1.0.0-rc.1.yml +++ b/swagger-apis/credit-portability/1.0.0-rc.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Credit Portability - Open Finance Brasil description: | diff --git a/swagger-apis/credit-portability/1.0.0.yml b/swagger-apis/credit-portability/1.0.0.yml index d98ac6f5..e8866d9a 100644 --- a/swagger-apis/credit-portability/1.0.0.yml +++ b/swagger-apis/credit-portability/1.0.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API Credit Portability - Open Finance Brasil description: | @@ -2519,4 +2519,4 @@ components: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' \ No newline at end of file + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' diff --git a/swagger-apis/opendata-unarranged/1.0.0-beta.1.yml b/swagger-apis/opendata-unarranged/1.0.0-beta.1.yml index fc7ec072..000b5109 100644 --- a/swagger-apis/opendata-unarranged/1.0.0-beta.1.yml +++ b/swagger-apis/opendata-unarranged/1.0.0-beta.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API's OpenData do Open Finance Brasil description: As API's descritas neste documento são referentes as API's da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/opendata-unarranged/1.0.0-beta.2.yml b/swagger-apis/opendata-unarranged/1.0.0-beta.2.yml index 6ea43ffd..0ca75f0f 100644 --- a/swagger-apis/opendata-unarranged/1.0.0-beta.2.yml +++ b/swagger-apis/opendata-unarranged/1.0.0-beta.2.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API OpenData Unarranged Account Overdraft do Open Finance Brasil​ description: A API descrita neste documento é referente as API Unarranged Account Overdraft da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/opendata-unarranged/1.0.0-rc.1.yml b/swagger-apis/opendata-unarranged/1.0.0-rc.1.yml index 6d3926cf..25cfb1ca 100644 --- a/swagger-apis/opendata-unarranged/1.0.0-rc.1.yml +++ b/swagger-apis/opendata-unarranged/1.0.0-rc.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API OpenData Unarranged Account Overdraft do Open Finance Brasil​ description: A API descrita neste documento é referente as API Unarranged Account Overdraft da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/opendata-unarranged/1.0.0.yml b/swagger-apis/opendata-unarranged/1.0.0.yml index fa69fe26..3a725029 100644 --- a/swagger-apis/opendata-unarranged/1.0.0.yml +++ b/swagger-apis/opendata-unarranged/1.0.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API OpenData Unarranged Account Overdraft do Open Finance Brasil​ description: A API descrita neste documento é referente as API Unarranged Account Overdraft da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/opendata-unarranged/1.0.1.yml b/swagger-apis/opendata-unarranged/1.0.1.yml index 19e2cee6..f391b10c 100644 --- a/swagger-apis/opendata-unarranged/1.0.1.yml +++ b/swagger-apis/opendata-unarranged/1.0.1.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API OpenData Unarranged Account Overdraft do Open Finance Brasil​ description: A API descrita neste documento é referente as API Unarranged Account Overdraft da fase OpenData do Open Finance Brasil. diff --git a/swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml b/swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml new file mode 100644 index 00000000..cfbc9687 --- /dev/null +++ b/swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml @@ -0,0 +1,3097 @@ +openapi: 3.0.0 +info: + title: API Payroll Credit Portability - Open Finance Brasil + description: | + A API de Portabilidade de Crédito Consignado permite que usuários transfiram suas operações de crédito e arrendamento mercantil entre instituições financeiras em busca de melhores condições para o Open Finance Brasil. + + # Orientações + + ## Assinatura de payloads: + No contexto da API de Portabilidade de crédito, os payloads de mensagem que trafegam tanto por parte da instituição credora quanto por parte da instituição proponente devem estar assinados. Para o processo de assinatura destes payloads as instituições devem seguir as especificações de segurança publicadas no Portal do desenvolvedor +   - Certificados exigidos para assinatura de mensagens: [[PT] Padrão de Certificados Open Finance Brasil 2.1](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/245694518) +   - Como assinar o payload JWS: [Como Assinar o Payload](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/905740608) + + ## Controle de Acesso + - Os endpoints [GET] /portabilities/{portabilityId}, [GET] /portabilities/{portabilityId}/account-data, [POST] /portabilities/{portabilityId}/payment, [PATCH] / portabilities/{portabilityId}/cancel da API de Portabilidade de crédito devem utilizar o escopo client_credentials + - Os endpoints [GET] /credit-operations/{contractId}/portability-eligibility e [POST] /portabilities devem utilizar o escopo authorization_code para validar a permissions de LOANS + + ## Validações para Portabilidade de Crédito + **- Validações** (após o processo de DCR e obtenção de token client credential - não escopo dessa documentação): +  Durante o processo de portabilidade de crédito, diferentes validações são necessárias pela instituição credora e devem ocorrer conforme a seguir: + **- Casos de erro relacionados às permissões de segurança para acesso à API** (ex. certificado, access_token, jwt, assinatura): + Validação de Certificado: Valida utilização de certificado correto durante processo de DCR - HTTP Code 401 (`INVALID_CLIENT`); + Validação de Access_Token: Verifica se Access_Token utilizado está correto - HTTP Code 401 (`UNAUTHORIZED`); + Validação de assinatura da mensagem: Valida se assinatura das mensagens enviadas está correta – HTTP Code 400 (`BAD_SIGNATURE`); + Validação de Claims (exceto data); +  - Valida se dados (aud, iss, iat e jti) são válidos - HTTP status code 403 - (`INVALID_CLIENT`); +  - Valida reuso de jti - HTTP Code 403 (`INVALID_CLIENT`). + + ## Validações de erros sintáticos e semânticos, previstas com retorno HTTP Code 422 - Unprocessable Entity + **- Para todos os endpoints:** +   **Sintáticos** +  - Envio de campos obrigatórios: Valida se todos os campos obrigatórios são informados (`PARAMETRO_NAO_INFORMADO`); +  - Formatação de parâmetros: Valida se parâmetros informados obedecem a formatação especificada (`PARAMETRO_INVALIDO`). +  - Demais validações não explicitamente informadas (`NAO_INFORMADO`) + **- Para endpoint ([POST] /portabilities):** +   **Semânticos** +  - Portabilidade em andamento: Valida se já existe um pedido de portabilidade de crédito para o contrato solicitado pelo trilho do OFB ou da Registradora (`EM_ANDAMENTO`); +  - Prazo do empréstimo maior ao restante das parcelas a serem liquidadas no contrato original (`PRAZO_ACIMA_LIMITE`); +  - ID de contrato inválida (`CONTRATO_INVALIDO`); +  - Contrato não elegível para portabilidade dentro do trilho do OFB (`CONTRATO_NAO_ELEGIVEL`); +  - Idempotência: Valida se há divergência entre chave de idempotência e informações enviadas (`ERRO_IDEMPOTENCIA`); +  - Evidência de assinatura do contrato: Valida se o objeto de assinatura do contrato foi preenchido pela instituição proponente devidamente, em caso de ausência (`SEM_EVIDENCIA_ASSINATURA`); +  - Periodicidade: Valida se não houve mudança na periodicidade entre o novo contrato e o contrato original, caso tenha sido alterado a periodicidade (`PERIODICIDADE_INVALIDA`); +  - Campo com preenchimento incorreto: Valida se o preenchimento de alguns campos estão corretos + Ex.: CNPJ da instituição credora deve ser o mesmo retornado pela API de Empréstimos (`CAMPO_INCONSISTENTE`) + **- Para endpoint ([POST] /portabilities/{portabilityId}/payment):** +   **Semânticos** +  - Estado da portabilidade diferente de `ACCEPTED_SETTLEMENT_IN_PROGRESS` ou `PAYMENT_ISSUE` (`PAGAMENTO_EFETUADO_FORA_PRAZO`). Obs.: Caso o pagamento tenha sido feito por engano a Instituição Proponente deve solicitar o estorno. + **- Para endpoint ([PATCH] /portabilities/{portabilityId}/cancel):** +   **Semânticos** +  - Estado da portabilidade diferente de `RECEIVED`, `PENDING` ou `ACCEPTED_SETTLEMENT_IN_PROGRESS` (`CANCELAMENTO_NÃO_EFETUADO`). Obs.: De acordo com o PRD o usuário poderá cancelar o pedido de portabilidade até a etapa de liquidação, após esta etapa não será mais permitido o cancelamento da portabilidade + version: 1.0.0-beta.1 + license: + name: Apache 2.0 + url: 'https://www.apache.org/licenses/LICENSE-2.0' + contact: + name: Governança do Open Finance Brasil – Especificações + email: gt-interfaces@openbankingbr.org + url: 'https://openbanking-brasil.github.io/areadesenvolvedor/' +servers: + - url: 'https://api.banco.com.br/open-banking/payroll-credit-portability/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/payroll-credit-portability/v1' + description: Servidor de Homologação +tags: + - name: Account data + description: 'Informação dos dados bancários para liquidação de contrato via STR exclusiva do OFB.' + - name: Concurrency Management + description: 'Para evitar o envio de múltiplas solicitações de portabilidade para o mesmo contrato, as instituições devem implementar mecanismos que permitam: recusar solicitações simultâneas de portabilidade de crédito referentes ao mesmo contrato, seja por meio da registradora ou do Open Finance Brasil (OFB), priorizando sempre a solicitação mais antiga.' + - name: Credit Portability + description: 'Permite que usuários transfiram suas operações de crédito e arrendamento mercantil entre instituições financeiras em busca de melhores condições.' + - name: Registering Entity + description: 'Fornece dados do contrato consignado junto a averbadora.' + - name: Payments + description: 'Informa a Instituição Credora a respeito da liquidação efetuada através da STR exclusiva do OFB.' +paths: + /portabilities/{portabilityId}/account-data: + get: + tags: + - Account data + summary: Obtém os dados necessários para realização do pagamento da operação via TED. + description: Método responsável por recuperar informações de contas para realização do pagamento via TED. + operationId: payrollCreditPortabilityGetPortabilitiesPortabilityIdAccountData + parameters: + - $ref: '#/components/parameters/portabilityId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + responses: + '200': + $ref: '#/components/responses/OKResponseAccountData' + '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' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - payroll-credit-portability + '/credit-operations/{contractId}/portability-eligibility': + get: + tags: + - Concurrency Management + summary: Informa se um contrato pertencente a um determinado cliente estará habilitado para a realização do pedido de portabilidade de crédito considerando a regra de só existir um pedido de portabilidade para um determinado contrato. + operationId: payrollCreditPortabilityGetCreditOperationsContratIdPortabilityEligibility + description: Informa se o contrato está disponível para solicitação de portabilidade de crédito. + parameters: + - $ref: '#/components/parameters/contractId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + responses: + '200': + $ref: '#/components/responses/OKResponsePortabilityEligibility' + '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' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2AuthorizationCodeLoans: + - openId + - 'consent:consentId' + - loans + '/portabilities': + post: + tags: + - Credit Portability + summary: Realiza pedido de portabilidade de crédito para um determinado contrato junto a instituição credora + operationId: payrollCreditPortabilityPostPortabilities + description: Solicitação de portabilidade de crédito via OFB. + parameters: + - $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/jwt: + schema: + $ref: '#/components/schemas/RequestCreditPortability' + description: Payload para o pedido de portabilidade de crédito. + required: true + responses: + '202': + $ref: '#/components/responses/POSTResponseCreditPortability' + '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/UnprocessableEntityPostPortabilities' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2AuthorizationCodeLoans: + - openId + - 'consent:consentId' + - loans + '/portabilities/{portabilityId}': + get: + tags: + - Credit Portability + summary: Consulta portabilidade de crédito através da propriedade portabilityId. + description: Endpoint responsável por consultar pedidos de portabilidade de crédito. + operationId: payrollCreditPortabilityGetPortabilitiesByPortabilityId + parameters: + - $ref: '#/components/parameters/portabilityId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + responses: + '200': + $ref: '#/components/responses/OKResponsePortabilitiesByPortabilityId' + '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' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - payroll-credit-portability + '/portabilities/{portabilityId}/cancel': + patch: + tags: + - Credit Portability + summary: Comunica a Instituição Credora a respeito do cancelamento da portabilidade de crédito. + description: Comunica a Instituição Credora a respeito do cancelamento da portabilidade de crédito. + operationId: payrollCreditPortabilityPatchPortabilitiesPortabilityIdCancel + parameters: + - $ref: '#/components/parameters/portabilityId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + requestBody: + content: + application/jwt: + schema: + $ref: '#/components/schemas/RequestCreditPortabilityCancel' + description: Payload para comunicar a liquidação efetuada pela proponente a credora e iniciar a proxima etapa do fluxo de portabilidade de crédito. + required: true + responses: + '200': + $ref: '#/components/responses/PatchResponseCreditPortabilityCancel' + '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/UnprocessableEntityPatchCancel' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - payroll-credit-portability + '/credit-operations/{contractId}/registering-entity': + get: + tags: + - Registering Entity + summary: Obtém os dados necessários para identificar o contrato a ser portado junto a averbadora. + description: Obtém os dados necessários para identificar o contrato a ser portado junto a averbadora. + operationId: payrollCreditPortabilityGetCreditOperationsContractIdRegisteringEntity + parameters: + - $ref: '#/components/parameters/contractId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + responses: + '200': + $ref: '#/components/responses/OKResponseRegisteringEntity' + '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' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - payroll-credit-portability + /portabilities/{portabilityId}/payment: + post: + tags: + - Payments + summary: Comunica a Instituição Credora a respeito da liquidação da portabilidade de crédito. + description: Comunica a Instituição Credora a respeito da liquidação da portabilidade de crédito. + operationId: payrollCreditPortabilityGetPortabilitiesPortabilityIdPayment + parameters: + - $ref: '#/components/parameters/portabilityId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + requestBody: + content: + application/jwt: + schema: + $ref: '#/components/schemas/RequestCreditPortabilityPayment' + description: Payload para comunicar a liquidação efetuada pela proponente a credora e iniciar a proxima etapa do fluxo de portabilidade de crédito. + required: true + responses: + '202': + $ref: '#/components/responses/POSTResponseCreditPortabilityPayment' + '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/UnprocessableEntityPostPayments' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - payroll-credit-portability + + /portabilities/{portabilityId}/payment-reversal: + post: + tags: + - Payments + summary: Solicita o estorno da STR efetuada para liquidar o contrato consignado devido ao fato da Instituição Credora não ter desaverbado o contrato em tempo ábil conforme SLA definido pela SERPRO de 10 dias contados a partir da data de criação da solicitação da reserva da mergem para Instituição Proponente. + description: Solicita o estorno da STR efetuada para liquidar o contrato consignado. + operationId: payrollCreditPortabilityPostPortabilitiesPortabilityIdPaymentReversal + parameters: + - $ref: '#/components/parameters/portabilityId' + - $ref: '#/components/parameters/Authorization' + - $ref: '#/components/parameters/xFapiAuthDate' + - $ref: '#/components/parameters/xFapiCustomerIpAddress' + - $ref: '#/components/parameters/xFapiInteractionId' + - $ref: '#/components/parameters/xCustomerUserAgent' + requestBody: + content: + application/jwt: + schema: + $ref: '#/components/schemas/RequestCreditPortabilityPaymentReversal' + description: Payload para comunicar a liquidação efetuada pela proponente a credora e iniciar a proxima etapa do fluxo de portabilidade de crédito. + required: true + responses: + '202': + $ref: '#/components/responses/POSTResponseCreditPortabilityPaymentReversal' + '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/UnprocessableEntityPostPaymentReversal' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - payroll-credit-portability +components: + schemas: + ResponseAccountData: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + description: Dados para realização do pagamento da operação via TED + required: + - strCode + properties: + strCode: + type: object + required: + - ispb + - branchCode + - hasFinancialAgent + properties: + ispb: + type: string + pattern: '^[0-9A-Z]{8}$' + maxLength: 8 + minLength: 8 + description: Número do ISPB da Instituição credora a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. + example: '22896431' + name: + type: string + description: | + Nome do proprietário da conta a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. + + [RESTRIÇÃO] campo de preenchimento obrigatório quando campo `hasFinancialAgent` for igual a true + pattern: '^(?!\s)[\w\W\s]*[^\s]$' + maxLength: 80 + minLength: 1 + example: 'Instituicao Credora' + companyCnpj: + type: string + description: | + CNPJ do proprietário da conta a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. + + [RESTRIÇÃO] campo de preenchimento obrigatório quando campo `hasFinancialAgent` for igual a true + pattern: '^[0-9A-Z]{12}[0-9]{2}$' + maxLength: 14 + minLength: 14 + example: '21128159000166' + branchCode: + type: number + description: Número da Agência creditada a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. + example: 0001 + hasFinancialAgent: + type: boolean + description: Instituição trabalha com agente financeiro ao invés da conta reserva? + example: true + accountNumber: + type: number + description: | + Número da conta bancária da credora a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. + + [RESTRIÇÃO] campo de preenchimento obrigatório quando campo `hasFinancialAgent` for igual a true + example: 12345678 + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/Meta' + ResponsePortabilityEligibility: + type: object + required: + - data + properties: + data: + type: object + description: Conjunto de informações de contratos de empréstimos/financiamentos mantidos pelo cliente na instituição credora e para os quais ele tenha fornecido consentimento + required: + - contractId + - portability + properties: + contractId: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + maxLength: 100 + minLength: 1 + example: '92792126019929279212650822221989319252576' + description: 'Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora.' + portability: + type: object + required: + - isEligible + properties: + isEligible: + type: boolean + description: Sinaliza se as características do contrato é elegível para pedido de portabilidade de crédito via OFB (sem considerar a disponibilidade da portabilidade de crédito) + ineligible: + type: object + required: + - reasonType + description: | + Objeto para auxiliar a Instituição Proponente a entender o porque um contrato está inelegivel para pedido de portabilidade de crédito + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `isEligible` for igual a `FALSE` + properties: + reasonType: + type: string + example: CLIENTE_COM_ACAO_JUDICIAL + enum: + - CONTRATO_LIQUIDADO + - CLIENTE_COM_ACAO_JUDICIAL + - MODALIDADE_OPERACAO_INCOMPATIVEL + - FLUXO_COM_PARCELA_IRREGULAR + - TIPO_PESSOA_INVALIDO + - OUTROS + description: | + Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito + Informação sobre o motivo de inelegibilidade + -`CONTRATO_LIQUIDADO`: Contrato liquidado pelo cliente. + -`CLIENTE_COM_ACAO_JUDICIAL`: Cliente possui ação judicial + -`MODALIDADE_OPERACAO_INCOMPATIVEL`: Caso o contrato tenha uma modalidade diferente do praticado no escopo de modalidades disponiveis para portabilidade de crédito + -`FLUXO_COM_PARCELA_IRREGULAR`: Empréstimos com fluxo de pagamento irregular + -`TIPO_PESSOA_INVALIDO`: Empréstimo pertence a um tipo de pessoa diferente de pessoa natural + -`OUTROS`: Caso exista algum motivo de recusa que não se encaixa nas opções disponiveis de `reasonType`, o campo `reasonTypeAdditionalInfo` deverá ser preenchido com o motivo da inelegibilidade. + + reasonTypeAdditionalInfo: + description: | + Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito. Deve ser preenchido como uma proposta para inclusão nas definições, exemplo `MOTIVO_NAO_MAPEADO`: descrição de usar esse motivo específico. Ao utilizar essa opção, é obrigatório enviar um ticket para a estrutura open finance para mapeamento em futuras versões. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `reasonType` for igual a `OUTROS`. + type: string + status: + type: string + description: | + Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `isEligible` for igual a `TRUE` + enum: + - DISPONIVEL + - EM_ANDAMENTO + statusUpdateDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o contrato teve o status atualizado. Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC(UTC time format). + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `isEligible` for igual a `TRUE` + + channel: + type: string + description: | + Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `status` for igual a `EM_ANDAMENTO` + enum: + - OFB + - REGISTRADORA + companyName: + type: string + pattern: '^(?!\s)[\w\W\s]*[^\s]$' + maxLength: 80 + example: Empresa da Organização A + description: | + Nome da Instituição Proponente responsável pelo pedido de portabilidade de credito anterior a atual consulta p.ex.Empresa A. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `status` for igual a `EM_ANDAMENTO` + companyCnpj: + type: string + pattern: '^[0-9A-Z]{12}[0-9]{2}$' + maxLength: 14 + minLength: 14 + example: '21128159000166' + description: | + Número completo do CNPJ da instituição + O CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. + Deve-se ter apenas números do CNPJ, sem máscara + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `status` for igual a `EM_ANDAMENTO` + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/Meta' + RequestCreditPortability: + type: object + required: + - data + properties: + data: + type: object + description: Conjunto de informações referentes à Proposta de Portabilidade de Crédito da Proponente para a Credora + required: + - customerContact + - institution + - contractIdentification + - proposedContract + - creationDateTime + properties: + customerContact: + type: array + minItems: 0 + description: Dados de contato do cliente + items: + type: object + required: + - type + - value + properties: + type: + type: string + enum: + - TELEFONE + - EMAIL + description: "Tipo do contato do cliente." + value: + type: string + pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ + example: "11999999999" + institution: + type: object + description: Informações sobre proponente e credora participantes do presente pedido de portabilidade de crédito + required: + - creditor + - proposing + properties: + creditor: + type: object + description: Informações sobre a instituição credora + required: + - companyName + - companyCnpj + properties: + companyName: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 80 + example: Instituição Credora + description: 'Nome da Instituição Credora.' + companyCnpj: + type: string + pattern: '^[0-9A-Z]{12}[0-9]{2}$' + maxLength: 14 + example: '21128159000166' + description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' + proposing: + type: object + description: Informações sobre a instituição proponente + required: + - companyName + - companyCnpj + properties: + companyName: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 80 + example: Instituição Proponente + description: 'Nome da Instituição Proponente' + companyCnpj: + type: string + pattern: '^[0-9A-Z]{12}[0-9]{2}$' + maxLength: 14 + example: '21128159000166' + description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' + contact: + type: array + minItems: 1 + items: + type: object + properties: + type: + type: string + enum: + - EMAIL + - TELEFONE + description: "Tipo do contato da Instituição Proponente." + value: + type: string + pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ + example: "contato@instituicaoproponente.com.br" + contractIdentification: + type: object + required: + - contractId + - contractNumber + - ipocCode + properties: + contractId: + type: string + pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$ + maxLength: 100 + minLength: 1 + example: "92792126019929279212650822221989319252576" + description: "Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora." + contractNumber: + type: string + pattern: ^[\w\W]{1,100}$ + maxLength: 100 + minLength: 1 + example: "1324926521496" + description: "Número do contrato dado pela instituição contratante." + ipocCode: + type: string + pattern: ^[\w\W]{22,67}$ + maxLength: 67 + minLength: 22 + example: "92792126019929279212650822221989319252576" + description: | + Número padronizado do contrato - IPOC (Identificação Padronizada da Operação de Crédito). Segundo DOC 3040, composta por: + + + CNPJ da instituição: 8 (oito) posições iniciais; + Modalidade da operação: 4 (quatro) posições; + Tipo do cliente: 1 (uma) posição( 1 = pessoa natural - CPF, 2= pessoa jurídica + + – CNPJ, 3 = pessoa física no exterior, 4 = pessoa jurídica no exterior, 5 = pessoa natural sem CPF e 6 = pessoa jurídica sem CNPJ); + + - Código do cliente: O número de posições varia conforme o tipo do cliente: + Para clientes pessoa física com CPF (tipo de cliente = 1), informar as 11 (onze) posições do CPF; + Para clientes pessoa jurídica com CNPJ (tipo de cliente = 2), informar as 8 (oito) posições iniciais do CNPJ; + Para os demais clientes (tipos de cliente 3, 4, 5 e 6), informar 14 (catorze) posições com complemento de zeros à esquerda se a identificação tiver tamanho inferior; + + - Código do contrato: 1 (uma) até 40 (quarenta) posições, sem complemento de caracteres + proposedContract: + type: object + minItems: 1 + description: Proposta da Proponente para Portabilidade de Crédito + required: + - interestRates + - contractedFees + - contractedFinanceCharges + - digitalSignatureProof + - CET + - amortizationScheduled + - instalmentPeriodicity + - totalNumberOfInstalments + - instalmentAmount + - dueDate + - contractAmount + properties: + interestRates: + type: array + description: | + Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito. + Caso o contrato não possua taxas de juros, deve ser compartilhada uma lista vazia. Caso o contrato possua uma taxa de juros com valor 0, deve ser compartilhado um objeto com o valor 0 de forma explícita. + minItems: 0 + items: + $ref: '#/components/schemas/LoansContractInterestRate' + contractedFees: + type: array + description: Lista que traz as informações das tarifas pactuadas no contrato. + minItems: 0 + items: + type: object + description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito + required: + - feeName + - feeCode + - feeChargeType + - feeCharge + properties: + feeName: + type: string + maxLength: 140 + pattern: '^[^\s](?:.*[^\s])?$' + description: Denominação da Tarifa pactuada + example: Renovação de cadastro + feeCode: + type: string + maxLength: 140 + pattern: '^[^\s](?:.*[^\s])?$' + description: Sigla identificadora da tarifa pactuada + example: CADASTRO + feeChargeType: + type: string + description: Tipo de cobrança para a tarifa pactuada no contrato. + enum: + - UNICA + - POR_PARCELA + example: UNICA + feeCharge: + type: string + description: | + "Forma de cobrança relativa a tarifa pactuada no contrato. (Vide Enum) + - Mínimo + - Máximo + - Fixo + - Percentual" + enum: + - MINIMO + - MAXIMO + - FIXO + - PERCENTUAL + example: MINIMO + feeAmount: + type: object + minItems: 1 + description: | + Objeto para representar o valor monetário da tarifa pactuada no contrato. + + [Restrição] Preenchimento obrigatório quando a forma de cobrança for diferente de Percentual. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor monetário da tarifa pactuada no contrato. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + feeRate: + type: string + pattern: '^\d{1}\.\d{6}$' + format: double + maxLength: 8 + minLength: 8 + description: | + É o valor da tarifa em percentual pactuada no contrato. + + [Restrição] Preenchimento obrigatório quando a forma de cobrança for Percentual. + example: '0.062000' + contractedFinanceCharges: + type: array + description: Lista que traz os encargos pactuados no contrato + minItems: 0 + items: + type: object + description: Conjunto de informações referentes à identificação da operação de crédito + required: + - chargeType + - chargeRate + properties: + chargeType: + type: string + description: Tipo de encargo pactuado no contrato. + enum: + - JUROS_REMUNERATORIOS_POR_ATRASO + - MULTA_ATRASO_PAGAMENTO + - JUROS_MORA_ATRASO + - IOF_CONTRATACAO + - IOF_POR_ATRASO + - SEM_ENCARGO + - OUTROS + example: JUROS_REMUNERATORIOS_POR_ATRASO + chargeAdditionalInfo: + type: string + maxLength: 140 + description: | + Campo para informações adicionais. + + [Restrição] Obrigatório se selecionada a opção 'OUTROS' em Tipo de encargo pactuado no contrato. + pattern: '^[^\s](?:.*[^\s])?$' + example: Informações adicionais sobre encargos. + chargeRate: + type: string + pattern: '^\d{1}\.\d{6}$' + format: double + maxLength: 8 + minLength: 8 + description: | + Representa o valor do encargo em percentual pactuado no contrato. + + O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros(representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). + example: '0.070000' + digitalSignatureProof: + type: object + required: + - documentId + - signatureDateTime + properties: + documentId: + type: string + pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ + maxLength: 100 + minLength: 1 + example: 54d5348c-1a3f-4ff4-a8a8-d0724fb806c6 + description: "Código identificador do Documento assinado na instituição proponente." + signatureDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o contrato foi assinado pelo cliente no canal digital da Instituição Proponente + CET: + type: string + pattern: ^\d{1,6}\.\d{6}$ + maxLength: 13 + minLength: 8 + example: "0.290000" + description: | + CET – Custo Efetivo Total deve ser expresso na forma de taxa percentual anual e incorpora todos os encargos e despesas incidentes nas operações de crédito (taxa de juro, mas também tarifas, tributos, seguros e outras despesas cobradas). O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). Para o público PF (pessoa física) o campo é de envio obrigatório para contratos firmados a partir de 2008, conforme Resolução CMN 3.517. Para o público PJ (pessoa jurídica) o campo é de envio obrigatório para contratos firmados a partir de 2011, conforme Resolução CMN 3.909. O campo poderá ser preenchido com 0.00 em cenários nos quais a casa não tenha a informação de CET (Custo efetivo total) apenas para as exceções listadas abaixo: + + - Em contratos anteriores a 2008 (para o público PF); + + - Em contratos anteriores a 2011 (para o público PJ); + + - Público PJ de médio ou grande porte. + amortizationScheduled: + type: string + enum: + - SAC + - PRICE + - SAM + - SEM_SISTEMA_AMORTIZACAO + - OUTROS + example: SAC + description: | + Sistema de amortização (Vide Enum): + + - SAC (Sistema de Amortização Constante): É aquele em que o valor da amortização permanece igual até o final. Os juros cobrados sobre o parcelamento não entram nesta conta. + + - PRICE (Sistema Francês de Amortização): As parcelas são fixas do início ao fim do contrato. Ou seja, todas as parcelas terão o mesmo valor, desde a primeira até a última. Nos primeiros pagamentos, a maior parte do valor da prestação corresponde aos juros. Ao longo do tempo, a taxa de juros vai decrescendo. Como o valor da prestação é fixo, com o passar das parcelas, o valor de amortização vai aumentando. + + - SAM (Sistema de Amortização Misto): Cada prestação (pagamento) é a média aritmética das prestações + respectivas no Sistemas Price e no Sistema de Amortização Constante (SAC). + + - SEM SISTEMA DE AMORTIZAÇÃO + amortizationScheduledAdditionalInfo: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 200 + example: Informações complementares relativa à amortização do tipo `OUTROS` + description: | + Informação relativa ao complemento da amortização + + [Restrição] Campo de preenchimento obrigatório quando o campo amortizationScheduled for igual `OUTROS` + instalmentPeriodicity: + type: string + description: Informação relativa à periodicidade regular das parcelas. (Vide Enum) sem periodicidade regular, diário, semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual. + example: SEM_PERIODICIDADE_REGULAR + enum: + - SEM_PERIODICIDADE_REGULAR + - DIARIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + totalNumberOfInstalments: + type: number + description: Total de parcelas, segundo a periodicidade regular das parcelas referente à Modalidade de Crédito informada. + maximum: 999999999 + example: 30 + instalmentAmount: + type: object + minItems: 1 + description: Objeto para representar o Valor da parcela regular da operação após portabilidade. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor da parcela regular da operação após portabilidade. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + dueDate: + type: string + maxLength: 20 + minLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2020-07-21T08:30:00Z' + description: | + Prazo (data de vencimento final) da operação. Especificação RFC-3339. + contractAmount: + type: object + description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.0400' + description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. + currency: + type: string + pattern: '^(\w{3}){1}$' + maxLength: 3 + minLength: 3 + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217 + creationDateTime: + type: string + description: | + Data e hora em que a Proponente registrou a presente proposta (chamada ao POST /portabilities). + Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format). + maxLength: 20 + minLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2020-07-21T08:30:00Z' + POSTResponseCreditPortability: + type: object + required: + - data + properties: + data: + type: object + minItems: 0 + description: Conjunto de informações de contratos de empréstimos/financiamentos mantidos pelo cliente na instituição credora e para os quais ele tenha fornecido consentimento + required: + - portabilityId + - siapePortabilityId + - creationDateTime + - status + properties: + portabilityId: + type: string + pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + maxLength: 36 + minLength: 36 + example: 54d5348c-1a3f-4ff4-a8a8-d0724fb806c6 + description: "Código identificador do pedido de portabilidade realizado." + siapePortabilityId: + type: string + pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' + maxLength: 20 + minLength: 20 + example: "12346579841058798Asq" + description: "Identificador único do pedido de portabilidade, destinado exclusivamente ao uso no sistema SIAPE, no campo `nrProcessoCip`." + status: + type: string + description: Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito + enum: + - RECEIVED + - PENDING + - CANCELLED + creationDateTime: + type: string + description: | + Data e hora em que a Proponente registrou a presente proposta (chamada ao POST /portabilities). + Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format). + maxLength: 20 + minLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2020-07-21T08:30:00Z' + meta: + $ref: '#/components/schemas/Meta' + ResponsePortabilitiesByPortabilityId: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + description: Conjunto de informações referentes à Proposta de Portabilidade de Crédito da Proponente para a Credora + required: + - customerContact + - institution + - contractIdentification + - proposedContract + - portabilityId + - status + - statusUpdateDateTime + - creationDateTime + properties: + portabilityId: + description: Código identificador do pedido de portabilidade realizado. + type: string + pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ + maxLength: 36 + minLength: 36 + example: "54d5348c-1a3f-4ff4-a8a8-d0724fb806c6" + customerContact: + type: array + minItems: 0 + description: Dados de contato do cliente. + items: + type: object + required: + - type + - value + properties: + type: + type: string + enum: + - TELEFONE + - EMAIL + description: "Tipo do contato do cliente." + value: + type: string + pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ + example: "11999999999" + institution: + type: object + description: Informações sobre proponente e credora participantes do presente pedido de portabilidade de crédito. + required: + - creditor + - proposing + properties: + creditor: + type: object + description: Informações sobre a instituição credora. + required: + - companyName + - companyCnpj + properties: + companyName: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 80 + example: Instituição Credora + description: 'Nome da Instituição Credora.' + companyCnpj: + type: string + pattern: '^[0-9A-Z]{12}[0-9]{2}$' + maxLength: 14 + example: '21128159000166' + description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' + proposing: + type: object + description: Informações sobre a instituição proponente + required: + - companyName + - companyCnpj + properties: + companyName: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 80 + example: Instituição Proponente + description: 'Nome da Instituição Proponente' + companyCnpj: + type: string + pattern: '^[0-9A-Z]{12}[0-9]{2}$' + maxLength: 14 + example: '21128159000166' + description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' + contact: + type: array + minItems: 1 + items: + type: object + properties: + type: + type: string + enum: + - EMAIL + - TELEFONE + description: "Tipo do contato da Instituição Proponente." + value: + type: string + pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ + example: "contato@instituicaoproponente.com.br" + contractIdentification: + type: object + required: + - contractId + - contractNumber + - ipocCode + properties: + contractId: + type: string + pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$ + maxLength: 100 + minLength: 1 + example: "92792126019929279212650822221989319252576" + description: "Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora." + contractNumber: + type: string + pattern: ^[\w\W]{1,100}$ + maxLength: 100 + minLength: 1 + example: "1324926521496" + description: "Número do contrato dado pela instituição contratante." + ipocCode: + type: string + pattern: ^[\w\W]{22,67}$ + maxLength: 67 + minLength: 22 + example: "92792126019929279212650822221989319252576" + description: | + Número padronizado do contrato - IPOC (Identificação Padronizada da Operação de Crédito). Segundo DOC 3040, composta por: + + + CNPJ da instituição: 8 (oito) posições iniciais; + Modalidade da operação: 4 (quatro) posições; + Tipo do cliente: 1 (uma) posição( 1 = pessoa natural - CPF, 2= pessoa jurídica + + – CNPJ, 3 = pessoa física no exterior, 4 = pessoa jurídica no exterior, 5 = pessoa natural sem CPF e 6 = pessoa jurídica sem CNPJ); + + - Código do cliente: O número de posições varia conforme o tipo do cliente: + Para clientes pessoa física com CPF (tipo de cliente = 1), informar as 11 (onze) posições do CPF; + Para clientes pessoa jurídica com CNPJ (tipo de cliente = 2), informar as 8 (oito) posições iniciais do CNPJ; + Para os demais clientes (tipos de cliente 3, 4, 5 e 6), informar 14 (catorze) posições com complemento de zeros à esquerda se a identificação tiver tamanho inferior; + + - Código do contrato: 1 (uma) até 40 (quarenta) posições, sem complemento de caracteres. + proposedContract: + type: object + minItems: 1 + description: Proposta da Proponente para Portabilidade de Crédito. + required: + - CET + - amortizationScheduled + - interestRates + - contractedFees + - contractedFinanceCharges + - digitalSignatureProof + - totalNumberOfInstalments + - instalmentPeriodicity + - dueDate + - contractAmount + properties: + CET: + type: string + pattern: '^\d{1,6}\.\d{6}$' + maxLength: 13 + minLength: 8 + example: '0.290000' + description: | + CET – Custo Efetivo Total deve ser expresso na forma de taxa percentual anual e incorpora todos os encargos e despesas incidentes nas operações de crédito (taxa de juro, mas também tarifas, tributos, seguros e outras despesas cobradas). + + O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). + + Para o público PF (pessoa física) o campo é de envio obrigatório para contratos firmados a partir de 2008, conforme Resolução CMN 3.517. Para o público PJ (pessoa jurídica) o campo é de envio obrigatório para contratos firmados a partir de 2011, conforme Resolução CMN 3.909. O campo poderá ser preenchido com 0.00 em cenários nos quais a casa não tenha a informação de CET (Custo efetivo total) apenas para as exceções listadas abaixo: + + - Em contratos anteriores a 2008 (para o público PF); + - Em contratos anteriores a 2011 (para o público PJ); + - Público PJ de médio ou grande porte. + amortizationScheduled: + type: string + enum: + - SAC + - PRICE + - SAM + - SEM_SISTEMA_AMORTIZACAO + - OUTROS + example: SAC + description: | + Sistema de amortização (Vide Enum): + - SAC (Sistema de Amortização Constante) - É aquele em que o valor da amortização permanece igual até o final. Os juros cobrados sobre o parcelamento não entram nesta conta. + - PRICE (Sistema Francês de Amortização) - As parcelas são fixas do início ao fim do contrato. Ou seja, todas as parcelas terão o mesmo valor, desde a primeira até a última. Nos primeiros pagamentos, a maior parte do valor da prestação corresponde aos juros. Ao longo do tempo, a taxa de juros vai decrescendo. Como o valor da prestação é fixo, com o passar das parcelas, o valor de amortização vai aumentando. + - SAM (Sistema de Amortização Misto) - Cada prestação (pagamento) é a média aritmética das prestações respectivas no Sistemas Price e no Sistema de Amortização Constante (SAC). + - SEM SISTEMA DE AMORTIZAÇÃO + amortizationScheduledAdditionalInfo: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 200 + example: Informações complementares relativa à amortização do tipo `OUTROS` + description: | + Informação relativa ao complemento da amortização + + [Restrição] Campo de preenchimento obrigatório quando o campo amortizationScheduled for igual `OUTROS` + interestRates: + type: array + description: | + Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito. + Caso o contrato não possua taxas de juros, deve ser compartilhada uma lista vazia. Caso o contrato possua uma taxa de juros com valor 0, deve ser compartilhado um objeto com o valor 0 de forma explícita. + items: + $ref: '#/components/schemas/LoansContractInterestRate' + minItems: 0 + contractedFees: + type: array + description: Lista que traz as informações das tarifas pactuadas no contrato. + items: + type: object + description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito + required: + - feeName + - feeCode + - feeChargeType + - feeCharge + properties: + feeName: + type: string + maxLength: 140 + pattern: '^[^\s](?:.*[^\s])?$' + description: Denominação da Tarifa pactuada + example: Renovação de cadastro + feeCode: + type: string + maxLength: 140 + pattern: '^[^\s](?:.*[^\s])?$' + description: Sigla identificadora da tarifa pactuada + example: CADASTRO + feeChargeType: + type: string + description: Tipo de cobrança para a tarifa pactuada no contrato. + enum: + - UNICA + - POR_PARCELA + example: UNICA + feeCharge: + type: string + description: | + "Forma de cobrança relativa a tarifa pactuada no contrato. (Vide Enum) + - Mínimo + - Máximo + - Fixo + - Percentual" + enum: + - MINIMO + - MAXIMO + - FIXO + - PERCENTUAL + example: MINIMO + feeAmount: + type: object + minItems: 1 + description: | + Objeto para representar o valor monetário da tarifa pactuada no contrato. + + [Restrição] Preenchimento obrigatório quando a forma de cobrança for diferente de Percentual. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor monetário da tarifa pactuada no contrato. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + feeRate: + type: string + pattern: '^\d{1}\.\d{6}$' + format: double + maxLength: 8 + minLength: 8 + description: | + É o valor da tarifa em percentual pactuada no contrato. + + [Restrição] Preenchimento obrigatório quando a forma de cobrança for Percentual. + example: '0.062000' + minItems: 0 + contractedFinanceCharges: + type: array + description: Lista que traz os encargos pactuados no contrato + items: + type: object + description: Conjunto de informações referentes à identificação da operação de crédito + required: + - chargeType + properties: + chargeType: + type: string + description: Tipo de encargo pactuado no contrato. + enum: + - JUROS_REMUNERATORIOS_POR_ATRASO + - MULTA_ATRASO_PAGAMENTO + - JUROS_MORA_ATRASO + - IOF_CONTRATACAO + - IOF_POR_ATRASO + - SEM_ENCARGO + - OUTROS + example: JUROS_REMUNERATORIOS_POR_ATRASO + chargeAdditionalInfo: + type: string + maxLength: 140 + description: | + Campo para informações adicionais. + + [Restrição] Obrigatório se selecionada a opção 'OUTROS' em Tipo de encargo pactuado no contrato. + pattern: '^[^\s](?:.*[^\s])?$' + example: Informações adicionais sobre encargos. + chargeRate: + type: string + pattern: '^\d{1}\.\d{6}$' + format: double + maxLength: 8 + minLength: 8 + description: | + Representa o valor do encargo em percentual pactuado no contrato. + + O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros(representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). + example: '0.070000' + minItems: 0 + digitalSignatureProof: + type: object + properties: + documentId: + type: string + pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ + maxLength: 100 + minLength: 1 + example: "54d5348c-1a3f-4ff4-a8a8-d0724fb806c6" + description: "Código identificador do Documento assinado na instituição proponente." + signatureDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o contrato foi assinado pelo cliente no canal digital da Instituição Proponente + required: + - documentId + - signatureDateTime + totalNumberOfInstalments: + type: number + description: total de parcelas, segundo a periodicidade regular das parcelas referente à Modalidade de Crédito informada. + example: 30 + instalmentPeriodicity: + type: string + description: Informação relativa à periodicidade regular das parcelas. (Vide Enum) sem periodicidade regular, diario, semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual. + enum: + - SEM_PERIODICIDADE_REGULAR + - DIARIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + example: SEM_PERIODICIDADE_REGULAR + instalmentAmount: + type: object + minItems: 1 + description: Objeto para representar o Valor da parcela regular da operação após portabilidade. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor da parcela regular da operação após portabilidade. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + dueDate: + type: string + description: Prazo (data de vencimento final) da operação. Especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339) + maxLength: 20 + minLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2020-07-21T08:30:00Z' + contractAmount: + type: object + description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.0400' + description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. + currency: + type: string + pattern: '^(\w{3}){1}$' + maxLength: 3 + minLength: 3 + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217 + status: + type: string + description: | + Informação sobre o status de um pedido de portabilidade de crédito, onde: + + - `RECEIVED`: Estado inicial. Indica que o pedido de portabilidade foi solicitado junto a instituição credora. O pedido deve permanecer neste estado até que o próximo dia útil (D+1) aonde começará a contar o prazo de 3 dias úteis para a etapa de contraproposta e o pedido de portabilidade deverá ser movido para PENDING + - `PENDING`: Indica que o pedido de portabilidade de crédito está na fase de contraproposta, onde a instituição credora poderá enviar uma contraproposta ou não para o cliente por qualquer canal (email, telefone, etc.) porém o aceite só deverá ser valido se o cliente aprovar no canal digital da instituição credora + - `ACCEPTED_SETTLEMENT_IN_PROGRESS`: Indica que a contraproposta não foi aceita pelo cliente e a instituição proponente terá que quitar o valor do contrato no mesmo dia em que o estado foi ativado + - `ACCEPTED_SETTLEMENT_COMPLETED`: Indica que a instituição proponente já liquidou o contrato e comunicou a respeito a credora que está validando os dados do contratos bem como valores recebidos para a quitação do mesmo (nesta etapa a instituição credora tem 2 dias úteis para fornecer a confirmação e o recibo de quitação do contrato de empréstimo) + - `AWAITING_CONTRACT_DISCHARGE`: Indica que a instituição credora finalizou a portabilidade de crédito fornecendo as informações referente a quitação do contrato original, ficando pendente a solicitação de desaverbação junto a averbadora do contrato consignado para a transferência da margem consignada + - `PORTABILITY_COMPLETED`: Indica que o pedido de portabilidade foi concluído com sucesso + - `REJECTED`: Indica que o pedido de portabilidade de crédito foi rejeitado, seja porque o cliente aceitou a contraproposta, ou porque a proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades + - `CANCELLED`: Indica que o cliente cancelou o pedido de portabilidade de crédito + - `PAYMENT_ISSUE`: Indica que a Instituição Credora encontrou alguma inconsistência na liquidação efetuada e que a Instituição Proponente deverá realizar ajustes conforme sugerido pela Instituição Credora para solucionar a pendencia antes do cancelamento do pedido de portabilidade de crédito + enum: + - RECEIVED + - PENDING + - ACCEPTED_SETTLEMENT_IN_PROGRESS + - ACCEPTED_SETTLEMENT_COMPLETED + - AWAITING_CONTRACT_DISCHARGE + - PORTABILITY_COMPLETED + - REJECTED + - CANCELLED + - PAYMENT_ISSUE + statusUpdateDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o contrato teve o status atualizado. Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC(UTC time format). + statusReason: + type: object + description: | + Motivo de recusa do pedido de portabilidade + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `status` for igual a `REJECTED` ou `CANCELLED` ou `PAYMENT_ISSUE` + properties: + reasonType: + description: | + Motivo de recusa do pedido de portabilidade, onde: + + `CANCELADO_PELO_CLIENTE` - Cliente desiste do pedido da portabilidade + + `SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE` - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente + + `POLITICA_DE_CREDITO` - Proponente desiste da oferta ao cliente por políticas internas + + `RETENCAO_DO_CLIENTE` - Cliente aceitou contraproposta da instituição credora (dentro do prazo) + + `CONTRATO_JA_LIQUIDADO` - Contrato liquidado pelo cliente. + + `DIVERGENCIA_DE_PAGAMENTO_EFETUADO` - Proponente realizou a liquidação com valor divergente + + `DECURSO_DO_PRAZO_PARA_PAGAMENTO` - Proponente realizou a liquidação fora do prazo + + `PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO` - Proponente não realizou a liquidação do contrato + + `PORTABILIDADE_EM_ANDAMENTO` - Posteriormente à efetivação do pedido de portabilidade, a IF credora identificou que o cliente já possui outro pedido de portabilidade em andamento para o mesmo contrato. + + `CLIENTE_COM_ACAO_JUDICIAL` - Possui ação judicial + + `MODALIDADE_DA_OPERACAO_INCOMPATIVEL` - Modalidade divergente da indicada pela instituição proponente + + `RESERVA_DA_MARGEM` - Não foi possível realizar a reserva da margem consignada pela instituição proponente. + + `OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis + type: string + enum: + - CANCELADO_PELO_CLIENTE + - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE + - POLITICA_DE_CREDITO + - RETENCAO_DO_CLIENTE + - CONTRATO_JA_LIQUIDADO + - DIVERGENCIA_DE_PAGAMENTO_EFETUADO + - DECURSO_DO_PRAZO_PARA_PAGAMENTO + - PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO + - PORTABILIDADE_EM_ANDAMENTO + - CLIENTE_COM_ACAO_JUDICIAL + - MODALIDADE_DA_OPERACAO_INCOMPATIVEL + - RESERVA_DA_MARGEM + - OUTROS + reasonTypeAdditionalInfo: + description: | + Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito. + Ao utilizar essa opção, é fortemente recomendável enviar um ticket como sugestão da estrutura Open Finance + para discussão e mapeamento em futuras versões. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `reasonType` for igual `OUTROS` + type: string + maxLength: 144 + pattern: '^[^\s](?:.*[^\s])?$' + example: Informações Adicionais + digitalSignatureProof: + type: object + description: | + Comprovante de assinatura da contraproposta + + [RESTRIÇÃO] Objeto de preenchimento obrigatório quando campo `reasonType` for igual a `RETENCAO_DO_CLIENTE` + properties: + documentId: + type: string + pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ + maxLength: 100 + minLength: 1 + example: "54d5348c-1a3f-4ff4-a8a8-d0724fb806c6" + description: "Código identificador do Documento assinado na instituição proponente." + signatureDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o contrato foi assinado pelo cliente no canal digital da Instituição Proponente + required: + - documentId + - signatureDateTime + creationDateTime: + type: string + description: | + Data e hora em que a Proponente registrou a presente proposta (chamada ao POST /portabilities). + Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format). + maxLength: 20 + minLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2020-07-21T08:30:00Z' + rejection: + type: object + description: | + Objeto contendo detalhes do cancelamento do pedido de portabilidade de crédito junto a Instituição Credora. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando `status` for igual a `REJECTED` ou `CANCELLED` + required: + - rejectedBy + - reason + properties: + rejectedBy: + type: string + description: | + Informar usuário responsável pela rejeição da proposta, onde: + PROPONENTE - Indica que o pedido de portabilidade de crédito foi rejeitado pela proponente, seja porque a + proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades. + USUARIO - Indica que o cliente cancelou o pedido de portabilidade de crédito. + CREDORA- Indica que a Instituição Credora cancelou o contrato por retenção do cliente ou outros motivos + conforme motivo de recusa. + example: PROPONENTE + enum: + - PROPONENTE + - USUARIO + - CREDORA + reason: + type: object + description: Motivo de recusa do pedido de portabilidade de crédito. + required: + - type + properties: + type: + type: string + description: | + Motivo de recusa do pedido de portabilidade, onde: + CANCELADO_PELO_CLIENTE - Cliente desiste do pedido da portabilidade; + SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente; + POLITICA_DE_CREDITO - Proponente desiste da oferta ao cliente por políticas internas; + RETENCAO_DO_CLIENTE - Cliente aceitou contraproposta da instituição credora (dentro do prazo); + CONTRATO_JA_LIQUIDADO - Contrato liquidado pelo cliente; + DIVERGENCIA_DE_PAGAMENTO_EFETUADO - Proponente realizou a liquidação com valor divergente; + DECURSO_DO_PRAZO_PARA_PAGAMENTO - Proponente realizou a liquidação fora do prazo; + PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO - Proponente não realizou a liquidação da Portabilidade; + PORTABILIDADE_EM_ANDAMENTO - Posteriormente à efetivação do pedido de portabilidade, a IF credora identificou que o cliente já possui outro pedido de portabilidade em andamento para o mesmo contrato; + CLIENTE_COM_ACAO_JUDICIAL - Possui ação judicial; + MODALIDADE_DA_OPERACAO_INCOMPATIVEL - Modalidade divergente da indicada pela instituição proponente; + RESERVA_DA_MARGEM - Não foi possível realizar a reserva da margem consignada pela instituição proponente; + OUTROS - Motivo da rejeição não se encaixa nas opções disponíveis. + enum: + - CANCELADO_PELO_CLIENTE + - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE + - POLITICA_DE_CREDITO + - RETENCAO_DO_CLIENTE + - CONTRATO_JA_LIQUIDADO + - DIVERGENCIA_DE_PAGAMENTO_EFETUADO + - DECURSO_DO_PRAZO_PARA_PAGAMENTO + - PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO + - PORTABILIDADE_EM_ANDAMENTO + - CLIENTE_COM_ACAO_JUDICIAL + - MODALIDADE_DA_OPERACAO_INCOMPATIVEL + - RESERVA_DA_MARGEM + - OUTROS + example: CANCELADO_PELO_CLIENTE + typeAdditionalInfo: + type: string + description: | + Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito. + Ao utilizar essa opção, é fortemente recomendável enviar um ticket como sugestão da estrutura Open Finance para discussão e mapeamento em futuras versões. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo type for igual a OUTROS. + maxLength: 144 + pattern: '^[^\s](?:.*[^\s])?$' + example: Informações Adicionais + loanSettlementInstruction: + type: object + description: | + Objeto contendo o recibo de quitação do contrato original de empréstimo após finalizado o + pedido de portabilidade de crédito com sucesso junto a Instituição Credora. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando `status` for igual a `PORTABILITY_COMPLETED` ou `AWAITING_CONTRACT_DISCHARGE` + required: + - settlementDateTime + - settlementAmount + - transactionId + properties: + settlementDateTime: + type: string + description: Data e hora em que a instituição credora realizou a quitação do contrato de empréstimo. + maxLength: 20 + minLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2020-07-21T08:30:00Z' + settlementAmount: + type: object + minItems: 1 + description: Objeto para representar o valor pago para liquidação do contrato de empréstimo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor pago para liquidação do contrato de empréstimo. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + transactionId: + type: string + description: | + Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. + + No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) + maxLength: 20 + minLength: 1 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{1,20}$' + example: 'STR20181108000000013' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/Meta' + RequestCreditPortabilityCancel: + type: object + required: + - data + properties: + data: + type: object + description: Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora. + required: + - rejectedBy + - reason + properties: + rejectedBy: + type: string + description: | + Informar usuário responsável pela rejeição da proposta, onde: + + `PROPONENTE ` - Indica que o pedido de portabilidade de crédito foi rejeitado pela proponente, seja porque a proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades. + + `USUARIO` - Indica que o cliente cancelou o pedido de portabilidade de crédito. + enum: + - PROPONENTE + - USUARIO + reason: + type: object + description: Motivo de recusa do pedido de portabilidade + required: + - type + properties: + type: + type: string + description: | + Motivo de recusa do pedido de portabilidade, onde: + + `CANCELADO_PELO_CLIENTE` - Cliente desiste do pedido da portabilidade + + `SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE` - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente + + `POLITICA_DE_CREDITO` - Proponente desiste da oferta ao cliente por políticas internas + + `RESERVA_DA_MARGEM` - Problemas relacionado a liberação/reserva da margem solicitada pela proponente + + `OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis + enum: + - CANCELADO_PELO_CLIENTE + - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE + - POLITICA_DE_CREDITO + - RESERVA_DA_MARGEM + - OUTROS + typeAdditionalInfo: + type: string + maxLength: 144 + pattern: '^[^\s](?:.*[^\s])?$' + example: "Informações Adicionais" + description: | + Informação adicional sobre rejeição de portabilidade de crédito. + Ao utilizar essa opção, é fortemente recomendável enviar um ticket para o GT de Portabilidade de Crédito como sugestão para estrutura Open Finance para discussão e mapeamento em futuras versões. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `type` for igual a `OUTROS` ou quando o campo `type` for igual a `RESERVA_DE_MARGEM`. + PatchResponseCreditPortabilityCancel: + type: object + required: + - data + properties: + data: + type: object + description: Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora. + required: + - rejectedBy + - reason + properties: + rejectedBy: + type: string + description: | + Informar usuário responsável pela rejeição da proposta, onde: + + `PROPONENTE ` - Indica que o pedido de portabilidade de crédito foi rejeitado pela proponente, seja porque a proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades. + + `USUARIO` - Indica que o cliente cancelou o pedido de portabilidade de crédito. + enum: + - PROPONENTE + - USUARIO + reason: + type: object + description: Motivo de recusa do pedido de portabilidade + required: + - type + properties: + type: + type: string + description: | + Motivo de recusa do pedido de portabilidade, onde: + + `CANCELADO_PELO_CLIENTE` - Cliente desiste do pedido da portabilidade + + `SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE` - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente + + `POLITICA_DE_CREDITO` - Proponente desiste da oferta ao cliente por políticas internas + + `RESERVA_DA_MARGEM` - Problemas relacionado a liberação/reserva da margem solicitada pela proponente + + `OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis + enum: + - CANCELADO_PELO_CLIENTE + - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE + - POLITICA_DE_CREDITO + - RESERVA_DA_MARGEM + - OUTROS + typeAdditionalInfo: + type: string + maxLength: 144 + pattern: '^[^\s](?:.*[^\s])?$' + example: "Informações Adicionais" + description: | + Informação adicional sobre rejeição de portabilidade de crédito. + Ao utilizar essa opção, é fortemente recomendável enviar um ticket para o GT de Portabilidade de Crédito como sugestão para estrutura Open Finance para discussão e mapeamento em futuras versões. + + [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `type` for igual a `OUTROS` ou quando o campo `type` for igual a `RESERVA_DE_MARGEM`. + meta: + $ref: '#/components/schemas/Meta' + ResponseRegisteringEntity: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + description: Dados para identificação do contrato a ser portado junto a averbadora + required: + - payrollData + properties: + payrollData: + description: Dados do contrato de empréstimo consignado. + type: object + required: + - contractId + - registeringEntity + properties: + contractId: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' + maxLength: 20 + minLength: 1 + description: Número do contrato dado pela instituição contratante no sistema da averbadora. + example: '12346579841058798Asq' + registeringEntity: + type: string + enum: + - SERPRO + description: | + Nome da averbadora do empréstimo consignado. + example: 'SERPRO' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/Meta' + RequestCreditPortabilityPayment: + type: object + required: + - data + properties: + data: + type: object + description: Objeto para notificar a respeito da liquidação efetuada pela proponente a credora + required: + - paymentDateTime + - paymentAmount + - transactionId + properties: + paymentDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o pagamento à instituição credora foi realizado pela instituição proponente. + Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format) + paymentAmount: + type: object + minItems: 1 + description: Objeto para representar o valor pago para liquidação do contrato de empréstimo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor pago para liquidação do contrato de empréstimo. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + transactionId: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 20 + minLength: 1 + example: 'STR20181108000000013' + description: | + Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. + + No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) + POSTResponseCreditPortabilityPayment: + type: object + required: + - data + properties: + data: + type: object + minItems: 0 + description: Objeto para notificar a respeito da liquidação efetuada pela proponente a credora + required: + - paymentDateTime + - paymentAmount + - transactionId + properties: + paymentDateTime: + type: string + maxLength: 20 + pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ + example: "2020-07-21T08:30:00Z" + description: | + Data e hora em que o pagamento à instituição credora foi realizado pela instituição proponente. + Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format) + paymentAmount: + type: object + minItems: 1 + description: Objeto para representar o valor pago para liquidação do contrato de empréstimo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + description: Valor pago para liquidação do contrato de empréstimo. + currency: + type: string + maxLength: 3 + minLength: 3 + pattern: '^(\w{3}){1}$' + example: 'BRL' + description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. + transactionId: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 20 + minLength: 1 + example: 'STR20181108000000013' + description: | + Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. + + No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) + meta: + $ref: '#/components/schemas/Meta' + RequestCreditPortabilityPaymentReversal: + type: object + required: + - data + properties: + data: + type: object + description: Objeto para notificar a respeito da solicita o estorno da STR efetuada para liquidar o contrato consignado. + required: + - transactionId + - payrollData + properties: + transactionId: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 20 + minLength: 1 + example: 'STR20181108000000013' + description: | + Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. + + No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) + payrollData: + description: Dados do contrato de empréstimo consignado. + type: object + required: + - contractId + - registeringEntity + properties: + contractId: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' + maxLength: 20 + minLength: 1 + description: Número do contrato dado pela instituição contratante no sistema da averbadora. + example: '12346579841058798Asq' + registeringEntity: + type: string + enum: + - SERPRO + description: | + Nome da averbadora do empréstimo consignado. + example: 'SERPRO' + POSTResponseCreditPortabilityPaymentReversal: + type: object + required: + - data + properties: + data: + type: object + minItems: 0 + description: Objeto para notificar a respeito da solicita o estorno da STR efetuada para liquidar o contrato consignado. + required: + - transactionId + - payrollData + properties: + transactionId: + type: string + pattern: '^[^\s](?:.*[^\s])?$' + maxLength: 20 + minLength: 1 + example: 'STR20181108000000013' + description: | + Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. + + No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) + payrollData: + description: Dados do contrato de empréstimo consignado. + type: object + required: + - contractId + - registeringEntity + properties: + contractId: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' + maxLength: 20 + minLength: 1 + description: Número do contrato dado pela instituição contratante no sistema da averbadora. + example: '12346579841058798Asq' + registeringEntity: + type: string + enum: + - SERPRO + description: | + Nome da averbadora do empréstimo consignado. + example: 'SERPRO' + meta: + type: object + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + LoansContractInterestRate: + type: object + description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito + required: + - taxType + - interestRateType + - taxPeriodicity + - calculation + - referentialRateIndexerType + - preFixedRate + - postFixedRate + properties: + taxType: + type: string + description: | + "Tipo de Taxa (vide Enum) + - NOMINAL (taxa nominal é uma taxa de juros em que a unidade referencial não coincide com a unidade de tempo da capitalização. Ela é sempre fornecida em termos anuais, e seus períodos de capitalização podem ser diários, mensais, trimestrais ou semestrais. p.ex. Uma taxa de 12% ao ano com capitalização mensal) + - EFETIVA (É a taxa de juros em que a unidade referencial coincide com a unidade de tempo da capitalização. Como as unidades de medida de tempo da taxa de juros e dos períodos de capitalização são iguais, usa-se exemplos simples como 1% ao mês, 60% ao ano)" + enum: + - NOMINAL + - EFETIVA + example: EFETIVA + interestRateType: + type: string + description: | + "Tipo de Juros (vide Enum) + - SIMPLES (aplicada/cobrada sempre sobre o capital inicial, que é o valor emprestado/investido. Não há cobrança de juros sobre juros acumulados no(s) período(s) anterior(es). Exemplo: em um empréstimo de R$1.000, com taxa de juros simples de 8% a.a., com duração de 2 anos, o total de juros será R$80 no primeiro ano e R$ 80 no segundo ano. Ao final do contrato, o tomador irá devolver o principal e os juros simples de cada ano: R$1.000+R$80+R$80=R$1.160) + - COMPOSTO (para cada período do contrato (diário, mensal, anual etc.), há um “novo capital” para a cobrança da taxa de juros contratada. Esse “novo capital” é a soma do capital e do juro cobrado no período anterior. Exemplo: em um empréstimo de R$1.000, com taxa de juros composta de 8% a.a., com duração de 2 anos, o total de juros será R$80 no primeiro ano. No segundo ano, os juros vão ser somados ao capital (R$1.000 + R$ 80 = R$ 1.080), resultando em juros de R$ 86 (8%de R$ 1.080))" + enum: + - SIMPLES + - COMPOSTO + example: SIMPLES + referentialRateIndexerSubType: + $ref: '#/components/schemas/EnumReferentialRateIndexerSubType' + taxPeriodicity: + type: string + description: | + "Periodicidade da taxa . (Vide Enum) + a.m - ao mês + a.a. - ao ano" + enum: + - AM + - AA + example: AA + calculation: + type: string + description: Base de cálculo + enum: + - 21/252 + - 30/360 + - 30/365 + example: 21/252 + referentialRateIndexerType: + type: string + description: | + "Tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040" + enum: + - SEM_TIPO_INDEXADOR + - PRE_FIXADO + - POS_FIXADO + - FLUTUANTES + - INDICES_PRECOS + - CREDITO_RURAL + - OUTROS_INDEXADORES + example: PRE_FIXADO + referentialRateIndexerAdditionalInfo: + type: string + description: | + Campo livre para complementar a informação relativa ao Tipo de taxa referencial ou indexador. + [Restrição] Obrigatório para complementar a informação relativa ao Tipo de taxa referencial ou indexador, quando selecionado o tipo ou subtipo `OUTRO`. + maxLength: 140 + pattern: '^[^\s](?:.*[^\s])?$' + example: Informações adicionais + preFixedRate: + type: string + pattern: '^\d{1,2}\.\d{6}$' + format: double + maxLength: 9 + minLength: 8 + example: '0.600000' + description: | + Taxa pré fixada aplicada sob o contrato da modalidade crédito. p.ex. 0.014500. O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros(representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). Preencher o campo não aplicável ao contrato com zeros, seguindo o pattern (0.000000). + postFixedRate: + type: string + pattern: '^\d{1,2}\.\d{6}$' + format: double + maxLength: 9 + minLength: 8 + description: | + Taxa pós fixada aplicada sob o contrato da modalidade crédito. p.ex. 0.0045 .O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.1500. Este valor representa 15%. O valor 1 representa 100%). Preencher o campo não aplicável ao contrato com zeros, seguindo o pattern (0.000000) + example: '0.550000' + additionalInfo: + type: string + maxLength: 1200 + pattern: '^[^\s](?:.*[^\s])?$' + example: Informações adicionais + description: | + Texto com informações adicionais sobre a composição das taxas de juros pactuadas. + + [Restrição] Caso a instituição possua a informação para compartilhamento, esta deverá ser informada. + EnumReferentialRateIndexerSubType: + type: string + description: | + "Sub tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040" + enum: + - SEM_SUB_TIPO_INDEXADOR + - PRE_FIXADO + - TR_TBF + - TJLP + - LIBOR + - TLP + - OUTRAS_TAXAS_POS_FIXADAS + - CDI + - SELIC + - OUTRAS_TAXAS_FLUTUANTES + - IGPM + - IPCA + - IPCC + - OUTROS_INDICES_PRECO + - TCR_PRE + - TCR_POS + - TRFC_PRE + - TRFC_POS + - OUTROS_INDEXADORES + example: TJLP + EnumErrorsRequestPortability: + type: string + enum: + - EM_ANDAMENTO + - PRAZO_ACIMA_LIMITE + - CONTRATO_INVALIDO + - CONTRATO_NAO_ELEGIVEL + - ERRO_IDEMPOTENCIA + - SEM_EVIDENCIA_ASSINATURA + - PERIODICIDADE_INVALIDA + - CAMPO_INCONSISTENTE + - VALOR_DIVERGENTE + - PARAMETRO_NAO_INFORMADO + - PARAMETRO_INVALIDO + - NAO_INFORMADO + example: EM_ANDAMENTO + description: | + Códigos de erros previstos na criação da iniciação de pagamento: + - EM_ANDAMENTO: Valida se já existe um pedido de portabilidade de crédito para o contrato solicitado pelo trilho do OFB ou da Registradora. + - PRAZO_ACIMA_LIMITE: Prazo do empréstimo maior ao restante das parcelas a serem liquidadas no contrato original. + - CONTRATO_INVALIDO: ID de contrato inválida. + - ERRO_IDEMPOTENCIA: Valida se há divergência entre chave de idempotência e informações enviadas. + - SEM_EVIDENCIA_ASSINATURA – Valida se o objeto de assinatura do contrato foi preenchido pela instituição proponente devidamente, em caso de ausência. + - CONTRATO_NAO_ELEGIVEL: Contrato não elegível para portabilidade dentro do trilho do OFB. + - PERIODICIDADE_INVALIDA: Valida se não houve mudança na periodicidade entre o novo contrato e o contrato original, caso tenha sido alterado a periodicidade. + - CAMPO_INCONSISTENTE: Valida se o preenchimento de alguns campos estão corretos Ex.: CNPJ da instituição credora deve ser o mesmo retornado pela API de Empréstimos. + - VALOR_DIVERGENTE: Valor da proposta para quitar o saldo remanescente é inconsistente, podendo ser a maior ou a menor. + - PARAMETRO_NAO_INFORMADO: Valida se todos os campos obrigatórios são informados. + - PARAMETRO_INVALIDO: Valida se parâmetros informados obedecem a formatação especificada. + - NAO_INFORMADO: Demais validações não explicitamente informadas. + EnumErrorsPatchCancel: + type: string + enum: + - CANCELAMENTO_NÃO_EFETUADO + example: CANCELAMENTO_NÃO_EFETUADO + description: | + Códigos de erros previstos para portabilidade de crédito: + - CANCELAMENTO_NÃO_EFETUADO: Estado da portabilidade diferente de RECEIVED, PENDING ou ACCEPTED_SETTLEMENT_IN_PROGRESS. Obs.: De acordo com o PRD o usuário poderá cancelar o pedido de portabilidade até a etapa de liquidação, após esta etapa não será mais permitido o cancelamento da portabilidade. + EnumErrorsPostPayments: + type: string + enum: + - PAGAMENTO_EFETUADO_FORA_PRAZO + example: PAGAMENTO_EFETUADO_FORA_PRAZO + description: | + Códigos de erros previstos para portabilidade de crédito: + - PAGAMENTO_EFETUADO_FORA_PRAZO: Estado da portabilidade diferente de ACCEPTED_SETTLEMENT_IN_PROGRESS ou PAYMENT_ISSUE. Obs.: Caso o pagamento tenha sido feito por engano a Instituição Proponente deve solicitar o estorno. + EnumErrorsPostPaymentReversal: + type: string + enum: + - DESAVERBACAO_POSSIVEL + example: DESAVERBACAO_POSSIVEL + description: | + Códigos de erros previstos para portabilidade de crédito: + - DESAVERBACAO_POSSIVEL: A Instituição credora tem um SLA de 10 dias contados apartir da comunicação do pagamento através do endpoint [POST] /portabilities/{portabilityId}/payment para realizar desaverbar o contrato consignado de empréstimo junto ao SERPRO. + Meta: + type: object + description: Meta informações referentes à API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + Links: + type: object + description: Referências para outros recursos da API requisitada. + required: + - self + properties: + self: + type: string + format: uri + maxLength: 2000 + description: URI completo que gerou a resposta atual. + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + ResponseErrorWithAbleAdditionalProperties: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 0 + 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 + meta: + type: object + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + 422ResponseErrorPostPortabilities: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 0 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + $ref: '#/components/schemas/EnumErrorsRequestPortability' + 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 + meta: + type: object + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + 422ResponseErrorPatchCancel: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 0 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + $ref: '#/components/schemas/EnumErrorsPatchCancel' + 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 + meta: + type: object + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + 422ResponseErrorPostPayments: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 0 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + $ref: '#/components/schemas/EnumErrorsPostPayments' + 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 + meta: + type: object + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + 422ResponseErrorPostPaymentReversal: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 0 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + $ref: '#/components/schemas/EnumErrorsPostPaymentReversal' + 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 + meta: + type: object + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + X-V: + type: string + pattern: '^\d+\.\d+\.\d+$' + example: 1.0.0 + XFapiInteractionId: + type: string + format: uuid + pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + minLength: 1 + maxLength: 36 + example: d78fc4e5-37ca-4da3-adf2-9b082bf92280 + parameters: + Authorization: + name: Authorization + in: header + description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado. + required: true + schema: + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + contractId: + name: contractId + in: path + description: Identificador do contrato para todos os tipos de operação de crédito. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + maxLength: 100 + 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 + 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 + pattern: '^(?!\s)(.*)(\S)$' + minLength: 1 + maxLength: 40 + 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 UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora.' + required: true + schema: + type: string + format: uuid + pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + minLength: 1 + maxLength: 36 + example: d78fc4e5-37ca-4da3-adf2-9b082bf92280 + portabilityId: + name: portabilityId + in: path + description: Identificador do pedido de portabilidade de crédito. + required: true + schema: + type: string + pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + maxLength: 36 + minLength: 36 + securitySchemes: + OpenId: + type: openIdConnect + openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration' + OAuth2ClientCredentials: + type: oauth2 + description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Requer o processo de redirecionamento e autenticação do usuário a que se referem os dados. + flows: + clientCredentials: + tokenUrl: 'https://authserver.example/token' + scopes: + payroll-credit-portability: Escopo necessário para acesso à API Portabilidade de Crédito. + OAuth2AuthorizationCodeLoans: + type: oauth2 + description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Requer 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: + loans: Escopo necessário para acesso à API Loans. O controle dos endpoints específicos é feito via permissions. + openId: Indica que a autorização está sendo realizada utilizando o protocolo definido pela openid. + 'consent:consentId': Fluxo OAuth necessário para que a instituição proponente tenha acesso aos dados na instituição credora. Requer o processo de redirecionamento e autenticação do usuário a que se referem os dados. + responses: + OKResponseAccountData: + description: Dados para realização do pagamento da operação via TED. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/ResponseAccountData' + OKResponsePortabilityEligibility: + description: Dados dos contratos de empréstimo obtidos com sucesso. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/ResponsePortabilityEligibility' + POSTResponseCreditPortability: + description: Dados da solicitação de portabilidade de crédito. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/POSTResponseCreditPortability' + OKResponsePortabilitiesByPortabilityId: + description: Dados dos contratos de empréstimo obtidos com sucesso. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/ResponsePortabilitiesByPortabilityId' + PatchResponseCreditPortabilityCancel: + description: Dados da confirmação do cancelamento da portabilidade de crédito. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/PatchResponseCreditPortabilityCancel' + OKResponseRegisteringEntity: + description: Dados para auxiliar a identificação do contrato a ser portado junto a averbadora. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/ResponseRegisteringEntity' + POSTResponseCreditPortabilityPayment: + description: Dados dos contratos de empréstimo obtidos com sucesso. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/POSTResponseCreditPortabilityPayment' + POSTResponseCreditPortabilityPaymentReversal: + description: Dados da solicita o estorno da STR efetuada para liquidar o contrato consignado. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/POSTResponseCreditPortabilityPaymentReversal' + BadRequest: + description: A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + Forbidden: + description: O token tem escopo incorreto ou uma política de segurança foi violada. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + GatewayTimeout: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + 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. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + NotFound: + description: O recurso solicitado não existe ou não foi implementado. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntity: + description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityPostPortabilities: + description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/422ResponseErrorPostPortabilities' + examples: + Saldo insuficiente: + summary: Em Andamento + value: + errors: + - code: EM_ANDAMENTO + title: já existe um pedido de portabilidade de crédito para o contrato solicitado + detail: já existe um pedido de portabilidade de crédito para o contrato solicitado + meta: + requestDateTime: '2021-05-21T08:30:00Z' + UnprocessableEntityPatchCancel: + description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/422ResponseErrorPatchCancel' + examples: + Saldo insuficiente: + summary: Cancelamento não efetuado + value: + errors: + - code: CANCELAMENTO_NÃO_EFETUADO + title: Estado da portabilidade diferente de RECEIVED, PENDING ou ACCEPTED_SETTLEMENT_IN_PROGRESS + detail: Estado da portabilidade diferente de RECEIVED, PENDING ou ACCEPTED_SETTLEMENT_IN_PROGRESS + meta: + requestDateTime: '2021-05-21T08:30:00Z' + UnprocessableEntityPostPayments: + description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/422ResponseErrorPostPayments' + examples: + Saldo insuficiente: + summary: Pagamento efetuado fora do prazo + value: + errors: + - code: PAGAMENTO_EFETUADO_FORA_PRAZO + title: Estado da portabilidade diferente de ACCEPTED_SETTLEMENT_IN_PROGRESS ou PAYMENT_ISSUE + detail: Estado da portabilidade diferente de ACCEPTED_SETTLEMENT_IN_PROGRESS ou PAYMENT_ISSUE + meta: + requestDateTime: '2021-05-21T08:30:00Z' + UnprocessableEntityPostPaymentReversal: + description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/jwt: + schema: + $ref: '#/components/schemas/422ResponseErrorPostPaymentReversal' + examples: + Saldo insuficiente: + summary: DESAVERBACAO_POSSIVEL + value: + errors: + - code: DESAVERBACAO_POSSIVEL + title: Desaverbação ainda no prazo do SLA de 10 dias. + detail: Desaverbação ainda no prazo do SLA de 10 dias. + meta: + requestDateTime: '2021-05-21T08:30:00Z' + SiteIsOverloaded: + description: O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + Default: + description: Erro inesperado. + headers: + x-fapi-interaction-id: + description: | + Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. + schema: + $ref: '#/components/schemas/XFapiInteractionId' + x-v: + description: | + Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 + schema: + $ref: '#/components/schemas/X-V' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' \ No newline at end of file diff --git a/swagger-apis/products-services/1.0.0.yml b/swagger-apis/products-services/1.0.0.yml index 4d278a26..17e0c68e 100644 --- a/swagger-apis/products-services/1.0.0.yml +++ b/swagger-apis/products-services/1.0.0.yml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.0 info: title: API's OpenData do Open Banking Brasil description: As API's descritas neste documento são referentes as API's da fase OpenData do Open Banking Brasil. From d7c25c49accc306e927e60b718669a87d3678748 Mon Sep 17 00:00:00 2001 From: GabrielLLR Date: Mon, 1 Dec 2025 14:48:58 -0300 Subject: [PATCH 2/2] Remove --- .../1.0.0-beta.1.yml | 3097 ----------------- 1 file changed, 3097 deletions(-) delete mode 100644 swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml diff --git a/swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml b/swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml deleted file mode 100644 index cfbc9687..00000000 --- a/swagger-apis/payroll-credit-portability/1.0.0-beta.1.yml +++ /dev/null @@ -1,3097 +0,0 @@ -openapi: 3.0.0 -info: - title: API Payroll Credit Portability - Open Finance Brasil - description: | - A API de Portabilidade de Crédito Consignado permite que usuários transfiram suas operações de crédito e arrendamento mercantil entre instituições financeiras em busca de melhores condições para o Open Finance Brasil. - - # Orientações - - ## Assinatura de payloads: - No contexto da API de Portabilidade de crédito, os payloads de mensagem que trafegam tanto por parte da instituição credora quanto por parte da instituição proponente devem estar assinados. Para o processo de assinatura destes payloads as instituições devem seguir as especificações de segurança publicadas no Portal do desenvolvedor -   - Certificados exigidos para assinatura de mensagens: [[PT] Padrão de Certificados Open Finance Brasil 2.1](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/245694518) -   - Como assinar o payload JWS: [Como Assinar o Payload](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/905740608) - - ## Controle de Acesso - - Os endpoints [GET] /portabilities/{portabilityId}, [GET] /portabilities/{portabilityId}/account-data, [POST] /portabilities/{portabilityId}/payment, [PATCH] / portabilities/{portabilityId}/cancel da API de Portabilidade de crédito devem utilizar o escopo client_credentials - - Os endpoints [GET] /credit-operations/{contractId}/portability-eligibility e [POST] /portabilities devem utilizar o escopo authorization_code para validar a permissions de LOANS - - ## Validações para Portabilidade de Crédito - **- Validações** (após o processo de DCR e obtenção de token client credential - não escopo dessa documentação): -  Durante o processo de portabilidade de crédito, diferentes validações são necessárias pela instituição credora e devem ocorrer conforme a seguir: - **- Casos de erro relacionados às permissões de segurança para acesso à API** (ex. certificado, access_token, jwt, assinatura): - Validação de Certificado: Valida utilização de certificado correto durante processo de DCR - HTTP Code 401 (`INVALID_CLIENT`); - Validação de Access_Token: Verifica se Access_Token utilizado está correto - HTTP Code 401 (`UNAUTHORIZED`); - Validação de assinatura da mensagem: Valida se assinatura das mensagens enviadas está correta – HTTP Code 400 (`BAD_SIGNATURE`); - Validação de Claims (exceto data); -  - Valida se dados (aud, iss, iat e jti) são válidos - HTTP status code 403 - (`INVALID_CLIENT`); -  - Valida reuso de jti - HTTP Code 403 (`INVALID_CLIENT`). - - ## Validações de erros sintáticos e semânticos, previstas com retorno HTTP Code 422 - Unprocessable Entity - **- Para todos os endpoints:** -   **Sintáticos** -  - Envio de campos obrigatórios: Valida se todos os campos obrigatórios são informados (`PARAMETRO_NAO_INFORMADO`); -  - Formatação de parâmetros: Valida se parâmetros informados obedecem a formatação especificada (`PARAMETRO_INVALIDO`). -  - Demais validações não explicitamente informadas (`NAO_INFORMADO`) - **- Para endpoint ([POST] /portabilities):** -   **Semânticos** -  - Portabilidade em andamento: Valida se já existe um pedido de portabilidade de crédito para o contrato solicitado pelo trilho do OFB ou da Registradora (`EM_ANDAMENTO`); -  - Prazo do empréstimo maior ao restante das parcelas a serem liquidadas no contrato original (`PRAZO_ACIMA_LIMITE`); -  - ID de contrato inválida (`CONTRATO_INVALIDO`); -  - Contrato não elegível para portabilidade dentro do trilho do OFB (`CONTRATO_NAO_ELEGIVEL`); -  - Idempotência: Valida se há divergência entre chave de idempotência e informações enviadas (`ERRO_IDEMPOTENCIA`); -  - Evidência de assinatura do contrato: Valida se o objeto de assinatura do contrato foi preenchido pela instituição proponente devidamente, em caso de ausência (`SEM_EVIDENCIA_ASSINATURA`); -  - Periodicidade: Valida se não houve mudança na periodicidade entre o novo contrato e o contrato original, caso tenha sido alterado a periodicidade (`PERIODICIDADE_INVALIDA`); -  - Campo com preenchimento incorreto: Valida se o preenchimento de alguns campos estão corretos - Ex.: CNPJ da instituição credora deve ser o mesmo retornado pela API de Empréstimos (`CAMPO_INCONSISTENTE`) - **- Para endpoint ([POST] /portabilities/{portabilityId}/payment):** -   **Semânticos** -  - Estado da portabilidade diferente de `ACCEPTED_SETTLEMENT_IN_PROGRESS` ou `PAYMENT_ISSUE` (`PAGAMENTO_EFETUADO_FORA_PRAZO`). Obs.: Caso o pagamento tenha sido feito por engano a Instituição Proponente deve solicitar o estorno. - **- Para endpoint ([PATCH] /portabilities/{portabilityId}/cancel):** -   **Semânticos** -  - Estado da portabilidade diferente de `RECEIVED`, `PENDING` ou `ACCEPTED_SETTLEMENT_IN_PROGRESS` (`CANCELAMENTO_NÃO_EFETUADO`). Obs.: De acordo com o PRD o usuário poderá cancelar o pedido de portabilidade até a etapa de liquidação, após esta etapa não será mais permitido o cancelamento da portabilidade - version: 1.0.0-beta.1 - license: - name: Apache 2.0 - url: 'https://www.apache.org/licenses/LICENSE-2.0' - contact: - name: Governança do Open Finance Brasil – Especificações - email: gt-interfaces@openbankingbr.org - url: 'https://openbanking-brasil.github.io/areadesenvolvedor/' -servers: - - url: 'https://api.banco.com.br/open-banking/payroll-credit-portability/v1' - description: Servidor de Produção - - url: 'https://apih.banco.com.br/open-banking/payroll-credit-portability/v1' - description: Servidor de Homologação -tags: - - name: Account data - description: 'Informação dos dados bancários para liquidação de contrato via STR exclusiva do OFB.' - - name: Concurrency Management - description: 'Para evitar o envio de múltiplas solicitações de portabilidade para o mesmo contrato, as instituições devem implementar mecanismos que permitam: recusar solicitações simultâneas de portabilidade de crédito referentes ao mesmo contrato, seja por meio da registradora ou do Open Finance Brasil (OFB), priorizando sempre a solicitação mais antiga.' - - name: Credit Portability - description: 'Permite que usuários transfiram suas operações de crédito e arrendamento mercantil entre instituições financeiras em busca de melhores condições.' - - name: Registering Entity - description: 'Fornece dados do contrato consignado junto a averbadora.' - - name: Payments - description: 'Informa a Instituição Credora a respeito da liquidação efetuada através da STR exclusiva do OFB.' -paths: - /portabilities/{portabilityId}/account-data: - get: - tags: - - Account data - summary: Obtém os dados necessários para realização do pagamento da operação via TED. - description: Método responsável por recuperar informações de contas para realização do pagamento via TED. - operationId: payrollCreditPortabilityGetPortabilitiesPortabilityIdAccountData - parameters: - - $ref: '#/components/parameters/portabilityId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - responses: - '200': - $ref: '#/components/responses/OKResponseAccountData' - '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' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - payroll-credit-portability - '/credit-operations/{contractId}/portability-eligibility': - get: - tags: - - Concurrency Management - summary: Informa se um contrato pertencente a um determinado cliente estará habilitado para a realização do pedido de portabilidade de crédito considerando a regra de só existir um pedido de portabilidade para um determinado contrato. - operationId: payrollCreditPortabilityGetCreditOperationsContratIdPortabilityEligibility - description: Informa se o contrato está disponível para solicitação de portabilidade de crédito. - parameters: - - $ref: '#/components/parameters/contractId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - responses: - '200': - $ref: '#/components/responses/OKResponsePortabilityEligibility' - '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' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2AuthorizationCodeLoans: - - openId - - 'consent:consentId' - - loans - '/portabilities': - post: - tags: - - Credit Portability - summary: Realiza pedido de portabilidade de crédito para um determinado contrato junto a instituição credora - operationId: payrollCreditPortabilityPostPortabilities - description: Solicitação de portabilidade de crédito via OFB. - parameters: - - $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/jwt: - schema: - $ref: '#/components/schemas/RequestCreditPortability' - description: Payload para o pedido de portabilidade de crédito. - required: true - responses: - '202': - $ref: '#/components/responses/POSTResponseCreditPortability' - '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/UnprocessableEntityPostPortabilities' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2AuthorizationCodeLoans: - - openId - - 'consent:consentId' - - loans - '/portabilities/{portabilityId}': - get: - tags: - - Credit Portability - summary: Consulta portabilidade de crédito através da propriedade portabilityId. - description: Endpoint responsável por consultar pedidos de portabilidade de crédito. - operationId: payrollCreditPortabilityGetPortabilitiesByPortabilityId - parameters: - - $ref: '#/components/parameters/portabilityId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - responses: - '200': - $ref: '#/components/responses/OKResponsePortabilitiesByPortabilityId' - '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' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - payroll-credit-portability - '/portabilities/{portabilityId}/cancel': - patch: - tags: - - Credit Portability - summary: Comunica a Instituição Credora a respeito do cancelamento da portabilidade de crédito. - description: Comunica a Instituição Credora a respeito do cancelamento da portabilidade de crédito. - operationId: payrollCreditPortabilityPatchPortabilitiesPortabilityIdCancel - parameters: - - $ref: '#/components/parameters/portabilityId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - requestBody: - content: - application/jwt: - schema: - $ref: '#/components/schemas/RequestCreditPortabilityCancel' - description: Payload para comunicar a liquidação efetuada pela proponente a credora e iniciar a proxima etapa do fluxo de portabilidade de crédito. - required: true - responses: - '200': - $ref: '#/components/responses/PatchResponseCreditPortabilityCancel' - '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/UnprocessableEntityPatchCancel' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - payroll-credit-portability - '/credit-operations/{contractId}/registering-entity': - get: - tags: - - Registering Entity - summary: Obtém os dados necessários para identificar o contrato a ser portado junto a averbadora. - description: Obtém os dados necessários para identificar o contrato a ser portado junto a averbadora. - operationId: payrollCreditPortabilityGetCreditOperationsContractIdRegisteringEntity - parameters: - - $ref: '#/components/parameters/contractId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - responses: - '200': - $ref: '#/components/responses/OKResponseRegisteringEntity' - '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' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - payroll-credit-portability - /portabilities/{portabilityId}/payment: - post: - tags: - - Payments - summary: Comunica a Instituição Credora a respeito da liquidação da portabilidade de crédito. - description: Comunica a Instituição Credora a respeito da liquidação da portabilidade de crédito. - operationId: payrollCreditPortabilityGetPortabilitiesPortabilityIdPayment - parameters: - - $ref: '#/components/parameters/portabilityId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - requestBody: - content: - application/jwt: - schema: - $ref: '#/components/schemas/RequestCreditPortabilityPayment' - description: Payload para comunicar a liquidação efetuada pela proponente a credora e iniciar a proxima etapa do fluxo de portabilidade de crédito. - required: true - responses: - '202': - $ref: '#/components/responses/POSTResponseCreditPortabilityPayment' - '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/UnprocessableEntityPostPayments' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - payroll-credit-portability - - /portabilities/{portabilityId}/payment-reversal: - post: - tags: - - Payments - summary: Solicita o estorno da STR efetuada para liquidar o contrato consignado devido ao fato da Instituição Credora não ter desaverbado o contrato em tempo ábil conforme SLA definido pela SERPRO de 10 dias contados a partir da data de criação da solicitação da reserva da mergem para Instituição Proponente. - description: Solicita o estorno da STR efetuada para liquidar o contrato consignado. - operationId: payrollCreditPortabilityPostPortabilitiesPortabilityIdPaymentReversal - parameters: - - $ref: '#/components/parameters/portabilityId' - - $ref: '#/components/parameters/Authorization' - - $ref: '#/components/parameters/xFapiAuthDate' - - $ref: '#/components/parameters/xFapiCustomerIpAddress' - - $ref: '#/components/parameters/xFapiInteractionId' - - $ref: '#/components/parameters/xCustomerUserAgent' - requestBody: - content: - application/jwt: - schema: - $ref: '#/components/schemas/RequestCreditPortabilityPaymentReversal' - description: Payload para comunicar a liquidação efetuada pela proponente a credora e iniciar a proxima etapa do fluxo de portabilidade de crédito. - required: true - responses: - '202': - $ref: '#/components/responses/POSTResponseCreditPortabilityPaymentReversal' - '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/UnprocessableEntityPostPaymentReversal' - '500': - $ref: '#/components/responses/InternalServerError' - '504': - $ref: '#/components/responses/GatewayTimeout' - '529': - $ref: '#/components/responses/SiteIsOverloaded' - default: - $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - payroll-credit-portability -components: - schemas: - ResponseAccountData: - type: object - required: - - data - - links - - meta - properties: - data: - type: object - description: Dados para realização do pagamento da operação via TED - required: - - strCode - properties: - strCode: - type: object - required: - - ispb - - branchCode - - hasFinancialAgent - properties: - ispb: - type: string - pattern: '^[0-9A-Z]{8}$' - maxLength: 8 - minLength: 8 - description: Número do ISPB da Instituição credora a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. - example: '22896431' - name: - type: string - description: | - Nome do proprietário da conta a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. - - [RESTRIÇÃO] campo de preenchimento obrigatório quando campo `hasFinancialAgent` for igual a true - pattern: '^(?!\s)[\w\W\s]*[^\s]$' - maxLength: 80 - minLength: 1 - example: 'Instituicao Credora' - companyCnpj: - type: string - description: | - CNPJ do proprietário da conta a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. - - [RESTRIÇÃO] campo de preenchimento obrigatório quando campo `hasFinancialAgent` for igual a true - pattern: '^[0-9A-Z]{12}[0-9]{2}$' - maxLength: 14 - minLength: 14 - example: '21128159000166' - branchCode: - type: number - description: Número da Agência creditada a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. - example: 0001 - hasFinancialAgent: - type: boolean - description: Instituição trabalha com agente financeiro ao invés da conta reserva? - example: true - accountNumber: - type: number - description: | - Número da conta bancária da credora a ser usada na STR para pagamento de portabilidade de crédito exclusiva para o OFB. - - [RESTRIÇÃO] campo de preenchimento obrigatório quando campo `hasFinancialAgent` for igual a true - example: 12345678 - links: - $ref: '#/components/schemas/Links' - meta: - $ref: '#/components/schemas/Meta' - ResponsePortabilityEligibility: - type: object - required: - - data - properties: - data: - type: object - description: Conjunto de informações de contratos de empréstimos/financiamentos mantidos pelo cliente na instituição credora e para os quais ele tenha fornecido consentimento - required: - - contractId - - portability - properties: - contractId: - type: string - pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' - maxLength: 100 - minLength: 1 - example: '92792126019929279212650822221989319252576' - description: 'Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora.' - portability: - type: object - required: - - isEligible - properties: - isEligible: - type: boolean - description: Sinaliza se as características do contrato é elegível para pedido de portabilidade de crédito via OFB (sem considerar a disponibilidade da portabilidade de crédito) - ineligible: - type: object - required: - - reasonType - description: | - Objeto para auxiliar a Instituição Proponente a entender o porque um contrato está inelegivel para pedido de portabilidade de crédito - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `isEligible` for igual a `FALSE` - properties: - reasonType: - type: string - example: CLIENTE_COM_ACAO_JUDICIAL - enum: - - CONTRATO_LIQUIDADO - - CLIENTE_COM_ACAO_JUDICIAL - - MODALIDADE_OPERACAO_INCOMPATIVEL - - FLUXO_COM_PARCELA_IRREGULAR - - TIPO_PESSOA_INVALIDO - - OUTROS - description: | - Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito - Informação sobre o motivo de inelegibilidade - -`CONTRATO_LIQUIDADO`: Contrato liquidado pelo cliente. - -`CLIENTE_COM_ACAO_JUDICIAL`: Cliente possui ação judicial - -`MODALIDADE_OPERACAO_INCOMPATIVEL`: Caso o contrato tenha uma modalidade diferente do praticado no escopo de modalidades disponiveis para portabilidade de crédito - -`FLUXO_COM_PARCELA_IRREGULAR`: Empréstimos com fluxo de pagamento irregular - -`TIPO_PESSOA_INVALIDO`: Empréstimo pertence a um tipo de pessoa diferente de pessoa natural - -`OUTROS`: Caso exista algum motivo de recusa que não se encaixa nas opções disponiveis de `reasonType`, o campo `reasonTypeAdditionalInfo` deverá ser preenchido com o motivo da inelegibilidade. - - reasonTypeAdditionalInfo: - description: | - Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito. Deve ser preenchido como uma proposta para inclusão nas definições, exemplo `MOTIVO_NAO_MAPEADO`: descrição de usar esse motivo específico. Ao utilizar essa opção, é obrigatório enviar um ticket para a estrutura open finance para mapeamento em futuras versões. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `reasonType` for igual a `OUTROS`. - type: string - status: - type: string - description: | - Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `isEligible` for igual a `TRUE` - enum: - - DISPONIVEL - - EM_ANDAMENTO - statusUpdateDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o contrato teve o status atualizado. Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC(UTC time format). - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `isEligible` for igual a `TRUE` - - channel: - type: string - description: | - Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `status` for igual a `EM_ANDAMENTO` - enum: - - OFB - - REGISTRADORA - companyName: - type: string - pattern: '^(?!\s)[\w\W\s]*[^\s]$' - maxLength: 80 - example: Empresa da Organização A - description: | - Nome da Instituição Proponente responsável pelo pedido de portabilidade de credito anterior a atual consulta p.ex.Empresa A. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `status` for igual a `EM_ANDAMENTO` - companyCnpj: - type: string - pattern: '^[0-9A-Z]{12}[0-9]{2}$' - maxLength: 14 - minLength: 14 - example: '21128159000166' - description: | - Número completo do CNPJ da instituição - O CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. - Deve-se ter apenas números do CNPJ, sem máscara - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando o campo `status` for igual a `EM_ANDAMENTO` - links: - $ref: '#/components/schemas/Links' - meta: - $ref: '#/components/schemas/Meta' - RequestCreditPortability: - type: object - required: - - data - properties: - data: - type: object - description: Conjunto de informações referentes à Proposta de Portabilidade de Crédito da Proponente para a Credora - required: - - customerContact - - institution - - contractIdentification - - proposedContract - - creationDateTime - properties: - customerContact: - type: array - minItems: 0 - description: Dados de contato do cliente - items: - type: object - required: - - type - - value - properties: - type: - type: string - enum: - - TELEFONE - - EMAIL - description: "Tipo do contato do cliente." - value: - type: string - pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ - example: "11999999999" - institution: - type: object - description: Informações sobre proponente e credora participantes do presente pedido de portabilidade de crédito - required: - - creditor - - proposing - properties: - creditor: - type: object - description: Informações sobre a instituição credora - required: - - companyName - - companyCnpj - properties: - companyName: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 80 - example: Instituição Credora - description: 'Nome da Instituição Credora.' - companyCnpj: - type: string - pattern: '^[0-9A-Z]{12}[0-9]{2}$' - maxLength: 14 - example: '21128159000166' - description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' - proposing: - type: object - description: Informações sobre a instituição proponente - required: - - companyName - - companyCnpj - properties: - companyName: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 80 - example: Instituição Proponente - description: 'Nome da Instituição Proponente' - companyCnpj: - type: string - pattern: '^[0-9A-Z]{12}[0-9]{2}$' - maxLength: 14 - example: '21128159000166' - description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' - contact: - type: array - minItems: 1 - items: - type: object - properties: - type: - type: string - enum: - - EMAIL - - TELEFONE - description: "Tipo do contato da Instituição Proponente." - value: - type: string - pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ - example: "contato@instituicaoproponente.com.br" - contractIdentification: - type: object - required: - - contractId - - contractNumber - - ipocCode - properties: - contractId: - type: string - pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$ - maxLength: 100 - minLength: 1 - example: "92792126019929279212650822221989319252576" - description: "Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora." - contractNumber: - type: string - pattern: ^[\w\W]{1,100}$ - maxLength: 100 - minLength: 1 - example: "1324926521496" - description: "Número do contrato dado pela instituição contratante." - ipocCode: - type: string - pattern: ^[\w\W]{22,67}$ - maxLength: 67 - minLength: 22 - example: "92792126019929279212650822221989319252576" - description: | - Número padronizado do contrato - IPOC (Identificação Padronizada da Operação de Crédito). Segundo DOC 3040, composta por: - - - CNPJ da instituição: 8 (oito) posições iniciais; - Modalidade da operação: 4 (quatro) posições; - Tipo do cliente: 1 (uma) posição( 1 = pessoa natural - CPF, 2= pessoa jurídica - - – CNPJ, 3 = pessoa física no exterior, 4 = pessoa jurídica no exterior, 5 = pessoa natural sem CPF e 6 = pessoa jurídica sem CNPJ); - - - Código do cliente: O número de posições varia conforme o tipo do cliente: - Para clientes pessoa física com CPF (tipo de cliente = 1), informar as 11 (onze) posições do CPF; - Para clientes pessoa jurídica com CNPJ (tipo de cliente = 2), informar as 8 (oito) posições iniciais do CNPJ; - Para os demais clientes (tipos de cliente 3, 4, 5 e 6), informar 14 (catorze) posições com complemento de zeros à esquerda se a identificação tiver tamanho inferior; - - - Código do contrato: 1 (uma) até 40 (quarenta) posições, sem complemento de caracteres - proposedContract: - type: object - minItems: 1 - description: Proposta da Proponente para Portabilidade de Crédito - required: - - interestRates - - contractedFees - - contractedFinanceCharges - - digitalSignatureProof - - CET - - amortizationScheduled - - instalmentPeriodicity - - totalNumberOfInstalments - - instalmentAmount - - dueDate - - contractAmount - properties: - interestRates: - type: array - description: | - Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito. - Caso o contrato não possua taxas de juros, deve ser compartilhada uma lista vazia. Caso o contrato possua uma taxa de juros com valor 0, deve ser compartilhado um objeto com o valor 0 de forma explícita. - minItems: 0 - items: - $ref: '#/components/schemas/LoansContractInterestRate' - contractedFees: - type: array - description: Lista que traz as informações das tarifas pactuadas no contrato. - minItems: 0 - items: - type: object - description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito - required: - - feeName - - feeCode - - feeChargeType - - feeCharge - properties: - feeName: - type: string - maxLength: 140 - pattern: '^[^\s](?:.*[^\s])?$' - description: Denominação da Tarifa pactuada - example: Renovação de cadastro - feeCode: - type: string - maxLength: 140 - pattern: '^[^\s](?:.*[^\s])?$' - description: Sigla identificadora da tarifa pactuada - example: CADASTRO - feeChargeType: - type: string - description: Tipo de cobrança para a tarifa pactuada no contrato. - enum: - - UNICA - - POR_PARCELA - example: UNICA - feeCharge: - type: string - description: | - "Forma de cobrança relativa a tarifa pactuada no contrato. (Vide Enum) - - Mínimo - - Máximo - - Fixo - - Percentual" - enum: - - MINIMO - - MAXIMO - - FIXO - - PERCENTUAL - example: MINIMO - feeAmount: - type: object - minItems: 1 - description: | - Objeto para representar o valor monetário da tarifa pactuada no contrato. - - [Restrição] Preenchimento obrigatório quando a forma de cobrança for diferente de Percentual. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor monetário da tarifa pactuada no contrato. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - feeRate: - type: string - pattern: '^\d{1}\.\d{6}$' - format: double - maxLength: 8 - minLength: 8 - description: | - É o valor da tarifa em percentual pactuada no contrato. - - [Restrição] Preenchimento obrigatório quando a forma de cobrança for Percentual. - example: '0.062000' - contractedFinanceCharges: - type: array - description: Lista que traz os encargos pactuados no contrato - minItems: 0 - items: - type: object - description: Conjunto de informações referentes à identificação da operação de crédito - required: - - chargeType - - chargeRate - properties: - chargeType: - type: string - description: Tipo de encargo pactuado no contrato. - enum: - - JUROS_REMUNERATORIOS_POR_ATRASO - - MULTA_ATRASO_PAGAMENTO - - JUROS_MORA_ATRASO - - IOF_CONTRATACAO - - IOF_POR_ATRASO - - SEM_ENCARGO - - OUTROS - example: JUROS_REMUNERATORIOS_POR_ATRASO - chargeAdditionalInfo: - type: string - maxLength: 140 - description: | - Campo para informações adicionais. - - [Restrição] Obrigatório se selecionada a opção 'OUTROS' em Tipo de encargo pactuado no contrato. - pattern: '^[^\s](?:.*[^\s])?$' - example: Informações adicionais sobre encargos. - chargeRate: - type: string - pattern: '^\d{1}\.\d{6}$' - format: double - maxLength: 8 - minLength: 8 - description: | - Representa o valor do encargo em percentual pactuado no contrato. - - O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros(representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). - example: '0.070000' - digitalSignatureProof: - type: object - required: - - documentId - - signatureDateTime - properties: - documentId: - type: string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ - maxLength: 100 - minLength: 1 - example: 54d5348c-1a3f-4ff4-a8a8-d0724fb806c6 - description: "Código identificador do Documento assinado na instituição proponente." - signatureDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o contrato foi assinado pelo cliente no canal digital da Instituição Proponente - CET: - type: string - pattern: ^\d{1,6}\.\d{6}$ - maxLength: 13 - minLength: 8 - example: "0.290000" - description: | - CET – Custo Efetivo Total deve ser expresso na forma de taxa percentual anual e incorpora todos os encargos e despesas incidentes nas operações de crédito (taxa de juro, mas também tarifas, tributos, seguros e outras despesas cobradas). O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). Para o público PF (pessoa física) o campo é de envio obrigatório para contratos firmados a partir de 2008, conforme Resolução CMN 3.517. Para o público PJ (pessoa jurídica) o campo é de envio obrigatório para contratos firmados a partir de 2011, conforme Resolução CMN 3.909. O campo poderá ser preenchido com 0.00 em cenários nos quais a casa não tenha a informação de CET (Custo efetivo total) apenas para as exceções listadas abaixo: - - - Em contratos anteriores a 2008 (para o público PF); - - - Em contratos anteriores a 2011 (para o público PJ); - - - Público PJ de médio ou grande porte. - amortizationScheduled: - type: string - enum: - - SAC - - PRICE - - SAM - - SEM_SISTEMA_AMORTIZACAO - - OUTROS - example: SAC - description: | - Sistema de amortização (Vide Enum): - - - SAC (Sistema de Amortização Constante): É aquele em que o valor da amortização permanece igual até o final. Os juros cobrados sobre o parcelamento não entram nesta conta. - - - PRICE (Sistema Francês de Amortização): As parcelas são fixas do início ao fim do contrato. Ou seja, todas as parcelas terão o mesmo valor, desde a primeira até a última. Nos primeiros pagamentos, a maior parte do valor da prestação corresponde aos juros. Ao longo do tempo, a taxa de juros vai decrescendo. Como o valor da prestação é fixo, com o passar das parcelas, o valor de amortização vai aumentando. - - - SAM (Sistema de Amortização Misto): Cada prestação (pagamento) é a média aritmética das prestações - respectivas no Sistemas Price e no Sistema de Amortização Constante (SAC). - - - SEM SISTEMA DE AMORTIZAÇÃO - amortizationScheduledAdditionalInfo: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 200 - example: Informações complementares relativa à amortização do tipo `OUTROS` - description: | - Informação relativa ao complemento da amortização - - [Restrição] Campo de preenchimento obrigatório quando o campo amortizationScheduled for igual `OUTROS` - instalmentPeriodicity: - type: string - description: Informação relativa à periodicidade regular das parcelas. (Vide Enum) sem periodicidade regular, diário, semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual. - example: SEM_PERIODICIDADE_REGULAR - enum: - - SEM_PERIODICIDADE_REGULAR - - DIARIO - - SEMANAL - - QUINZENAL - - MENSAL - - BIMESTRAL - - TRIMESTRAL - - SEMESTRAL - - ANUAL - totalNumberOfInstalments: - type: number - description: Total de parcelas, segundo a periodicidade regular das parcelas referente à Modalidade de Crédito informada. - maximum: 999999999 - example: 30 - instalmentAmount: - type: object - minItems: 1 - description: Objeto para representar o Valor da parcela regular da operação após portabilidade. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor da parcela regular da operação após portabilidade. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - dueDate: - type: string - maxLength: 20 - minLength: 20 - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - example: '2020-07-21T08:30:00Z' - description: | - Prazo (data de vencimento final) da operação. Especificação RFC-3339. - contractAmount: - type: object - description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. - required: - - amount - - currency - properties: - amount: - type: string - format: double - pattern: '^\d{1,15}\.\d{2,4}$' - maxLength: 20 - minLength: 4 - example: '1000.0400' - description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. - currency: - type: string - pattern: '^(\w{3}){1}$' - maxLength: 3 - minLength: 3 - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217 - creationDateTime: - type: string - description: | - Data e hora em que a Proponente registrou a presente proposta (chamada ao POST /portabilities). - Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format). - maxLength: 20 - minLength: 20 - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - example: '2020-07-21T08:30:00Z' - POSTResponseCreditPortability: - type: object - required: - - data - properties: - data: - type: object - minItems: 0 - description: Conjunto de informações de contratos de empréstimos/financiamentos mantidos pelo cliente na instituição credora e para os quais ele tenha fornecido consentimento - required: - - portabilityId - - siapePortabilityId - - creationDateTime - - status - properties: - portabilityId: - type: string - pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' - maxLength: 36 - minLength: 36 - example: 54d5348c-1a3f-4ff4-a8a8-d0724fb806c6 - description: "Código identificador do pedido de portabilidade realizado." - siapePortabilityId: - type: string - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' - maxLength: 20 - minLength: 20 - example: "12346579841058798Asq" - description: "Identificador único do pedido de portabilidade, destinado exclusivamente ao uso no sistema SIAPE, no campo `nrProcessoCip`." - status: - type: string - description: Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito - enum: - - RECEIVED - - PENDING - - CANCELLED - creationDateTime: - type: string - description: | - Data e hora em que a Proponente registrou a presente proposta (chamada ao POST /portabilities). - Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format). - maxLength: 20 - minLength: 20 - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - example: '2020-07-21T08:30:00Z' - meta: - $ref: '#/components/schemas/Meta' - ResponsePortabilitiesByPortabilityId: - type: object - required: - - data - - links - - meta - properties: - data: - type: object - description: Conjunto de informações referentes à Proposta de Portabilidade de Crédito da Proponente para a Credora - required: - - customerContact - - institution - - contractIdentification - - proposedContract - - portabilityId - - status - - statusUpdateDateTime - - creationDateTime - properties: - portabilityId: - description: Código identificador do pedido de portabilidade realizado. - type: string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ - maxLength: 36 - minLength: 36 - example: "54d5348c-1a3f-4ff4-a8a8-d0724fb806c6" - customerContact: - type: array - minItems: 0 - description: Dados de contato do cliente. - items: - type: object - required: - - type - - value - properties: - type: - type: string - enum: - - TELEFONE - - EMAIL - description: "Tipo do contato do cliente." - value: - type: string - pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ - example: "11999999999" - institution: - type: object - description: Informações sobre proponente e credora participantes do presente pedido de portabilidade de crédito. - required: - - creditor - - proposing - properties: - creditor: - type: object - description: Informações sobre a instituição credora. - required: - - companyName - - companyCnpj - properties: - companyName: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 80 - example: Instituição Credora - description: 'Nome da Instituição Credora.' - companyCnpj: - type: string - pattern: '^[0-9A-Z]{12}[0-9]{2}$' - maxLength: 14 - example: '21128159000166' - description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' - proposing: - type: object - description: Informações sobre a instituição proponente - required: - - companyName - - companyCnpj - properties: - companyName: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 80 - example: Instituição Proponente - description: 'Nome da Instituição Proponente' - companyCnpj: - type: string - pattern: '^[0-9A-Z]{12}[0-9]{2}$' - maxLength: 14 - example: '21128159000166' - description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.' - contact: - type: array - minItems: 1 - items: - type: object - properties: - type: - type: string - enum: - - EMAIL - - TELEFONE - description: "Tipo do contato da Instituição Proponente." - value: - type: string - pattern: ^([1-9]{2}(?:[2-8]|9[0-9])[0-9]{3}[0-9]{4})|([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$ - example: "contato@instituicaoproponente.com.br" - contractIdentification: - type: object - required: - - contractId - - contractNumber - - ipocCode - properties: - contractId: - type: string - pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$ - maxLength: 100 - minLength: 1 - example: "92792126019929279212650822221989319252576" - description: "Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora." - contractNumber: - type: string - pattern: ^[\w\W]{1,100}$ - maxLength: 100 - minLength: 1 - example: "1324926521496" - description: "Número do contrato dado pela instituição contratante." - ipocCode: - type: string - pattern: ^[\w\W]{22,67}$ - maxLength: 67 - minLength: 22 - example: "92792126019929279212650822221989319252576" - description: | - Número padronizado do contrato - IPOC (Identificação Padronizada da Operação de Crédito). Segundo DOC 3040, composta por: - - - CNPJ da instituição: 8 (oito) posições iniciais; - Modalidade da operação: 4 (quatro) posições; - Tipo do cliente: 1 (uma) posição( 1 = pessoa natural - CPF, 2= pessoa jurídica - - – CNPJ, 3 = pessoa física no exterior, 4 = pessoa jurídica no exterior, 5 = pessoa natural sem CPF e 6 = pessoa jurídica sem CNPJ); - - - Código do cliente: O número de posições varia conforme o tipo do cliente: - Para clientes pessoa física com CPF (tipo de cliente = 1), informar as 11 (onze) posições do CPF; - Para clientes pessoa jurídica com CNPJ (tipo de cliente = 2), informar as 8 (oito) posições iniciais do CNPJ; - Para os demais clientes (tipos de cliente 3, 4, 5 e 6), informar 14 (catorze) posições com complemento de zeros à esquerda se a identificação tiver tamanho inferior; - - - Código do contrato: 1 (uma) até 40 (quarenta) posições, sem complemento de caracteres. - proposedContract: - type: object - minItems: 1 - description: Proposta da Proponente para Portabilidade de Crédito. - required: - - CET - - amortizationScheduled - - interestRates - - contractedFees - - contractedFinanceCharges - - digitalSignatureProof - - totalNumberOfInstalments - - instalmentPeriodicity - - dueDate - - contractAmount - properties: - CET: - type: string - pattern: '^\d{1,6}\.\d{6}$' - maxLength: 13 - minLength: 8 - example: '0.290000' - description: | - CET – Custo Efetivo Total deve ser expresso na forma de taxa percentual anual e incorpora todos os encargos e despesas incidentes nas operações de crédito (taxa de juro, mas também tarifas, tributos, seguros e outras despesas cobradas). - - O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). - - Para o público PF (pessoa física) o campo é de envio obrigatório para contratos firmados a partir de 2008, conforme Resolução CMN 3.517. Para o público PJ (pessoa jurídica) o campo é de envio obrigatório para contratos firmados a partir de 2011, conforme Resolução CMN 3.909. O campo poderá ser preenchido com 0.00 em cenários nos quais a casa não tenha a informação de CET (Custo efetivo total) apenas para as exceções listadas abaixo: - - - Em contratos anteriores a 2008 (para o público PF); - - Em contratos anteriores a 2011 (para o público PJ); - - Público PJ de médio ou grande porte. - amortizationScheduled: - type: string - enum: - - SAC - - PRICE - - SAM - - SEM_SISTEMA_AMORTIZACAO - - OUTROS - example: SAC - description: | - Sistema de amortização (Vide Enum): - - SAC (Sistema de Amortização Constante) - É aquele em que o valor da amortização permanece igual até o final. Os juros cobrados sobre o parcelamento não entram nesta conta. - - PRICE (Sistema Francês de Amortização) - As parcelas são fixas do início ao fim do contrato. Ou seja, todas as parcelas terão o mesmo valor, desde a primeira até a última. Nos primeiros pagamentos, a maior parte do valor da prestação corresponde aos juros. Ao longo do tempo, a taxa de juros vai decrescendo. Como o valor da prestação é fixo, com o passar das parcelas, o valor de amortização vai aumentando. - - SAM (Sistema de Amortização Misto) - Cada prestação (pagamento) é a média aritmética das prestações respectivas no Sistemas Price e no Sistema de Amortização Constante (SAC). - - SEM SISTEMA DE AMORTIZAÇÃO - amortizationScheduledAdditionalInfo: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 200 - example: Informações complementares relativa à amortização do tipo `OUTROS` - description: | - Informação relativa ao complemento da amortização - - [Restrição] Campo de preenchimento obrigatório quando o campo amortizationScheduled for igual `OUTROS` - interestRates: - type: array - description: | - Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito. - Caso o contrato não possua taxas de juros, deve ser compartilhada uma lista vazia. Caso o contrato possua uma taxa de juros com valor 0, deve ser compartilhado um objeto com o valor 0 de forma explícita. - items: - $ref: '#/components/schemas/LoansContractInterestRate' - minItems: 0 - contractedFees: - type: array - description: Lista que traz as informações das tarifas pactuadas no contrato. - items: - type: object - description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito - required: - - feeName - - feeCode - - feeChargeType - - feeCharge - properties: - feeName: - type: string - maxLength: 140 - pattern: '^[^\s](?:.*[^\s])?$' - description: Denominação da Tarifa pactuada - example: Renovação de cadastro - feeCode: - type: string - maxLength: 140 - pattern: '^[^\s](?:.*[^\s])?$' - description: Sigla identificadora da tarifa pactuada - example: CADASTRO - feeChargeType: - type: string - description: Tipo de cobrança para a tarifa pactuada no contrato. - enum: - - UNICA - - POR_PARCELA - example: UNICA - feeCharge: - type: string - description: | - "Forma de cobrança relativa a tarifa pactuada no contrato. (Vide Enum) - - Mínimo - - Máximo - - Fixo - - Percentual" - enum: - - MINIMO - - MAXIMO - - FIXO - - PERCENTUAL - example: MINIMO - feeAmount: - type: object - minItems: 1 - description: | - Objeto para representar o valor monetário da tarifa pactuada no contrato. - - [Restrição] Preenchimento obrigatório quando a forma de cobrança for diferente de Percentual. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor monetário da tarifa pactuada no contrato. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - feeRate: - type: string - pattern: '^\d{1}\.\d{6}$' - format: double - maxLength: 8 - minLength: 8 - description: | - É o valor da tarifa em percentual pactuada no contrato. - - [Restrição] Preenchimento obrigatório quando a forma de cobrança for Percentual. - example: '0.062000' - minItems: 0 - contractedFinanceCharges: - type: array - description: Lista que traz os encargos pactuados no contrato - items: - type: object - description: Conjunto de informações referentes à identificação da operação de crédito - required: - - chargeType - properties: - chargeType: - type: string - description: Tipo de encargo pactuado no contrato. - enum: - - JUROS_REMUNERATORIOS_POR_ATRASO - - MULTA_ATRASO_PAGAMENTO - - JUROS_MORA_ATRASO - - IOF_CONTRATACAO - - IOF_POR_ATRASO - - SEM_ENCARGO - - OUTROS - example: JUROS_REMUNERATORIOS_POR_ATRASO - chargeAdditionalInfo: - type: string - maxLength: 140 - description: | - Campo para informações adicionais. - - [Restrição] Obrigatório se selecionada a opção 'OUTROS' em Tipo de encargo pactuado no contrato. - pattern: '^[^\s](?:.*[^\s])?$' - example: Informações adicionais sobre encargos. - chargeRate: - type: string - pattern: '^\d{1}\.\d{6}$' - format: double - maxLength: 8 - minLength: 8 - description: | - Representa o valor do encargo em percentual pactuado no contrato. - - O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros(representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). - example: '0.070000' - minItems: 0 - digitalSignatureProof: - type: object - properties: - documentId: - type: string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ - maxLength: 100 - minLength: 1 - example: "54d5348c-1a3f-4ff4-a8a8-d0724fb806c6" - description: "Código identificador do Documento assinado na instituição proponente." - signatureDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o contrato foi assinado pelo cliente no canal digital da Instituição Proponente - required: - - documentId - - signatureDateTime - totalNumberOfInstalments: - type: number - description: total de parcelas, segundo a periodicidade regular das parcelas referente à Modalidade de Crédito informada. - example: 30 - instalmentPeriodicity: - type: string - description: Informação relativa à periodicidade regular das parcelas. (Vide Enum) sem periodicidade regular, diario, semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual. - enum: - - SEM_PERIODICIDADE_REGULAR - - DIARIO - - SEMANAL - - QUINZENAL - - MENSAL - - BIMESTRAL - - TRIMESTRAL - - SEMESTRAL - - ANUAL - example: SEM_PERIODICIDADE_REGULAR - instalmentAmount: - type: object - minItems: 1 - description: Objeto para representar o Valor da parcela regular da operação após portabilidade. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor da parcela regular da operação após portabilidade. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - dueDate: - type: string - description: Prazo (data de vencimento final) da operação. Especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339) - maxLength: 20 - minLength: 20 - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - example: '2020-07-21T08:30:00Z' - contractAmount: - type: object - description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. - required: - - amount - - currency - properties: - amount: - type: string - format: double - pattern: '^\d{1,15}\.\d{2,4}$' - maxLength: 20 - minLength: 4 - example: '1000.0400' - description: Valor do saldo remanescente do contrato de empréstimo original utilizado para compor a proposta. - currency: - type: string - pattern: '^(\w{3}){1}$' - maxLength: 3 - minLength: 3 - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217 - status: - type: string - description: | - Informação sobre o status de um pedido de portabilidade de crédito, onde: - - - `RECEIVED`: Estado inicial. Indica que o pedido de portabilidade foi solicitado junto a instituição credora. O pedido deve permanecer neste estado até que o próximo dia útil (D+1) aonde começará a contar o prazo de 3 dias úteis para a etapa de contraproposta e o pedido de portabilidade deverá ser movido para PENDING - - `PENDING`: Indica que o pedido de portabilidade de crédito está na fase de contraproposta, onde a instituição credora poderá enviar uma contraproposta ou não para o cliente por qualquer canal (email, telefone, etc.) porém o aceite só deverá ser valido se o cliente aprovar no canal digital da instituição credora - - `ACCEPTED_SETTLEMENT_IN_PROGRESS`: Indica que a contraproposta não foi aceita pelo cliente e a instituição proponente terá que quitar o valor do contrato no mesmo dia em que o estado foi ativado - - `ACCEPTED_SETTLEMENT_COMPLETED`: Indica que a instituição proponente já liquidou o contrato e comunicou a respeito a credora que está validando os dados do contratos bem como valores recebidos para a quitação do mesmo (nesta etapa a instituição credora tem 2 dias úteis para fornecer a confirmação e o recibo de quitação do contrato de empréstimo) - - `AWAITING_CONTRACT_DISCHARGE`: Indica que a instituição credora finalizou a portabilidade de crédito fornecendo as informações referente a quitação do contrato original, ficando pendente a solicitação de desaverbação junto a averbadora do contrato consignado para a transferência da margem consignada - - `PORTABILITY_COMPLETED`: Indica que o pedido de portabilidade foi concluído com sucesso - - `REJECTED`: Indica que o pedido de portabilidade de crédito foi rejeitado, seja porque o cliente aceitou a contraproposta, ou porque a proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades - - `CANCELLED`: Indica que o cliente cancelou o pedido de portabilidade de crédito - - `PAYMENT_ISSUE`: Indica que a Instituição Credora encontrou alguma inconsistência na liquidação efetuada e que a Instituição Proponente deverá realizar ajustes conforme sugerido pela Instituição Credora para solucionar a pendencia antes do cancelamento do pedido de portabilidade de crédito - enum: - - RECEIVED - - PENDING - - ACCEPTED_SETTLEMENT_IN_PROGRESS - - ACCEPTED_SETTLEMENT_COMPLETED - - AWAITING_CONTRACT_DISCHARGE - - PORTABILITY_COMPLETED - - REJECTED - - CANCELLED - - PAYMENT_ISSUE - statusUpdateDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o contrato teve o status atualizado. Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC(UTC time format). - statusReason: - type: object - description: | - Motivo de recusa do pedido de portabilidade - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `status` for igual a `REJECTED` ou `CANCELLED` ou `PAYMENT_ISSUE` - properties: - reasonType: - description: | - Motivo de recusa do pedido de portabilidade, onde: - - `CANCELADO_PELO_CLIENTE` - Cliente desiste do pedido da portabilidade - - `SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE` - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente - - `POLITICA_DE_CREDITO` - Proponente desiste da oferta ao cliente por políticas internas - - `RETENCAO_DO_CLIENTE` - Cliente aceitou contraproposta da instituição credora (dentro do prazo) - - `CONTRATO_JA_LIQUIDADO` - Contrato liquidado pelo cliente. - - `DIVERGENCIA_DE_PAGAMENTO_EFETUADO` - Proponente realizou a liquidação com valor divergente - - `DECURSO_DO_PRAZO_PARA_PAGAMENTO` - Proponente realizou a liquidação fora do prazo - - `PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO` - Proponente não realizou a liquidação do contrato - - `PORTABILIDADE_EM_ANDAMENTO` - Posteriormente à efetivação do pedido de portabilidade, a IF credora identificou que o cliente já possui outro pedido de portabilidade em andamento para o mesmo contrato. - - `CLIENTE_COM_ACAO_JUDICIAL` - Possui ação judicial - - `MODALIDADE_DA_OPERACAO_INCOMPATIVEL` - Modalidade divergente da indicada pela instituição proponente - - `RESERVA_DA_MARGEM` - Não foi possível realizar a reserva da margem consignada pela instituição proponente. - - `OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis - type: string - enum: - - CANCELADO_PELO_CLIENTE - - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE - - POLITICA_DE_CREDITO - - RETENCAO_DO_CLIENTE - - CONTRATO_JA_LIQUIDADO - - DIVERGENCIA_DE_PAGAMENTO_EFETUADO - - DECURSO_DO_PRAZO_PARA_PAGAMENTO - - PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO - - PORTABILIDADE_EM_ANDAMENTO - - CLIENTE_COM_ACAO_JUDICIAL - - MODALIDADE_DA_OPERACAO_INCOMPATIVEL - - RESERVA_DA_MARGEM - - OUTROS - reasonTypeAdditionalInfo: - description: | - Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito. - Ao utilizar essa opção, é fortemente recomendável enviar um ticket como sugestão da estrutura Open Finance - para discussão e mapeamento em futuras versões. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `reasonType` for igual `OUTROS` - type: string - maxLength: 144 - pattern: '^[^\s](?:.*[^\s])?$' - example: Informações Adicionais - digitalSignatureProof: - type: object - description: | - Comprovante de assinatura da contraproposta - - [RESTRIÇÃO] Objeto de preenchimento obrigatório quando campo `reasonType` for igual a `RETENCAO_DO_CLIENTE` - properties: - documentId: - type: string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ - maxLength: 100 - minLength: 1 - example: "54d5348c-1a3f-4ff4-a8a8-d0724fb806c6" - description: "Código identificador do Documento assinado na instituição proponente." - signatureDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o contrato foi assinado pelo cliente no canal digital da Instituição Proponente - required: - - documentId - - signatureDateTime - creationDateTime: - type: string - description: | - Data e hora em que a Proponente registrou a presente proposta (chamada ao POST /portabilities). - Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format). - maxLength: 20 - minLength: 20 - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - example: '2020-07-21T08:30:00Z' - rejection: - type: object - description: | - Objeto contendo detalhes do cancelamento do pedido de portabilidade de crédito junto a Instituição Credora. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando `status` for igual a `REJECTED` ou `CANCELLED` - required: - - rejectedBy - - reason - properties: - rejectedBy: - type: string - description: | - Informar usuário responsável pela rejeição da proposta, onde: - PROPONENTE - Indica que o pedido de portabilidade de crédito foi rejeitado pela proponente, seja porque a - proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades. - USUARIO - Indica que o cliente cancelou o pedido de portabilidade de crédito. - CREDORA- Indica que a Instituição Credora cancelou o contrato por retenção do cliente ou outros motivos - conforme motivo de recusa. - example: PROPONENTE - enum: - - PROPONENTE - - USUARIO - - CREDORA - reason: - type: object - description: Motivo de recusa do pedido de portabilidade de crédito. - required: - - type - properties: - type: - type: string - description: | - Motivo de recusa do pedido de portabilidade, onde: - CANCELADO_PELO_CLIENTE - Cliente desiste do pedido da portabilidade; - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente; - POLITICA_DE_CREDITO - Proponente desiste da oferta ao cliente por políticas internas; - RETENCAO_DO_CLIENTE - Cliente aceitou contraproposta da instituição credora (dentro do prazo); - CONTRATO_JA_LIQUIDADO - Contrato liquidado pelo cliente; - DIVERGENCIA_DE_PAGAMENTO_EFETUADO - Proponente realizou a liquidação com valor divergente; - DECURSO_DO_PRAZO_PARA_PAGAMENTO - Proponente realizou a liquidação fora do prazo; - PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO - Proponente não realizou a liquidação da Portabilidade; - PORTABILIDADE_EM_ANDAMENTO - Posteriormente à efetivação do pedido de portabilidade, a IF credora identificou que o cliente já possui outro pedido de portabilidade em andamento para o mesmo contrato; - CLIENTE_COM_ACAO_JUDICIAL - Possui ação judicial; - MODALIDADE_DA_OPERACAO_INCOMPATIVEL - Modalidade divergente da indicada pela instituição proponente; - RESERVA_DA_MARGEM - Não foi possível realizar a reserva da margem consignada pela instituição proponente; - OUTROS - Motivo da rejeição não se encaixa nas opções disponíveis. - enum: - - CANCELADO_PELO_CLIENTE - - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE - - POLITICA_DE_CREDITO - - RETENCAO_DO_CLIENTE - - CONTRATO_JA_LIQUIDADO - - DIVERGENCIA_DE_PAGAMENTO_EFETUADO - - DECURSO_DO_PRAZO_PARA_PAGAMENTO - - PORTABILIDADE_CANCELADA_POR_FALTA_DE_LIQUIDACAO - - PORTABILIDADE_EM_ANDAMENTO - - CLIENTE_COM_ACAO_JUDICIAL - - MODALIDADE_DA_OPERACAO_INCOMPATIVEL - - RESERVA_DA_MARGEM - - OUTROS - example: CANCELADO_PELO_CLIENTE - typeAdditionalInfo: - type: string - description: | - Informação sobre a disponibilidade ou não de um contrato para a portabilidade de crédito. - Ao utilizar essa opção, é fortemente recomendável enviar um ticket como sugestão da estrutura Open Finance para discussão e mapeamento em futuras versões. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo type for igual a OUTROS. - maxLength: 144 - pattern: '^[^\s](?:.*[^\s])?$' - example: Informações Adicionais - loanSettlementInstruction: - type: object - description: | - Objeto contendo o recibo de quitação do contrato original de empréstimo após finalizado o - pedido de portabilidade de crédito com sucesso junto a Instituição Credora. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando `status` for igual a `PORTABILITY_COMPLETED` ou `AWAITING_CONTRACT_DISCHARGE` - required: - - settlementDateTime - - settlementAmount - - transactionId - properties: - settlementDateTime: - type: string - description: Data e hora em que a instituição credora realizou a quitação do contrato de empréstimo. - maxLength: 20 - minLength: 20 - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - example: '2020-07-21T08:30:00Z' - settlementAmount: - type: object - minItems: 1 - description: Objeto para representar o valor pago para liquidação do contrato de empréstimo. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor pago para liquidação do contrato de empréstimo. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - transactionId: - type: string - description: | - Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. - - No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) - maxLength: 20 - minLength: 1 - pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{1,20}$' - example: 'STR20181108000000013' - links: - $ref: '#/components/schemas/Links' - meta: - $ref: '#/components/schemas/Meta' - RequestCreditPortabilityCancel: - type: object - required: - - data - properties: - data: - type: object - description: Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora. - required: - - rejectedBy - - reason - properties: - rejectedBy: - type: string - description: | - Informar usuário responsável pela rejeição da proposta, onde: - - `PROPONENTE ` - Indica que o pedido de portabilidade de crédito foi rejeitado pela proponente, seja porque a proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades. - - `USUARIO` - Indica que o cliente cancelou o pedido de portabilidade de crédito. - enum: - - PROPONENTE - - USUARIO - reason: - type: object - description: Motivo de recusa do pedido de portabilidade - required: - - type - properties: - type: - type: string - description: | - Motivo de recusa do pedido de portabilidade, onde: - - `CANCELADO_PELO_CLIENTE` - Cliente desiste do pedido da portabilidade - - `SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE` - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente - - `POLITICA_DE_CREDITO` - Proponente desiste da oferta ao cliente por políticas internas - - `RESERVA_DA_MARGEM` - Problemas relacionado a liberação/reserva da margem solicitada pela proponente - - `OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis - enum: - - CANCELADO_PELO_CLIENTE - - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE - - POLITICA_DE_CREDITO - - RESERVA_DA_MARGEM - - OUTROS - typeAdditionalInfo: - type: string - maxLength: 144 - pattern: '^[^\s](?:.*[^\s])?$' - example: "Informações Adicionais" - description: | - Informação adicional sobre rejeição de portabilidade de crédito. - Ao utilizar essa opção, é fortemente recomendável enviar um ticket para o GT de Portabilidade de Crédito como sugestão para estrutura Open Finance para discussão e mapeamento em futuras versões. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `type` for igual a `OUTROS` ou quando o campo `type` for igual a `RESERVA_DE_MARGEM`. - PatchResponseCreditPortabilityCancel: - type: object - required: - - data - properties: - data: - type: object - description: Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora. - required: - - rejectedBy - - reason - properties: - rejectedBy: - type: string - description: | - Informar usuário responsável pela rejeição da proposta, onde: - - `PROPONENTE ` - Indica que o pedido de portabilidade de crédito foi rejeitado pela proponente, seja porque a proponente rejeitou a liquidação que excedeu em 15% o valor do contrato original, entre outras possibilidades. - - `USUARIO` - Indica que o cliente cancelou o pedido de portabilidade de crédito. - enum: - - PROPONENTE - - USUARIO - reason: - type: object - description: Motivo de recusa do pedido de portabilidade - required: - - type - properties: - type: - type: string - description: | - Motivo de recusa do pedido de portabilidade, onde: - - `CANCELADO_PELO_CLIENTE` - Cliente desiste do pedido da portabilidade - - `SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE` - Saldo devedor atualizado divergente (superior a 15%) do informado inicialmente - - `POLITICA_DE_CREDITO` - Proponente desiste da oferta ao cliente por políticas internas - - `RESERVA_DA_MARGEM` - Problemas relacionado a liberação/reserva da margem solicitada pela proponente - - `OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis - enum: - - CANCELADO_PELO_CLIENTE - - SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE - - POLITICA_DE_CREDITO - - RESERVA_DA_MARGEM - - OUTROS - typeAdditionalInfo: - type: string - maxLength: 144 - pattern: '^[^\s](?:.*[^\s])?$' - example: "Informações Adicionais" - description: | - Informação adicional sobre rejeição de portabilidade de crédito. - Ao utilizar essa opção, é fortemente recomendável enviar um ticket para o GT de Portabilidade de Crédito como sugestão para estrutura Open Finance para discussão e mapeamento em futuras versões. - - [RESTRIÇÃO] Campo de preenchimento obrigatório quando campo `type` for igual a `OUTROS` ou quando o campo `type` for igual a `RESERVA_DE_MARGEM`. - meta: - $ref: '#/components/schemas/Meta' - ResponseRegisteringEntity: - type: object - required: - - data - - links - - meta - properties: - data: - type: object - description: Dados para identificação do contrato a ser portado junto a averbadora - required: - - payrollData - properties: - payrollData: - description: Dados do contrato de empréstimo consignado. - type: object - required: - - contractId - - registeringEntity - properties: - contractId: - type: string - pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' - maxLength: 20 - minLength: 1 - description: Número do contrato dado pela instituição contratante no sistema da averbadora. - example: '12346579841058798Asq' - registeringEntity: - type: string - enum: - - SERPRO - description: | - Nome da averbadora do empréstimo consignado. - example: 'SERPRO' - links: - $ref: '#/components/schemas/Links' - meta: - $ref: '#/components/schemas/Meta' - RequestCreditPortabilityPayment: - type: object - required: - - data - properties: - data: - type: object - description: Objeto para notificar a respeito da liquidação efetuada pela proponente a credora - required: - - paymentDateTime - - paymentAmount - - transactionId - properties: - paymentDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o pagamento à instituição credora foi realizado pela instituição proponente. - Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format) - paymentAmount: - type: object - minItems: 1 - description: Objeto para representar o valor pago para liquidação do contrato de empréstimo. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor pago para liquidação do contrato de empréstimo. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - transactionId: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 20 - minLength: 1 - example: 'STR20181108000000013' - description: | - Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. - - No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) - POSTResponseCreditPortabilityPayment: - type: object - required: - - data - properties: - data: - type: object - minItems: 0 - description: Objeto para notificar a respeito da liquidação efetuada pela proponente a credora - required: - - paymentDateTime - - paymentAmount - - transactionId - properties: - paymentDateTime: - type: string - maxLength: 20 - pattern: ^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$ - example: "2020-07-21T08:30:00Z" - description: | - Data e hora em que o pagamento à instituição credora foi realizado pela instituição proponente. - Uma string com data e hora conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), sempre com a utilização de timezone UTC-0 (UTC time format) - paymentAmount: - type: object - minItems: 1 - description: Objeto para representar o valor pago para liquidação do contrato de empréstimo. - required: - - amount - - currency - properties: - amount: - type: string - format: double - maxLength: 20 - minLength: 4 - pattern: '^\d{1,15}\.\d{2,4}$' - example: '1000.0400' - description: Valor pago para liquidação do contrato de empréstimo. - currency: - type: string - maxLength: 3 - minLength: 3 - pattern: '^(\w{3}){1}$' - example: 'BRL' - description: Moeda referenciada ao campo `amount`, segundo modelo ISO-4217. - transactionId: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 20 - minLength: 1 - example: 'STR20181108000000013' - description: | - Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. - - No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) - meta: - $ref: '#/components/schemas/Meta' - RequestCreditPortabilityPaymentReversal: - type: object - required: - - data - properties: - data: - type: object - description: Objeto para notificar a respeito da solicita o estorno da STR efetuada para liquidar o contrato consignado. - required: - - transactionId - - payrollData - properties: - transactionId: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 20 - minLength: 1 - example: 'STR20181108000000013' - description: | - Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. - - No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) - payrollData: - description: Dados do contrato de empréstimo consignado. - type: object - required: - - contractId - - registeringEntity - properties: - contractId: - type: string - pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' - maxLength: 20 - minLength: 1 - description: Número do contrato dado pela instituição contratante no sistema da averbadora. - example: '12346579841058798Asq' - registeringEntity: - type: string - enum: - - SERPRO - description: | - Nome da averbadora do empréstimo consignado. - example: 'SERPRO' - POSTResponseCreditPortabilityPaymentReversal: - type: object - required: - - data - properties: - data: - type: object - minItems: 0 - description: Objeto para notificar a respeito da solicita o estorno da STR efetuada para liquidar o contrato consignado. - required: - - transactionId - - payrollData - properties: - transactionId: - type: string - pattern: '^[^\s](?:.*[^\s])?$' - maxLength: 20 - minLength: 1 - example: 'STR20181108000000013' - description: | - Identificador da transação utilizada para proponente liquidar a portabilidade de crédito com a credora. - - No contexto da STR0052, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR) - payrollData: - description: Dados do contrato de empréstimo consignado. - type: object - required: - - contractId - - registeringEntity - properties: - contractId: - type: string - pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,19}$' - maxLength: 20 - minLength: 1 - description: Número do contrato dado pela instituição contratante no sistema da averbadora. - example: '12346579841058798Asq' - registeringEntity: - type: string - enum: - - SERPRO - description: | - Nome da averbadora do empréstimo consignado. - example: 'SERPRO' - meta: - type: object - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - LoansContractInterestRate: - type: object - description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito - required: - - taxType - - interestRateType - - taxPeriodicity - - calculation - - referentialRateIndexerType - - preFixedRate - - postFixedRate - properties: - taxType: - type: string - description: | - "Tipo de Taxa (vide Enum) - - NOMINAL (taxa nominal é uma taxa de juros em que a unidade referencial não coincide com a unidade de tempo da capitalização. Ela é sempre fornecida em termos anuais, e seus períodos de capitalização podem ser diários, mensais, trimestrais ou semestrais. p.ex. Uma taxa de 12% ao ano com capitalização mensal) - - EFETIVA (É a taxa de juros em que a unidade referencial coincide com a unidade de tempo da capitalização. Como as unidades de medida de tempo da taxa de juros e dos períodos de capitalização são iguais, usa-se exemplos simples como 1% ao mês, 60% ao ano)" - enum: - - NOMINAL - - EFETIVA - example: EFETIVA - interestRateType: - type: string - description: | - "Tipo de Juros (vide Enum) - - SIMPLES (aplicada/cobrada sempre sobre o capital inicial, que é o valor emprestado/investido. Não há cobrança de juros sobre juros acumulados no(s) período(s) anterior(es). Exemplo: em um empréstimo de R$1.000, com taxa de juros simples de 8% a.a., com duração de 2 anos, o total de juros será R$80 no primeiro ano e R$ 80 no segundo ano. Ao final do contrato, o tomador irá devolver o principal e os juros simples de cada ano: R$1.000+R$80+R$80=R$1.160) - - COMPOSTO (para cada período do contrato (diário, mensal, anual etc.), há um “novo capital” para a cobrança da taxa de juros contratada. Esse “novo capital” é a soma do capital e do juro cobrado no período anterior. Exemplo: em um empréstimo de R$1.000, com taxa de juros composta de 8% a.a., com duração de 2 anos, o total de juros será R$80 no primeiro ano. No segundo ano, os juros vão ser somados ao capital (R$1.000 + R$ 80 = R$ 1.080), resultando em juros de R$ 86 (8%de R$ 1.080))" - enum: - - SIMPLES - - COMPOSTO - example: SIMPLES - referentialRateIndexerSubType: - $ref: '#/components/schemas/EnumReferentialRateIndexerSubType' - taxPeriodicity: - type: string - description: | - "Periodicidade da taxa . (Vide Enum) - a.m - ao mês - a.a. - ao ano" - enum: - - AM - - AA - example: AA - calculation: - type: string - description: Base de cálculo - enum: - - 21/252 - - 30/360 - - 30/365 - example: 21/252 - referentialRateIndexerType: - type: string - description: | - "Tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040" - enum: - - SEM_TIPO_INDEXADOR - - PRE_FIXADO - - POS_FIXADO - - FLUTUANTES - - INDICES_PRECOS - - CREDITO_RURAL - - OUTROS_INDEXADORES - example: PRE_FIXADO - referentialRateIndexerAdditionalInfo: - type: string - description: | - Campo livre para complementar a informação relativa ao Tipo de taxa referencial ou indexador. - [Restrição] Obrigatório para complementar a informação relativa ao Tipo de taxa referencial ou indexador, quando selecionado o tipo ou subtipo `OUTRO`. - maxLength: 140 - pattern: '^[^\s](?:.*[^\s])?$' - example: Informações adicionais - preFixedRate: - type: string - pattern: '^\d{1,2}\.\d{6}$' - format: double - maxLength: 9 - minLength: 8 - example: '0.600000' - description: | - Taxa pré fixada aplicada sob o contrato da modalidade crédito. p.ex. 0.014500. O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros(representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1 representa 100%). Preencher o campo não aplicável ao contrato com zeros, seguindo o pattern (0.000000). - postFixedRate: - type: string - pattern: '^\d{1,2}\.\d{6}$' - format: double - maxLength: 9 - minLength: 8 - description: | - Taxa pós fixada aplicada sob o contrato da modalidade crédito. p.ex. 0.0045 .O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.1500. Este valor representa 15%. O valor 1 representa 100%). Preencher o campo não aplicável ao contrato com zeros, seguindo o pattern (0.000000) - example: '0.550000' - additionalInfo: - type: string - maxLength: 1200 - pattern: '^[^\s](?:.*[^\s])?$' - example: Informações adicionais - description: | - Texto com informações adicionais sobre a composição das taxas de juros pactuadas. - - [Restrição] Caso a instituição possua a informação para compartilhamento, esta deverá ser informada. - EnumReferentialRateIndexerSubType: - type: string - description: | - "Sub tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040" - enum: - - SEM_SUB_TIPO_INDEXADOR - - PRE_FIXADO - - TR_TBF - - TJLP - - LIBOR - - TLP - - OUTRAS_TAXAS_POS_FIXADAS - - CDI - - SELIC - - OUTRAS_TAXAS_FLUTUANTES - - IGPM - - IPCA - - IPCC - - OUTROS_INDICES_PRECO - - TCR_PRE - - TCR_POS - - TRFC_PRE - - TRFC_POS - - OUTROS_INDEXADORES - example: TJLP - EnumErrorsRequestPortability: - type: string - enum: - - EM_ANDAMENTO - - PRAZO_ACIMA_LIMITE - - CONTRATO_INVALIDO - - CONTRATO_NAO_ELEGIVEL - - ERRO_IDEMPOTENCIA - - SEM_EVIDENCIA_ASSINATURA - - PERIODICIDADE_INVALIDA - - CAMPO_INCONSISTENTE - - VALOR_DIVERGENTE - - PARAMETRO_NAO_INFORMADO - - PARAMETRO_INVALIDO - - NAO_INFORMADO - example: EM_ANDAMENTO - description: | - Códigos de erros previstos na criação da iniciação de pagamento: - - EM_ANDAMENTO: Valida se já existe um pedido de portabilidade de crédito para o contrato solicitado pelo trilho do OFB ou da Registradora. - - PRAZO_ACIMA_LIMITE: Prazo do empréstimo maior ao restante das parcelas a serem liquidadas no contrato original. - - CONTRATO_INVALIDO: ID de contrato inválida. - - ERRO_IDEMPOTENCIA: Valida se há divergência entre chave de idempotência e informações enviadas. - - SEM_EVIDENCIA_ASSINATURA – Valida se o objeto de assinatura do contrato foi preenchido pela instituição proponente devidamente, em caso de ausência. - - CONTRATO_NAO_ELEGIVEL: Contrato não elegível para portabilidade dentro do trilho do OFB. - - PERIODICIDADE_INVALIDA: Valida se não houve mudança na periodicidade entre o novo contrato e o contrato original, caso tenha sido alterado a periodicidade. - - CAMPO_INCONSISTENTE: Valida se o preenchimento de alguns campos estão corretos Ex.: CNPJ da instituição credora deve ser o mesmo retornado pela API de Empréstimos. - - VALOR_DIVERGENTE: Valor da proposta para quitar o saldo remanescente é inconsistente, podendo ser a maior ou a menor. - - PARAMETRO_NAO_INFORMADO: Valida se todos os campos obrigatórios são informados. - - PARAMETRO_INVALIDO: Valida se parâmetros informados obedecem a formatação especificada. - - NAO_INFORMADO: Demais validações não explicitamente informadas. - EnumErrorsPatchCancel: - type: string - enum: - - CANCELAMENTO_NÃO_EFETUADO - example: CANCELAMENTO_NÃO_EFETUADO - description: | - Códigos de erros previstos para portabilidade de crédito: - - CANCELAMENTO_NÃO_EFETUADO: Estado da portabilidade diferente de RECEIVED, PENDING ou ACCEPTED_SETTLEMENT_IN_PROGRESS. Obs.: De acordo com o PRD o usuário poderá cancelar o pedido de portabilidade até a etapa de liquidação, após esta etapa não será mais permitido o cancelamento da portabilidade. - EnumErrorsPostPayments: - type: string - enum: - - PAGAMENTO_EFETUADO_FORA_PRAZO - example: PAGAMENTO_EFETUADO_FORA_PRAZO - description: | - Códigos de erros previstos para portabilidade de crédito: - - PAGAMENTO_EFETUADO_FORA_PRAZO: Estado da portabilidade diferente de ACCEPTED_SETTLEMENT_IN_PROGRESS ou PAYMENT_ISSUE. Obs.: Caso o pagamento tenha sido feito por engano a Instituição Proponente deve solicitar o estorno. - EnumErrorsPostPaymentReversal: - type: string - enum: - - DESAVERBACAO_POSSIVEL - example: DESAVERBACAO_POSSIVEL - description: | - Códigos de erros previstos para portabilidade de crédito: - - DESAVERBACAO_POSSIVEL: A Instituição credora tem um SLA de 10 dias contados apartir da comunicação do pagamento através do endpoint [POST] /portabilities/{portabilityId}/payment para realizar desaverbar o contrato consignado de empréstimo junto ao SERPRO. - Meta: - type: object - description: Meta informações referentes à API requisitada. - required: - - requestDateTime - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - Links: - type: object - description: Referências para outros recursos da API requisitada. - required: - - self - properties: - self: - type: string - format: uri - maxLength: 2000 - description: URI completo que gerou a resposta atual. - example: 'https://api.banco.com.br/open-banking/api/v1/resource' - ResponseErrorWithAbleAdditionalProperties: - type: object - required: - - errors - properties: - errors: - type: array - minItems: 0 - 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 - meta: - type: object - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - 422ResponseErrorPostPortabilities: - type: object - required: - - errors - properties: - errors: - type: array - minItems: 0 - maxItems: 13 - items: - type: object - required: - - code - - title - - detail - properties: - code: - $ref: '#/components/schemas/EnumErrorsRequestPortability' - 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 - meta: - type: object - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - 422ResponseErrorPatchCancel: - type: object - required: - - errors - properties: - errors: - type: array - minItems: 0 - maxItems: 13 - items: - type: object - required: - - code - - title - - detail - properties: - code: - $ref: '#/components/schemas/EnumErrorsPatchCancel' - 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 - meta: - type: object - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - 422ResponseErrorPostPayments: - type: object - required: - - errors - properties: - errors: - type: array - minItems: 0 - maxItems: 13 - items: - type: object - required: - - code - - title - - detail - properties: - code: - $ref: '#/components/schemas/EnumErrorsPostPayments' - 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 - meta: - type: object - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - 422ResponseErrorPostPaymentReversal: - type: object - required: - - errors - properties: - errors: - type: array - minItems: 0 - maxItems: 13 - items: - type: object - required: - - code - - title - - detail - properties: - code: - $ref: '#/components/schemas/EnumErrorsPostPaymentReversal' - 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 - meta: - type: object - properties: - requestDateTime: - description: 'Data e hora da consulta, conforme especificação [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339), formato UTC.' - type: string - maxLength: 20 - format: date-time - example: '2021-05-21T08:30:00Z' - X-V: - type: string - pattern: '^\d+\.\d+\.\d+$' - example: 1.0.0 - XFapiInteractionId: - type: string - format: uuid - pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' - minLength: 1 - maxLength: 36 - example: d78fc4e5-37ca-4da3-adf2-9b082bf92280 - parameters: - Authorization: - name: Authorization - in: header - description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado. - required: true - schema: - type: string - pattern: '[\w\W\s]*' - maxLength: 2048 - contractId: - name: contractId - in: path - description: Identificador do contrato para todos os tipos de operação de crédito. - required: true - schema: - type: string - pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' - maxLength: 100 - 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 - 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 - pattern: '^(?!\s)(.*)(\S)$' - minLength: 1 - maxLength: 40 - 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 UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora.' - required: true - schema: - type: string - format: uuid - pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' - minLength: 1 - maxLength: 36 - example: d78fc4e5-37ca-4da3-adf2-9b082bf92280 - portabilityId: - name: portabilityId - in: path - description: Identificador do pedido de portabilidade de crédito. - required: true - schema: - type: string - pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' - maxLength: 36 - minLength: 36 - securitySchemes: - OpenId: - type: openIdConnect - openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration' - OAuth2ClientCredentials: - type: oauth2 - description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Requer o processo de redirecionamento e autenticação do usuário a que se referem os dados. - flows: - clientCredentials: - tokenUrl: 'https://authserver.example/token' - scopes: - payroll-credit-portability: Escopo necessário para acesso à API Portabilidade de Crédito. - OAuth2AuthorizationCodeLoans: - type: oauth2 - description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Requer 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: - loans: Escopo necessário para acesso à API Loans. O controle dos endpoints específicos é feito via permissions. - openId: Indica que a autorização está sendo realizada utilizando o protocolo definido pela openid. - 'consent:consentId': Fluxo OAuth necessário para que a instituição proponente tenha acesso aos dados na instituição credora. Requer o processo de redirecionamento e autenticação do usuário a que se referem os dados. - responses: - OKResponseAccountData: - description: Dados para realização do pagamento da operação via TED. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/ResponseAccountData' - OKResponsePortabilityEligibility: - description: Dados dos contratos de empréstimo obtidos com sucesso. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/ResponsePortabilityEligibility' - POSTResponseCreditPortability: - description: Dados da solicitação de portabilidade de crédito. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/POSTResponseCreditPortability' - OKResponsePortabilitiesByPortabilityId: - description: Dados dos contratos de empréstimo obtidos com sucesso. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/ResponsePortabilitiesByPortabilityId' - PatchResponseCreditPortabilityCancel: - description: Dados da confirmação do cancelamento da portabilidade de crédito. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/PatchResponseCreditPortabilityCancel' - OKResponseRegisteringEntity: - description: Dados para auxiliar a identificação do contrato a ser portado junto a averbadora. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/ResponseRegisteringEntity' - POSTResponseCreditPortabilityPayment: - description: Dados dos contratos de empréstimo obtidos com sucesso. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/POSTResponseCreditPortabilityPayment' - POSTResponseCreditPortabilityPaymentReversal: - description: Dados da solicita o estorno da STR efetuada para liquidar o contrato consignado. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/POSTResponseCreditPortabilityPaymentReversal' - BadRequest: - description: A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - Forbidden: - description: O token tem escopo incorreto ou uma política de segurança foi violada. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - InternalServerError: - description: Ocorreu um erro no gateway da API ou no microsserviço. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - GatewayTimeout: - description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - MethodNotAllowed: - description: O consumidor tentou acessar o recurso com um método não suportado. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - 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. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - NotFound: - description: O recurso solicitado não existe ou não foi implementado. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - Unauthorized: - description: Cabeçalho de autenticação ausente/inválido ou token inválido. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - UnprocessableEntity: - description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - UnprocessableEntityPostPortabilities: - description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/422ResponseErrorPostPortabilities' - examples: - Saldo insuficiente: - summary: Em Andamento - value: - errors: - - code: EM_ANDAMENTO - title: já existe um pedido de portabilidade de crédito para o contrato solicitado - detail: já existe um pedido de portabilidade de crédito para o contrato solicitado - meta: - requestDateTime: '2021-05-21T08:30:00Z' - UnprocessableEntityPatchCancel: - description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/422ResponseErrorPatchCancel' - examples: - Saldo insuficiente: - summary: Cancelamento não efetuado - value: - errors: - - code: CANCELAMENTO_NÃO_EFETUADO - title: Estado da portabilidade diferente de RECEIVED, PENDING ou ACCEPTED_SETTLEMENT_IN_PROGRESS - detail: Estado da portabilidade diferente de RECEIVED, PENDING ou ACCEPTED_SETTLEMENT_IN_PROGRESS - meta: - requestDateTime: '2021-05-21T08:30:00Z' - UnprocessableEntityPostPayments: - description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/422ResponseErrorPostPayments' - examples: - Saldo insuficiente: - summary: Pagamento efetuado fora do prazo - value: - errors: - - code: PAGAMENTO_EFETUADO_FORA_PRAZO - title: Estado da portabilidade diferente de ACCEPTED_SETTLEMENT_IN_PROGRESS ou PAYMENT_ISSUE - detail: Estado da portabilidade diferente de ACCEPTED_SETTLEMENT_IN_PROGRESS ou PAYMENT_ISSUE - meta: - requestDateTime: '2021-05-21T08:30:00Z' - UnprocessableEntityPostPaymentReversal: - description: A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/jwt: - schema: - $ref: '#/components/schemas/422ResponseErrorPostPaymentReversal' - examples: - Saldo insuficiente: - summary: DESAVERBACAO_POSSIVEL - value: - errors: - - code: DESAVERBACAO_POSSIVEL - title: Desaverbação ainda no prazo do SLA de 10 dias. - detail: Desaverbação ainda no prazo do SLA de 10 dias. - meta: - requestDateTime: '2021-05-21T08:30:00Z' - SiteIsOverloaded: - description: O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' - Default: - description: Erro inesperado. - headers: - x-fapi-interaction-id: - description: | - Um UUID [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 IF Proponente (client) e o seu valor deve ser “espelhado” pela IF Credora (server) no cabeçalho de resposta. Caso não seja recebido ou se for recebido um valor inválido, a IF Credora deve gerar um x-fapi-interaction-id e retorná-lo na resposta com o HTTP Status Code 400. A IF Proponente deve acatar o valor recebido da IF Credora. - schema: - $ref: '#/components/schemas/XFapiInteractionId' - x-v: - description: | - Cabeçalho de envio obrigatório que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 - schema: - $ref: '#/components/schemas/X-V' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' \ No newline at end of file