PIX Dict Operation
No momento em que o usuário iniciar uma mudança na DICT, os dados deverão ser enviados para o nosso servidor, de maneira que possamos realizar uma análise do risco envolvido naquele conjunto de dados.
Definição do Objeto de Dict Operation
Request Body
{
"id": "f58e8a19-429d-4e36-a010-ed00a323c2c5",
"dict_key": {
"key_type": "phone",
"key_value": "16981610077",
"assignment_date": "2020-01-15T18:00:00-03:00"
},
"dict_operation_direction": "claimer",
"dict_operation_reason": "user_requested",
"dict_operation_creation_date": "2020-10-14T18:00:00-03:00",
"dict_operation_type": "claim_portability",
"client": {
"id": "123456",
"document_number": "099.912.226-69",
"name": "João Jorge da Silva",
"type": "natural_person",
"address": {
"street": "Avenida 13",
"number": "704",
"neighbourhood": "Centro",
"city": "Ituiutaba",
"uf": "MG",
"complement": "Apt 1101",
"postal_code": "38300-140"
},
"phone": {
"international_dial_code": "55",
"area_code": "65",
"number": "988961210",
"type": "mobile"
},
"sales_channel": "inbound_sales",
"segment": "Personalité"
},
"source_account": {
"participant": "04184779",
"branch": "0001",
"account_number": "1122",
"account_digit": "6",
"owner": {
"type": "legal_person",
"document_number": "94.948.708/0001-12",
"name": "Irmão Soares Ferragista LTDA."
},
"account_type": "CACC",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"destination_account": {
"participant": "00000000",
"branch": "3675",
"account_number": "10442",
"account_digit": "6",
"owner": {
"type": "natural_person",
"document_number": "099.912.226-69",
"name": "João Jorge da Silva"
},
"account_type": "SLRY",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"destination_statistics": {
"account":{
"settlements":{
"d3":12,
"d30":65,
"m6":344
},
"rejected":{
"d3":4,
"d30":67,
"m6":618
},
"reported_frauds":{
"d3":0,
"d30":0,
"m6":0
},
"reported_aml_cft":{
"d3":0,
"d30":0,
"m6":0
},
"confirmed_frauds":{
"d3":0,
"d30":0,
"m6":0
},
"confirmed_aml_cft":{
"d3":0,
"d30":0,
"m6":0
}
},
"owner":{
"settlements":{
"d3":4,
"d30":12,
"m6":88
},
"rejected":{
"d3":4,
"d30":67,
"m6":618
},
"reported_frauds":{
"d3":0,
"d30":0,
"m6":0
},
"reported_aml_cft":{
"d3":0,
"d30":0,
"m6":0
},
"confirmed_frauds":{
"d3":0,
"d30":0,
"m6":0
},
"confirmed_aml_cft":{
"d3":0,
"d30":0,
"m6":0
}
},
"key":{
"settlements":{
"d3":1,
"d30":6,
"m6":12
},
"rejected":{
"d3":4,
"d30":67,
"m6":618
},
"reported_frauds":{
"d3":0,
"d30":0,
"m6":0
},
"reported_aml_cft":{
"d3":0,
"d30":0,
"m6":0
},
"confirmed_frauds":{
"d3":0,
"d30":0,
"m6":0
},
"confirmed_aml_cft":{
"d3":0,
"d30":0,
"m6":0
}
}
},
"source": {
"channel": "internet_banking",
"platform": "android",
"ip": "198.185.065-98",
"session_id": "7839jdqd9a8wd9"
}
}
Uma Dict Operation deve ser enviada para a API antes de ser encaminhada para o sistema de processamento do BCB, a fim de realizar uma validação prévia de fraude de cadastro.
O status da análise da Dict Operation representa a decisão retornada pelo modelo sobre aquela operação. Os seguintes status são utilizados na flag analysis_status:
automatically_approved
automatically_reproved
in_manual_analysis
pending
Abaixo estão listados os significados de cada uma das decisões, devolvida na flag analysis_status:
status | descrição |
---|---|
automatically_approved | Recomenda-se que esta operação seja aprovada. |
automatically_reproved | Recomenda-se que esta operação seja reprovada. |
in_manual_analysis | Recomenda-se que a operação seja analisada manualmente por um analista. |
pending | A operação está sendo processada. |
nome | tipo | descrição |
---|---|---|
id | string | Identificador da operação no sistema do cliente. É essencial que este número seja único para cada processo de autorização |
client | client | Objeto que representa os dados do cliente, seja ele o doador ou o recebedor. |
transaction_date | datetime | A data e hora de início da transação, com fuso horário. |
dict_key | dict_key | Objeto que representa os dados da chave de vínculo no DICT, utilizada pelo cliente na trasação. |
dict_key_type | enumerador | Tipo da chave de vínculo ao DICT. |
dict_operation_direction | enumerador | Direção de operação no DICT, isto é, se uma chave está sendo cedida ou obtida. |
dict_operation_reason | enumerador | A razão pelo qual a Operação na Dict está sendo realizada. |
dict_operation_creation_date | datetime | Data da operação no DICT. |
dict_operation_type | enumerador | Tipo de operação no DICT. |
source_account | source_account | Objeto que representa os dados da conta que está cedendo a chave de vínculo. |
destination_account | destination_account | Objeto que representa os dados da conta que está recebendo a chave de vínculo. |
destination_statistics | destination_statistics | Objeto que representa o histórico de transações e fraudes da conta que esta recebendo a chave de vinculo. |
source | source | Objeto do tipo Source que descreve as informações provenientes da aplicação utilizada para envio do cadastro |
O campo dict_key_type aceita os mesmos enumeradores definidos na API do DICT: cpf
,cnpj
,email
,phone
e evp
.
O campo dict_operation_direction aceita os enumeradores: donor
e claimer
.
O campo dict_operation_type aceita os enumeradores registration
, claim_ownership
e claim_portability
.
Sendo estas todos os tipos de operações na DICT definidas pelo BCB.
Enviar uma Dict Operation
Request Body
{
"id": "f58e8a19-429d-4e36-a010-ed00a323c2c5",
...
}
Response Body
{
"dict_operation_key": "7f85e162-5a7d-41fa-a578-69df6f3df958",
"status": "automatically_approved"
}
Para realizar a avaliação de um pagamento, basta enviar um objeto do tipo Payment ao seguinte endpoint:
POST https://api.caas.qitech.app/pix/dict_operation
Recuperar uma Dict Operation
Response Body
{
"id": "f58e8a19-429d-4e36-a010-ed00a323c2c5",
...
}
Para recuperar uma Dict Operation, basta enviar uma requisição ao seguinte endpoint:
GET https://api.caas.qitech.app/pix/dict_operation/{dict_operation_id}
Onde dict_operation_id é o identificador da operação que nos foi enviado no momento do cadastro desta, no campo "id".
Será, então, retornado o objeto Dict Operation associado a chave provida.
Atualizar uma Dict Operation
Request Body
{
"dict_operation_status": "cancelled_by_client",
"reason": "user_requested",
"event_date": "2020-10-07T15:06:25-03:00"
}
Uma Dict Operation possui várias fases junto ao BCB antes que seja concluída. Deste modo, é necessário que sejam informadas todas as atualizações de status das operações, através do endpoint:
PUT https://api.caas.qitech.app/pix/dict_operation/{dict_operation_id}
Deste modo, garate-se que nossa base de dados seja atualizada e esteja sempre coerente com a base de dados do BCB.
Algumas operações na DICT demandam que seja submetida a razão da operação juntos dos dados. Para estes casos, é necessário informar o campo reason no objeto de envio, contendo o mesmo enumerador provido ao sistema do BCB. São esses:
enumerador | descrição |
---|---|
user_requested | A operação foi requisitada pelo cliente. |
account_closure | A operação foi iniciada devido ao fechamento da conta do cliente. |
branch_transfer | A operação foi requisitada devido a mudança de agência do cliente. |
entry_inactivity | A operação foi requisitada devido a inatividade na conta do cliente. |
reconciliation | A operação foi requisitada após um processo de reconcialiation. |
default_operation | A operação foi requisitada por uma ação padrão do participante. |
fraud | A operação foi requisitada devido a um fraude ligada a conta do cliente. |
As fases de uma operação na DICT aceitas pelo campo dict_operation_status são:
enumerador | descrição |
---|---|
created | A dict_operation foi criada mas ainda não foi analisada. |
reproved | A dict_operation foi reprovada na análise e não será enviada ao BCB. |
waiting_resolution | A dict_operation foi enviada ao BCB e está esperando a resolução. |
cancelled_by_client | A dict_operation foi cancelada pelo cliente. |
cancelled_by_counterpart | A dict_operation foi cancelada pela outra parte da operação. |
confirmed | A dict_operation foi confirmada pela outra parte da operação. |
completed | A dict_operation foi completada e adicionada a base de dados do BCB. |