Pré PIX Transaction
No momento em que o pagador tiver a intenção de iniciar um pagamento, os dados da transação poderao ser avaliados previamente pelo nosso servidor. Deste modo, será possível realizar uma análise prévia do risco envolvido na transação, baseado naquele conjunto de dados.
Definição do Objeto de Pré Pix Transactions
Request Body
{
"id": "082373263",
"transaction_direction": "received",
"client": {
"id": "123456",
"document_number": "056.966.649-03",
"name": "Francisco Oliveira Benedetti",
"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": "16",
"number": "981610077",
"type": "mobile"
},
"sales_channel": "inbound_sales",
"segment": "Personalité"
},
"amount": 13725,
"dict_key": {
"key_type": "cpf",
"key_value": "09991222669",
"assignment_date": "2020-01-15T18:00:00-03:00"
},
"face_recognition_key": "ef39e206-13d5-48de-b368-6c3bbc6f0222",
"source_account": {
"participant": "17315359",
"branch": "0000",
"account_number": "10442",
"account_digit": "6",
"owner": {
"type": "legal_person",
"document_number": "07.487.735/0001-69",
"name": "Gioconda Pizzaria e Rotisseria LTDA."
},
"account_type": "CACC",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"destination_account": {
"participant": "60701190",
"branch": "3675",
"account_number": "10442",
"account_digit": "6",
"owner": {
"type": "natural_person",
"document_number": "056.966.649-03",
"name": "Francisco Oliveira Benedetti"
},
"account_type": "SLRY",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"destination_statistics": {
"person":{
"settlements":{
"d90":4,
"m12":67,
"m60":618
},
"application_frauds":{
"d90":0,
"m12":4,
"m60":9
},
"mule_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"scammer_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"other_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"unknown_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"total_frauds_transaction_amount":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_fraud_reporters":{
"d90":0,
"m12":0,
"m60":0
},
"open_reports":0,
"open_reports_distinct_reporters":0,
"rejected_reports":{
"d90":0,
"m12":0,
"m60":0
},
"registered_accounts":0
},
"owner":{
"settlements":{
"d90":0,
"m12":0,
"m60":0
},
"application_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"mule_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"scammer_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"other_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"unknown_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"total_frauds_transaction_amount":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_fraud_reporters":{
"d90":0,
"m12":0,
"m60":0
},
"open_reports":0,
"open_reports_distinct_reporters":0,
"registered_accounts":0
},
"key":{
"settlements":{
"d90":0,
"m12":0,
"m60":0
},
"application_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"mule_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"scammer_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"other_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"unknown_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"total_frauds_transaction_amount":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_fraud_reporters":{
"d90":0,
"m12":0,
"m60":0
},
"open_reports":0,
"open_reports_distinct_reporters":0,
"rejected_reports":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_accounts":{
"d90":0,
"m12":0,
"m60":0
}
}
},
"source": {
"channel": "internet_banking",
"platform": "android",
"ip": "198.185.065.098",
"session_id": "7839jdqd9a8wd9"
},
"event_date": "2019-12-11T11:37:15.12-03:00"
}
Uma transação deve ser enviado para a API antes de ser encaminhada para o sistema de processamento, a fim de realizar uma validação prévia de fraude.
O status da transação representa a decisão retornada pelo modelo sobre aquela transação. Os seguintes status são utilizados na flag analysis_status:
automatically_approved
automatically_reproved
automatically_challenged
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 transação seja aprovada. |
automatically_reproved | Recomenda-se que esta transação seja reprovada. |
automatically_challenged | Os algoritmos da QI Tech recomendam que esta transação seja desafiado |
pending | A transação está sendo processada. |
nome | tipo | descrição |
---|---|---|
id | string | Identificador do pagamento no sistema do cliente. É essencial que este número seja único para cada processo de pagamento (obrigatório) |
transaction_direction | enumerador | Tipo da transação cadastrada. Define se o cliente está recebendo ou enviando dinheiro. (obrigatório) |
client | client | Objeto que representa os dados do cliente, seja ele o pagador ou o recebedor. (obrigatório) |
amount | inteiro | O valor do pagamento, em centavos- conforme descrição da seção "Padrões". (obrigatório) |
pix_modality | string | Tipo de transação cadastrada. Indica se representa uma transferência, um troco ou um saque. |
dict_key | dict_key | Objeto que representa os dados da chave de vínculo no DICT, utilizada pelo cliente na trasação. |
face_recognition_key | string | Chave de reconhecimento facial, caso tenha sido feito reconhecimento facial pela nossa API de reconhecimento facial. |
source_account | source_account | Objeto que representa os dados da conta debitada. (obrigatório) |
destination_account | destination_account | Objeto que representa os dados da conta creditada. (obrigatório) |
destination_statistics | destination_statistics | Objeto que representa o histórico de transações e fraudes da conta creditada provenientes da API de DICT do BACEN. |
source | source | Objeto do tipo Source que descreve as informações provenientes da aplicação utilizada para envio do pagamento |
event_date | datetime | A data e hora de início da transação, com fuso horário. (obrigatório) |
Existem os seguintes enumeradores para transaction_direction: sent
e received
.
Existem os seguintes enumeradores para pix_modality: transacation
, change
e withdraw
.
Enviar uma Pré Transação
Request Body
{
"id": "12345",
...
}
Response Body
{
"id": "12345",
"analysis_status": "automatically_approved",
"reason": "rule_decision_enum",
"reason_desciption": "Descrição da regra"
}
Para realizar a avaliação de uma pre transação, basta enviar um objeto do tipo Transaction ao seguinte endpoint:
POST https://api.caas.qitech.app/account_event/event_type/pre_pix_transaction
Fluxo de Desafio
É possível, após a execução da análise, ter como decisão desafiar o usuário para realizar uma nova ação em sua plataforma. Esse fluxo pode ser utilizado para, por exemplo, solicitar um 2FA, como uma análise facial, para o usuário.
Passo-a-passo da execução do fluxo
1. O Evento é submetido para análise, e retornará o status automatically_challenged.
Request Body
{
"id": "082373263",
...
"event_date": "2019-12-11T11:37:15.12-03:00"
}
Response Body
{
"id": "082373263",
"analysis_status": "automatically_challenge"
...
}
2. Após a primeira requisição de análise ter retornado um analysis_status de desafio, uma nova requisição pode ser enviada com o resultado do processo do cliente caso o mesmo tenha sido finalizado. Esta requisição deve ser feita no mesmo event_id da requisição anterior e o status atual deve ser obrigatoriamente automatically_challenged. Os possíveis status para essa atualização são:
approved_by_client
reproved_by_client
PATCH https://api.caas.qitech.app/account_event/event_type/pre_pix_transaction/{event_id}
Request Body: Envio com informações adicionais
{
"analysis_status": "approved_by_client"
}
Response Body
{
"id": "082373263",
"analysis_status": "approved_by_client"
...
}