API Docs - AML (Anti Money Laundering)

API Information

Title Anti Money Laundering

Version

v1.0

URL Sandbox

https://sandbox.partner.api.bri.co.id/

URL Production

https://sandbox.partner.api.bri.co.id/

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