API Docs - AML (Anti Money Laundering)
API Information
Title | Anti Money Laundering |
---|---|
Version |
v1.0 |
URL Sandbox |
|
URL Production |
Version Control
Versi Doc | Versi API | Date | Link to Document | Description |
---|---|---|---|---|
v1.0 |
v1.0 |
3 Mei 2024 |
this pages |
Baseline version |
Product Description
Product Overview
This document aims to describe the API specification of the development of Anti Money Laundering features that aim to :
- Screening international transactions based on watchlist
- Secure BRI transactions from Money Laundering Crimes
- Avoid regulatory findings or fines
Endpoint
A. AML Prescreening
Endpoint Description
AML Prescreening API is used to perform prescreening of International Customers who transact.
General Information
HTTP Method | POST |
---|---|
Path | /v1.0/aml/similarity |
Type Format | JSON |
Authentication | OAuth 2.0 with Access Token |
Header Structure
Key | Value | Mandatory | Length | Description | Example |
---|---|---|---|---|---|
Authorization |
Bearer {token} |
M |
N/A |
Access Token |
|
BRI-Timestamp | timestamp | M | - | ISO 8601 format. Timestamp must be in UTC or GMT +0 timezone. | 2021-1008T03:42:45.379Z |
BRI-Signature | signature | M | - | - | |
Content-Type | application/json | M | - | - |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
senderName |
String |
M |
|
Sender Name |
|
senderIdNumber | String | M | Sender ID Number | ||
senderCitizenship | String | M | Sender Citizenship | ||
senderPlaceOfBirth | String | M | Sender Place of Birth | ||
senderDateOfBirth | String | M | Sender Date of Birth | ||
receiverName | String | M | Receiver Name | ||
receiverCitizenship | String | M | Receiver citizenship | ||
threshold | Number | M | Threshold |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
statusCode |
Number |
M |
|
Status Code |
|
errorCode |
String |
M |
|
Error Code |
|
responseCode |
String |
M |
|
Response Code |
|
responseMessage | String | M | Message Response | ||
errors | Array of String | M | System error system | ||
data | JSON Object | M | Data Response |
Object "data"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
statusPrescreeningCode |
String |
M |
|
Status Prescreening Code |
|
statusPrescreeningDesc |
String |
M |
|
Status Prescreening Desc |
|
prescreeningMessageCode |
String |
M |
|
Prescreening Message Code |
|
prescreeningMessageDesc |
String |
O |
|
Prescreening Message Desc |
|
statusDowjonesDataCode |
String |
|
|
Status Dowjones Data Code |
|
statusDowjonesDataDesc |
String |
|
|
Status Dowjones Data Desc |
|
highestScoreSimilarity | JSON Object | Highest Score Similarity | |||
dataInformation | JSON Object | Data Information | |||
validationItem | JSON Object | Validation Item |
Object "highestScoreSimilarity"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
sender |
JSON Object |
M |
|
Data Response Sender, see below |
|
receiver |
JSON Object |
M |
|
Data Response Receiver, see below |
|
Object "highestScoreSimilarity: sender"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
profileId |
String |
M |
|
Profile ID |
|
score |
String |
M |
|
Score |
|
Object "highestScoreSimilarity: receiver"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
profileId |
String |
M |
|
Profile ID |
|
score |
String |
M |
|
Score |
|
Object "dataInformation"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
sender |
Array of Object |
M |
|
Data Response Sender, see below |
|
receiver | Array of Object |
M |
|
Data Response Receiver, see below |
|
Object "dataInformation: sender"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
profileId |
String |
M |
|
Profile ID |
|
fullName | String |
M |
|
Full name |
|
gender | String | M | Gender | ||
citizenship | String | M | Citizenship | ||
dateOfBirth | String | M | Date of Birth | ||
placeOfBirth | String | M | Place of Birth | ||
score | String | M | Score | ||
watchlist | Array of Object | M | Watchlist, see below |
Object "dataInformation: receiver"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
profileId |
String |
M |
|
Profile ID |
|
fullName | String |
M |
|
Full name |
|
gender | String | M | Gender | ||
citizenship | String | M | Citizenship | ||
dateOfBirth | String | M | Date of Birth | ||
placeOfBirth | String | M | Place of Birth | ||
score | String | M | Score | ||
watchlist | Array of Object | M | Watchlist, see below |
Object "dataInformation: receiver: watchlist"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
profileId |
String |
M |
|
Profile ID |
|
watchlist | String |
M |
|
Watchlist |
|
crime | String | M | Crime | ||
status2 | String | M | Status 2 |
Object "validationItem"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
sender |
Array of Object |
M |
|
Data Response Sender, see below |
|
receiver | Array of Object |
M |
|
Data Response Receiver, see below |
|
Object "validationItem: sender"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
citizenship |
String |
M |
|
Citizenship |
|
placeOfBirth | String |
M |
|
Place of Birth |
|
dateOfBirth | String | M | Date of Birth |
Object "validationItem"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
citizenship |
String |
M |
|
Citizenship |
|
placeOfBirth | String |
M |
|
Place of Birth |
|
dateOfBirth | String | M | Date of Birth |
Request & Response Payload Sample
Request :
{ "senderName": "Farkhad Ataullaevich Akilov", "senderIdNumber": "410061", "senderCitizenship": "Malaysia", "senderPlaceOfBirth": "", "senderDateOfBirth": "", "receiverName": "A. Alexandru Dan Darabonc", "receiverCitizenship": "Indonesia", "threshold": 80 }
Normal Response :
{ "statusCode": 200, "errorCode": "000", "responseCode": "00", "responseMessage": "Success", "errors": null, "data": { "statusPrescreeningCode": "00", "statusPrescreeningDesc": "Transaksi Lolos Prescreening", "prescreeningMessageCode": "SD-04", "prescreeningMessageDesc": "Nama Penerima dan Pengirim terdeteksi mirip dengan list DowJones", "statusDowjonesDataCode": "NF", "statusDowjonesDataDesc": "Data tidak ditemukan", "highestScoreSimilarity": { "sender": { "profileId": 33862, "score": "93.10" }, "receiver": { "profileId": 62895, "score": "88.00" } }, "dataInformation": { "sender": [ { "profileId": 33862, "fullName": "'farkhad':1 'ataullaevich':1 'akilov':1", "gender": "", "citizenship": "Uzbekistan", "dateOfBirth": "1955-Mar-", "placeOfBirth": "Tashkent,Uzbekistan", "score": "93.10", "watchlist": [ { "profileId": 33862, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 33862, "fullName": "'farkhad':1 'ataullaevich':1 'akilov':1", "gender": "Male", "citizenship": "Uzbekistan", "dateOfBirth": "1955-Mar-", "placeOfBirth": "Tashkent,Uzbekistan", "score": "93.10", "watchlist": [ { "profileId": 33862, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 33862, "fullName": "'farkhad':1 'ataullaevich':1 'akilov':1", "gender": "", "citizenship": "Uzbekistan", "dateOfBirth": "1955-Mar-", "placeOfBirth": "Tashkent,Uzbekistan", "score": "93.10", "watchlist": [ { "profileId": 33862, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 33862, "fullName": "'farkhad':1 'ataullaevich':1 'akilov':1", "gender": "Male", "citizenship": "Uzbekistan", "dateOfBirth": "1955-Mar-", "placeOfBirth": "Tashkent,Uzbekistan", "score": "93.10", "watchlist": [ { "profileId": 33862, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] } ], "receiver": [ { "profileId": 62895, "fullName": "'dan':1 'alexandru':1 'darabonc':1", "gender": "Male", "citizenship": "Romania", "dateOfBirth": "1964-Sep-", "placeOfBirth": "Bucharest,Romania", "score": "88.00", "watchlist": [ { "profileId": 62895, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 62895, "fullName": "'dan':1 'alexandru':1 'darabonc':1", "gender": "", "citizenship": "Romania", "dateOfBirth": "1964-Sep-", "placeOfBirth": "Bucharest,Romania", "score": "88.00", "watchlist": [ { "profileId": 62895, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 62895, "fullName": "'alexandru':1 'dan':1 'darabonc':1", "gender": "", "citizenship": "Romania", "dateOfBirth": "1964-Sep-", "placeOfBirth": "Bucharest,Romania", "score": "88.00", "watchlist": [ { "profileId": 62895, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 62895, "fullName": "'alexandru':1 'dan':1 'darabonc':1", "gender": "Male", "citizenship": "Romania", "dateOfBirth": "1964-Sep-", "placeOfBirth": "Bucharest,Romania", "score": "88.00", "watchlist": [ { "profileId": 62895, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] }, { "profileId": 62895, "fullName": "'alexandru':1 'dan':1 'darabonc':1", "gender": "Male", "citizenship": "Romania", "dateOfBirth": "1964-Sep-", "placeOfBirth": "Bucharest,Romania", "score": "88.00", "watchlist": [ { "profileId": 62895, "watchlist": "Politically Exposed Person (PEP)", "crime": "", "status2": "" } ] } ] }, "validationItem": { "sender": { "citizenship": "NOT MATCH (Malaysia-Uzbekistan)", "placeOfBirth": "NOT MATCH (-Tashkent,Uzbekistan)", "dateOfBirth": "NOT MATCH (-1955-Mar-)" }, "receiver": { "citizenship": "NOT MATCH (Indonesia-Romania)", "placeOfBirth": "", "dateOfBirth": "" } } } }
Erorr Response :
{ "statusCode": 400, "errorCode": "010", "responseCode": "01", "responseMessage": "Invalid Body Request", "errors": [ "senderName tidak boleh kosong" ], "data": null }
List of Error/Response Code
HTTP Status |
Response Code |
Status |
Error Code |
Response Description |
---|---|---|---|---|
200 |
00 |
Success |
000 |
Success |
400 |
01 |
Failed |
010 |
Invalid Body Request |
400 |
01 |
Failed |
011 |
Body Request Empty |
400 |
01 |
Failed |
012 |
Invalid Data Type |
400 |
01 |
Failed |
013 |
Invalid Date Format |
400 |
01 |
Failed |
014 |
Invalid Time Format |
400 |
01 |
Failed |
015 |
Invalid Header Request |
400 |
01 |
Failed |
016 |
Invalid Query Parameters |
200 |
01 |
Failed |
017 |
Data Already Exist |
401 |
02 |
Failed |
020 |
Invalid Auth Token |
401 |
02 |
Failed |
021 |
Auth Token Expired |
401 |
02 |
Failed |
022 | Auth Token Empty |
200 |
03 |
Failed |
030 |
Data Not Found |
500 | 05 | Failed | 050 | Database Error |
408 | 05 | Failed | 059 | Timeout |
500 | 88 | Failed | 888 | Undefined Error |
500 | 99 | Failed | 999 | General Error |