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 | Tanggal | Link Dokument | Deskripsi |
|---|---|---|---|---|
|
v1.0 |
v1.0 |
3 Mei 2024 |
Halaman Ini |
Baseline version |
Deskripsi Produk
Product Overview
Dokumen ini bertujuan untuk menjelaskan spesifikasi API dari pengembangan fitur Anti Money Laundering yang bertujuan untuk :
- Proses screening transaksi international berdasarkan watchlist
- Mengamankan transaksi BRI dari Tindak Pidana Pencucian Uang
- Menghindari adanya temuan atau denda regulator
Endpoint
A. AML Prescreening
Endpoint Description
API AML Prescreening digunakan untuk melakukan prescreening Nasabah Internasional yang berTransaksi
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 | Panjang | Deskripsi | Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
profileId |
String |
M |
|
Profile ID |
|
|
score |
String |
M |
|
Score |
|
Object "highestScoreSimilarity: receiver"
|
Field |
Data Type |
Mandatory |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
profileId |
String |
M |
|
Profile ID |
|
|
score |
String |
M |
|
Score |
|
Object "dataInformation"
|
Field |
Data Type |
Mandatory |
Panjang |
Deksripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskrispsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deksripsi |
Contoh |
|---|---|---|---|---|---|
|
profileId |
String |
M |
|
Profile ID |
|
| watchlist | String |
M |
|
Watchlist |
|
| crime | String | M | Crime | ||
| status2 | String | M | Status 2 |
Object "validationItem"
|
Field |
Data Type |
Mandatory |
Panjang |
Deskripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |
Panjang |
Deksripsi |
Contoh |
|---|---|---|---|---|---|
|
citizenship |
String |
M |
|
Citizenship |
|
| placeOfBirth | String |
M |
|
Place of Birth |
|
| dateOfBirth | String | M | Date of Birth |
Object "validationItem"
|
Field |
Data Type |
Mandatory |
Panjang |
Deksripsi |
Contoh |
|---|---|---|---|---|---|
|
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 |