Skip to main content

Deposits

At the moment a user performs a deposit, the deposit data must be sent to QI Tech. This enables a fraud risk and Anti-Money Laundering analysis of the operation based on that dataset.

Deposit Object Definition

Request Body
{
"id": "082373263",
"amount": 12979,
"deposit_date": "2020-10-07T15:06:25-03:00",
"client": {
"id": "182373263",
"type": "natural_person",
"document_number": "123.456.789-10",
"name": "Benedito Calixto de Jesus",
"email": "benedito@test.com",
"address": {
"street": "Rua José Wasth Rodrigues",
"number": "243",
"neighbourhood": "Vila Maria",
"city": "São Paulo",
"uf": "SP",
"complement": "Apartamento 14B",
"postal_code": "02121-010"
},
"phone": {
"international_dial_code": "55",
"area_code": "11",
"number": "998861708",
"type": "mobile"
},
"sales_channel": "inbound_sales",
"segment": "Personalité"
},
"destination_account": {
"participant": "17315359",
"branch": "0000",
"account_number": "10442",
"account_digit": "6",
"account_type": "CACC",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"terminal": {
"id": "1234566",
"latitude": -45.2753548,
"longitude": -15.24587,
"address": {
"street": "Av. Eng. Luis Carlos Berrini",
"number": "105",
"neighbourhood": "Brooklin",
"city": "São Paulo",
"uf": "SP",
"complement": "Cj 303",
"postal_code": "04501-140"
},
"type": "atm"
},
"authentication": {
"used_password": true,
"used_card": true,
"used_fingerprint": true,
"typed_account_number": false
}
}

A deposit must be sent to the API for preliminary fraud validation before being forwarded to the processing system.

The deposit status represents the decision returned by the model regarding that account. The following statuses are used in the analysis_status flag:

  • automatically_approved
  • automatically_reproved

Below are the meanings of each decision returned in the analysis_status flag:

statusdescription
automatically_approvedIt is recommended that this deposit be approved.
automatically_reprovedIt is recommended that this deposit be reproved.
nametypedescription
idstringDeposit identifier in the client's system.
It is essential that this number is unique for each deposit
amountintegerDeposit amount in cents - as described in the "Standards" section.
deposit_datedatetimeDate and time of the deposit execution - as described in the "Standards" section.
clientclientObject containing the data of the client holding the source account.
destination_accountaccountObject determining the destination account of the funds to be deposited.
terminalterminalObject containing the data of the terminal where the deposit is being performed.
authenticationauthenticationObject containing the authentication information.

Deposit Objects

Terminal Object

Request Body
{
"id": "1234566",
"latitude": -45.2753548,
"longitude": -15.24587,
"address": {
"street": "Av. Eng. Luis Carlos Berrini",
"number": "105",
"neighbourhood": "Brooklin",
"city": "São Paulo",
"uf": "SP",
"complement": "Cj 303",
"postal_code": "04501-140"
},
"type": "atm"
}

Object representing the terminal that was used for the deposit.

nametypedescription
idstringTerminal identifier in the client's system.
latitudenumberLatitude, in degrees, of the terminal's location.
longitudenumberLongitude, in degrees, of the terminal's location.
addressaddressTerminal address.
typeenumTerminal type, possible values: "atm", "counter".

Authentication Object

Request Body
{
"used_password": true,
"used_card": true,
"used_fingerprint": true,
"typed_account_number": false
}

Object defining the authentication parameters used at the time of deposit.

nametypedescription
used_passwordbooleanDetermines if the user used a password.
used_cardbooleanDetermines if the user has the card present during authentication.
used_card_chip_and_pinbooleanDetermines if the user used the card's chip and PIN.
used_card_magnetic_stripebooleanDetermines if the user used the card's magnetic stripe.
used_fingerprintbooleanDetermines if the user used a fingerprint.
typed_account_numberbooleanDetermines if the user typed the account data.

Send a Deposit

Request Body
  {
"id": "12345",
...
}
Response Body
  {
"id": "082373263",
"analysis_status": "automatically_approved",
"reason": "2019-10-01T10:37:25-03:00"
}

To perform the evaluation of a deposit, simply send a deposit object to the following endpoint:

POST https://api.caas.qitech.app/deposit/deposit

Retrieve a Deposit

Response Body
  {
"id": "082373263",
"analysis_status": "automatically_approved",
"reason": "2019-10-01T10:37:25-03:00"
}

To retrieve data from a deposit, simply send a request to the following endpoint:

GET https://api.caas.qitech.app/deposit/deposit/{deposit_id}

Where deposit_id is the transaction identifier in the client's system used when sending the deposit.

Update a Deposit

Request Body
  {
"deposit_status": "completed",
"event_date": "2020-10-07T15:06:25-03:00"
}
Response Body
  {
"id": "082373263",
"deposit_status": "completed"
}

After a deposit is created and analyzed, the money will be made available to the user. This process may be interrupted by some other business rule. Thus, it is necessary to report deposit status updates when it is finalized, via the endpoint:

PUT https://api.caas.qitech.app/deposit/deposit/{deposit_id}

This ensures that our database remains updated, allowing us to accurately identify deposits that are genuinely susceptible to fraud.