Adaptações para consultas de recursos entre as versões 1.0.0 e 2.0.0 ou superiores da API Pagamentos Automáticos
Introdução e objetivo
A introdução do produto Pix Automático resultou no versionamento da API Pagamentos Automáticos para contemplar a operação desse novo produto. Foram implementadas diversas alterações (disponíveis para consulta nas páginas de changelog de cada versão), porém, devido a características inerentes do consentimento dessa API, certos aspectos requerem observação durante a operação de recursos pertencentes a versões anteriores. Estes pontos são abordados nas seções subsequentes.
Este documento complementa o changelog da API e define quais operações podem ser realizadas entre as versões e quais não podem. Além disso, detalha o tratamento a ser aplicado a cada um dos campos que apresentam alguma mudança em suas regras de negócio ou técnicas significativas para a execução das consultas de recursos no Open Finance.
Ressalta-se que a versão 1.0.0 da API Pagamentos Automáticos permitia a operação apenas do produto Transferências Inteligentes, portanto, as adequações especificadas neste documento aplicam-se predominantemente às consultas de operações deste produto.
Orientações Gerais
Será permitido que uma transação de pagamento seja iniciada usando o endpoint POST /recurring-consents da versão 1.0.0 e finalizada com o endpoint POST /pix/recurring-payments da versão 2.0.0;
Adicionalmente, consentimentos existentes antes da versão 2.0.0 podem continuar a ser utilizados (observação: consentimentos da v1 são aplicáveis apenas a Transferências Inteligentes)
Não será permitido que uma transação de pagamento seja iniciada usando o endpoint POST /recurring-consents da versão 2.0.0 e finalizada com o endpoint POST /pix/recurring-payments da versão 1.0.0;
Neste cenário, deve-se retornar o código de erro HTTP 422 com os seguintes detalhes:
code: PAGAMENTO_RECUSADO_DETENTORA;
detail: Divergência entre versões de consentimento e pagamentos.
Não será permitido que um pagamento que foi agendado utilizando os endpoints da versão 2.0.0 seja consultado usando os endpoint GET /pix/recurring-payments/{recurringPaymentId} ou GET /pix/recurring-payments/ da versão 1.0.0;
A funcionalidade de agendamento é única do Pix Automático, não sendo escopo da versão 1.0.0.
Neste cenário, deve-se retornar o código de erro HTTP 422 com os seguintes detalhes:
code: PAGAMENTO_RECUSADO_DETENTORA;
detail: Divergência entre versões de consentimento e pagamentos.
Não será permitido que um pagamento criado utilizando os endpoints da versão 2.0.0 seja consultado usando os endpoint GET /pix/recurring-payments/{recurringPaymentId} ou GET /pix/recurring-payments/ da versão 1.0.0;
Não será permitido que o consentimento de um pagamento criado utilizando os endpoints da versão 2.0.0 seja consultado usando o endpoint GET/recurring-consents/{recurringConsentId} da versão 1.0.0;
Será permitido a revogação de consentimentos criados na versão 1.0.0 utilizando o endpoint PATCH /recurring-consents/{recurringConsentId} da versão 2.0.0.
Pagamentos e consentimentos criados em versões anteriores poderão ser consultados nos endpoints GET /recurring-consents/{recurringConsentId}, GET /pix/recurring-payments/ e GET /pix/recurring-payments/{recurringPaymentId} da versão 2.0.0;
Orientações Específicas
1. Análise Comparativa do corpo de resposta do GET /recurring-consents/{recurringConsentId} entre as Versões 1.0.0 e 2.0.0 (Ignorando formatação e riskSignals)
1.1 Campos Adicionados na Versão 2.0.0:
Campo (XPath) | Obrigatoriedade | Tipo de Dado | Descrição | Ação |
|---|---|---|---|---|
| Opcional |
| Obrigatório quando o consentimento transita para | Não enviar o campo no retorno. |
| Opcional |
| Data/hora de atualização pelo usuário pagador (aplicável apenas para edições no Pix Automático). | Não enviar o campo no retorno. |
| Opcional |
| Data máxima para aprovação de consentimentos em | Não enviar o campo no retorno. |
| Obrigatório |
| Indica se o usuário autorizou uso de limite pré-aprovado (cheque especial). | Se a instituição possui o cheque especial e o cliente dono do consentimento possui o produto cheque especial, o valor retornado deve ser |
| Obrigatório |
| Se não enviado, assume o valor de | Consentimentos da versão 1 consultados na versão 2, que não possuem o campo |
1.2 Campos Modificados (Mudanças de Conteúdo):
Campo (XPath) | Versão 1.0.0 | Versão 2.0.0 | Ação |
|---|---|---|---|
| Sem restrição específica. | Nova regra: Para Pix Automático, horário deve ser | Sem ação. Devolver valor atual caso exista. |
| Sem regras de validação específicas. | Novas regras: CPF do credor deve ser igual ao do | Sem ação. Devolver valor atual. |
| Obrigatório apenas para | Ampliação: Obrigatório também quando o consentimento passar por | Sem ação. Devolver valor atual. |
| Valores do enum sem | Novo valor: | Sem ação. Devolver valor atual. |
| Descrição sem menção a transições de estado. | Adição de contexto sobre máquina de estados (ex: | Sem ação. Devolver valor atual. |
1.3 Campos Modificados (Mudanças de obrigatoriedade):
Campo (XPath) | Versão 1.0.0 | Versão 2.0.0 | Ação |
|---|---|---|---|
| Opcional | Obrigatório | Sem ação. Devolver valor atual. |
2. Análise Comparativa do corpo de resposta do GET /pix/recurring-payments/{recurringPaymentId} entre as Versões 1.0.0 e 2.0.0
2.1. Campos Adicionados na Versão 2.0.0
Campo (XPath) | Obrigatoriedade | Tipo de Dado | Descrição (Regras Novas) | Ação |
|---|---|---|---|---|
| opcional |
| Chave Pix do recebedor (CPF, CNPJ, e-mail, etc.). Obrigatório se | Se a transação exigiu o envio do proxy pelo ITP para ocorrer a liquidação na v1, o campo deverá ser retornado durante a consulta à v2. |
| obrigatório |
| Define a forma de iniciação do pagamento ( | O campo deverá ser retornado durante a consulta à v2 com o valor original informado na sua criação. |
| opcional |
| Identificador da tentativa original de pagamento que falhou (obrigatório para retentativas). | Sem ação |
| opcional |
| Referência da recorrência (ex: | Sem ação |
2.2 Campos Removidos na Versão 2.0.0
Campo (XPath) | Motivo/Observação | Ação |
|---|---|---|
| Não está presente na versão 2.0.0 (removido em detrimento de sua presença já existir no consentimento). | Sem ação |
2.3. Campos Modificados (Regras/Descrições)
Campo (XPath) | Versão 1.0.0 | Versão 2.0.0 | Ação |
|---|---|---|---|
| Sem menção a Pix Automático. | Nova regra: Para Pix Automático, deve usar data agendada e horário fixo | Sem ação |
|
|
| Sem ação |
| 14 opções de códigos de rejeição. | Novos códigos adicionados: | Sem ação |
| Incluía | Remoção de valor: | Sem ação. Era um bug de especificação que não deveria ocorrer desde o nascimento do produto, uma vez que nunca foi possível ter múltipla alçada no pagamento em si, apenas no consentimento. |
| Sem restrições específicas. | Nova restrição: Campo condicional baseado em | Se a transação exigiu o envio do transactionIdentification pelo ITP para ocorrer a liquidação na v1, o campo deverá ser retornado durante a consulta à v2. |
| Sem enumeração explícita. | Enum adicionado: | Sem ação |
| Descrição genérica sobre data do pagamento. | Formato explícito: Timezone | Sem ação |
2.4. Campos Modificados (Obrigatoriedade)
|
|
|
|
|---|---|---|---|
Campo (XPath) | Versão 1.0.0 | Versão 2.0.0 | Ação |
| Opcional | Obrigatório | Ensejou o versionamento para versão 2.1.0, lançada em 25/04, tornando o campo opcional nos retornos de consulta de pagamento. |
| Inexistente na consulta | Obrigatório | O campo deverá ser retornado durante a consulta à v2 com o valor original informado na sua criação. |
Conclusão:
Adotando as ações necessárias, as consultas de recursos entre as versões (anterior e recente) devem ocorrer de forma suave pelas ITPs e Detentoras que sigam as especificações e realizem as adequações de retrocompatibilidade.