JioMoney | API Documentation

Getting Started

Introduction

Welcome to the JioMoney Developers Guide. With our range of developer friendly APIs and easy to integrate code kits, you can start accepting payments in no time.

Currently, we offer three products to help you accept digital payments on your website.

• JioMoney Wallet

In this mode, the customer first selects ‘Pay using JioMoney’ option on the merchant’s website. On selecting, the customer is redirected from merchant’s website to JioMoney’s website where he/she can use JioMoney wallet balance to complete the payment. In case of insufficient balance, the customer can load the balance and complete the transaction in the same payment flow.

Continue reading this document to understand JioMoney Wallet integration process.

• JioMoney Payment Gateway

JioMoney will help you in setting up the payment page. The customer is redirected from your website to JioMoney payment page where he/she can complete the transaction by choosing provided payment options such as include debit/credit cards, net banking, other wallets and UPI.

• JioMoney Payment Gateway for PCI-DSS compliant Merchants

Merchants need to collect the customer card details on their own website and post them to JioMoney. JioMoney processes the transaction at the backend. The customer would not be stopped at JioMoney payment page. Only PCI-DSS compliant merchants are applicable to avail this product.

Onboarding

Before you start integrating JioMoney wallet on your website, you should have:

  1. Completed the signup process on our merchant portal
  2. Received clientID, merchantID and Checksum key from our sales team

Payment Flow

On the payment checkout page of the merchant’s website, the merchant collects information about the purchase of the customer. The merchant then redirects the customer to the JioMoney wallet page by making an HTTPS POST request to our server.

In the merchant initiated POST REQUEST, one of the mandatory parameters is named as checksum. The details of checksum generation are given here. Checksum helps prevent man-in-the-middle attack when information flows from your server to ours.

When the transaction POST REQUEST hits the JioMoney server, a new transaction entry is created in the JioMoney Database and the customer would be re-directed to JioMoney’s payment page. JioMoney processes the customer’s payment and provides a POST RESPONSE to the merchant conveying the transaction status and details.

Web Integration

Checkout Button

Sample

<form name="payment" method="POST" class =”JM_Wallet_Button” action="https://testpg.rpay.co.in/reliance-webpay/v1.0 /jiopayments"> <!-- General Info --> <input type='hidden' name="version" value="2.0"/> <input type='hidden' name="merchantid" value="100001000014146"/> <input type='hidden' name="clientid" value="10000002"/> <input type='hidden' name="merchantname" value="TEST"/> <input type='hidden' name="channel" value="WEB"/> <input type='hidden' name="returl" value="http://61.16.175.3:8089/misimul/purchaseResult.jsp"/> <input type='hidden' name="checksum" value="748db6f87766ce9f8aef0fe740c15 ce658e614410f767a8b68a3e658f0bf05e8"/> <input type='hidden' name="token" value=""/> <!-- Transaction Info --> <input type='hidden' name="transaction.extref" value="P8564G73I19I3P6"/> <input type='hidden' name="transaction.timestamp" value="20170203173956"/> <input type='hidden' name="transaction.txntype" value="PURCHASE"/> <input type='hidden' name="transaction.amount" value="1.00"/> <input type='hidden' name="transaction.currency" value="INR"/> <input type='hidden' name="subscriber.mobilenumber" value="7738221020"/> <input type='hidden' name="subscriber.customerid" value="7738221020"/> <input type='hidden' name="productdescription" value="Product1"/> <input type='hidden' name="udf1" value="u1"/> <input type='hidden' name="udf2" value="u2"/> <input type='hidden' name="udf3" value="u3"/> <input type='hidden' name="udf4" value="u4"/> <input type='hidden' name="udf5" value="u5"/> <input type="submit" value="Jio Pay" /> </form>

The simplest way to accept payments is by embedding our checkout button on your website. Edit the General and Transactional level parameters to initiate the transaction. Refer our Purchase API to know more about the individual parameters. You can customize the button by writing rules against .JM_Wallet_Button .

Once, you embed the checkout button, you will have to generate the checksum in order to post along with the request. To generate the checksum, the request data is arranged in a pipe separated format which is then passed to HMAC-SHA256 along with the provided checksum key.

The response message is sent to the returl specified in the request message. The response is a browser and also a server to server response. The response fields are pipe delimited with the checksum being the last element. The checksum (HMAC-SHA256) is computed for all fields delimited by pipe (|) and appended to the end.

Sample Checksum Format

<input type='hidden' name="checksum" value="748db6f87766ce9f8aef0fe740c15ce658e614410f767a8b68a3e6 58f0bf05e8"/>

Integration Kits

JioMoney provides quick-integration kits in all major languages. Please refer following resources based on your tech stack.

JioMoney Wallet Integation PHP Kit

JioMoney Wallet Integation JAVA Kit

JioMoney Wallet Integation .NET Kit

APIs

Payment APIs

Payment APIs consists of two APIs :

I) Purchase API to make payment requests to JioMoney Server .

II) Refund API to make refund requests for completed purchase transactions .

PURCHASE

This API allows merchant to post payment requests to JioMoney server.

Test URL

https://testpg.rpay.co.in/reliance-webpay/v1.0/jiopayments

Production URL

https://pp2pay.jiomoney.com/reliance-webpay/v1.0/jiopayments

Checksum format

ClientID|Transaction Amount|Order ID|Channel|MerchantID|Token|Return URL|Timestamp|PURCHASE |Mobile Number|Product Description|UDF1| UDF2| UDF3| UDF4| UDF5|Standing Instruction Flag|

If you are not passing any of the above parameters, you should leave those fields empty.

Request Parameters

Version
Mandatory
Version number should be 2.0

Datatype: Numeric

Clientid
Mandatory
8 digit ClientID key as provided you by JioMoney team -Sample Value: 1000XXXXX

Datatype: Numeric

Length: 8

Merchantid
Mandatory
15 digit MerchantID key as provided by Jio Money team -Sample Value: 100000005555501

Datatype: Numeric

Length: 15

Channel
Mandatory
WEB for Desktop websites

MOBILE for Mobile websites

Token
Mandatory , default is blank
Token field should be kept empty in the request as well as in the checksum calculation
Returl
Mandatory
Return response URL where the merchant wants to receive the response from JioMoney

Datatype: URL

Checksum
Mandatory
Checksum of the specific fields combined. Please see Checksum Generation section for the elements to be included for computing checksum.

Datatype: Alphanumeric and special characters

transaction.extref
Mandatory
Order ID or Unique transaction Id for tracking purposes to be provided by the merchant

Datatype: Alphanumeric

Max String length: 20

transaction.timestamp
Mandatory
14 digit timestamp at which the transaction is originated (format: yyyyMMddHHmmss)
transaction.amount
Mandatory
Value/Amount of the transaction should be in two decimals

Datatype: Numeric and special char

Sample Value: 12.50 or 1000.00

Min String length: 4

Max String length: 112

transaction.txntype
Mandatory
The value of this field should be : PURCHASE
transaction.currency
Mandatory
Default INR.

subscriber.mobilenumber

Mandatory
Mobile number of the customer

Sample Value: +919812345678

Max String length: 13

subscriber.customername

Mandatory
Name of the Customer. It gets pre-filled in the signup form

Sample Value: James Anthony

Max String length: 50

subscriber.email
Optional
Email of the customer

Datatype: Alphanumeric and special characters

Max String length: 64

subscriber.addline1
Optional
Address Line1 of the customer.

Datatype: Alphanumeric and special characters

Max String length: 35

subscriber.addline2
Optional
Address Line2 of the customer.

Datatype: Alphanumeric and special characters

Max String length: 35

subscriber.city
Optional
City.

Datatype: Alpha

Max String length: 40

subscriber.state
Optional
State

Datatype: Alpha

Max String length: 20

subscriber.zipcode
Optional
Postal Code

Datatype: Numeric

Max length: 10

cartItems [0].sno
Optional
Item Number

Any value from 0-9

cartItems [0].description
Optional
Name or Description of the item purchased

Max length: 45

cartItems [0].cost
Optional
Cost of the item in INR

Sample Value: 12.50 or 1000.00

Min length: 4

Max length: 12

cartItems [0].quantity
Optional
Item quantity.
globalnote
Optional
Global note details

Sample Value: 10% CASHBACK ON HDFC NB

Max String length: 90

Global Note will be displayed on the payment gateway

productdescription
Optional
Description about the product

Max String length: 45

UDF1

UDF2

UDF3

UDF4

UDF5

Optional
Additional parameters apart from those in request parameters can be passed in udf fields. For example Insurance company will pass policy number. Toll plaza will pass vehicle number etc. if udf fields are part of the request then same will echoed in the response.

(characters more than max limit will get truncated)

Max String length: 20 for udf1 to udf4

Max String length: 100 for udf5

Response checksum

The response message is sent to the returl specified in the request message. The response is a browser response and will be posted as a key-value pair and key name is response. The response fields are pipe delimited with the checksum being the last element. The checksum (HMAC-SHA256) is computed for all fields delimited by pipe (|) and appended to the end.

Response checksum

ErrorCode|ClientId|MerchantId|CustomerId|MerchantTxnRefNum |JioTxnRefNum|TxnAmount|Status|ResponseMsg|JioTxnTimeStamp |CardNumber|TxnType|CardType|subscriber.mobileno| productdescription|UDF1|UDF2|UDF3|UDF4|UDF5|CheckSums

Response Parameters

ErrorCode
000 if successful, otherwise the response code will be as returned by the processor.

Datatype: Numeric

Clientid
As in the input

Datatype: Numeric

Merchantid
As in the input

Datatype: Numeric

CustomerId
As in the input

Datatype: Numeric

TransactionRefNum
Transaction.extref from the input(MerchantTxnRefNum)

Datatype: AlphaNumeric

JioTxnRefNum
Provided by JioMoney

Datatype: AlphaNumeric

TxnAmount
As in the input

Datatype: Numeric

Status
If a processing error occurred
ResponseMsg
If ErrorCode is not empty
JioTxnTimeStamp
Transaction time stamp recorded at our servers (format:yyyyMMddHHmmss) .
CardNumber
Last four digits are visible and the remaining are XXXX

Datatype: Numeric

.
TxnType
DC/CC/NB/JM

DC: Debit Card

CC: Credit Card

NB: Net Banking

JM: JIoMoney

CardType
VISA/MASTER

Datatype: Alpha

subscriber.mobileno
As in the input

Datatype: Numeric

productdescription
As in the input

Datatype: Alpha

UDF1
As in the input

Datatype: AlphaNumeric

UDF2
As in the input

Datatype: AlphaNumeric

UDF3
As in the input

Datatype: AlphaNumeric

UDF4
As in the input

Datatype: AlphaNumeric

UDF5
As in the input

Datatype: AlphaNumeric

CheckSum
HMAC-SHA256 checksum using response fields specified in Checksum generation Section

Datatype: AlphaNumeric

Error Codes

000
Approved
100
Mandatory Parameter Missing
101
Your Transaction cannot be processed
102
Incorrect/Invalid Input Parameters
103
Transaction.Extref Is Not Valid
104
Transaction.Amount Is Not Valid
105
Duplicate Transaction
110
Not Authorised By User
120
Unable To Process The Request. Please Try Again After Some Time!!! .
121
Merchant Is Unregistered .
122
Not Opted For JioMoney API Based Payment
500
Failed
501
Issuer Declined

REFUND

Refund API allows merchants to process refund of payments back to the customer.

Test URL

https://testpgpay.jiomoney.com/reliance-webpay/jiorefund

Production URL

https://pp2pay.jiomoney.com/reliance-webpay/jiorefund

Checksum format

merchant_Id|api_name|timestamp|tran_ref_no|txn_amount| org_jm_tran_ref_no|org_txn_timestamp|additional_info

Sample Request { JSON } :

{
"request":{
"request_header":{
"api_name":"REFUND",
"version":"2.0",
"timestamp":"20170203190725"
},
"payload_data":{
"merchant_id":"100001000014146",
"tran_ref_no":"N0TSPHAB2S2EKLA",
"txn_amount":"1.00",
"mobile_no":"7738221020",
"org_jm_tran_ref_no":"901033346379",
"org_txn_timestamp":"20170203174356",
"additional_info":"NA"
},
"checksum":"2dd8ae1fc545885d6d7fd33477b249a8e6a8e098409bdca8e76e683a512ba6ab"
}
}

Sample Response { JSON }:

{
"response":{
"response_header":{
"api_name":"REFUND",
"version":"2.0",
"api_status":"1",
"api_msg":"Approved",
"timestamp":"20170203194051"
},
"payload_data":{
"merchant_id":"100001000014146",
"tran_ref_no":"N0TSPHAB2S2EKLA",
"jm_tran_ref_no":"901033346379",
"txn_amount":"1.00",
"txn_status":"SUCCESS",
"error_code":"000"
},
"checksum":"bbfc34a656334dd8e2a79db0a619729b6c1372820ebd96b2e58a5adc0ec2903f"
}
}


Request Parameters

api_name
Mandatory
Name of the API : REFUND in this case

Max length :16

Datatype: Alpha

Timestamp
Mandatory
Time at which the transaction is originated in yyyyMMddHHmmss format

Max length:29

Datatype: Numeric

Version
Mandatory
Version number that needs to be part of the request 2.0 in this case

Min length:3

Max length:7

Datatype: Alphanumeric and special char

merchant_id
Mandatory
15 digit Merchant ID given by Reliance JioMoney

Datatype: Numeric

tran_ref_no
Mandatory
Unique transaction ref number provided by the merchant to uniquely identify the refund transaction.

Min length : 1

Max length:20

Datatype: Alphanumeric

txn_amount
Mandatory
Refund amount. Eg: 12.50 or 1000.00

Min length:4

Max length:13

Datatype: Numeric and special char (.)

org_jm_tran_ref_no
Mandatory
Original purchase transaction ref number received by the merchant from JioMoney in Purchase response.

Min length:12

Max length:20

Datatype: Alphanumeric

org_txn_timestamp
Mandatory
Original purchase transaction timestamp received by the merchant from JioMoney in Purchase response.

Max length: 29

Datatype: Alphanumeric

additional_info
Mandatory
Value should be passed as NA

Datatype: Alphanumeric

Checksum
Mandatory
Checksum value computed from request parameters

Datatype: Alphanumeric

Response checksum format

merchant_Id|api_name|timestamp|tran_ref_no|jm_tran_ref_no|txn_amount|txn_status|error_code

Response Parameters

api_name
REFUND

Datatype: Alpha

api_status
1=Success/ 0= Failed

Datatype: Numeric

api_msg
JioMoney Payment

Datatype: Alpha

version
As in the input

Datatype: Numeric

timestamp
yyyyMMddHHmmss format

Datatype: Numeric

merchant_id
As in the input

Datatype: Numeric

tran_ref_no
As passed originally

Datatype: Alphanumeric

txn_amount
As in the input

Datatype: Numeric

jm_tran_ref_no
As passed originally

Datatype: Alphanumeric

txn_status
SUCCESS/FAILED

Datatype: Alpha

error_code
000 for success and for other error codes please refer the error code section.

Datatype: Numeric

mobile_no
As in the input

Datatype: Numeric

checksum
Checksum value computed from response parameters

Datatype: Alphanumeric

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date

Non Payment APIs

All JioMoney Non Payment APIs requires below headers.

  1. Request-Type - HTTP POST
  2. Content-Type - application/xml for XML or application/json for JSON.
  3. Accept - application/xml for XML or application/json for JSON.
  4. APIVer - 3.0

CHECKPAYMENTSTATUS

This API is to fetch status of a transaction using merchant reference number. This API needs to be called for all the transactions for which you don’t get response from JioMoney. Sometimes, response from JioMoney doesn’t reach you due to network connectivity issues. It is recommended to call this API every 30 min at least 3 times after initiating a transaction until you get final response from JioMoney. Time frame for this API is 45 days if you passing txntimestamp parameter.

Test URL

https://testbill.rpay.co.in:8443/Services/TransactionInquiry

Production URL

https://pp2bill.jiomoney.com:8443/Services/TransactionInquiry

Checksum Format

CHECKPAYMENTSTATUS|timestamp|mid

Sample Request { JSON } :

{
"request":{
"request_header":{
"request_id":"c4ea2b28-f349-43df-a852-d73a44e14961",
"api_name":"CHECKPAYMENTSTATUS",
"timestamp":"20170627120657"
},
"payload_data":{
"mid":"100001000014146",
"tran_details":{
"tran_ref_no":[
"XFKRTJUZ4VC1"
]
},
"txntimestamp":"20170606144424"
},
"checksum":"0a2c470685a6f53a5a0fd60106ea7adf5aa0bead99b9f2f45752af096e5816d6"
}
}

Sample Response { JSON }:

{
"request":{
"request_header":{
"request_id":"c4ea2b28-f349-43df-a852-d73a44e14961",
"api_name":"CHECKPAYMENTSTATUS",
"timestamp":"20170627120657"
},
"payload_data":{
"mid":"100001000014146",
"tran_details":{
"tran_ref_no":[
"XFKRTJUZ4VC1"
]
},
"txntimestamp":"20170606144424"
},
"checksum":"0a2c470685a6f53a5a0fd60106ea7adf5aa0bead99b9f2f45752af096e5816d6"
}
}

Request Parameters

request_id
Optional
It must be UUID format
api_name
Mandatory
It should always be CHECKPAYMENTSTATUS
timestamp
Mandatory
Time at which request is triggered yyyyMMddHHmmss format
mid
Mandatory
Merchant id to be passed in the field
tran_ref_no
Mandatory
Merchant transaction reference numberdateTimestamp

Datatype: Alphanumeric

txntimestamp
Optional
To fetch transaction based on the timestamp provided. Threshold is 45 days prior to current date Timestamp. If the Tag/Element is not provided it will consider Current timestamp as an evaluation Criteria. yyyyMMddHHmmss format

Datatype: Alphanumeric

Checksum
Mandatory
Checksum should be passed along with request.

Datatype: Alphanumeric

Response Parameters

request_id
Unique id used to trace the request details.

Datatype: String

api_status
“1” or ”0” depending upon success or failure transaction.

Datatype: String

api_name
CHECKPAYMENTSTATUS

Datatype: String

timestamp
Current time stamp

Datatype: String

client_id
Client id given by Reliance JioMoney

Datatype: String

mid
Merchant Id given by Reliance JioMoney

Datatype: String

tran_ref_no
Merchant transaction reference number

Datatype: String

jm_tran_ref_no
JioMoney transaction reference number

Datatype: String

txn_amount
Transaction Amount

Datatype: String

txn_time_stamp
Time at which transaction took place. It can be 45 days prior to current timestamp

Datatype: String

card_no
Last four digits are visible and the remaining are XXXX Card no will be bank name when txn_type is NB

Datatype: String

txn_type
DC(Debit Card)/CC(Credit Card)/NB(Net Banking)/JM(JioMoney)/WT(Other Wallet)

Datatype: String

card_type
VISA/MASTER/MAESTRO/DINERS/RUPAY

Datatype: String

txn_status
“SUCCESS”/”success”/”FAILED”/”failed” Awaited/Bounced/Cancelled

Datatype: String

udf1/udf2/udf3/udf4/udf5
User defined field based on what is sent in the request

Datatype: String

error_code
For successful transactions -000/Please refer the error codes given in table

Datatype: String

response_msg
“APPROVED”/”approved” in case of successful transactions/Else decline reason from PG

Datatype: String

request_type
PURCHASE/ LOADMONEY/ P2P/ P2M/ AUTH/ CANCEL/ BILLPAYMENT/ REFUND

Datatype: String

Error Codes

000
Success - APPROVED/approved
400
SUCCESS(REVERSAL)- APPROVED/approved
151

This is an error in the request itself, hence no transaction status

TXNTIMESTAMP NOT VALID/txntimestamp not valid

152

This is an error in the request itself, hence no transaction status

TXNTIMESTAMP VIOLATES THRESHOLD LIMIT/txntimestamp violates threshold limit

1001

This is an error in the request itself, hence no transaction status

INVALID TIMESTAMP/invalid timestamp

502

This is an integration related Technical System Error, hence no transaction Status

SYSTEM ERROR/system error/System Error

GETREQUESTSTATUS

To check the status of a requests like refund.

Test URL

https://testbill.rpay.co.in:8443/Services/TransactionInquiry

Production URL

https://pp2bill.jiomoney.com:8443/Services/TransactionInquiry

Checksum Format

GETREQUESTSTATUS|timestamp|mid

Sample Request { JSON } :

GETREQUESTSTATUS~2~033cc6d9-b1b4-425b-872a-b890847b2593~NA~NA ~100001000013519~525312007865|525312007872~2961942474

Sample Response { JSON }:

{
"RESPONSE":{
"RESPONSE_HEADER":{
"STATUS":"SUCCESS",
"API_MSG":"test"
},
"GETREQUESTSTATUS":[
{
"JM_TRAN_REF_NO":"424234",
"TRAN_REF_NO":"423423",
"REQUEST_TYPE":"REFUND",
"REFUND_AMOUNT":"100",
"TXN_AMOUNT":"100"
}
]
}
}

Request Parameters

APINAME
Mandatory
GETREQUESTSTATUS Datatype: Alpha
MODE
Mandatory
Mode is used to get in what format response is required. For XML 1 , for JSON 2 Datatype: Numeric
REQUESTID
Mandatory
This should be in uuid format, it will be used to track the request Datatype: Numeric
STARTDATETIME
Mandatory
It should be NA Datatype: Alpha
ENDDATETIME
Mandatory
It should be NA Datatype: Alpha
MID
Mandatory
Merchant ID should be passed in this field Datatype: Alpha
TRANID
Mandatory
JioMoney Transaction ID (RRN) should be passed in this field Datatype: Alphanumeric
CHECKSUM
Mandatory
Checksum should be passed along with request. Datatype: Alphanumeric

Response Parameters

STATUS
API status

Datatype: String

ERROR_CODE
Error Code

Datatype: String

REQUEST_TYPE
Request Type E.g. REFUND

Datatype: String

REFUND_AMOUNT
Refund Amount

Datatype: String

TRAN_REF_NO
Merchant transaction reference number

Datatype: String

JM_TRAN_REF_NO
JioMoney transaction reference number

Datatype: String

TXN_AMOUNT
Transaction Amount

Datatype: String

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date

GETMDR

To get MDR details of a transaction.

Test URL

https://testbill.rpay.co.in:8443/Services/TransactionInquiry

Production URL

https://pp2bill.jiomoney.com:8443/Services/TransactionInquiry

Checksum Format

GETMDR|timestamp|mid

Sample Request { JSON } :

GETMDR~2~5d356077-902b-4884-89d9-516ad297b671~NA~NA~ 100001000013266~528814010692|528814010697|528816010714~ 87560041

Sample Response { JSON }:

{
"RESPONSE":{
"RESPONSE_HEADER":{
"STATUS":"SUCCESS",
"API_MSG":"test"
},
"GETMDR":[
{
"SERVICE_FEE":"100",
"SERVICE_TAX":"100",
"MDR":"2",
"TXN_AMOUNT":"100"
}
]
}
}

Request Parameters

APINAME
Mandatory
GETMDR

Datatype: Alpha

MODE
Mandatory
Mode is used to get in what format response is required. For XML 1 , for JSON 2

Datatype: Numeric

REQUESTID
Mandatory
This should be in uuid format, it will be used to track the request

Datatype: Numeric

STARTDATETIME
Mandatory
It should be NA

Datatype: Alpha

ENDDATETIME
Mandatory
It should be NA

Datatype: Alpha

MID
Mandatory
Merchant ID should be passed in this field

Datatype: Alpha

TRANID
Mandatory
JioMoney Transaction ID (RRN) should be passed in this field

Datatype: Alphanumeric

CHECKSUM
Mandatory
Checksum should be passed along with request.

Datatype: Alphanumeric

Response Parameters

STATUS
API status

Datatype: String

TXN_AMOUNT
Transaction Amount

Datatype: String

MDR
Merchant Discount Rate

Datatype: String

SERVICE_FEE
Service Fee

Datatype: String

SERVICE_TAX
Service Tax

Datatype: String

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date

GETTRANSACTIONDETAILS

To get all the information about the transaction including payment status, settlement details, etc.

Test URL

https://testbill.rpay.co.in:8443/Services/TransactionInquiry

Production URL

https://pp2bill.jiomoney.com:8443/Services/TransactionInquiry

Checksum Format

APINAME~MODE~REQUESTID~STARTDATETIME~ENDDATETIME~MID~TRANID~CHECKSUM

Sample Request { JSON } :

GETTRANSACTIONDETAILS~2~b620de0a-aa5e-42ca-a903-ff26ccc96c18 ~NA~NA~100001000013519~525312007865~525312007872~71007319

Sample Response { JSON }:

{
"RESPONSE":{
"RESPONSE_HEADER":{
"STATUS":"SUCCESS",
"API_MSG":"test"
},
"GETTRANSACTIONDETAILS":[
{
"CLIENT_ID":"13312321",
"MID":"10000103232",
"TRAN_REF_NO":"3121212",
"JM_TRAN_REF_NO":"12312312",
"TXN_AMOUNT":"100",
"TXN_TIME_STAMP":"2015111123595959",
"TXN_TYPE":"JM",
"CARD_NO":"XXXXXXXXX12121",
"BANK_REF_NO":"5454542121",
"SETTLEMENT_STATUS":"SETTLED",
"MDR":"10",
"SERVICE_TAX":"100",
"SETTLEMENT_DATE_TIME":"2015111123595959",
"NEFT_REF_NO":"545466",
"TXN_STATUS":"SUCCESS",
"CARD_TYPE":"CC",
"CUST_NAME":"TEST",
"CUST_MOBILE":"999999999",
"CUST_ADD":"TEST ADDESS",
"ERROR_CODE":"121",
"RESPONSE_MSG":"TEST"
}
]
}
}

Request Parameters

APINAME
Mandatory
GETTRANSACTIONDETAILS

Datatype: Alpha

MODE
Mandatory
Mode is used to get in what format response is required. For XML 1 , for JSON 2

Datatype: Numeric

REQUESTID
Mandatory
This should be in uuid format, it will be used to track the request

Datatype: Numeric

STARTDATETIME
Mandatory
It should be NA

Datatype: Alpha

ENDDATETIME
Mandatory
It should be NA

Datatype: Alpha

MID
Mandatory
Merchant ID should be passed in this field

Datatype: Alpha

TRANID
Mandatory
JioMoney Transaction ID (RRN) should be passed in this field

Datatype: Alphanumeric

CHECKSUM
Mandatory
Checksum should be passed along with request.

Datatype: Alphanumeric

Response Parameters

STATUS
API status

Datatype: String

CLIENT_ID
Customer ID

Datatype: String

MID
Merchant ID

Datatype: String

TRAN_REF_NO
Merchant transaction reference number

Datatype: String

JM_TRAN_REF_NO
JioMoney transaction reference number

Datatype: String

TXN_AMOUNT
Transaction Amount

Datatype: String

ERROR_CODE
Error Code from API

Datatype: String

RESPONSE_MSG
Response Message

Datatype: String

TXN_TIME_STAMP
Transaction date time

Datatype: String

CARD_NO
Last 4 digits of Card Number

Datatype: String

TXN_TYPE
Transaction Type: JM – JIOMONEY, DB – DEBIT CARD, CC – CREDIT CARD, NB – NET BANKING

Datatype: String

CARD_TYPE
Card Type

Datatype: String

BANK_REF_NO
Bank reference number

Datatype: String

SETTLEMENT_STATUS
Settlement Status

Datatype: String

SETTLEMENT_DATE_TIME
Settlement date time

Datatype: String

NEFT_REF_NO
NEFT transaction reference number

Datatype: String

TXN_STATUS
Transaction status

Datatype: String

CUST_NAME
Customer name

Datatype: String

CUST_MOBILE
Customer mobile

Datatype: String

CUST_ADD
Customer address

Datatype: String

MDR
Merchant Discount Rate

Datatype: String

SERVICE_TAX
Service Tax

Datatype: String

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date

FETCHTRANSACTIONPERIOD

To fetch all the transactions for a given period.

Test URL

https://testbill.rpay.co.in:8443/Services/TransactionInquiry

Production URL

https://pp2bill.jiomoney.com:8443/Services/TransactionInquiry

Checksum Format

APINAME~MODE~REQUESTID~STARTDATETIME~ENDDATETIME~MID~TRANID~CHECKSUM

Sample Request { JSON } :

FETCHTRANSACTIONPERIOD~2~bea68018-d503-45b0-81f0 -93d6ba75ce92~2015100617000000~2015100617030000~ 100001000013692~NA~3181892490

Sample Response { JSON }:

{
"RESPONSE":{
"RESPONSE_HEADER":{
"STATUS":"SUCCESS",
"API_MSG":"test"
},
"FETCHTRANSACTIONPERIOD":[
{
"CLIENT_ID":"11123223",
"MID":"23123123",
"TRAN_REF_NO":"3123123",
"JM_TRAN_REF_NO":"312312",
"TXN_AMOUNT":"150",
"TXN_TIME_STAMP":"2015111123595959",
"TXN_TYPE":"JM",
"CARD_NO":"XXXXXX5454",
"BANK_REF_NO":"32312312312",
"SETTLEMENT_STATUS":"SETTLED",
"MDR":"100",
"SERVICE_TAX":"100",
"SETTLEMENT_DATE_TIME":"100",
"NEFT_REF_NO":"10003232",
"TXN_STATUS":"SUCCESS",
"CARD_TYPE":"JM",
"ERROR_CODE":"3232",
"RESPONSE_MSG":"TEST"
}
]
}
}

Request Parameters

APINAME
Mandatory
FETCHTRANSACTIONPERIOD

Datatype: Alpha

MODE
Mandatory
Mode is used to get in what format response is required. For XML 1 , for JSON 2

Datatype: Numeric

REQUESTID
Mandatory
This should be in uuid format, it will be used to track the request

Datatype: Numeric

STARTDATETIME
Mandatory
Start date time to fetch transaction

Datatype: Alpha

ENDDATETIME
Mandatory
End date time to fetch transaction

Datatype: Alpha

MID
Mandatory
Merchant ID should be passed in this field

Datatype: Alpha

TRANID
Mandatory
JioMoney Transaction ID (RRN) should be passed in this field

Datatype: Alphanumeric

CHECKSUM
Mandatory
Checksum should be passed along with request.

Datatype: Alphanumeric

Response Parameters

STATUS
API status

Datatype: String

CLIENT_ID
Customer ID

Datatype: String

MID
Merchant ID

Datatype: String

TRAN_REF_NO
Merchant transaction reference number

Datatype: String

JM_TRAN_REF_NO
JioMoney transaction reference number

Datatype: String

TXN_AMOUNT
Transaction Amount

Datatype: String

ERROR_CODE
Error Code from API

Datatype: String

RESPONSE_MSG
Response Message

Datatype: String

TXN_TIME_STAMP
Transaction date time

Datatype: String

CARD_NO
Last 4 digits of Card Number

Datatype: String

TXN_TYPE
Transaction Type: JM – JIO MONEY, DB – DEBIT CARD, CC – CREDIT CARD, NB – NET BANKING

Datatype: String

CARD_TYPE
Card Type

Datatype: String

BANK_REF_NO
Bank reference number

Datatype: String

SETTLEMENT_STATUS
Settlement Status

Datatype: String

SETTLEMENT_DATE_TIME
Settlement date time

Datatype: String

NEFT_REF_NO
NEFT transaction reference number

Datatype: String

TXN_STATUS
Transaction status

Datatype: String

CUST_NAME
Customer name

Datatype: String

CUST_MOBILE
Customer mobile

Datatype: String

CUST_ADD
Customer address

Datatype: String

MDR
Merchant Discount Rate

Datatype: String

SERVICE_TAX
Service Tax

Datatype: String

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date

GETTODAYSDATA

To get analysis of today’s business.

Test URL

https://testbill.rpay.co.in:8443/Services/TransactionInquiry

Production URL

https://pp2bill.jiomoney.com:8443/Services/TransactionInquiry

Checksum Format

APINAME~MODE~REQUESTID~STARTDATETIME~ENDDATETIME~MID~TRANID~CHECKSUM

Sample Request { JSON } :

GETTODAYSDATA~2~98345c76-dce7-4d50-b32a-424e47d5f976~NA ~NA~100001000000098~NA~152213864

Sample Response { JSON }:

{
"RESPONSE":{
"RESPONSE_HEADER":{
"STATUS":"SUCCESS",
"API_MSG":"test"
},
"GETTODAYSDATA":[
{
"TOTAL_TXN_COUNT":"33",
"SUCCESS_TXN_COUNT":"33",
"FAILED_TXN_COUNT":"44",
"REFUND_TXN_COUNT":"44",
"CHARGEBACK_TXN_COUNT":"3",
"TOTAL_TXN_AMOUNT":"100000000",
"TOTAL_REFUND_AMOUNT":"10",
"TOTAL_SETTLEMENT_AMOUNT":"1000411",
"MOBILE_TXN_PERCENT":"99",
"MOST_USED_PAYMENT_OPTION":"MOBILE",
"LEAST_USED_PAYMENT_OPTION":"USSD",
"MOST_SUCCESSFUL_PAYMENT_OPTION":"JM"
}
]
}
}

Request Parameters

APINAME
Mandatory
GETTODAYSDATA

Datatype: Alpha

MODE
Mandatory
Mode is used to get in what format response is required. For XML 1 , for JSON 2

Datatype: Numeric

REQUESTID
Mandatory
This should be in uuid format, it will be used to track the request

Datatype: Numeric

STARTDATETIME
Mandatory
Start date time to fetch transaction

Datatype: Alpha

ENDDATETIME
Mandatory
End date time to fetch transaction

Datatype: Alpha

MID
Mandatory
Merchant ID should be passed in this field

Datatype: Alpha

TRANID
Mandatory
JioMoney Transaction ID (RRN) should be passed in this field

Datatype: Alphanumeric

CHECKSUM
Mandatory
Checksum should be passed along with request.

Datatype: Alphanumeric

Response Parameters

STATUS
API status

Datatype: String

TOTAL_TXN_COUNT
Total transaction count

Datatype: String

SUCCESS_TXN_COUNT
Success transaction count

Datatype: String

FAILED_TXN_COUNT
Failed transaction count

Datatype: String

REFUND_TXN_COUNT
Refund transaction count

Datatype: String

CHARGEBACK_TXN_COUNT
Chargeback transaction count

Datatype: String

TOTAL_TXN_AMOUNT
Total transaction count

Datatype: String

TOTAL_REFUND_AMOUNT
Total refund amount

Datatype: String

TOTAL_SETTLEMENT_AMOUNT
Total settlement amount

Datatype: String

MOST_USED_PAYMENT_OPTION
Most used payment option selected while doing transaction

Datatype: String

LEAST_USED_PAYMENT_OPTION
Least used payment option selected while doing transaction

Datatype: String

MOST_SUCCESSFUL_PAYMENT_OPTION
Most successful payment option

Datatype: String

MOBILE_TXN_PERCENT
Mobile transaction percentage

Datatype: String

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date

STATUSQUERY

This API is to verify status of a transaction with JioMoney. This API provides an additional layer of verification of a transaction post receiving browser response. This API needs to be called immediately after getting browser response. Merchants can verify the status and other parameters received in the response to check for any tampering by user.

Test URL

https://testpg.rpay.co.in/reliance-webpay/v1.0/payment/status

Production URL

https://testpg.rpay.co.in/reliance-webpay/v1.0/payment/status

Checksum Format

APINAME~MODE~REQUESTID~STARTDATETIME~ENDDATETIME~MID~TRANID~CHECKSUM

Sample Request { JSON } :

{
"request_header":{
"api_name":"STATUSQUERY",
"version":"1.0"
},
"checksum":"102fef20ff5a79d42c4696534adcc64a997ba4bca8241 f53ba6a0242146f8be5",
"payload_data":{
"merchant_id":"100001000014146",
"tran_ref_no":"WCIKGU2XDWIT",
"client_id":"10000002"
}
}

Sample Response { JSON }:

{
"response_header":{
"version":"1.0",
"api_name":"STATUSQUERY",
"api_status":"1",
"api_msg":"Transaction Fetched Successfully"
},
"payload_data":{
"client_id":"10000002",
"merchant_id":"100001000014146",
"tran_ref_no":"WCIKGU2XDWIT",
"jm_tran_ref_no":"901033353105",
"txn_amount":"1.00",
"txn_type":"NB",
"txn_status":"SUCCESS"
}
}

Request Parameters

API_NAME
Mandatory
STATUSQUERY

Datatype: Alphanumeric

VERSION
Mandatory
API Version number.

Datatype: Numeric

CLIENT_ID
Mandatory
Client Id given by Reliance Jio Money

Datatype: Numeric

MERCHANT_ID
Mandatory
Merchant Id given by Reliance Jio Money.

Datatype: Numeric

TRAN_REF_NO
Mandatory
Transaction extref number provided by the merchant during the purchase transaction.

Datatype: Alphanumeric

CHECKSUM
Mandatory
Checksum Value for the above Checksum generation format using the same Checksum seed.

Datatype: Alphanumeric

Response Parameters

VERSION
API Version number.

Datatype: String

API_NAME
Name of the API.(STATUSQUERY)

Datatype: String

API_STATUS
It shows whether the API request was success or failure. 0 for Failure and 1 for Success

Datatype: String

API_MSG
Description for API_STATUS code.

Datatype: String

CLIENT_ID
Client Id given by Reliance Jio Money

Datatype: String

MERCHANT_ID
Merchant Id given by Reliance Jio Money

Datatype: String

TRAN_REF_NO
Transaction extref number provided by the merchant during the purchase transaction.

Datatype: String

JM_TRAN_REF_NO
Jio Money Transaction Reference Number.

Datatype: String

TXN_AMOUNT
Transaction Amount.

Datatype: String

TXN_TYPE
JM: JioMoney, CC: Credit Card, DB: Debit Card, IB: Internet Banking

Datatype: String

TXN_STATUS
SUCCESS or FAILURE

Datatype: String

Error Codes

000
Success
130
Refund Is Not Allowed For Split Settlement Master Transaction
131
Refund Not Allowed For This Transaction
132
Full Refund Already Processed For This Transaction
133
Invalid Input Parameter - Additional_Info
134
Unable To Process The Refund Transaction
135
Invalid Input Parameter - Org_Txn_Timestamp
136
Invalid Input Parameter - Txn_Amount
137
Refund Not Allowed - Invalid Merchant
138
Invalid Input Parameter - Merchant_Id
139
Refund Not Allowed For This Date