Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GT Serviços: Feat(Automatic Payments): PSV334 #749

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,9 @@ Em caso de pessoa jurídica deve ser informada a razão social ou o nome fantasi
/data/creationDateTime;creationDateTime;Data e hora em que o consentimento foi criado. 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).;Date Hora;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;2021-05-21T08:30:00Z;
/data/expirationDateTime;expirationDateTime;Data e hora em que o consentimento deve deixar de ser válido. 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).;Date Hora;20;Opcional;^(\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$;;0;1;"";Não permitido;string;2021-05-21T08:30:00Z;
/data/additionalInformation;additionalInformation;Deve ser preenchido sempre que o usuário pagador inserir alguma informação adicional no consentimento;Texto;140;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;Minha recorrência;
/data/debtorAccount;debtorAccount;"Objeto que contém a identificação da conta de origem do pagador. As informações quanto à conta de origem do pagador poderão ser trazidas no consentimento para a detentora, caso a iniciadora tenha coletado essas informações do cliente.
Do contrário, será coletada na detentora e trazida para a iniciadora como resposta à criação do pagamento.
/data/debtorAccount;debtorAccount;"Objeto que contém a identificação da conta de origem do pagador.
Caso a ITP tenha coletado as informações de conta do usuário pagador, essas poderão ser enviadas no consentimento para a detentora neste objeto, ou; Se não coletado pelo ITP, o usuário pagador precisará definir durante a autorização do consentimento.
Mesmo se enviado pela ITP, o usuário pagador pode alterar durante a autorização do consentimento

[Restrições]
- Objeto obrigatório que deverá ser retornado quando o consentimento estiver ou passar pelo status AUTHORISED;
Expand Down
12 changes: 5 additions & 7 deletions dictionary/automaticPaymentsPostRecurringConsents_v2.0.0.csv
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@ Considerando a string urn:bancoex:C1DD33123 como exemplo para `recurringConsentI
- o identificador associado ao namespace da instituição transmissora (bancoex)
- o identificador específico dentro do namespace (C1DD33123). Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://datatracker.ietf.org/doc/html/rfc8141).
";Texto;256;Obrigatório;"^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*'%\/?#]+$";;1;1;"";Não permitido;string;;
/data/statusUpdateDateTime;statusUpdateDateTime;"Data e hora em que o consentimento deve passar a ser válido. 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] Caso esse campo não seja enviado pelo iniciador na requisição, o detentor deve preencher esse campo com o mesmo valor atribuído ao campo /data/creationDateTime. Caso o campo /data/startDateTime enviado seja anterior ao valor do campo /data/creationDateTime, o detentor deve substituir o valor do campo /data/startDateTime pelo valor do campo /data/creationDateTime
";Date Hora;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;" Caso esse campo não seja enviado pelo iniciador na requisição, o detentor deve preencher esse campo com o mesmo valor atribuído ao campo /data/creationDateTime. Caso o campo /data/startDateTime enviado seja anterior ao valor do campo /data/creationDateTime, o detentor deve substituir o valor do campo /data/startDateTime pelo valor do campo /data/creationDateTime
";Não permitido;string;2021-05-21T08:30:00Z;
/data/statusUpdateDateTime;statusUpdateDateTime;"Data e hora em que o consentimento 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).
";Date Hora;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;2021-05-21T08:30:00Z;
/data/loggedUser;loggedUser;Usuário (pessoa natural) que encontra-se logado na instituição Iniciadora de Pagamento.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;;
/data/loggedUser/document;document;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;;
/data/loggedUser/document/identification;identification;Número do documento de identificação oficial do usuário.;Texto;11;Obrigatório;^\d{11}$;;1;1;"";Não permitido;string;11111111111;
Expand Down Expand Up @@ -51,8 +48,9 @@ Em caso de pessoa jurídica deve ser informada a razão social ou o nome fantasi
/data/creationDateTime;creationDateTime;Data e hora em que o consentimento foi criado. 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).;Date Hora;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;2021-05-21T08:30:00Z;
/data/expirationDateTime;expirationDateTime;Data e hora em que o consentimento deve deixar de ser válido. 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).;Date Hora;20;Opcional;^(\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$;;0;1;"";Não permitido;string;2021-05-21T08:30:00Z;
/data/additionalInformation;additionalInformation;Deve ser preenchido sempre que o usuário pagador inserir alguma informação adicional no consentimento;Texto;140;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;Minha recorrência;
/data/debtorAccount;debtorAccount;"Objeto que contém a identificação da conta de origem do pagador. As informações quanto à conta de origem do pagador poderão ser trazidas no consentimento para a detentora, caso a iniciadora tenha coletado essas informações do cliente.
Do contrário, será coletada na detentora e trazida para a iniciadora como resposta à criação do pagamento.
/data/debtorAccount;debtorAccount;"Objeto que contém a identificação da conta de origem do pagador.
Caso a ITP tenha coletado as informações de conta do usuário pagador, essas poderão ser enviadas no consentimento para a detentora neste objeto, ou; Se não coletado pelo ITP, o usuário pagador precisará definir durante a autorização do consentimento.
Mesmo se enviado pela ITP, o usuário pagador pode alterar durante a autorização do consentimento

[Restrições]
- Objeto obrigatório que deverá ser retornado quando o consentimento estiver ou passar pelo status AUTHORISED;
Expand Down
87 changes: 74 additions & 13 deletions swagger-apis/automatic-payments/2.0.0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -950,8 +950,9 @@ components:
debtorAccount:
type: object
description: |
Objeto que contém a identificação da conta de origem do pagador.
As informações quanto à conta de origem do pagador poderão ser trazidas no consentimento para a detentora, caso a iniciadora tenha coletado essas informações do cliente. Do contrário, será coletada na detentora e trazida para a iniciadora como resposta à criação do pagamento.
Objeto que contém a identificação da conta de origem do pagador.
Caso a ITP tenha coletado as informações de conta do usuário pagador, essas poderão ser enviadas no consentimento para a detentora neste objeto, ou; Se não coletado pelo ITP, o usuário pagador precisará definir durante a autorização do consentimento.
Mesmo se enviado pela ITP, o usuário pagador pode alterar durante a autorização do consentimento
required:
- ispb
- number
Expand Down Expand Up @@ -2964,9 +2965,17 @@ components:
items:
type: object
description: |
Objeto contendo os dados do recebedor (creditor). Em casos de transferências inteligentes para clientes PJ, os CNPJs informados devem possuir a mesma raiz do CNPJ enviado no campo /data/businessEntity/document/identification. Em casos de transferências inteligentes para clientes PN, deve-se aceitar apenas um item no array e este item deve conter as informações do recebedor. O CPF informado deve ser o mesmo do /data/loggedUser/document/identification. Caso alguma das regras mencionadas não sejam seguidas, o detentor deve rejeitar a solicitação (sincronamente) com o erro DETALHE_PAGAMENTO_INVALIDO, e o detalhe deve ser preenchido com a informação referente ao erro.
Objeto contendo os dados do recebedor (creditor).

[Restrição] Caso o consentimento de longa duração seja para o produto Pix Automático (“automatic” selecionado no oneOf do objeto “/data/recurringConfiguration”), apenas um recebedor é permitido e esse deve ser pessoa jurídica.
**Regras para Transferências inteligentes:**

1 - Para clientes pessoa física/natural: Deve aceitar apenas um item no array; e; O CPF informado deve ser o mesmo do `/data/loggedUser/document/identification`.

2 - Para clientes pessoa jurídica: Não há limite para quantidade de itens no array; e; O(s) CNPJ informado deve possuir a mesma raiz do CNPJ enviado no campo `/data/businessEntity/document/identification`

**Regras para Pix Automático:**

Apenas um item é permitido no array; e; O documento informado deve ser de um recebedor pessoa jurídica
required:
- personType
- cpfCnpj
Expand Down Expand Up @@ -3238,9 +3247,7 @@ components:
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
description: |
Data e hora em que o consentimento deve passar a ser válido. 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] Caso esse campo não seja enviado pelo iniciador na requisição, o detentor deve preencher esse campo com o mesmo valor atribuído ao campo /data/creationDateTime. Caso o campo /data/startDateTime enviado seja anterior ao valor do campo /data/creationDateTime, o detentor deve substituir o valor do campo /data/startDateTime pelo valor do campo /data/creationDateTime
Data e hora em que o consentimento 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).
loggedUser:
$ref: '#/components/schemas/LoggedUser'
businessEntity:
Expand Down Expand Up @@ -3272,8 +3279,9 @@ components:
debtorAccount:
type: object
description: |
Objeto que contém a identificação da conta de origem do pagador. As informações quanto à conta de origem do pagador poderão ser trazidas no consentimento para a detentora, caso a iniciadora tenha coletado essas informações do cliente.
Do contrário, será coletada na detentora e trazida para a iniciadora como resposta à criação do pagamento.
Objeto que contém a identificação da conta de origem do pagador.
Caso a ITP tenha coletado as informações de conta do usuário pagador, essas poderão ser enviadas no consentimento para a detentora neste objeto, ou; Se não coletado pelo ITP, o usuário pagador precisará definir durante a autorização do consentimento.
Mesmo se enviado pela ITP, o usuário pagador pode alterar durante a autorização do consentimento

[Restrições]
- Objeto obrigatório que deverá ser retornado quando o consentimento estiver ou passar pelo status AUTHORISED;
Expand Down Expand Up @@ -3476,7 +3484,60 @@ components:
pattern: '[\w\W\s]*'
maxLength: 140
debtorAccount:
$ref: '#/components/schemas/ConsentsDebtorAccount'
type: object
description: |
Objeto que contém a identificação da conta de origem do pagador.
Caso a ITP tenha coletado as informações de conta do usuário pagador, essas poderão ser enviadas no consentimento para a detentora neste objeto, ou; Se não coletado pelo ITP, o usuário pagador precisará definir durante a autorização do consentimento.
Mesmo se enviado pela ITP, o usuário pagador pode alterar durante a autorização do consentimento

[Restrições]
- Objeto obrigatório que deverá ser retornado quando o consentimento estiver ou passar pelo status AUTHORISED;
required:
- ispb
- number
- accountType
properties:
ispb:
type: string
minLength: 8
maxLength: 8
pattern: '^[0-9]{8}$'
example: '12345678'
description: |
Deve ser preenchido com o ISPB (Identificador do Sistema de Pagamentos Brasileiros) do participante do SPI (Sistema de pagamentos instantâneos) somente com números.
issuer:
type: string
minLength: 1
maxLength: 4
pattern: '^[0-9]{1,4}$'
example: '1774'
description: |
Código da Agência emissora da conta sem dígito.
(Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito,
no exercício de atividades da instituição, não podendo ser móvel ou transitória).

[Restrição] Preenchimento obrigatório para os seguintes tipos de conta: CACC (CONTA_DEPOSITO_A_VISTA) e SVGS (CONTA_POUPANCA).
number:
type: string
minLength: 1
maxLength: 20
pattern: '^[0-9]{1,20}$'
example: '1234567890'
description: |
Deve ser preenchido com o número da conta transacional do usuário pagador, com dígito verificador (se este existir), se houver valor alfanumérico, este deve ser convertido para 0.
accountType:
$ref: '#/components/schemas/EnumAccountTypeConsents'
ibgeTownCode:
type: string
minLength: 7
maxLength: 7
pattern: '^\d{7}$'
example: '5300108'
description: |
Campo utilizado pela iniciadora para cálculo do dia útil de liquidação do pagamento (vide especificação do endToEndId) baseado no município de cadastro do usuário pagador no detentor.

[Restrições]
Campo de preenchimento obrigatório quando o oneOf utilizado do recurringConfiguration for “automatic”, e o consentimento passar pelo estado AUTHORISED.
rejection:
$ref: '#/components/schemas/Rejection'
revocation:
Expand Down Expand Up @@ -4951,7 +5012,7 @@ components:
x-fapi-interaction-id:
$ref: '#/components/headers/XFapiInteractionId'
RecurringConsentsConsentId:
description: Objeto contendo as informações de consentimento para a iniciação de pagamento individual.
description: Objeto contendo as informações de consentimento para iniciação de pagamento automático.
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFapiInteractionId'
Expand All @@ -4962,7 +5023,7 @@ components:
schema:
$ref: '#/components/schemas/ResponseRecurringConsent'
RecurringConsentsConsentIdPatch:
description: Objeto contendo as informações de consentimento para a iniciação de pagamento individual.
description: Objeto contendo as informações de consentimento para iniciação de pagamento automático.
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFapiInteractionId'
Expand All @@ -4973,7 +5034,7 @@ components:
schema:
$ref: '#/components/schemas/ResponseRecurringConsentPatch'
RecurringConsentsPost:
description: Objeto contendo as informações de consentimento para a iniciação de pagamento individual.
description: Objeto contendo as informações de consentimento para iniciação de pagamento automático.
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFapiInteractionId'
Expand Down