Methods:

1. GetCreditScore

Allow partner get Credit score of wallet

  • Method: POST
  • URL: api/scoring/get-credit-score

Flow

Example

Request

{
    "requestId":"qweqwe123321",
    "phoneNumber":"0123456789",
    "nationalId":"123456789"
}

Response

{
    "requestId": "qweqwe123321",
    "resultCode": 0,
    "message": "Success",
    "referenceId":"sdfsfsdfdggfgf",
    "data":
    {
        "partner": "partnerX",
        "phoneNumber": "0123456789",
        "nationalId":"123456789",
        "momoCreditScore": 0.15,
        "version": "MOMO_CREDIT_SCORE",
        "scoredTimestamp": 12345678
    }
}

Request

Method URL
POST api/scoring/get-credit-score
No Parameters Data Type Require Description
1 requestId String Yes Unique string for each request
2 phoneNumber String phoneNumber need to check
3 nationalId String national Id need to check

*Note: Request must have "phoneNumber" or "nationalId" (at least 1 field must not empty)

Response

No Parameters Data Type Require Description
1 requestId String Yes Same with request
2 resultCode String Yes Result code of request
3 message String Yes Result message of request
4 referenceId String Yes Reference Id. Unique String for each response
5 partner String Yes Partner code
6 phoneNumber String Same with request
7 nationalId String Same with request
8 momoCreditScore Float Yes Credit score
9 version String “MOMO_CREDIT_SCORE” or “MOMO_CREDIT_SCORE_EXT”
10 scoredTimestamp Long Running time

ErrorCode

Code Message Status
0 Success Success
4 Invalid wallet Id Fail
8 Duplicate/Invalid request Id Fail
11 Other error Fail
101 Invalid params Fail
104 No data found Fail

2. CheckKYC

Allow partner check KYC data

  • Method: POST
  • URL: api/scoring/check-kyc

Flow

Example

Request

{
    "requestId": "qweqwe123321",
    "phoneNumber":"0123456789",
    "nationalId": "123456789000",
    "additionalId": "",
    "fullName": "NGUYEN VAN A",
    "dateOfBirth": "2001-12-30",
    "bankAccount": "123123123",
    "email": "abc@domain.com",
    "refPhone1": "0900000001",
    "refName1": "",
    "refPhone2": "0900000002",
    "refName1": "",
    "workPhone": "0900000003",
    "workPlace": ""
}

Response

{
    "requestId": "qweqwe123321",
    "resultCode": 0,
    "message": "Success",
    "referenceId":"sdfsfsdfdggfgf",
    "data": [
    {
      "wallet": 1,
      "verifyPhone": "MATCH",
      "verifyId": "MATCH",
      "verifyName": "MATCH",
      "verifyDob": "MATCH",
      "verifyBank": "MATCH",
      "verifyEmail": "NOT_MATCH",
      "verifyRefPhone1": "MATCH",
      "verifyRefPhone2": "NOT_MATCH",
      "verifyWorkPhone": "NO_INFO",
      "liveliness": "A",
      "verifyNameSimiliarity": 1,
      "verifyNameLevenstein": 1,
      "verifyEmailSimiliarity": 1,
      "walletAge": "E"
    },
    {
      "wallet": 2,
      "verifyPhone": "NOT_MATCH",
      "verifyId": "MATCH",
      "verifyName": "MATCH",
      "verifyDob": "MATCH",
      "verifyBank": "NO_INFO",
      "verifyEmail": "MATCH",
      "verifyRefPhone1": "NO_INFO",
      "verifyRefPhone2": "NO_INFO",
      "verifyWorkPhone": "NO_INFO",
      "liveliness": "A",
      "verifyNameSimiliarity": 1,
      "verifyNameLevenstein": 1,
      "verifyEmailSimiliarity": 1,
      "walletAge": "E"
    },
    {
      "wallet": 3,
      "verifyPhone": "NOT_MATCH",
      "verifyId": "MATCH",
      "verifyName": "MATCH",
      "verifyDob": "MATCH",
      "verifyBank": "NO_INFO",
      "verifyEmail": "MATCH",
      "verifyRefPhone1": "NO_INFO",
      "verifyRefPhone2": "NO_INFO",
      "verifyWorkPhone": "NO_INFO",
      "liveliness": "A",
      "verifyNameSimiliarity": 1,
      "verifyNameLevenstein": 1,
      "verifyEmailSimiliarity": 1,
      "walletAge": "E"
    },
    {
      "wallet": 4,
      "verifyPhone": "NOT_MATCH",
      "verifyId": "MATCH",
      "verifyName": "MATCH",
      "verifyDob": "MATCH",
      "verifyBank": "NO_INFO",
      "verifyEmail": "MATCH",
      "verifyRefPhone1": "NO_INFO",
      "verifyRefPhone2": "NO_INFO",
      "verifyWorkPhone": "NO_INFO",
      "liveliness": "A",
      "verifyNameSimiliarity": 1,
      "verifyNameLevenstein": 1,
      "verifyEmailSimiliarity": 1,
      "walletAge": "E"
    }
  ]
}

Request

Method URL
POST api/scoring/check-kyc
No Parameters Data Type Require Description
1 requestId String Yes Unique string for each request
2 phoneNumber String Yes phoneNumber need to check
3 nationalId String Yes NationalId or passportNo
4 additionalNationalId String such as: passport id
5 fullName String Yes "LASTNAME MIDDLE_NAME FIRSTNAME"
6 dateOfBirth String Format: "yyyy-mm-dd"
7 bankAccount String bank id
8 email String "abc@domain.com"
9 refPhone1 String "0123456789", mobile or home phone
10 refName1 String "LASTNAME MIDDLE_NAME FIRSTNAME
11 refPhone2 String "0123456789", mobile or home phone
12 refName2 String "LASTNAME MIDDLE_NAME FIRSTNAME
13 workPhone String "0123456789", mobile or home phone
14 workPlace String UPPERCASE ALL (work place)

Response

No Parameters Data Type Require Description
1 requestId String Yes Same with request
2 resultCode String Yes Result code of request
3 message String Yes Result message of request
4 referenceId String Yes Reference Id. Unique String for each response
5 wallet Numeric Yes {1,2,3,4}
6 verifyPhone String Yes {"MATCH", "NOT_MATCH", "NO_INFO"}
7 verifyId String Yes {"MATCH", "NOT_MATCH", "NO_INFO"}
8 verifyName String Yes {"MATCH", "NOT_MATCH", "NO_INFO"}
9 verifyDob String {"MATCH", "NOT_MATCH", "NO_INFO"}
10 verifyBank String {"MATCH", "NOT_MATCH", "NO_INFO"}
11 verifyEmail String {"MATCH", "NOT_MATCH", "NO_INFO"}
12 verifyRefPhone1 String {"MATCH", "NOT_MATCH", "NO_INFO"}
13 verifyRefPhone2 String {"MATCH", "NOT_MATCH", "NO_INFO"}
14 verifyWorkPhone String {"MATCH", "NOT_MATCH", "NO_INFO"}
15 liveliness String {"A", "B", "C", "D", "E", "NO_INFO"}
16 verifyNameSimiliarity Float Yes {0, 0.1, 0.2,…, 1}
17 verifyNameLevenstein Float Yes {0, 0.1, 0.2,…, 1}
18 verifyEmailSimiliarity Float Yes {0, 0.1, 0.2,…, 1}
19 walletAge String Yes {"A", "B", "C", "D", "E", "F", "NO_INFO"}

ErrorCode

Code Message Status
0 Success Success
4 Invalid wallet Id Fail
8 Duplicate/Invalid request Id Fail
11 Other error Fail
101 Request Id is empty Fail
102 Invalid nationd id Fail
103 Full name is empty Fail
104 No data found Fail

3. StoreApplicationStatus

Allow partner send application status to Momo

  • Method: POST
  • URL: api/scoring/application-status

Flow

Example

Request

{
    "requestId":"qweqwe123321",
    "vendorCode":"ewqewq123123",
    "phoneNumber":"0123456789",
    "creditScoreRequestId":"credit123456",
    "kycRequestId":"kyc123456",
    "applicationTime":12345678,
    "decisionTime":12345678,
    "disburseTime":12345678,
    "paymentTime":12345678,
    "approvalStatus":"approved",
    "appliedAmount":10000,
    "appliedTenor":123,
    "approvedAmount":1000,
    "approvedTenor":123
}

Response

{
    "requestId": "qweqwe123321",
    "resultCode": 0,
    "message": "Success",
    "referenceId":"sdfsfsdfdggfgf"
}

Request

Method URL
POST api/scoring/application-status
No Parameters Data Type Require Description
1 requestId String Yes Unique string for each request
2 vendorCode String Yes Vendor code provided by Momo
3 phoneNumber String Yes phoneNumber need to check
4 creditScoreRequestId String At least (3), (4) not null Id of Credit score request
5 kycRequestId String At least (3), (4) not null Id of Kyc request
6 applicationTime long Application time
7 decisionTime long Decision time
8 disburseTime long Disburse time
9 paymentTime long Payment time
10 approvalStatus String Yes "approved" or "rejected"
11 appliedAmount long Applied amount
12 appliedTenor long Applied tenor
13 approvedAmount long Approved amount
14 approvedTenor long Approved tenor

Response

No Parameters Data Type Require Description
1 requestId String Yes Same with request
2 resultCode String Yes Result code of request
3 message String Yes Result message of request
4 referenceId String Yes Reference Id. Unique String for each response

ErrorCode

Code Message Status
0 Success Success
4 Invalid wallet Id Fail
8 Duplicate/Invalid request Id Fail
11 Other error Fail
105 Both Credit Score and Kyc Request Id are empty Fail
106 Vendor code is empty Fail
107 Approval status is empty Fail

4. PastInquiries

Allow partner get Momo Credit Score & KYC check history and disbursement, repayment history

  • Method: POST
  • URL: api/scoring/check-pastinquiries

Request

{
    "requestId":"1647430687",
    "phoneNumber":"0123456789",
    "nationalId":"VN1234567",
    "requestedTimestamp":"1647430687"
}

Response

{
  "requestId": "1647430687",
  "resultCode": 0,
  "message": "Success",
  "referenceId":"sdfsfsdfdggfgf",
  "data": [
    {
      "periodDays": 7,
      "numRequester": 0,
      "numRequest": 0,
      "numDisbursement": 0,
      "numOrgDisbursement": 0,
      "amountDisbursement": "A",
      "minAmountDisbursement": "A",
      "maxAmountDisbursement": "A",
      "numRepayment": 0,
      "numOrgRepayment": 0,
      "amountRepayment": "A",
      "minAmountRepayment": "A",
      "maxAmountRepayment": "A"
    },
    {
      "periodDays": 30,
      "numRequester": 0,
      "numRequest": 0,
      "numDisbursement": 0,
      "numOrgDisbursement": 0,
      "amountDisbursement": "A",
      "minAmountDisbursement": "A",
      "maxAmountDisbursement": "A",
      "numRepayment": 0,
      "numOrgRepayment": 0,
      "amountRepayment": "A",
      "minAmountRepayment": "A",
      "maxAmountRepayment": "A"
    },
    {
      "periodDays": 90,
      "numRequester": 0,
      "numRequest": 0,
      "numDisbursement": 0,
      "numOrgDisbursement": 0,
      "amountDisbursement": "A",
      "minAmountDisbursement": "A",
      "maxAmountDisbursement": "A",
      "numRepayment": 0,
      "numOrgRepayment": 0,
      "amountRepayment": "A",
      "minAmountRepayment": "A",
      "maxAmountRepayment": "A"
    }
  ]
}

Request

Method URL
POST api/scoring/check-pastinquiries
No Parameters Data Type Require Description
1 requestId String Yes Unique string for each request
2 phoneNumber String Yes phoneNumber need to check
3 nationalId String Yes NationalId or passportNo
4 requestedTimestamp Long Yes Requested timestamp in millisecond

Response

No Parameters Data Type Require Description
1 requestId String Yes Same with request
2 resultCode String Yes Result code of request
3 message String Yes Result message of request
4 referenceId String Yes Reference Id. Unique String for each response
5 periodDays String Yes indicate this item for 1 week (7), 1 month (30) or 3 months (90)
6 numRequester long/int64 Yes number of partners that request which are matched phone or NID
7 numRequest long/int64 Yes Number request which are matched phone or NID
8 numDisbursement long/int64 Yes
9 numOrgDisbursement long/int64 Yes
10 amountDisbursement String Yes {A -> L}
11 minAmountDisbursement String Yes {A -> O}
12 maxAmountDisbursement String Yes {A -> O}
13 numRepayment long/int64 Yes
14 numOrgRepayment long/int64 Yes
15 amountRepayment String Yes {A -> L}
16 minAmountRepayment String Yes {A -> O}
17 maxAmountRepayment String Yes {A -> O}
ErrorCode
Code Message Status
0 Success Success
4 Invalid wallet Id Fail
8 Duplicate/Invalid request Id Fail
11 Other error Fail
101 Request Id is empty Fail
102 Invalid nationd id Fail
103 Full name is empty Fail
104 No data found Fail

5. Suspicion Check

  • Method: POST
  • URL: api/scoring/suspicion-check

Request

{
    "requestId":"1647430687",
    "phoneNumber":"0392333333",
    "nationalId":"049011111111",
    "requestedTimestamp":"1647430687"
}

Response

{
  "requestId": "1647430687",
  "resultCode": 0,
  "message": "Success",
  "referenceId":"sdfsfsdfdggfgf",
  "data": [
    {
      "suspicionType": "SuspicionType1",
      "suspicionValue": true,
      "reportDate": 1647018000000
    },
    {
      "suspicionType": "SuspicionType2",
      "suspicionValue": false,
      "reportDate": 1647018000000
    },
    {
      "suspicionType": "SuspicionType3",
      "suspicionValue": true,
      "reportDate": 1647018000000
    },
    {
      "suspicionType": "SuspicionType4",
      "suspicionValue": true,
      "reportDate": 1647018000000
    },
    {
      "suspicionType": "SuspicionType5",
      "suspicionValue": false,
      "reportDate": 1647018000000
    }
  ]
}

Request

Method URL
POST api/scoring/suspicion-check
No Parameters Data Type Require Description
1 requestId String Yes Unique string for each request
2 phoneNumber String Yes phoneNumber need to check
3 nationalId String Yes NationalId or passportNo
4 requestedTimestamp Long Yes Requested timestamp in millisecond

Response

No Parameters Data Type Require Description
1 requestId String Yes Same with request
2 resultCode String Yes Result code of request
3 message String Yes Result message of request
4 referenceId String Yes Reference Id. Unique String for each response
5 suspicionType String Yes SuspicionType1
SuspicionType2
SuspicionType3
SuspicionType4
SuspicionType5
6 suspicionValue boolean Yes True (in blacklist) False (not in blacklist)
7 reportDate long/int64 Yes Report date in timestamp millisecond
ErrorCode
Code Message Status
0 Success Success
4 Invalid wallet Id Fail
8 Duplicate/Invalid request Id Fail
11 Other error Fail
101 Request Id is empty Fail
102 Invalid nationd id Fail
103 Full name is empty Fail
104 No data found Fail