Please read Onboarding first!!

Flows

Sender flow

Methods Using:

Receive flow

Methods Using:

Cancel flow

Methods Using:

Update flow

Methods Using:

Methods


1. Get Fee

Allow partner can get fee for transfer money

  • Host: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "12385045",
    "createTime": 1544434223208,
    "amount": 1000000,
}

Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "referenceId":"dsadadaasdsa",
    "resultCode": 0,
    "message": "success",
    "fee": 12000
}

Request:

  • Method: POST
  • Url: /api/c2c/fee

  • Payload:

    Name Type Length Required Description
    requestId String 50 x Unique String for each request
    createTime Number 50 x create time. currentmilis in UNIX time
    amount Number 50 x money to transfer

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
responseTime Number 50 x L1 Response time, currentmilis in UNIX Time
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message
fee Number x L1 Service fee

Error Code:

Code Description
0 Success
2 Decryption Fail
9 Invalid partner code
11 Other error
800 Invalid amount


2. Send

Allow partner create a order of transfering money

  • Host: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "12385045",
    "createTime": 1544434223208,
    "amount": 1000000,
    "fee": 20000,
    "sender": {
        "name": "NGUYEN VAN A",
        "personalId": "123456789012",
        "issueDate": "20/12/2003",
        "issuePlace": "CA.TPHCM",
        "mobile": "0987654321",
        "images": [
            "ZmRzZnNmZmRzZnNmc2Rmc2Rmc2Rmc2RmYXNkYfdsfdsxzxXM=",
            "ZmRzZnNmZmRzZnNmc2Rmc2Rmc2Rmc2RmYXNkYfdfdsfscxcsfdsxzxXM="
        ]
    },
    "receiver": {
        "name": "NGUYEN VAN B",
        "personalId": "123456789012",
        "mobile": "0987654321"
    }
}
Response:
{
    "requestId": "12385045",
    "referenceId": "12385s045",
    "responseTime": 1544434223208,
    "resultCode": 801,
    "message": "required otp"
}

Request:

  • Method: POST
  • Url: /api/c2c/send

  • Payload:

    Name Type Length Required Level Description
    requestId String 50 x L1 Unique String for each request
    createTime Number 50 x L1 create time. currentmilis in UNIX time
    amount Number 50 x L1 money to transfer
    fee Number 50 x L1 Service fee
    sender JsonObject x L1 Sender Information
    name String 30 x L2 sender name
    personalId String 20 x L2 number on identification card
    issueDate String 20 x L2 Identification card' issue date. Format: dd/mm/yyyy
    issuePlace String 20 x L2 Identification card' issue place.
    mobile String 15 x L2 sender mobile number
    images jsonArray x L2 Identification card' images. both side
    receiver JsonObject x L1 Receiver Information
    name String 30 x L2 sender name
    personalId String 20 x L2 number on identification card
    mobile String 15 x L2 Receiver mobile number

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
responseTime Number 50 x L1 create time. currentmilis in UNIX time
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other error
800 Invalid amount
801 Required otp
802 Invalid sender's mobile
803 Invalid receiver's mobile
804 Invalid sender's personalId
805 Invalid receiver's personalId
806 Invalid fee amount
811 Invalid image format (valid in base64)
816 Invalid sender info
818 Mobile of Sender & Receiver are the same
819 PersonalId of Sender & Receiver are the same
820 Over capset per day
821 Sender's mobile is in blacklist
822 Receiver's mobile is in blacklist
823 Nation license is expired
824 Issue date of nation license is invalid
828 Invalid receiver's name




3. Send confirm

Confirm the send request

  • Host: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "1238504435",
    "createTime": 1544434223208,
    "sendRequestId": "12385045",
    "otp":"234345",
    "amount": 1000000,
    "fee": 20000,
}
Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "referenceId": "dsdfdsfds",
    "paymentRef": "2432434",
    "resultCode": 0,
    "message": "success"
}

Request:

  • Method: POST
  • Url: /api/c2c/send-confirm

  • Payload:

    Name Type Length Required Level Description
    requestId String 50 x L1 Unique String for each request
    createTime Number 50 x L1 create time. currentmilis in UNIX time
    sendRequestId String 50 x L1 RequestId of send message (see Send )
    amount Number 50 x L1 money to transfer

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
paymentRef String 50 x L1 Unique for each response.Using for reconciliation
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other error
800 Invalid amount
806 Invalid fee amount
807 Invalid otp
808 Otp expired
809 transaction is locked because of retried overlimit
815 RequestId not found Or transaction has been finished
818 Mobile of Sender & Receiver are the same
819 PersonalId of Sender & Receiver are the same
820 Over capset per day
821 Sender's mobile is in blacklist
822 Receiver's mobile is in blacklist
823 Nation license is expired
824 Issue date of nation license is invalid
825 Otp limit exceed




4. Get Information

  • Host: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "12385045",
    "createTime": 1544434223208,
    "amount": 1000000,
    "mobile": "0987654321",
    "paymentCode":"1265443"
}

Response:
{
    "requestId": "12385045",
    "requestIdOfSend": "12385045123",
    "responseTime": 1544434223208,
    "referenceId": "2432434",
    "resultCode": 0,
    "amount": 1000000,
    "message": "success",
    "sender": {
        "name": "NGUYEN VAN A",
        "personalId": "xxxx9012",
        "mobile": "xxxx4321",
    },
    "receiver": {
        "name": "NGUYEN VAN B",
        "personalId": "123456789012",
        "mobile": "0987654321"
    }
}

Request:

  • Method: POST
  • Url: /api/c2c/info

  • Payload:

    Name Type Length Required Description
    requestId String 50 x Unique String for each request
    createTime Number 50 x create time. currentmilis in UNIX time
    amount Number 50 x money to transfer
    mobile String 50 x RequestId of send message (see this )
    paymentCode String 20 x secret code to check and get money

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
requestIdOfSend String 50 x L1 Same with send request
responseTime Number 50 x L1 create time. currentmilis in UNIX time
referenceId Number 50 x L1 unique for each response
resultCode Integer 2 x L1 Result Code of request
message String 200 x L1 Result message
amount Number 50 x L1 money to transfer
sender JsonObject x L1 Sender Information
name String 30 x L2 sender name
personalId String 20 x L2 number on identification card
mobile String 15 x L2 sender mobile number
receiver JsonObject x L1 Receiver Information
name String 30 x L2 sender name
personalId String 20 x L2 number on identification card
mobile String 15 x L2 Receiver mobile number

Error Code:

Code Description
0 Success
2 Decryption Fail
9 Invalid partner code
11 Other error
800 Invalid amount
803 Invalid receiver mobile
808 Otp expired
806 Invalid fee amount
807 Invalid otp
812 Invalid payment code
814 Transaction has been expired. Please cancel this and create a new ones
815 RequestId not found Or transaction has been finished
825 Otp limit exceed
836 Invalid mobile: sender's mobile or receiver's mobile





5. Receive

Flow

  • HOST: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "12385045",
    "createTime": 1544434223208,
    "amount": 1000000,
    "paymentCode": "dsfdsfs",
    "receiver": {
        "name": "NGUYEN VAN A",
        "personalId": "123456789012",
        "issueDate": "20/12/2003",
        "issuePlace": "CA.TPHCM",
        "mobile": "0987654321",
        "images": [
            "ZmRzZnNmZmRzZnNmc2Rmc2R...mc2Rmc2RmYXNkYfdsfdsxzxXM=",
            "ZmRzZnNmZmRzZnNmc2Rmc2Rmc2...Rmc2RmYXNkYfdfdsfscxcsfdsxzxXM="
        ]
    }
}
Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "referenceId": "2432434",
    "paymentRef": "2432434",
    "resultCode": 801,
    "message": "required otp"
}

Request

  • Method: POST
  • Url: /api/c2c/receive

  • Payload:

    Name Type Length Required Level Description
    requestId String 50 x L1 Unique String for each request
    createTime Number 50 x L1 create time. currentmilis in UNIX time
    amount Number 50 x L1 money to transfer
    receiver JsonObject x L1 Receiver Information
    sender JsonObject x L1 Sender Information
    name String 30 x L2 sender name
    personalId String 20 x L2 number on identification card
    issueDate String 20 x L2 Identification card' issue date. Format: dd/mm/yyyy
    issuePlace String 20 x L2 Identification card' issue place.
    mobile String 15 x L2 sender mobile number
    images jsonArray x L2 Identification card' images. both side

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other Error
800 Invalid amount
801 Required otp
803 Invalid receiver's mobile
805 Invalid receiver's personalId
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
812 Invalid payment code
813 Transaction has been finished. cannot change any more
814 Transaction has been expired. Please cancel this and create a new ones
817 Invalid receiver info
820 Over capset per day
823 Nation license is expired
824 Issue date of nation license is invalid
827 Don't privilege with this paymentCode
828 Invalid receiver's name
829 Invalid receiver's issue place
830 Invalid receiver's issue date
831 Invalid receiver's images




6. Receive Confirm

Flow

  • HOST: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "1238504435",
    "createTime": 1544434223208,
    "receiveRequestId": "12385045",
    "otp":"234345",
}
Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "paymentRef": "2432434",
    "resultCode": 0,
    "message": "success",
    "paymentRefOfSend" :"987654321"
}

Request

  • Method: POST
  • Url: /api/c2c/receive-confirm

  • Payload:

    Name Type Length Required Description
    requestId String 50 x Unique String for each request
    createTime Number 50 x create time. currentmilis in UNIX time
    receiveRequestId String 50 request id on Receive
    otp String 50 Customer will provide

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
paymentRef String 50 x L1 Unique for each response.Using for reconciliation
message String 200 x L1 Result message
paymentRefOfSend String 50 x L1 the paymentRef of send command.Using for reconciliation

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other Error
800 Invalid amount
807 Invalid otp
808 Otp expired
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
813 Transaction has been finished. cannot change any more
814 Transaction has been expired. Please cancel this and create a new ones
815 RequestId not found Or transaction has been finished
820 Over capset per day
825 Otp limit exceed
826 Access update over limit

7. Cancel

Flow

  • HOST: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "12385045",
    "createTime": 1544434223208,
    "amount": 1000000,
    "paymentCode": "dsfdsfs",
    "sender": {
        "name": "NGUYEN VAN A",
        "personalId": "123456789012",
        "issueDate": "20/12/2003",
        "issuePlace": "CA.TPHCM",
        "mobile": "0987654321",
        "images": [
            "ZmRzZnNmZmRzZnNmc2Rmc2R...mc2Rmc2RmYXNkYfdsfdsxzxXM=",
            "ZmRzZnNmZmRzZnNmc2Rmc2Rmc2...Rmc2RmYXNkYfdfdsfscxcsfdsxzxXM="
        ]
    },
    "receiver": {
        "name": "NGUYEN VAN A",
        "personalId": "123456789012",
        "mobile": "0987654321"
    }
}
Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "referenceId": "2432434",
    "paymentRef": "2432434",
    "resultCode": 801,
    "message": "required otp"
}

Request

  • Method: POST
  • Url: /api/c2c/cancel

  • Payload:

    Name Type Length Required Level Description
    requestId String 50 x L1 Unique String for each request
    createTime Number 50 x L1 create time. currentmilis in UNIX time
    amount Number 50 x L1 money to transfer
    sender JsonObject x L1 Sender Information
    name String 30 x L2 sender name
    personalId String 20 x L2 number on identification card
    issueDate String 20 x L2 Identification card' issue date. Format: dd/mm/yyyy
    issuePlace String 20 x L2 Identification card' issue place.
    mobile String 15 x L2 sender mobile number
    images jsonArray x L2 Identification card' images. both side
    receiver JsonObject x L1 Receiver Information
    name String 30 x L2 receiver name
    personalId String 20 x L2 number on identification card
    mobile String 15 x L2 receiver mobile number

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other Error
800 Invalid amount
801 Required otp
802 Invalid sender's mobile
803 Invalid receiver's mobile
804 Invalid sender's personal Id
805 Invalid receiver's personal Id
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
812 Invalid payment code
813 Transaction has been finished. cannot change any more
814 Transaction has been expired. Please cancel this and create a new ones
816 Invalid sender info
817 Invalid receiver info
824 Issue date of nation license is invalid
827 Don't privilege with this paymentCode
828 Invalid receiver's name
832 Invalid sender's name
833 Invalid sender's issue place
834 Invalid sender's issue date
835 Invalid sender's images




8. Cancel Confirm

Flow

  • HOST: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "1238504435",
    "createTime": 1544434223208,
    "cancelRequestId": "12385045",
    "otp":"234345",
}
Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "paymentRef": "2432434",
    "resultCode": 0,
    "message": "success",
    "paymentRefOfSend" :"987654321"
}

Request

  • Method: POST
  • Url: /api/c2c/cancel-confirm
  • Header:

    Key Value
    partner-code Momo will provide when integration
  • Payload:

    Name Type Length Required Description
    requestId String 50 x Unique String for each request
    createTime Number 50 x create time. currentmilis in UNIX time
    cancelRequestId String 50 It depends on partner
    otp String 50 Customer will provide

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
paymentRef String 50 x L1 Unique for each response.Using for reconciliation
message String 200 x L1 Result message
paymentRefOfSend String 50 x L1 the paymentRef of send command.Using for reconciliation

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other Error
800 Invalid amount
807 Invalid otp
808 Otp expired
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
812 Invalid payment code
813 Transaction has been finished. cannot change any more
814 Transaction has been expired. Please cancel this and create a new ones
815 RequestId not found Or transaction has been finished
825 Otp limit exceed




9. Update

Allow partner can change receiver' information

  • Host: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "12385045",
    "createTime": 1544434223208,
    "paymentCode": "4324324",
    "receiver": {
        "name": "NGUYEN VAN B",
        "personalId": "123456789012",
        "mobile": "0987654321"
    }
}
Response:
{
    "requestId": "12385045",
    "referenceId": "12385s045",
    "responseTime": 1544434223208,
    "resultCode": 801,
    "message": "required otp"
}

Request:

  • Method: POST
  • Url: /api/c2c/update

  • Payload:

    Name Type Length Required Level Description
    requestId String 50 x L1 Unique String for each request
    createTime Number 50 x L1 create time. currentmilis in UNIX time
    paymentCode String 50 x L1 Customer will provide
    receiver JsonObject x L1 Receiver Information
    name String 30 x L2 sender name
    personalId String 20 x L2 number on identification card
    mobile String 15 x L2 Receiver mobile number

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
responseTime Number 50 x L1 create time. currentmilis in UNIX time
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 Other error
801 Required otp
803 Invalid receiver's mobile
805 Invalid receiver's personalId
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
812 Invalid payment code
813 Transaction has finish. cannot change any more
814 Transaction has expired. Please cancel this and create a new ones
816 Invalid sender info
817 Invalid receiver info
818 Mobile of Sender & Receiver are the same
822 Receiver's mobile is in blacklist
826 Acess update over limit
827 Don't privilege with this paymentCode




10. Update Confirm

Flow

  • HOST: MOMO
  • Invoke: PARTNER
Request:
{
    "requestId": "1238504435",
    "createTime": 1544434223208,
    "updateRequestId": "12385045",
    "otp":"234345",
}
Response:
{
    "requestId": "12385045",
    "responseTime": 1544434223208,
    "paymentRef": "2432434",
    "resultCode": 0,
    "message": "success",
    "paymentRefOfSend" :"987654321"
}

Request

  • Method: POST
  • Url: /api/c2c/update-confirm
  • Header:

    Key Value
    partner-code Momo will provide when integration
  • Payload:

    Name Type Length Required Description
    requestId String 50 x Unique String for each request
    createTime Number 50 x create time. currentmilis in UNIX time
    updateRequestId String 50 It depends on partner
    otp String 50 Customer will provide

Response:

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
paymentRef String 50 x L1 Unique for each response.Using for reconciliation
message String 200 x L1 Result message
paymentRefOfSend String 50 x L1 the paymentRef of send command.Using for reconciliation

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 other Error
807 Invalid otp
808 Otp expired
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
812 Invalid payment code
813 Transaction has been finished. cannot change any more
814 Transaction has been expired. Please cancel this and create a new ones
815 RequestId not found Or transaction has been finished
825 Otp limit exceed
826 Acess update over limit




11. Resend Otp

Resend otp to user.

Request

{
    "requestId": "wqrwpo2343240xsad213",
    "refRequestId": "dsadaad213",
    "createTime": 1544434223208
}
Response
{
    "requestId": "wqrwpo2343240xsad213",
    "referenceId": "2313_e3w24_ddqwdq_dasdasda",
    "resultCode": 0,
    "message": "Success",
}

Request

  • Method: POST
  • URL: api/c2c/send-otp
Name Type Length Required Description
requestId String 50 x Unique String for each request
createTime Number 50 x create time. currentmilis in UNIX time
refRequestId String 50 x RequestId of Send

Response

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 other Error
807 Invalid otp
808 Otp expired
809 transaction is locked because of retried overlimit
810 Transaction have been canceled, please create a new ones
812 Invalid payment code
813 Transaction has been finished. cannot change any more
814 Transaction has been expired. Please cancel this and create a new ones
815 RequestId not found Or transaction has been finished
825 Otp limit exceed




12. Check status

Allow partner get check status

Request 
{
    "requestId": "wqrwpo2343240xsad213",
    "checkRequestId": "w240xsad213"
}
Response
{
    "requestId": "wqrwpo2343240xsad213",
    "referenceId": "2313_e3w24_ddqwdq_dasdasda",
    "resultCode": 0,
    "message": "Success",
    "data": {
        "requestId": "wqrwpo2343240xsad213",
        "referenceId": "2313_e3w24_ddqwdq_dasdasda",
        "resultCode": 0,
        "message": "Success",
    }
}

Request

  • Method: POST
  • URL: api/pay/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

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 other Error
815 RequestId not found Or transaction has been finished
825 Otp limit exceed
837 Init transaction has been expired because of waiting confirmation too long

*
*

13. Resend Payment code

Resend payment code to user.

Request

{
    "requestId": "wqrwpo2343240xsad213",
    "refRequestId": "dsadaad213",
    "createTime": 1544434223208
}
Response
{
    "requestId": "wqrwpo2343240xsad213",
    "referenceId": "2313_e3w24_ddqwdq_dasdasda",
    "resultCode": 0,
    "message": "Success",
}

Request

  • Method: POST
  • URL: api/c2c/send-payment-code
Name Type Length Required Description
requestId String 50 x Unique String for each request
createTime Number 50 x create time. currentmilis in UNIX time
refRequestId String 50 x RequestId of SendConfirm

Response

Name Type Length Required Level Description
requestId String 50 x L1 Same with request
resultCode Integer 2 x L1 Result Code of request
referenceId String 50 x L1 Unique for each response
message String 200 x L1 Result message

Error Code:

Code Description
0 Success
2 Decryption Fail
8 Duplicate/Invalid request Id
9 Invalid partner code
11 other Error
815 RequestId not found Or transaction has been finished
838 Payment code limit exceed




Other Error Code:

Code Description
1 Invalid signature
2 Invalid encrypted data
3 Invalid username
5 Invalid password
6 Invalid Json String
7 Insufficient funds
8 Duplicate/Invalid request Id
9 Invalid partner code
10 Unknown result. Please check manual to get final result
11 Other Error
815 RequestId not found Or transaction has been finished
837 Init transaction has been expired because of waiting confirmation too long