Integration steps

Guide to integrate payment gateway APIs to process transactions without customer redirection to Jiopay Hosted checkout.

This is server-to-server integration for cards involves the following steps:


Before starting with this integration, follow through the Base Integration section for prerequisites.

Step 1: Initiate payment with JPSL

The merchant initiates Jiopay with the required transaction mandatory or optional parameters. This needs to be a server-to-server call request. For URLs, parameters, and descriptions refer to the API Reference section.

The response for the S2S payment request is not similar to Jiopay Hosted Checkout. Merchant needs to call the Initiate Sale

payType value for Seamless flow will be 1 in the Initiate Sale API.

Payment modes supported,

  1. Credit Cards / Debit Cards
  2. UPI
  3. Net Banking
  4. Pluxee / Sodexo
  5. Wallets
    1. PhonePe

CARD (CC/DC)

📘

Prerequisite for S2S Integration

You must have Payment Card Industry Data Security Standard (PCI-DSS) certification, which is mandatory for all entities seeking to store, process, and transmit cardholder data.

Merchant is expected to collect the card details of customers and pass it in the Initiate Sale API. Details specific to Cards transaction in Seamless flow.

  • paymentMode value will be CARD indicating the instrument used is cards
  • paymentOptionCodes value will be CCor DC based on the card used
  • Card details to be captured in fields cardNo,cardExpiry,nameOnCard,cvv and other details can be referred to API Specification for tokenized cards and save card related flows

Sample flow for Cards with guest checkout,

{
  "amount": "11.00",
  "cardExpiry": "202608",
  "cardNo": "6521550072009393",
  "currencyCode": "356",
  "customerEmailID": "[email protected]",
  "customerID": "9970148417",
  "customerMobileNo": "999999999",
  "customerName": "Ganesh",
  "cvv": "123",
  "merchantId": "JP2000000000031",
  "merchantTxnNo": "TEST3189673599",
  "nameOnCard": "Ganesh Desai",
  "payType": "1",
  "paymentMode": "CARD",
  "paymentOptionCodes": "CC",
  "returnURL": "https://test123890.free.beeceptor.com",
  "secureHash": "e0dbaa85d0faba2227e5890aaeaa54b73bd0e65ba6ee1a7a5dc7e75f3216878c",
  "transactionType": "SALE",
  "txnDate": "20250610182018"
}
{
    "responseCode": "R1000",
    "merchantId": "JP2000000000031",
    "aggregatorID": null,
    "merchantTxnNo": "TEST3189673599",
    "redirectURI": "https://uat.jiopay.co.in/tsp/pg/api/v2/authRedirect",
    "showOTPCapturePage": "N",
    "generateOTPURI": null,
    "verifyOTPURI": null,
    "authorizeURI": null,
    "tranCtx": "R30824182-ea3d-4c7d-9fc0-4da4e0c09402",
    "secureHash": "4b7ceb16ecbaf846888bb866637a1b03db9d7ee78ee5005bead14c8814033ebe"
}

UPI

Merchant is expected to pass the UPI Virtual Private Address (VPA) in customerUPIAlias with paymentMode as UPI

{
  "amount": "11.00",
  "currencyCode": "356",
  "customerEmailID": "[email protected]",
  "customerID": "9970148417",
  "customerMobileNo": "9999999999",
  "customerName": "Ganesh Desai",
  "customerUPIAlias": "ganesh@okhdfcbank",
  "merchantId": "JP2000000000031",
  "merchantTxnNo": "TEST2244247749",
  "payType": "1",
  "paymentMode": "UPI",
  "returnURL": "https://test.com",
  "secureHash": "f2ec6a2d6298b7d906ad9f7e6c0215bcfd2d46d1596d8a9ad14670077f502954",
  "transactionType": "SALE",
  "txnDate": "20250610190256"
}
{
    "responseCode": "R1000",
    "merchantId": "JP2000000000031",
    "aggregatorID": null,
    "merchantTxnNo": "TEST2244247749",
    "redirectURI": "https://uat.jiopay.co.in/tsp/pg/api/v2/authRedirect",
    "showOTPCapturePage": "N",
    "generateOTPURI": null,
    "verifyOTPURI": null,
    "authorizeURI": null,
    "tranCtx": "R84df7ff1-a8da-4406-a82a-76be5ebebd8f",
    "secureHash": "5615aac1bf3c11d5d5627dc526d796a00b3dbfb5d40dd7961208b69600d6c9c5"
}

Net Banking

Merchant is expected to pass the Bank Codes shared by Jio Team in paymentOptionCodes along with paymentMode as NB

{
    "amount": "1.00",
    "aggregatorID": "JP2000000000001",
    "customerEmailID": "[email protected]",
    "customerName": "Nayan Mehta",
    "customerMobileNo": "9869117887",
    "transactionType": "SALE",
    "paymentMode": "NB",
    "paymentOptionCodes": "ICIC",
    "payType": "1",
    "merchantId": "JP2000000000016",
    "merchantTxnNo": "32411156884876",
    "customerID": "CUST123456",
    "returnURL": "https://wh5e26540c4f0f3ef0d0.free.beeceptor.com",
    "currencyCode": "356",
    "txnDate": "20250610115921",
    "addlParam1": "TEST1,TEST3,TEST5,TEST9",
    "addlParam2": "TEST2.TEST4"
}
{
    "responseCode": "R1000",
    "merchantId": "JP2000000000016",
    "aggregatorID": "JP2000000000001",
    "merchantTxnNo": "MREF1180214118",
    "redirectURI": "https://jiopay.co.in/pg/api/v2/authRedirect",
    "showOTPCapturePage": "N",
    "generateOTPURI": null,
    "verifyOTPURI": null,
    "authorizeURI": null,
    "tranCtx": "Ra312a4ab-3342-4751-a307-06093c76d4c5",
    "secureHash": "f36d155b838ef585ad7afdbb530a3e2a9d1bf38f134b00de78232c3f72179cbf"
}

Pluxee / Sodexo

Merchant is expected to pass the paymentMode with Sodexo

{
    "aggregatorID": "JP2000000000001",
    "amount": "1.00",
    "currencyCode": "356",
    "customerEmailID": "[email protected]",
    "customerID": "9970148418",
    "customerMobileNo": "9820957349",
    "customerName": "Test0804 Test",
    "customerUPIAlias": "swapnali23385@okicici",
    "merchantId": "JP2000000000016",
    "merchantTxnNo": "12345",
    "payType": "1",
    "paymentMode": "Sodexo",
    "returnURL": "https://uat.jiopay.co.in/tsp/pg/api/merchant",
    "secureHash": "d59e92b1b7f743007f57dc2186c8be06447f39f579aea42eafafe2bb2752e2a9",
    "transactionType": "SALE",
    "txnDate": "20250702012501"
}
{
    "responseCode": "R1000",
    "merchantId": "JP2000000000016",
    "aggregatorID": "JP2000000000001",
    "merchantTxnNo": "12345",
    "redirectURI": "https://jiopay.co.in/pg/api/v2/authRedirect",
    "showOTPCapturePage": "N",
    "generateOTPURI": null,
    "verifyOTPURI": null,
    "authorizeURI": null,
    "tranCtx": "R344839f6-6c32-44f7-a1fd-aaab0c79a45a",
    "secureHash": "d2bd6fbb52d10b336139dffcefb44be2dd9a83bf1afc607017d066c5c3ee49f8"
}

Wallets

Merchant is expected to pass the paymentOptionCodes with wallet specific codes shared by Jio Team along with paymentMode as WALLET

PhonePe - paymentOptionCodes = phonepe

{
    "aggregatorID": "JP2000000000001",
    "amount": "1.00",
    "currencyCode": "356",
    "customerEmailID": "[email protected]",
    "customerID": "9999999999",
    "customerMobileNo": "9999999999",
    "customerName": "John Doe",
    "customerUPIAlias": "John@okhdfcbank",
    "merchantId": "JP2000000000016",
    "merchantTxnNo": "MREF4789341000",
    "payType": "1",
    "paymentMode": "WALLET",
    "paymentOptionCodes": "phonepe",
    "returnURL": "https://wh5e26540c4f0f3ef0d0.free.beeceptor.com",
    "secureHash": "94d8b6567cbddbb342305c6ea8b6f9d07274088ea08894f715dc5723d451e485",
    "transactionType": "SALE",
    "txnDate": "20250711163322"
}
{
    "responseCode": "R1000",
    "merchantId": "JP2000000000016",
    "aggregatorID": "JP2000000000001",
    "merchantTxnNo": "MREF1180214118",
    "redirectURI": "https://jiopay.co.in/pg/api/v2/authRedirect",
    "showOTPCapturePage": "N",
    "generateOTPURI": null,
    "verifyOTPURI": null,
    "authorizeURI": null,
    "tranCtx": "Ra312a4ab-3342-4751-a307-06093c76d4c5",
    "secureHash": "f36d155b838ef585ad7afdbb530a3e2a9d1bf38f134b00de78232c3f72179cbf"
}

STEP 2: Redirect customer

Redirect the customer to the issuer challenge page using the redirectURI and tranCtx received in the response. Format of URL will be <redirectURI>?tranCtx=<tranCtx>

Redirect the customer to the redirectURI with tranCtx to the issuer challenge page

https://uat.jiopay.co.in/tsp/pg/api/v2/authRedirect?tranCtx=R30824182-ea3d-4c7d-9fc0-4da4e0c09402

For Card, Issuer Challenge page will opened and customer is complete the challenge for the transaction. Challenge can be OTP triggered to registered mobile number of card, Email OTP, Authenticator codes etc

For UPI Payments, a collect request will be initiated on the entered VPA and customer is expected to Approve the payment to process the payment.

For Net Banking, customers will redirected to the respective Bank Login page. Customers are expected to login with their net banking credentials and then approve the payment

Sample Net Banking redirection to ICICI Bank page -

ICICI Bank NetBanking Login

For Sodexo / Pluxee, the redirection will take customer to the Pluxee Card Capture page where user will enter Pluxee Card details and complete the transaction

Pluxee Card Capture page

For PhonePe Wallet, the redirection takes to PhonePe page where customer can initiate a transaction using PhonePe App

PhonePe Page



STEP 3: Payment Response

Consuming the payment response callback on the returnURL passed in request. This is an async response received post completing the transaction. Customers will be redirected to this URL after the transaction is completed with POST data of payment response.

Refer to the Payment Response specifications here

Sample response for cards,

{
  "TransmissionDateTime": "20250610182018",
  "acqName": "PayPhi",
  "amount": "11.00",
  "cardNetwork": "RuPay",
  "customerEmailID": "[email protected]",
  "customerMobileNo": "999999999",
  "merchantId": "JP2000000000031",
  "merchantTxnNo": "TEST3189673599",
  "paymentDateTime": "20250610182349",
  "paymentID": "19291996322",
  "paymentInstId": "6XXX XXXX XXXX 9393",
  "paymentMode": "Card",
  "paymentSubInstType": "CC",
  "respDescription": "Transaction successful",
  "responseCode": "0000",
  "secureHash": "33c1de4e93d8ce8f1752b34d9a5795dfd11d86ccbe1090a9350b482464ff62eb",
  "txnID": "7700206064604"
}
{
  "TransmissionDateTime": "20250610190256",
  "acqName": "phi",
  "amount": "11.00",
  "authCode": "7700201398085",
  "customerEmailID": "[email protected]",
  "customerMobileNo": "9999999999",
  "merchantId": "JP2000000000031",
  "merchantTxnNo": "TEST2244247749",
  "oth_charge": "false",
  "paymentDateTime": "20250610190655",
  "paymentID": "955640471178",
  "paymentInstId": "9552012231@upi",
  "paymentMode": "UPI",
  "respDescription": "Transaction successful",
  "responseCode": "0000",
  "secureHash": "6428caeb3f8069067c660f55d8f643969c9de7d830bebb7b0eedf6e93ecc1b58",
  "txnID": "7700206064611"
}
{
  "secureHash": "76f99159e97081969395e729fed4ed7b687ae6960c3d53c4a25e90baae3a3ae8",
  "amount": "1.00",
  "authCode": "T2507111634188646974524",
  "respDescription": "Transaction successful",
  "paymentMode": "Wallet",
  "customerEmailID": "[email protected]",
  "aggregatorID": "JP2000000000001",
  "TransmissionDateTime": "20250711163322",
  "responseCode": "0000",
  "customerMobileNo": "9999999999",
  "acqName": "jiopay",
  "paymentSubInstType": "phonepe",
  "merchantId": "JP2000000000016",
  "paymentID": "BPHWRGQ0Q2CXRF",
  "merchantTxnNo": "MREF4789341000",
  "paymentDateTime": "20250711163341",
  "txnID": "4000248003189"
}