YesMoney DMT API V2.8
This API enables the Yes Money customers to transfer funds from nearest Yes Money BC agent outlets to beneficiaries through NEFT and IMPS modes. It also allows customer to check the status of the transaction in real time. The money transfer services can be availed through simple one step customer registration process.
Revision History
| Version | Reason For Changes | Date |
|---|---|---|
| 1.0 | Initial Version | 24/05/2017 |
| 1.1 | Added Significance of AID param in API authentication process | 25/05/2017 |
| 1.2 | Modified the request and response parameters | 09/06/2017 |
| 1.3 | Modified for CP API | 08/09/2017 |
| 1.4 | Added additional parameters as per new requirement | 18/09/2017 |
| 1.5 | Corrected the URL for token generation | 24/10/2017 |
| 1.6 | Added Beneficiary validate API & Removed the searchcustomer with PIN login API | 26/10/2017 |
| 1.7 | Updated with the base URL for production, Modifications inrefund API | 31/10/2017 |
| 1.8 | Added E-KYC APIs | 23/11/2017 |
| 1.9 | Added Bene Name update API, Manual KYC API | 29/11/2017 |
| 2.0 | Added validations to be implemented by partners & changed the domain path | 07/12/2017 |
| 2.1 | Added refund scenarios | 14/12/2017 |
| 2.2 | Added callback API implementation and updated status codes | 21/12/2017 |
| 2.3 | Updated the scenarios for auto refund | 29/12/2017 |
| 2.4 | Addedd Status check API on master Order ID | 06/01/2017 |
| 2.5 | Removed the depricated status codes, Bene Name Edit API | 10/01/2017 |
| 2.6 | Added Customer details update and upload pan card api | 12/02/2018 |
| 2.7 | Added status code | 17/03/2018 |
| 2.8 | Added few error codes and kyc document validations for minmax length | 20/03/2018 |
-
Significance of AID param
In every request, AID parameter is required to be passed, which is a unique bc agent Id in partner’s system. These should be provided to EP system in the agent code box at the time of agent on boarding by APM.
This AID needs to be unique in partner’s system for every agent. If while on boarding this AID clashes with any other AID for that partner, then the agent cannot be on boarded.
Other Common parameters
-
OP - Operator code for DMT transaction. The value will be DMTNUR for both UAT & production.
-
ST - Service Type for DMT. The value would be REMDOMESTIC or BENEVALIDATE depending on the type of transaction.
-
AID - Unique Agent code from partner system. Pre-requisite for allowing transaction from this AID is that it should be onboarded as agent in Yes Money portal.
Access Token ¶
This section groups Access Token specific API
-
Token Generation (Step1)
At the time user attempts to log on the application system, the login API is invoked to generate token.
-
Token Preserve for API calls (Step2)
As a result of API invocation, a token is generated which client needs to preserve that token.
-
Token Based access (Step3)
The end-user authentication successfully takes place only after token value is stored/passed in the header of Authorization variable.
HTTP Authentication HTTP based basic authentication need to integrate in order to retrieve access token. Here client id is used as username and client secret is used as password.Username: on email request Password: on email request
Access Token ¶
Access TokenPOST/epMoney/oauth/token?grant_type=client_credentials
Access Token in YesBank.
Response Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| access_token | Access token to be store at merchant end | Yes | |
| token_type | bearer | Access Token Type | Yes |
| expires_in | 59999 | Time in millisecond this access token will be expired | Yes |
| scope | Read | Scope of user | Yes |
Example URI
Headers
Content-Type: application/json
Type: Basic Auth,
Username: "on email request",
Password: "on email request"200Headers
Content-Type: application/jsonBody
{
"access_token": "XXXX-XXXX-XXXX-XXXX-XXXX",
"token_type": "bearer",
"expires_in": 59999,
"scope": "read write trust"
}Customer Management ¶
This section groups Customer Management specific API
Customer Registration Flow
-
Customer need to be validated if it exists in system or not by invoking customer search API epMoney/retvalcustomer/v1.
-
If customer does not exist then only invoke customer registration API
-
Else if DATA node is received in search customer response, this means the customer is registered at RKB 1.0 and the details will flow down from that system to yes money and customer will get automatically registered. In this case customer needs to be verified for OTP
-
If customer gets populated from RKB system, then the KYC status from RKB will flow down to yesmoney system. In case where customer status is received as KYC, no need to invoke manual or e-kyc apis
Non-KYC Registration
For non-kyc registration of customer, the API - Customer Registration with Beneficiary need to be invoked without passing the KYC_DETAILS node.
E-KYC Registration
-
Get RD Data Hash API need to be invoked before capturing the fingerprint.
-
Post fingerprint capture Get Adhar data need to be invoked. In response the customer details will be sent in response, if error in response, then retry the API for capturing fingerprint.
-
After successfully receiving, customer details from Get Adhar data, Customer Registration with Beneficiary need to be invoked with AADHAR_VERIFICATIONCODE received in Get Adhar data API.
-
On successful response from Customer registration with beneficiary API, customer limits will be upgraded to KYC limits
Manual KYC Registration
-
Customer registration with beneficiary API need to be invoked without passing KYC_DETAILS node
-
Once successful response from above API, manual KYC API need to be invoked. This will upload the data received as multipart type into the system
-
These customer details will then be approved by bank operations team. Partner need to ensure that the details of the customer and the KYC documents should match correctly, so as to avoid rejection of customer KYC by bank admin.
Customer Registration with Beneficiary ¶
Customer Registration with BeneficiaryPOST/epMoney/add-customer/v1.0
Note: For Non-KYC registration, the KYC_DETAILS node need not be sent in request.
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | Char | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | Numeric | Sender Mobile NO | Yes |
| KYC_DETAILS | ObjectNode | Only to be sent for KYC card issuance for EKYC only | Reqd for E -KYC only |
| KYC_TYPE | String | EKYC OR MANUAL | Reqd for E -KYC only |
| CUST_TYPE | String | KYC | Reqd for E -KYC only |
| AADHAR_VERIFICATI ONCODE | String | Value received in response of getAadharDataWithBiometric API | Reqd for E -KYC only |
| CUST_FNAME | String | Sender First Name | Yes |
| BENE_NAME | String | Name of the beneficiary | Yes |
| BANKIFSC_CODE | String | Bank IFSC Code | Yes |
| BANK_ACOUNTNO | String | Beneficiary bank account no | Yes |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123",
"CUST_LNAME": "Panchal",
"STATE": "GUJARAT",
"BENE_NAME": "Nehal",
"CUST_ADDRESS": "Prahladnagar",
"PINCODE": "382330",
"BANK_ACCOUNTNO": "XXXXXXXXXXXX",
"CUST_TITLE": "Miss",
"CITY": "Ahmedabad",
"CUST_EMAIL": "",
"CUST_FNAME": "Hiral",
"CUST_ALTMOBILENO": "",
"BANKIFSC_CODE": "BOBB0000000",
"BENE_MOBILENO": "",
"CUST_DOB": "10-12-1993",
"KYC_DETAILS": {
"KYC_TYPE": "EKYC",
"CUST_TYPE": "KYC",
"AADHAR_VERIFICATIONCODE": "XXXXXX"
}
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_ADD_CUSTOMER_BENEFICIARY_SUCCESS",
"RESP_MSG": "Customer and Beneficiary added successfully, OTP sent to registered xxxxxx6123",
"BENE_ID": 108,
"RESPONSE_CODE": 348
}Search Customer ¶
Search CustomerPOST/epMoney/retvalcustomer/v1.0
Authentication : Token based
Request Parameter Table :
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
Response
The customer kyc status and pan card status are available in the param SENDER_KYCSTATUS and PANCARD_STATUS. Following are the possible values
1.PENDING - Pending for upload
2.PROCESSING - Document uploaded and pending bank approval
3.VERIFIED - Approved by bank
4.REJECTED - Rejected by bank
KYC Rejected params - REJECT_REASON, REMARKS (KYC rejected info fields will be available only in case of KYC rejected by bank)
Pan Rejected Remarks - PANCARD_REJECT_REASON, PANCARD_REJET_REMARKS
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_CUST_VALIDATE_SUCCESS",
"RESP_MSG": "Customer validate successfully.",
"data": {
"SENDER_TITLE": "Mr",
"SEDNER_FNAME": "asddddd",
"SENDER_LNAME": "asdddddd",
"SENDER_CUSTTYPE": "NON-KYC",
"SEDNER_GENDER": "Male",
"SENDER_EMAIL": "",
"SENDER_MOBILENO": xxxxxx6123,
"SENDER_ALTMOBILENO": 0,
"SENDER_ADDRESS1": "asddddddd",
"SENDER_ADDRESS2": "",
"STATE": "GUJARAT",
"CITY": "Palanpur",
"PINCODE": "385001",
"SENDER_AVAILBAL": 25000,
"SENDER_MONTHLYBAL": 25000,
"SENDER_VERIFICATIONCODE": true,
"SENDER_KYCSTATUS": "REJECTED",
"SENDER_KYCTYPE": "MANUAL",
"SENDER_REGISTERDATE": "2018-02-09 12:33:21.0",
"SENDER_ACTIVATIONDATE": "2018-03-20 23:36:17.0",
"SENDER_DOB": "2000-02-08",
"PREPAID_INSTRUMENTFLAG": false,
"PANCARD_FLAG": false,
"PANCARD_NO": "",
"BENEFICIARY_DATA": [
{
"BENE_ID": 2310,
"BENE_MOBILENO": "null",
"BENE_NAME": "Test",
"BENE_NICKNAME": "",
"BENE_BANKNAME": "BANKOFBARODA",
"BANK_ACCOUNTNO": "xxxxxxxxxxxx",
"BANKIFSC_CODE": "BOBB0000000",
"BENE_OTP_VERIFIED": true,
"IS_BENEVERIFIED": false
}],
"CUSTDOC_REJECT_FLAG": false,
"REJECT_REASON": "Add proof Document not clear, Name miss match",
"REMARKS": "Testing",
"PANCARD_REJECT_REASON": "NA",
"PANCARD_REJET_REMARKS": "NA",
"PANCARD_STATUS": "NA"
}
}KYC Management ¶
Upload Pan Card API ¶
Upload Pan Card APIPOST/web-mpm/rest/customerpancardupload
-
Content Type : multipart/form-data
-
Parameter Name : pancardImagePath
-
Content Type : optional
-
Parameter Name : document
-
Value : (String) - Need to pass in body as JSON
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| DOCUMENT_FILE | Multipart | file | YES |
| DOCUMENT_TYPE | String | 199 - For ID proof | YES |
| DOCUMENT_NAME | String | Pan Card | YES |
| PROOF_NUMBER | String | Pan Number | YES |
| CUSTOMER_MOBILE | String | Mobile no. Of the customer | YES |
| CUSTOMER_NAME | String | Name of the customer as in Proof | YES |
| AID | String | Agent Code | YES |
-
In case duplicate document is found then the response received as {“status”: 999,“statusLine”: “Duplicate document found insystem”,“statusMessage”: “Duplicate document found in system”,“objectData”: null,“addMessage”: [ “Duplicate document found in system”],}
-
In case invalid document type is passed {“status”: 999,“statusLine”: “Invalid document type”,“statusMessage”: “Invalid document type.”,“objectData”: null,“addMessage”: [ “Invalid document type.”]}
Example URI
Headers
Content-Type: multipart/form-dataBody
{
"DOCUMENT_FILE": "pancardImagePath",
"DOCUMENT_TYPE": "199",
"DOCUMENT_NAME": "Pan Card",
"PROOF_NUMBER": "ABCDE1234D",
"CUSTOMER_MOBILE": "xxxxxx6123",
"CUSTOMER_NAME": "test",
"AID": "RS00789"
}200Headers
Content-Type: application/jsonBody
{
"status": 200,
"statusLine": null,
"statusMessage": "Document saved successfully",
"objectData": null,
"paging": null,
"addMessage": [
"",
null
]
}Manual KYC API ¶
Manual KYC APIPOST/web-mpm/rest/uploadCustomerKycDocumentData
Content Type : multipart/form-data
Header Parameters
1 identityImagePath : (multipart file type) - Need to pass as request header as multi part file
2 addressImagePath : (multipart file type) - Need to pass as request header as multi part file
Request Body
3 documents : (String) - Need to pass in body as JSON
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| documents | Array Node | Array node for types of documents (ID proof, address proof) | YES |
| documentFile | Multipart | file | YES |
| documentType | String | 198 - Address Proof 199 - Identity Proof Need to keep this value configurable for UAT & production |
YES |
| documentName | String | Document code that need to pass as mentioned in below table | YES |
| proofNumber | String | Proof number as on document | YES |
| CUSTOMER_MOBILE | String | Mobile no. Of the customer | YES |
| CUSTOMER_NAME | String | Name of the customer as in Proof | YES |
| Document Name | Document Type (ID/ Address) | Validations |
|---|---|---|
| Adhar Card | 198 - Address | Min:12,Max:12 |
| Voter Id Card | 198 - Address | Min:8,Max:11 |
| Ration Card | 198 - Address | Min:12,Max:12 |
| Passport | 198 - Address | Min:8,Max:9 |
| Driving License | 198 - Address | Min:7,Max:30 |
| Shop Electric Bill (not more than 2 months old) |
198 - Address | Min:4,Max:21 |
| Rent Agreement | 198 - Address | Min:2,Max:21 |
| Shop Landline Bill | 198 - Address | Min:6,Max:12 |
| Adhar Card | 199 - ID | Min:12,Max:12 |
| Voter Id Card | 199 - ID | Min:8,Max:11 |
| Passport | 199 - ID | Min:8,Max:9 |
| Driving License | 199 - ID | Min:7,Max:30 |
| Pan Card | 199 - ID | Min:10,Max:10 |
- In case invalid document type is passed {“status”: 999,“statusLine”: “Invalid document type”,“statusMessage”: “Invalid document type.”,“objectData”: null,“addMessage”: [ “Invalid document type.”]}
Example URI
Headers
Content-Type: multipart/form-dataBody
[
{
"documentFile": "identityImagePath",
"documentType": "199",
"documentName": "Pan Card",
"proofNumber": "ABCDE1234D",
"CUSTOMER_MOBILE": "4564565645",
"CUSTOMER_NAME": "test",
"AID": "RS00789",
"OP": "DMTNUR",
"ST": "REMDOMESTIC"
},
{
"documentFile": "addressImagePath",
"documentType": "198",
"documentName": "Adahar Card",
"proofNumber": "123456789012",
"CUSTOMER_MOBILE": "4564565645",
"CUSTOMER_NAME": "test",
"AID": "RS00789",
"OP": "DMTNUR",
"ST": "REMDOMESTIC"
}
]200Headers
Content-Type: application/jsonBody
{
"status": 200,
"statusLine": null,
"statusMessage": "Document saved successfully",
"objectData":"{"SENDER_KYCTYPE":"NON-KYC","SENDER_AVAILBAL":25000.0,"SENDER_KYCSTATUS":"PROCESSING"}",
"paging": null,
"addMessage": [
"",
null
],
}EKYC ¶
Get RD Data Hash ¶
Get RD Data HashPOST/epMoney/getRDDataHash/v1.0
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for wallet transactions | YES |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment | YES |
| ST | Char | Service type for DMT | YES |
| CUSTOMER_MOBILE | Numeric | Mobile No of customer being issued wallet | YES |
Response:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| wadh | String | Applicable only for morpho capture function | YES |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"CUSTOMER_MOBILE": "3761283512",
"AID": "RS00789"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_EKYC_GETRDDATAHASH_SUCCESS",
"RESP_MSG": "RD data hash fetch successfully.",
"DATA": {
"wadh": "+0njvZli4IkkbxG9yNKSWNMG7RNY6OhyWBUf/n5Dag4="
}
}GET Adhar Data ¶
GET Adhar DataPOST/epMoney/getAadharData/v1.0
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for wallet transactions | YES |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment | YES |
| ST | Char | Service type | YES |
| CUSTOMER_MOBILE | Numeric | Mobile No of customer being issued wallet | YES |
| CUSTOMER_AADHAR NUMBER | String | Adahr Number of cust | YES |
| DEVICE_FINGERDATA | String |
Response Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| DATA | ObjectNode | Adhar details | YES |
| ReqRefNum | Reference for e-kyc | Need to pass in kyc acknowledgement api | |
| AADHAR_VERIFICATI ONCODE | String | Need to pass in kyc acknowledgement api | YES |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"CUSTOMER_AADHARNUMBER": "XXXXXXXXX",
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"CUSTOMER_MOBILE": "xxxxxx6123",
"DEVICE_FINGERDATA": "1~RightThumb",
"DEVICE_TYPE": "1",
"DEVICE_TIMESTAMP": "",
"DEVICE_DATAXML": "xxxxxxxx",
"DEVICE_CERTEXPIRYDATE": "",
"DEVICE_SERIALNUMBER": "1738I062995",
"DEVICE_SESSIONKEY": "",
"DEVICE_HMACXML": "",
"DEVICE_VERSIONNUMBER": "",
"AID": "RS00789"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_EKYC_GETAADHAR_SUCCESS",
"RESP_MSG": "Aadhaar details fetch successfully.",
"DATA": {
"AadhaarName": "XXXXXXXX",
"AadhaarPhoto": "data:image/jpeg;base64,/xxxxxxx",
"City": "Ahmadabad",
"ContactPerson": "S/O Bhavsar Bipinbhai Harivadn",
"DOB": "13-12-1990",
"District": "Ahmadabad",
"Email": "-",
"Gender": "M",
"HouseNo": "-",
"LandMark": "B-1-4, om shanti nagar",
"Location": "vejalpur",
"Phone": "-",
"PinCode": "380051",
"PostOffice": "-",
"State": "Gujarat",
"Street": "-",
"SubDistrict": "-",
"AadhaarNo": "xxxxxxxxxx",
"AADHAR_VERIFICATIONCODE": "xxxxx",
"ReqRefNum": "yyyyyyyy"
}
}E-KYC Acknowledgement API ¶
E-KYC Acknowledgement APIPOST/epMoney/kycAcknowledgement/v1.0
Authentication : Token based
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"CUSTOMER_MOBILE": "xxxxxx6123",
"SENDER_KYCSTATUS": "VERIFIED",
"SENDER_KYCTYPE": "EKYC",
"EKYC_TERMS_CONDITION": true,
"AADHAR_DETAILS": {
"AADHAR_VERIFICATIONCODE": 155, //received in Get Adhar data api
"ReqRefNum": "797517" //received in Get Adhar data api
},
"AID": "RS00789",
"OP": "DMTNUR",
"ST": "REMDOMESTIC"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_KYC_ACKKNOWLEDGEMENT_SUCCESS",
"RESP_MSG": "KYC details : verified",
"DATA": {
"SENDER_CUSTTYPE": "KYC",
"SENDER_KYCTYPE": "EKYC",
"SENDER_AVAILBAL": 200000,
"SENDER_KYCSTATUS": "VERIFIED",
"SENDER_MOBILENO": 1111111113
}
}OTP Process ¶
This section OTP Management specific API
Generate OTP ¶
Generate OTPPOST/epMoney/generateotp/v1.0
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
| REQUEST_FOR | String | BENVERIFICATION-For Beneficiary Verification. CUSTLOGIN- For Customer login with OTP. BENDELETE- For Beneficiary Delete. CUSTREFUND- For Transaction Refund. |
Yes |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123",
"REQUEST_FOR": "BENVERIFICATION"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_GENERATE_OTPBENEVALIDATION_SUCCESS",
"RESP_MSG": "OTP sent to registered xxxxxx6123 for beneficiary verification",
"RESPONSE_CODE": 344
}Verify OTP ¶
Verify OTPPOST/epMoney/verifyotp/v1.0
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
| REQUEST_CODE | String | Request Code as in validate beneficiary response from previous API. | Yes |
| BENE_ID | String | Beneficiary Id in response. This need to be stored at partner end for further reference in other APIs. | Yes |
| OTP | Numeric | OTP from SMS | Yes |
| REQUEST_FOR | String | BENVERIFICATION-For Beneficiary Verification. CUSTLOGIN- For Customer login with OTP. CUSTVERIFICATION- Customer Verification for registration. |
Yes |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123",
"REQUEST_CODE": 341,
"BENE_ID": 106,
"OTP": "6955",
"REQUEST_FOR": "BENVERIFICATION"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_VERIFY_OTP_SUCCESS",
"RESP_MSG": "OTP verification successfully."
}Beneficiary Management ¶
This section Beneficiary Management API
Add Beneficiary ¶
Add BeneficiaryPOST/epMoney/add-beneficiary/v1.0
Add another beneficiary after sender has been registered
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"BANK_CITY": "MUMBAI",
"CUSTOMER_MOBILE": "xxxxxx6123",
"BENE_NAME": "Nehal",
"BANK_BRANCH": "BHANDUP",
"BANKIFSC_CODE": "BOBB0000000",
"BANK_ADDRESS": "XXXXXXXXXXXX",
"BANK_ACCOUNTNO": "XXXXXXXXXX142",
"BANK_STATE": "MAHARASHTRA",
"BENE_MOBILENO": ""
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_ADD_BENEFICIARY_SUCCESS",
"RESP_MSG": "Add beneficiary successfully, OTP sent to registered xxxxxx6123",
"BENE_ID": 107,
"RESPONSE_CODE": 343
}List Beneficiaries ¶
List BeneficiariesPOST/epMoney/list-beneficiary/v1.0
You can get all beneficiaries list.
This API need to be called only if required. Bene list is already available in Search Customer API. This need not be called always.
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_LIST_BENEFICIARY_SUCCESS",
"RESP_MSG": "Beneficiary fetch successfully.",
"DATA": {
"BENEFICIARY_DATA": [
{
"BENE_ID": 1384,
"BENE_MOBILENO": "xxxxxx6123",
"BENE_NAME": "Easy New",
"BENE_NICKNAME": "",
"BENE_BANKNAME": "ALLAHABAD BANK",
"BANK_ACCOUNTNO": "8989898989898900",
"BANKIFSC_CODE": "ALLA0210032",
"BENE_OTP_VERIFIED": false,
"IS_BENEVERIFIED": false,
"BENEVERIFIED_STATUS": ""
}
]
}
}Delete Beneficiary ¶
Delete BeneficiaryPOST/epMoney/delete-beneficiary/v1.0
Beneficiary Id to be passed as input from BENE_ID param in list beneficiary API.
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
| REQUEST_CODE | String | Request Code as in validate beneficiary response from previous API. | Yes |
| BENE_ID | String | Beneficiary Id in response. This need to be stored at partner end for further reference in other APIs. | Yes |
| OTP | Numeric | OTP from SMS | Yes |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123",
"BENE_ID": 107,
"REQUEST_CODE": 345,
"OTP": "4374"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_DELETE_BENEFICIARY_SUCCESS",
"RESP_MSG": "Beneficiary delete successfully."
}Beneficiary Name Update post Bene validate ¶
Beneficiary Name Update post Bene validatePOST/epMoney/update-beneficiary/v1.0
-
This API will update the beneficiary name to the one send in request. Also the request contains a IS_BENEVERIFIED flag, which indicates that Beneficiary verification has been processed successfully or not. The value will be returned as TRUE or FALSE in subsequent customer search API after the Beneficiary name update API is invoked.
-
This will enable partner to hide/show the Beneficiary validate option on front end.For marking the status as TRUE, the value that need to be passed in this API is 0
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| BENE_ID | String | Fetched in customer search or List bene response | Yes |
| CUSTOMER_MOBILE | String | Customer mobile | YES |
| IS_BENEVERIFIED | String | 0 - BENE VERIFIED TRUE 1 - BENE VERIFIED FALSE Stores the status as BENE VERIFIED TRUE in case 0 is passed, else status remains unchanged This parameter need not be passed when bene name is updated manually post the bene validation API | Optional |
| BENEVERIFIED_STATUS | String | Need to pass as SUCCESS, if the parameter exists in the request This parameter need not be passed when bene name is updated manually post the bene validation API | Optional |
| TXN_BENENAME | String | Bene name that is recived in Bene Validate API. Special characters need to be filtered out | YES |
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"BENE_ID": "16",
"CUSTOMER_MOBILE": "xxxxxx6123",
"IS_BENEVERIFIED": 0, //Optional
"BENEVERIFIED_STATUS": "SUCCESS", //Optional
"TXN_BENENAME": "sdfdsfsdf",
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "LM1443"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_UPDATE_BENEFICIARY_SUCCESS",
"RESP_MSG": "Update beneficiary successfully"
}Funds Transfer/Beneficiary Validate ¶
This section groups Funds Transfer/Beneficiary Validate specific API
Funds Transfer ¶
Funds TransferPOST/epMoney/cp/dmt/moneytransfer/v1.0
Authentication : Token based
-
Same API needs to be invoked for funds transfer and beneficiary validate functionality. The variation being only different values are required to be passed in parameters ST and TXN_AMOUNT.
-
Method: The request to be passed as name value pair
-
Body Content Type : application/x-www-form-urlencoded
-
Parameter Name : jsonData
-
Parameter Value : Request Body(mentioned below) in Json Format string
-
If Pan card limit is exceeded for KYC customer for a month I.e. amt transferred exceed 49999, then, refer the pan card error scenarios mentioned in response codes section.
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| HEADER PARAMS | |||
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| PAYABLE_AMOUNT | Double | Same as TXN_AMOUNT. | No |
| TXN_AMOUNT | Double | 1. Money Transfer Amount to be transferred - here the total transaction will get internally split into chunk of 5k, hence in response, an array of chunks will bereturned. The partner wallet will be debited by transferred amount + applicable charges. 2. Beneficiary Validate Here an amount of Re. 1 to be passed. Here a charge of 3 Rs will be levied and a total of Rs 4. will be deducted from partners wallet |
Yes |
| DATA PARAMS | |||
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
| ORDER_ID | String | 14 digit unique ref id | Yes |
| KEY_KYC_STATUS | String | KYC/NON-KYC, received in response of search customer response from the field SENDER_CUSTTYPE | Yes |
| BENE_BANKNAME | String | Bank name | Yes |
| TRANFER_TYPE | String | NEFT/IMPS | Yes |
| BENE_NAME | String | Beneficiary name | Yes |
| CN | String | Same as mobile number | Yes |
| BANKIFSC_CODE | String | IFSC code of the beneficiary bank | Yes |
| BANK_ACCOUNTNO | String | Beneficiary account no | Yes |
| BENE_MOBILENO | String | Beneficiary mobile | Yes |
Example URI
Headers
Content-Type: application/x-www-form-urlencoded
Authorization: bearer access_tokenBody
{
"HEADER": {
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"PAYABLE_AMOUNT": "100",
"TXN_AMOUNT": "100",
"AID": "RS00789"
},
"DATA": {
"CUSTOMER_MOBILE": "xxxxxx6123",
"ORDER_ID": 14523578963547,
"KEY_KYC_STATUS": "NON-KYC",
"BENE_BANKNAME": "ABHYUDAYA COOPERATIVE BANK LIMITED",
"TRANSFER_TYPE": "NEFT",
"BENE_NAME": "Jay",
"CN": "9662096123",
"BANKIFSC_CODE": "ABHY0065004",
"BANK_ACCOUNTNO": "555555555555",
"BENE_MOBILENO": "",
"BENE_ID": "549"
}
}302Headers
Content-Type: application/jsonBody
{
"TRANSACTIONN_FEE": 5,
"RESP_CODE": 302,
"RESPONSE": "PENDING",
"RESP_MSG": "Transaction Pending.",
"DATA": {
"TRANSACTION_DATE": "Mon April.02.2018 05:12:30 PM",
"CUSTOMER_REFERENCE_NO": "80534004868504",
"SENDER_AVAILBAL": 199900,
"TRANSACTION_DETAILS": [
{
"RESP_CODE": 302,
"RESPONSE": "PENDING",
"RESP_MSG": "Host Date and Branch Date should be same",
"INIT_PENDING": true,
"VERSION": "NA",
"UNIQUE_RESPONSENO": "NA",
"ATTEPMTNO": "NA",
"TRANSFER_TYPE": "NA",
"LOW_BALANCE_ALERT": "NA",
"STATUS_CODE": "NA",
"SUB_STATUS_CODE": "NA",
"BANK_REFERENCE_NO": "NA",
"EP_REFERENCE_NO": "EP899891",
"REQUEST_REFERENCE_NO": "N15226693436340",
"RESPONSE_REFERENCE_NO": 49302,
"TRANSFER_AMOUNT": 100,
"PAID_AMOUNT": 100,
"TXN_BENENAME": "NA"
}
],
"BENEFICIARY_DETAILS": {
"BENE_NAME": "Rish",
"BANK_ACCOUNTNO": "33333333331",
"BANKIFSC_CODE": "ABHY0065004",
"BENE_MMID": "",
"BENE_MOBILENO": "null",
"BENE_BANKNAME": "ABHYUDAYA COOPERATIVE BANK LIMITED"
},
"CUSTOMER_DETAILS": {
"CUST_NAME": "Rishabh Bhavsar",
"CUSTOMER_MOBILE": "xxxxxx6123",
"PANCARD_FLAG": true,
"PANCARD_NO": ""
}
}
}List Transaction History ¶
List Transaction HistoryPOST/epMoney/list-transaction/v1.0
You can get all Transaction History of cutomer.
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_TODT": "09-06-2017",
"TRANSACTION_FROMDT": "09-06-2017"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESPONSE": "EPMONEY_LIST_TRANSACTION_SUCCESS",
"RESP_MSG": "Transaction fetch successfully.",
"DATA": {
"TRANSACTION_DETAILS": [
{
"TXN_ID": 7220,
"EP_REFERENCE_NO": "EP556198",
"BANK_REFERENCE_NO": "",
"CUSTOMER_REFERENCE_NO": "80534004868564",
"BENE_MOBILENO": "",
"BENE_NAME": "Rish",
"BENE_ID": 2146,
"BENE_NICKNAME": "",
"BENE_BANKNAME": "ABHYUDAYA COOPERATIVE BANK LIMITED",
"BANK_ADDRESS": "CHETNA APARTMENTS, J.M.ROAD, BHANDUP, MUMBAI-400078",
"BANK_ACCOUNTNO": "33333333331",
"BANKIFSC_CODE": "ABHY0065004",
"BENE_CODE": "",
"BENE_STATUS": "ACTIVE",
"BENE_OTP_VERIFIED": true,
"PAID_AMOUNT": 100,
"TRANSFER_AMOUNT": 100,
"CHARGE_AMOUNT": 0,
"TRANSACTION_DATE": "2018-04-02 05:09:57",
"TRANSACTION_STATUS": "REFUNDED",
"TRANSACTION_STATUSMESSAGE": "IMPS is not enabled for the beneficiary IFSC: ABHY0065004",
"ORDER_ID": "I15226691975160",
"AID": "R101101107101010101",
"MID": "EP00009",
"CP": "JITPU3872",
"ST": "REMDOMESTIC",
"REINIT_TXN_ID": ""
},
{
"TXN_ID": 7223,
"EP_REFERENCE_NO": "EP899891",
"BANK_REFERENCE_NO": "",
"CUSTOMER_REFERENCE_NO": "80534004868504",
"BENE_MOBILENO": "",
"BENE_NAME": "Rish",
"BENE_ID": 2146,
"BENE_NICKNAME": "",
"BENE_BANKNAME": "ABHYUDAYA COOPERATIVE BANK LIMITED",
"BANK_ADDRESS": "CHETNA APARTMENTS, J.M.ROAD, BHANDUP, MUMBAI-400078",
"BANK_ACCOUNTNO": "33333333331",
"BANKIFSC_CODE": "ABHY0065004",
"BENE_CODE": "",
"BENE_STATUS": "ACTIVE",
"BENE_OTP_VERIFIED": true,
"PAID_AMOUNT": 100,
"TRANSFER_AMOUNT": 100,
"CHARGE_AMOUNT": 0,
"TRANSACTION_DATE": "2018-04-02 05:12:24",
"TRANSACTION_STATUS": "PENDING",
"TRANSACTION_STATUSMESSAGE": "Host Date and Branch Date should be same",
"ORDER_ID": "N15226693436340",
"AID": "R101101107101010101",
"MID": "EP00009",
"CP": "JITPU3872",
"ST": "REMDOMESTIC",
"REINIT_TXN_ID": ""
}
]
}
}Refund Transaction ¶
Refund TransactionPOST/epMoney/cp/refund-transaction/v1.0
This method need to be invoked in below scenarios
- In case when transaction history returns txn status as FAILED I.e. parameter “TRANSACTION_STATUS”: “FAILED”
- In case Status check API returns “RESP_CODE”: “200” and “TRANSACTION_STATUS”: “FAILED”
Authentication : Token based
-
Method: The request to be passed as name value pair
-
Body Content Type : application/x-www-form-urlencoded
-
Parameter Name : jsonData
-
Parameter Value : Request Body(mentioned below) in Json Format string
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| HEADER PARAMS | |||
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| DATA PARAMS | |||
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
| REQUEST_REFERENCE_NO | String | Unique reference number that was generated at the time of funds transfer API. | Yes |
| TRANSFER_AMOUNT | String | Amount that was transferred | Yes |
| PAID_AMOUNT | String | Amount including charges. | Yes |
| REQUEST_CODE | String | Request Code (You will get this in response of generate OTP API) | Yes |
| OTP | String | OTP from SMS | Yes |
| RESPONSE | String | REFUNDED (Pass this value as a string) | Yes |
Example URI
Headers
Content-Type: application/x-www-form-urlencoded
Authorization: bearer access_tokenBody
{
"HEADER": {
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789"
},
"DATA": {
"CUSTOMER_MOBILE": "XXXXXX6123",
"REQUEST_REFERENCE_NO": "N15223213286070",
"TRANSFER_AMOUNT": 100,
"PAID_AMOUNT": 100,
"RESPONSE": "REFUNDED",
"OTP": 6940,
"REQUEST_CODE": 10941
}
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 200,
"RESP_MSG": "Transaction Refund has been successfully processed.",
"RESPONSE": "EPMONEY_UPDATE_TRANSACTIONSTATUS_SUCCESS",
"DATA": {
"SENDER_AVAILBAL": 24990
}
}Status Check ¶
Status CheckPOST/epMoney/transaction-status/v1.0
Authentication : Token based
Request Parameter Table:
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction. | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment. | Yes |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | Yes |
| REQUEST_REFERENCE_NO | String | Unique reference number that was generated at the time of funds transfer API. | Yes |
Response 1
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| TRANSACTION_DATE | String | Date of the transaction | YES |
| TRANSFER_AMOUNT | Amount | Txn amount | YES |
| REQUEST_REFERENCE _NO | Date | Order ID | YES |
| CUSTOMER_MOBILE | String | Customer Mobile | YES |
| TRANSACTION_STATUS | String | Possible Values : SUCCESS PENDING (need to perform status check again after specific interval say 1 hr) FAILED (Avail for refund by invoking REFUND API) | YES |
| BANK_REFERENCE_NO | String | Will only come in case of SUCCESS | YES |
| TRANSACTION_STAT USMESSAGE | String | Status from bank | YES |
Response 213: In case txn not found in system, then following response will be received
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "9662096123",
"REQUEST_REFERENCE_NO": "1497012293295"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": "200",
"RESPONSE": "QUERY_SUCCESS",
"RESP_MSG": "Transaction status fetch successfully.",
"DATA": {
"TRANSACTION_DATE": "2018-01-16 11:51:56.0",
"TRANSFER_AMOUNT": 5000,
"BANK_REFERENCE_NO": "N016180009194788",
"REQUEST_REFERENCE_NO": "N15160837163610",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_STATUS": "SUCCESS",
"TRANSACTION_STATUSMESSAGE": "Funds sent to beneficiary bank, final status will beknown after 2 hours (NEFT/RTGS)"
}
}213Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 213,
"RESPONSE": "EPMONEY_INVALID_ORDER_ID",
"RESP_MSG": "Invalid orderId."
}Status Check on Master Order ID ¶
Status Check on Master Order IDPOST/epMoney/transaction-status-master/v1.0
Authentication : Token based
Request
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| OP | String | Operator code for DMT transaction | Yes |
| AID | String | BC-Agent ID , generated on partners system that is provided at the time of enrollment | YES |
| ST | String | Service type (REMDOMESTIC). Please operator list wise service type | Yes |
| CUSTOMER_MOBILE | String | Sender Mobile NO | YES |
| REQUEST_REFERENCE _NO | String | Unique reference number that was generated at the time of funds transfer API. | YES |
Response 1
| Parameter Name | Sample/Default Value | Description | Mandatory |
|---|---|---|---|
| TRANSFER_AMOUNT | Amount | Txn amount | YES |
| REQUEST_REFERENCE_NO | Date | Order ID | YES |
| CUSTOMER_MOBILE | String | Customer Mobile | YES |
| TRANSACTION_STAT US | String | Possible Values : SUCCESS PENDING (need to perform status check again after specific interval say 1 hr) FAILED (Avail for refund by invoking REFUND API) | YES |
| BANK_REFERENCE_NO | String | Will only come in case of SUCCESS | YES |
| TRANSACTION_STAT USMESSAGE | String | Status from bank | YES |
Response Code : 213 In case txn not found in system, then following response will be received,In this case amount debited prior to the transaction will automatically get credited to the partner. No API based refund need to be invoked
Example URI
Headers
Content-Type: application/json
Authorization: bearer access_tokenBody
{
"OP": "DMTNUR",
"ST": "REMDOMESTIC",
"AID": "RS00789",
"CUSTOMER_MOBILE": "xxxxxx6123",
"REQUEST_REFERENCE_NO": "I1514872209156"
}200Headers
Content-Type: application/jsonBody
{
"RESP_CODE": "200",
"RESPONSE": "QUERY_SUCCESS",
"RESP_MSG": "",
"DATA": [
{
"TRANSACTION_DATE": "2018-01-02 11:20:09.0",
"TRANSFER_AMOUNT": 5000,
"BANK_REFERENCE_NO": null,
"REQUEST_REFERENCE_NO": "I15148722091560",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_STATUSMESSGAE": “PENDING”,
"TRANSACTION_STATUS": "PENDING"
},
{
"TRANSACTION_DATE": "2018-01-02 11:20:09.0",
"TRANSFER_AMOUNT": 5000,
"BANK_REFERENCE_NO": null,
"REQUEST_REFERENCE_NO": "I15148722091561",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_STATUSMESSGAE": “Funds sent to beneficiary bank, final
status will be known after 2 hours (NEFT/RTGS)”,
"TRANSACTION_STATUS": "FAILED"
},
{
"TRANSACTION_DATE": "2018-01-02 11:20:09.0",
"TRANSFER_AMOUNT": 5000,
"BANK_REFERENCE_NO": null,
"REQUEST_REFERENCE_NO": "I15148722091562",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_STATUSMESSGAE": “Funds sent to beneficiary bank, final
status will be known after 2 hours (NEFT/RTGS)”,
"TRANSACTION_STATUS": "PENDING"
},
{
"TRANSACTION_DATE": "2018-01-02 11:20:09.0",
"TRANSFER_AMOUNT": 5000,
"BANK_REFERENCE_NO": null,
"REQUEST_REFERENCE_NO": "I15148722091563",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_STATUSMESSGAE": “Either customer does not exist or
Customer/Account combination is invalid or Customer/Account Relationship
is invalid”,
"TRANSACTION_STATUS": "PENDING"
},
{
"TRANSACTION_DATE": "2018-01-02 11:20:09.0",
"TRANSFER_AMOUNT": 5000,
"BANK_REFERENCE_NO": null,
"REQUEST_REFERENCE_NO": "I15148722091564",
"CUSTOMER_MOBILE": "xxxxxx6123",
"TRANSACTION_STATUSMESSGAE": “Funds sent to beneficiary bank, final
status will be known after 2 hours (NEFT/RTGS)”,
"TRANSACTION_STATUS": "FAILED"
}
]
}213Headers
Content-Type: application/jsonBody
{
"RESP_CODE": 213,
"RESPONSE": "EPMONEY_INVALID_ORDER_ID",
"RESP_MSG": "Invalid orderId."
}Callback ¶
Call Back Implementation in status check
Partner will get a call back on their server on status change at Yes Money system. Partner need to share the URL of their system. The call back will be received on the same URL.
Authentication : None
HTTP POST URL :
<Partner-URL>
- Request (application/json)
{
"TRANSACTION_DATE": "2017-12-21 17:01:03.0",
"TRANSFER_AMOUNT": "1.0",
"TRANSACTION_STATUSMESSGAE": "Transaction successful",
"TRANSACTION_STATUS": "SUCCESS",
"BANK_REFERENCE_NO": "",
"REQUEST_REFERENCE_NO": "I1523419754274133860",
"CUSTOMER_MOBILE": "xxxxxx6123"
}
Transaction Status Code ¶
Transaction/Status check Response codes
FT API Response - TRANSACTION_DETAILS Node
| RESP_CODE | RESPONSE | RESP_MSG | Remarks by EP |
|---|---|---|---|
| 300 | SUCCESS | Transaction successful | Confirmed success |
| 350 | FAILED | Transaction Failed | Confirmed failure - Need to avail for refund in case of ST = REMDOMESTIC (Auto Refund) |
| 302 | PENDING | Transaction Pending | Unknown state - Need to do a status check after 15 min of txn |
FT API Response - Auto Refund in below cases
| Response Code | Auto Refund in below cases |
|---|---|
| 420 | Internal Validation error (all cases) |
| 350 | Transaction failed |
| 744,991 | Required parameter not found in request |
| 650 | Agent deactivated |
| 653 | Threshold exceeded |
| 660 | Commercials not defined for agent |
| 656 | Account does not exist |
| 755 | Duplicate Order Id |
| 420 | IMPS mode is temporarily down |
Status check API Response - TRANSACTION_STATUS inside DATA node
| Parameter | Value | Remarks by EP |
|---|---|---|
| TRANSACTION_STATUS | FAILED | Need to avail for Refund by calling refund API |
| TRANSACTION_STATUS | PENDING | Unknown state - Need to do a status check after 15 min of txn |
| TRANSACTION_STATUS | REFUNDED | Already Refunded - No action required henceforth |
| TRANSACTION_STATUS | SUCCESS | No action required henceforth |
| TRANSACTION_STATUS | DECLINED | Already Refunded(In Channel Patner Wallet) - Need to refund to your agents |
Generic Response Codes ¶
-
Below are the list of response codes, response and message. Usually the response can be received as {“RESP_CODE”:“755”,“RESPONSE”:“DUPLICATE_ORDER_ID”,“RESP_MSG”:“Duplicate reference no. passed (Level 3)(755)”}
-
The RESPONSE parameter is always unique, hence a combination of RESP_CODE AND RESPONSE will always be unique, hence if specific messages need to be configured at partners end then the RESPONSE parameter should be considered.
| RESP_CODE | RESPONSE Message | Response |
|---|---|---|
| 206 | Request failed | REQ_FAILED |
| 203 | Invalid Request | INVALID_JSON_FORMAT |
| 204 | Configuration Error. Please contact to administrator | CONFIGURATION_ERROR |
| 205 | Invalid request for value | INVALID_REQUESTFOR |
| 206 | Duplicate order id, Please try again | ORDERID_DUPLICATE |
| 207 | Invalid transfer type (NEFT / IMPS) | INVALID_TRANSFERTYPE |
| 420 | Transaction amount is exceed than an available limit. Your available limit is $AVAILLIMIT | EXCEED_TXNAMOUNT |
| 200 | Transaction status fetch successfully | EPMONEY_TRANS_QUERY_SUCCESS |
| 420 | Transaction status fetch failed | EPMONEY_TRANS_QUERY_FAILED |
| 200 | OTP sent to registered $MOBILENUMBER for customer verification | EPMONEY_GENERATE_OTPCUSTVERIFIC |
| 200 | OTP sent to registered $MOBILENUMBER for delete beneficiary | EPMONEY_GENERATE_OTPDELETEBENE |
| 200 | OTP sent to registered $MOBILENUMBER for beneficiary verification | EPMONEY_GENERATE_OTPBENEVALIDA |
| 200 | OTP sent to registered $MOBILENUMBER for customer login | EPMONEY_GENERATE_OTPCUSTLOGIN_S |
| 200 | OTP sent to registered $MOBILENUMBER for customer refund | EPMONEY_GENERATE_OTPCUSTREFUND |
| 420 | OTP generate failed, Please resend OTP | EPMONEY_GENERATE_OTP_FAIL |
| 420 | OTP expired | EPMONEY_OTP_EXPIRED |
| 200 | OTP verification successfully | EPMONEY_VERIFY_OTP_SUCCESS |
| 420 | Incorrect OTP, Please try again. | EPMONEY_VERIFY_OTP_FAIL |
| 200 | Customer validate successfully. | EPMONEY_CUST_VALIDATE_SUCCESS |
| 420 | Customer validate failed | EPMONEY_CUST_VALIDATE_FAIL |
| 500 | Customer not exist | EPMONEY_CUST_NOT_EXIST |
| 700 | Customer not verified | EPMONEY_CUST_NOT_VERIFIED |
| 420 | Customer service has been blocked | EPMONEY_CUST_SERVICE_BLOCKED |
| 200 | Add beneficiary successfully, OTP sent to registered $MOBILENUMBER | EPMONEY_ADD_BENEFICIARY_SUCCESS |
| 420 | Add beneficiary failed. | EPMONEY_ADD_BENEFICIARY_FAIL |
| 420 | Beneficiary already added | “EPMONEY_ADD_BENEFICIARY_DUPLICATE” |
| 420 | Beneficiary registration limit is $LIMIT,Please delete beneficiary and try again. | EPMONEY_ADD_BENEFICIARY_EXCEED |
| 200 | Beneficiary fetch successfully. | EPMONEY_LIST_BENEFICIARY_SUCCESS |
| 420 | No beneficiary found. | EPMONEY_LIST_BENEFICIARY_FAILED |
| 420 | Beneficiary delete failed. | “EPMONEY_DELETE_BENEFICIARY_FAILED” |
| 200 | Beneficiary delete successfully. | “EPMONEY_DELETE_BENEFICIARY_SUCCESS” |
| 420 | Invalid beneficiary. | EPMONEY_INVALID_BENEFICIARY |
| 200 | Transaction fetch successfully. | EPMONEY_LIST_TRANSACTION_SUCCESS |
| 200 | Transaction status updated successfully. | “EPMONEY_UPDATE_TRANSACTIONSTATUS_SUCCESS” |
| 200 | Transaction can not be refunded. | “EPMONEY_UPDATE_TRANSACTIONSTATUS_FAILED” |
| 420 | No transaction found. | EPMONEY_LIST_TRANSACTION_FAILED |
| 200 | PIN sent on registered mobile number. | EPMONEY_GENERATE_PIN_SUCCESS |
| 200 | PIN changed successfully. | EPMONEY_CHANGE_PIN_SUCCESS |
| 420 | PIN change failed. | EPMONEY_CHANGE_PIN_FAILED |
| 420 | Old PIN is incorrect. | EPMONEY_OLD_PIN_INCORRECT |
| 200 | Customer add successfully, PIN sent to registered mobile number | EPMONEY_CUST_ADD_SUCCESSWITHPIN |
| 200 | Customer add successfully,OTP sent to registered mobile number. | “EPMONEY_CUST_ADD_SUCCESSWITHOTP” |
| 420 | Customer registration failed | EPMONEY_CUST_ADD_FAIL |
| 420 | Customer pin invalid. | EPMONEY_CUST_PIN_INVALID |
| 990 | Required parameter not found or empty in request. | REQUIRED_PARAMETER_NOT_FOUND |
| 300 | Transaction successful | SUCCESS |
| 633 | Funds sent to beneficiary bank, final status will be known after 2 hours (NEFT/RTGS) | “SENT_TO_BENEFICIARY Need to store this txn as Pending” |
| 634 | The transaction will be sent to the beneficiary bank the next working day, (NEFT/RTGS) | “SCHEDULED_FOR_NEXT_WORKDAY Need to store this txn as Pending” |
| 635 | The transaction is not yet processed, can pass or fail, status will be known after 30 mins | “IN_PROCESS Need to store this txn as Pending” |
| 636 | Transaction accepted by RBI but beneficiary bank rejected it | “RETURNED_FROM_BENEFICIARY Need to initiate for refund” |
| 302 | Transaction Pending. | PENDING |
| 301 | Partial Transaction Successful. | PARTIAL |
| 350 | Transaction failed. | FAILED |
| 755 | Duplicate reference no. passed (Level 3)(755) | DUPLICATE_ORDER_ID |
| 650 | Agent deactivated. (650) | DEACTIVATE |
| 999 | Server Error. Please contact System Administration (Level 3) (999) | SERVER_ERROR |
| 658 | Entered IFSC not found. (658) | IFSC_NOT_FOUND |
| 799 | Invalid Input Format (Level 3) (799)/ System not responding | INVALID_JSON_FORMAT |
| 111 | Please try after 15 minutes (Level 3) (111) | “PLEASE_TRY_AFTER_SPECIFIC_INTERVAL” |
| 643 | Refund could not be processed with the requested agent code,as the transaction was not processed with this agent code (Level 3) (643) | INVALID_AGENT_CLAIMING_REFUND |
| 642 | Refund will not be processed for Beneficiary validation transaction (Level 3) (642) | “BENEVALIDATE_REFUND_NOT_ALLOWED” |
| 112 | Transaction has already been refunded (Level 3) (112) | TXN_ALREADY_REFUNDED |
| 999 | Duplicate document found in system | Duplicate document found insystem |
| 420 | Customer details can not be updated as customer is KYC | EPMONEY_CUST_UPDATE_ALREADYKYC |
| 999 | Invalid document type. | Invalid document type. |
| 420 | PAN Card has been rejected, Kindly submit PAN Card (420 | REJECTED |
| 420 | Your transaction amount limit exceed. Kindly upload PAN card (Level 3) (420) | PANCARD_PROCESSING |
| 420 | Customer service has been blocked (Level 3) (420) | CUSTOMER_BLOCKED |
| 991 | Required parameter not found or empty in request | REQUIRED_PARAMETER_NOT_EMPTY |
| 520 | “Beneficiary can not delete as transactions inpending / failed status” | “EPMONEY_BENEFICIARY_REFUND_PENDING” |
| 213 | Invalid orderId. | EPMONEY_INVALID_ORDER_ID |
| 641 | “The transaction is not eligible for refund. Please check the transaction status” | NOT_ELIGIBLE_FOR_REFUND |
Validations to be implemented by Partners ¶
Validations to be implemented by Partners
- Per transaction limit check on customer KYC status. Currently it is 25 k for non-kyc and 2L for KYC customers. If txn amount exceeds 25k for non kyc then partner system should not allow this transaction. The check related to how much limit has been consumed for the customer is already there at yesmoney.
- For ST = BENEVALIDATE - Txn amount not to exceed 1 Rs
- For ST = REMDOMESTIC - Txn amount should not be < 100
- For refund API same AID needs to be passed that was originally passed during transaction
- Following validations to be implemented as below:
a) Bene Name > 5 and < 35 characters
b) In bene name Special characters not allowed
c) Account number >5 and < 35 characters - There is no OTP base refund required in BENEVALIDATE.
- If Beneficiary is not OTP verifyied then it can not able to do a transaction.
- For BENEVALIDATE only IMPS trasction is allowed.
- If a customer has done a transaction more than 49,999 and a customer is not uploading Pan Card in KYC documents than upload Pan card popup need to be enabled.
- In Manual KYC APIs, all identity proof documents have min and max length Validations.