From a708621b7b33d4336731f11bd50d78f5ca6979fb Mon Sep 17 00:00:00 2001 From: Cecilia Fernandes Date: Thu, 20 Mar 2025 16:08:26 -0300 Subject: [PATCH 1/4] =?UTF-8?q?feat(Credit=20Portability):=20EOF-767=20-?= =?UTF-8?q?=20PPC19=20-=20Proposta=20para=20definir=20o=20endpoint=20para?= =?UTF-8?q?=20o=20cancelamento=20do=20pedido=20da=20portabilidade=20de=20c?= =?UTF-8?q?r=C3=A9dito=20em=20andamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tabilityPostPortabilitiesCancel_v1.0.0.csv | 28 +++ .../credit-portability/1.0.0-beta.1.yml | 221 ++++++++++++++++-- 2 files changed, 230 insertions(+), 19 deletions(-) create mode 100644 dictionary/creditPortabilityPostPortabilitiesCancel_v1.0.0.csv diff --git a/dictionary/creditPortabilityPostPortabilitiesCancel_v1.0.0.csv b/dictionary/creditPortabilityPostPortabilitiesCancel_v1.0.0.csv new file mode 100644 index 000000000..d215bcf35 --- /dev/null +++ b/dictionary/creditPortabilityPostPortabilitiesCancel_v1.0.0.csv @@ -0,0 +1,28 @@ +Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo +/data;data;Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/rejectedBy;rejectedBy;"Informar usuário responsável pela rejeição da proposta, onde: + +`PROPONETE ` - 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. +";Texto;;Opcional;;"PROPONENTE +USUARIO";0;1;"";Não permitido;string;; +/data/reason;reason;Motivo de recusa do pedido de portabilidade;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/reason/type;type;"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 + +`OUTROS` - Motivo da rejeição não se encaixa nas opções disponíveis +";Texto;;Obrigatório;;"CANCELADO_PELO_CLIENTE +SALDO_DEVEDOR_ATUALIZADO_SUBSTANCIALMENTE_DIVERGENTE +POLITICA_DE_CREDITO +OUTROS";1;1;"";Não permitido;string;; +/data/reason/typeAdditionalInfo;typeAdditionalInfo;"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`. +";Texto;144;Opcional;^(?!\s)[\w\W\s]*[^\s]$;;0;1;"";Não permitido;string;Informações Adicionais; 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 461ee34ff..27f37fa83 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.1.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.1.yml @@ -83,26 +83,23 @@ paths: security: - OAuth2ClientCredentials: - credit-portability - '/concurrency-management/{contractId}': + '/portabilities/{portabilityId}': 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: creditPortabilityGetConcurrencyManagementContratId - description: Informa se o contrato está disponível para solicitação de portabilidade de crédito. + - 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: creditPortabilityGetPortabilitiesByPortabilityId parameters: - - $ref: '#/components/parameters/contractId' + - $ref: '#/components/parameters/portabilityId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/pagination-key' responses: '200': - $ref: '#/components/responses/OKResponseConcurrancyManagement' + $ref: '#/components/responses/OKResponsePortabilitiesByPortabilityId' '400': $ref: '#/components/responses/BadRequest' '401': @@ -129,16 +126,13 @@ paths: $ref: '#/components/responses/SiteIsOverloaded' default: $ref: '#/components/responses/Default' - security: - - OAuth2ClientCredentials: - - credit-portability - '/portabilities/{portabilityId}': - get: + '/portabilities/{portabilityId}/cancel': + patch: 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: creditPortabilityGetPortabilitiesByPortabilityId + 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: creditPortabilityPostPortabilitiesCancel parameters: - $ref: '#/components/parameters/portabilityId' - $ref: '#/components/parameters/Authorization' @@ -146,9 +140,16 @@ paths: - $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/OKResponsePortabilitiesByPortabilityId' + $ref: '#/components/responses/PatchResponseCreditPortabilityCancel' '400': $ref: '#/components/responses/BadRequest' '401': @@ -175,6 +176,61 @@ paths: $ref: '#/components/responses/SiteIsOverloaded' default: $ref: '#/components/responses/Default' + security: + - NonRedirectAuthorizationCode: + - openid + - 'enrollment:enrollmentId' + - payments + - nrp-consents + '/concurrency-management/{contractId}': + 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: creditPortabilityGetConcurrencyManagementContratId + 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' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/pagination-key' + responses: + '200': + $ref: '#/components/responses/OKResponseConcurrancyManagement' + '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' + '423': + $ref: '#/components/responses/Locked' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OAuth2ClientCredentials: + - credit-portability /account-data: get: tags: @@ -1432,6 +1488,61 @@ components: 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. + RequestCreditPortabilityCancel: + type: object + required: + - data + properties: + data: + type: object + description: Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora. + required: + - reason + properties: + rejectedBy: + type: string + description: | + Informar usuário responsável pela rejeição da proposta, onde: + + `PROPONETE ` - 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 + + `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 + - OUTROS + typeAdditionalInfo: + type: string + maxLength: 144 + pattern: '^(?!\s)[\w\W\s]*[^\s]$' + example: "Informações Adicionais" + 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`. RequestCreditPortabilityPayment: type: object required: @@ -1479,6 +1590,61 @@ components: Identificador da transação utilizada para Proponente liquidar portabilidade de crédito com a Credora. No contexto de STR0047, utilizar o valor do campo de retorno NumCtrlSTR (Numero de Controle da STR)". + PatchResponseCreditPortabilityCancel: + type: object + required: + - data + properties: + data: + type: object + description: Objeto para notificar a respeito da liquidação efetuada pela proponente a Credora. + required: + - reason + properties: + rejectedBy: + type: string + description: | + Informar usuário responsável pela rejeição da proposta, onde: + + `PROPONETE ` - 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 + + `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 + - OUTROS + typeAdditionalInfo: + type: string + maxLength: 144 + pattern: '^(?!\s)[\w\W\s]*[^\s]$' + example: "Informações Adicionais" + 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`. POSTResponseCreditPortabilityPayment: type: object required: @@ -1803,6 +1969,23 @@ components: application/jwt: schema: $ref: '#/components/schemas/ResponseAccountData' + 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' POSTResponseCreditPortabilityPayment: description: Dados dos contratos de empréstimos obtidos com sucesso. headers: From 3780e29537f06d6deb0bb473406a7c8b113f4a26 Mon Sep 17 00:00:00 2001 From: Cecilia Fernandes Date: Thu, 20 Mar 2025 16:36:16 -0300 Subject: [PATCH 2/4] =?UTF-8?q?feat(Credit=20Portability):=20EOF-774=20-?= =?UTF-8?q?=20PPC33=20-=20Proposta=20para=20documentar=20aspectos=20de=20s?= =?UTF-8?q?eguran=C3=A7a=20e=20valida=C3=A7=C3=B5es=20para=20a=20API=20de?= =?UTF-8?q?=20Portabilidade=20de=20Cr=C3=A9dito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../credit-portability/1.0.0-beta.1.yml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) 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 27f37fa83..97f02add7 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.1.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.1.yml @@ -10,6 +10,43 @@ info: 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/PT+Padr+o+de+Certificados+Open+Finance+Brasil+2.1)   - Como assinar o payload JWS: Como Assinar o Payload + + ## Controle de Acesso + Os endpoints da API de Portabilidade de Crédito devem utilizar client_credentials para solicitação do pedido de portabilidade de crédito, consulta ao pedido de portabilidade, comunicação a respeito da liquidação do contrato de empréstimo, cancelamento da portabilidade de crédito e atualização dos dados bancários. + + ## 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 erro sintáticos e semânticos, previstos 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). + **- 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 From 8462309c66d733bc9433713d4a9a82374bd334a9 Mon Sep 17 00:00:00 2001 From: Cecilia Fernandes Date: Thu, 20 Mar 2025 17:14:59 -0300 Subject: [PATCH 3/4] =?UTF-8?q?feat(credit=20portability):=20EOF-782=20-?= =?UTF-8?q?=20PPC19=20-=20Proposta=20para=20complementar=20o=20endpoint=20?= =?UTF-8?q?para=20solicitar=20pedido=20de=20Portabilidade=20de=20Cr=C3=A9d?= =?UTF-8?q?ito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ditPortabilityPostPortabilities_v1.0.0.csv | 3 ++ .../credit-portability/1.0.0-beta.1.yml | 48 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/dictionary/creditPortabilityPostPortabilities_v1.0.0.csv b/dictionary/creditPortabilityPostPortabilities_v1.0.0.csv index 68a82a433..7198a7538 100644 --- a/dictionary/creditPortabilityPostPortabilities_v1.0.0.csv +++ b/dictionary/creditPortabilityPostPortabilities_v1.0.0.csv @@ -13,3 +13,6 @@ CANCELED";0;1;"";Não permitido;string;; /data/strCode;strCode;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/strCode/isbpIfCredora;isbpIfCredora;Número do ISBP da Instituição credora;Número;;Obrigatório;;;1;1;"";Não permitido;number;; /data/strCode/agency;agency;Número da Agência creditada;Número;;Obrigatório;;;1;1;"";Não permitido;number;; +/data/creationDateTime;creationDateTime;"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).PPC-21 +";Texto;20;Obrigatório;^(\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$;;1;1;"";Não permitido;string;2020-07-21T08:30:00Z;20 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 97f02add7..f79a5dfac 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.1.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.1.yml @@ -381,6 +381,7 @@ components: - institution - contractIdentification - proposedContract + - creationDateTime properties: customerContact: type: array @@ -517,6 +518,9 @@ components: - digitalSignatureProof - CET - amortizationScheduled + - instalmentPeriodicity + - totalNumberOfInstalments + - instalmentAmount properties: interestRates: type: array @@ -700,6 +704,40 @@ components: 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. + example: 30 + instalmentAmount: + type: string + 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. + maxLength: 20 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0400' + 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).PPC-21 + 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: @@ -716,6 +754,7 @@ components: - portability - productType - productSubType + - creationDateTime properties: portabilityId: type: string @@ -749,6 +788,15 @@ components: agency: type: number description: Número da Agência creditada + 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).PPC-21 + 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' ResponseConcurrancyManagement: From 4970ff84a28069b18accf7a839b6b2339084deb4 Mon Sep 17 00:00:00 2001 From: Cecilia Fernandes Date: Thu, 20 Mar 2025 17:16:39 -0300 Subject: [PATCH 4/4] fix --- swagger-apis/credit-portability/1.0.0-beta.1.yml | 2 ++ 1 file changed, 2 insertions(+) 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 27f37fa83..d9e5e147f 100644 --- a/swagger-apis/credit-portability/1.0.0-beta.1.yml +++ b/swagger-apis/credit-portability/1.0.0-beta.1.yml @@ -1645,6 +1645,8 @@ components: 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`. + meta: + $ref: '#/components/schemas/Meta' POSTResponseCreditPortabilityPayment: type: object required: