MOMO CASHOUT API
Please read Onboarding first!!
Flows

Methods
1. Verify
Allow partner get information about Momo wallet
Request
- Method: POST
- URL: api/cashout/verify
| Name |
Type |
Length |
Description |
| requestId |
String |
50 |
Unique String for each request |
| walletId |
String |
|
Momo wallet id (phone number) need to transfer money to. |
| amount |
Number |
|
Amount need to cashout |
| created |
String |
|
created date (YYYY-MM-DDThh:mm:ssTZD) |
Response
| Name |
Type |
Level |
Description |
| requestId |
String |
L1 |
Unique String for each request |
| referenceId |
String |
L1 |
Reference Id. Unique String for each response |
| resultCode |
String |
L1 |
Result Code of request |
| message |
String |
L1 |
Result message |
| fee |
Number |
L1 |
Fee for this transaction |
| accountInfo |
JsonObject |
L1 |
JsonObject about the wallet information |
| name |
String |
L2 |
Client (Buyer) name |
| email |
String |
L2 |
Client email |
| mobile |
String |
L2 |
Phone number |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"walletId": "0987654321",
"amount": 40000
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success",
"fee": 8000,
"accountInfo": {
"name": "Nguyễn Văn A",
"email": "test@gmail.com",
"mobile": "0987654321"
}
}
2. Confirm
Allow partner transfer money from their wallet to other wallet
Request
- Method: POST
- URL: api/cashout/confirm
| Name |
Type |
Description |
| requestId |
String |
Unique String for each request |
| walletId |
String |
Momo wallet id (phone number) need to transfer money to. |
| verifyRequestId |
String |
The same Id with your verify RequestId |
| amount |
String |
Amount to transfer |
| created |
String |
created date (YYYY-MM-DDThh:mm:ssTZD) |
| otp |
String |
Otp that Momo provide to user |
| description |
String |
Short description |
Response
| Name |
Type |
Description |
| requestId |
String |
Same with request |
| resultCode |
Integer |
Result Code of request |
| referenceId |
String |
Unique for each response |
| message |
String |
Result message |
| paymentRef |
String |
Unique String for each transfer response, using for report |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"verifyRequestId": "dsadaad213",
"created": "2017-03-06T19:20:30+07:00",
"walletId": "0989990105",
"amount": 40000,
"description": "Transfer for something"
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success",
"paymentRef": "122434546546"
}
3. CancelVerify
Allow partner cancel a verify request
Request
- Method: POST
- URL: api/cashout/cancel
| Name |
Type |
Description |
| requestId |
String |
Unique String for each request |
| verifyRequestId |
String |
The same Id with your verify RequestId |
| created |
String |
created date (YYYY-MM-DDThh:mm:ssTZD) |
Response
| Name |
Type |
Description |
| requestId |
String |
Same with request |
| resultCode |
Integer |
Result Code of request |
| referenceId |
String |
Unique for each response |
| message |
String |
Result message |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"verifyRequestId": "dsadaad213",
"created": "2017-03-06T19:20:30+07:00",
"walletId": "0989990105",
"amount": 40000,
"description": "Transfer for something"
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success"
}
4. Resend otp
Resend otp to user.
Request
- Method: POST
- URL: api/cashout/send-otp
| Name |
Type |
Description |
| requestId |
String |
Unique String for each request |
| walletId |
String |
Momo wallet id (phone number) need to transfer money to. |
| verifyRequestId |
String |
The same Id with your verify RequestId |
Response
| Name |
Type |
Description |
| requestId |
String |
Same with request |
| resultCode |
Integer |
Result Code of request |
| referenceId |
String |
Unique for each response |
| message |
String |
Result message |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"verifyRequestId": "dsadaad213",
"created": "2017-03-06T19:20:30+07:00",
"walletId": "0989990105",
"amount": 40000,
"description": "Transfer for something"
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success",
"paymentRef": "122434546546"
}
5. Check status
Allow partner get check status of confirm request
Request
- Method: POST
- URL: api/cashout/status
| Name |
Type |
Description |
| requestId |
String |
Unique String for each request |
| checkRequestId |
String |
Request Id that need to check |
Response
| Name |
Type |
Description |
| requestId |
String |
Same with request |
| resultCode |
Integer |
Result Code of request |
| referenceId |
String |
Unique for each response |
| message |
String |
Result message |
| data |
JsonObject |
Data is the same with data of the response of function that want to check |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"password": "123456",
"checkRequestId": "ewqweq21234re"
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success",
"data":
{
"requestId": "wqrwposs2343240xsad213",
"referenceId": "2313_e3w24_w432423_dasdasda",
"resultCode": 0,
"message": "Success",
"acceptAmount": 40000
}
}
6. Balance
Allow partner get current partner wallet’s balance
Request
- Method: POST
- URL: api/cashout/balance
| Name |
Type |
Description |
| requestId |
String |
Unique String for each request |
Response
| Name |
Type |
Description |
| requestId |
String |
Same with request |
| resultCode |
Integer |
Result Code of request |
| referenceId |
String |
Unique for each response |
| message |
String |
Result message |
| amount |
Integer |
Current balance |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"password": "a1234567890"
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success",
"amount": 100000000
}
7. Get Trans
Allow partner get all transaction of the day
Request
- Method: POST
- URL: api/cashout/get-trans
| Name |
Type |
Description |
| requestId |
String |
Unique String for each request |
| password |
String |
Static value as provided by Momo |
| date |
String |
Date to get all trans (yyyy-MM-dd) |
Response
| Name |
Type |
Level |
Description |
| requestId |
String |
L1 |
Same with request |
| resultCode |
Integer |
L1 |
Result Code of request |
| referenceId |
String |
L1 |
Unique for each response |
| message |
String |
L1 |
Result message |
| data |
JsonArray |
L1 |
Array of JsonObject include these information |
| requestId |
String |
L2 |
Transfer request id |
| walletId |
String |
L2 |
Momo wallet Id (mobile phone) |
| amount |
Integer |
L2 |
Transfer amount |
| paymentDate |
String |
L2 |
Transfer date |
| paymentRef |
String |
L2 |
Reference Number |
| resultCode |
Int |
L2 |
Result Code |
| message |
String |
L2 |
Result Message |
Example
Request
{
"requestId": "wqrwpo2343240xsad213",
"password": "a1234567890",
"date": "2017-12-04"
}
Response
{
"requestId": "wqrwpo2343240xsad213",
"referenceId": "2313_e3w24_ddqwdq_dasdasda",
"resultCode": 0,
"message": "Success",
"data": [
{
"requestId": "122345",
"walletId": "0989990105",
"amount": 400000,
"paymentDate": "2017-03-06T19:20:30+07:00",
"paymentRef": "2313r3r34r",
"resultCode": 0,
"message": "Success"
},
{
"requestId": "122346",
"walletId": "0989990106",
"amount": 100000,
"paymentDate": "2017-03-06T19:20:30+07:00",
"paymentRef": "2313r3r34r",
"resultCode": 0,
"message": "Insufficient funds"
}
]
}
Error Code
| Code |
Message |
Function |
Status |
| 0 |
success |
All |
Success |
| 2 |
Cannot decrypt message |
All |
Fail |
| 4 |
Invalid wallet Id |
Verify, confirm |
Fail |
| 5 |
Invalid password |
All |
Fail |
| 7 |
Insufficient funds |
Confirm |
Fail |
| 8 |
Duplicate request Id |
All |
Fail |
| 9 |
Invalid partner code |
All |
Fail |
| 10 |
Unknown result. |
All |
Check by hand, or call check status to get the final result |
| 11 |
Other error |
All |
Fail |
| 17 |
According to State Bank of Vietnam's regulations, it is forbidden to transfer money to non-verified users.You could show them to add bank accounts so that they can receive money from you. See more at: http://bit.ly/huongdan-nhantien |
All |
Fail |
| 901 |
Invalid capset per transaction |
Confirm |
Fail |
| 902 |
Invalid amount |
Verify |
Fail |
| 903 |
Amount is not match |
Amount in verify and confirm is not match |
Fail |
| 904 |
Reject by Momo rule |
Confirm |
Fail |
| 905 |
Verify Request Id not found |
Confirm |
Fail |
| 906 |
Invalid OTP |
Confirm |
Fail |
| 907 |
Otp expired |
Confirm |
Fail |
| 908 |
Otp retry exceed |
Confirm |
Fail |
| 909 |
Invalid date |
All |
Fail |
| 910 |
WalletId not match |
Confirm |
Fail |
| 911 |
Amount too small |
Verify |
Fail |
| 912 |
Amount too big |
Verify |
Fail |
| 913 |
Request Id doesn't existed |
Confirm |
Fail |
| 914 |
Verify request have been canceled |
Confirm |
Fail |
| 915 |
Verify request have been finished |
Confirm |
Fail |
| 916 |
Wallet haven't linked bank yet! |
Verify |
Fail |
QR String
Get QR String on Momo app:
Step 1:

Step 2:

Step 3: Swipe to bottom

Step 4:
