Hey! These docs are for version 3.2, which is no longer officially supported. Click here for the latest version, 1.0!


Two Factor Authentication

How to enable two-factor authentication?

Download the Google authenticator app from the play store (Android) or App Store (iOS)

After downloading the Google Authenticator app, tap on the “Add” button as shown here.


Select “Scan a QR code” from the popup

  1. Scan the QR code on the 2FA screen on your desktop using your device (sample shown below)
  2. Enter the 6 digit OTP (displayed on your device) in the OTP field (sample shown below)
  3. Click on “Enable 2FA and login”
16001600 221221

Once the above mentioned steps are completed, please re-enter the username and password, followed by the OTP screen wherein you have to enter the OTP (regenerated periodically) as seen on the Authenticator. This process needs to be followed each time you log in to the dashboard.

Reset Password

The password associated with the Juspay account can be reset by following the below steps

  1. Click on "Forgot Password?" option on the login page of the dashboard
  1. Enter the username/ merchantId of the account for which the password has to be updated and click on "Reset"
  1. An email with the link to reset the password would be triggered to the registered email address. The subject of the email will be Express checkout dashboard reset password
  1. Open the link and enter the new password and then click on Confirm.
  1. You may now login to the dashboard with the updated password.

Please reach out to [email protected] if the email address associated with your Juspay account has to be updated.

Reset 2FA

If you have lost the devices or uninstalled the Authenticator app? Do not worry, you can reset the 2 factor Authentication setup on the Juspay account by following the below steps.

  1. Enter the respective username and password of the Juspay account and click on Login
  2. In the next screen, click on "Reset Two-Factor Authentication?"
  1. An email with the link to reset the 2FA would be triggered to the registered email address. The subject of the email will be Express checkout dashboard reset two-factor authentication

  2. Click on the link and follow the steps mentioned here to setup the 2FA for your Juspay account.


Operations dashboard is based on rule-based access to users. This access control is determined by
merchant’s admin while creating the users.


Merchant’s admin can give read-only or read+modify access to different modules listed here.
In the above illustration:
User will have read access to Orders and has read+write (modify) access to refunds.


Note: Juspay will create the Admin and share credentials


Order View:

When clicked on ‘Orders’ on the left panel the list of orders is shown. And the user can select the time frame to view the orders

  • Customer Id: Unique Id of the customer that was passed during transaction by merchant
  • Order Id: Unique Id created during payment and one order can have multiple transaction Id's as the customer may retry payments
  • Created At: Transaction timestamp
  • Amount: Transaction amount
  • Order Status: Juspay provides different order status and explanation as below
Order StatusDescription
NEWNew created order (order created but the customer didn’t commence the transaction)
SUCCESSSuccessful/ Charged Transaction
PENDING_AUTHENTICATIONAuthentication in progress (status is not confirmed yet)
AUTHENTICATION_FAILEDUser didn’t complete the transaction
AUTHORIZATION_FAILEDUser completed transaction but the bank refused
JUSPAY_DECLINEDUser input is not accepted by underlying PG
AUTHORIZINGTransaction status pending from bank
COD INITIATEDInitiated Doesn’t appear for the regular merchant (Created for an edge case)
VOID_INITIATEDVoid pending for the pre-authorized transaction
VOIDEDVoid is successful for the pre-authorized transaction
AUTHORIZEDTransaction is Authorised but not captured


Note: Pending statuses are updated when Juspay receives updated status from underlying PG and status is sent to the merchant via webhooks

Order View

Using status
User can view the orders based on order status by selecting one of the order statuses


Using Order Type
Users can view the orders based on the type of the order by choosing any one of the types provided.

Order TypeDescription
MANDATE PAYMENTRecurring mandate transaction
MANDATE REGISTERMandate registration transaction
TPV PAYMENTThe TPV transactions
ORDER PAYMENTAll the other transactions

Order Search

If user wish to search for specific order then can type the order id or customer id


Also, user can use the advanced search option to search order based on transaction id, customer email, phone or UDF parameters


Order Details:

If the user wants to drill down a specific order then click on a particular entry in order list


Order Information shows above shown details

  • Amount: Transaction amount, refund amount (if any)
  • Customer-related: Customer mail, mobile
  • Order related: order id, PG used, the order created timestamp and order modified timestamp (if the status is updated later point)
  • UDF related: User Defined Data that was passed by the merchant during a transaction

The most important point to view is Order Status so the user can initiate fulfillment activity.

Order - Transaction Details

After selecting the order, when clicked on ‘transactions’ tab, the user can view the transaction details
One order can have one or more transactions as customer retries are considered as transactions and listed under same order id.


Download Order Report

User can download the report by clicking on ‘Download Orders’ button


Sample report format:


Fields: Order Id, Currency, Amount, Status, Customer Id, Customer email, Customer Phone, Order Type,
Order UUID, Product Id, Mandate feature, Promotion Discount, Amount Refunded, Refunded Entirely,
Merchant Id, Return URL, Description, Date Creation, Last Modified, UDF (1 to 10)


Note: Downloading reports for large data operations will be a time-consuming effort. Alternatively, Juspay can set auto-mailer for the report.


The user selects the order and then clicks on ‘Refunds’ tab


(Shows that there are no refunds marked against the order)

Marking Refund:

To mark the refund for an Order Id, user to click on the ‘Create Refund’ button


User to enter the amount and click on ‘Refund Amount’


Note: User can mark multiple refunds against the same order id as long as the sum of those refunds doesn’t exceed transaction amount

Refund Status


Once the refund is marked for an order then it will be shown in the dashboard (under the order and ‘refunds’ tab)
The explanation for refund status:

  • Pending: Juspay has marked refund and sent a refund request to underlying PG
  • Success: Refund has been successfully executed by underlying PG
  • Failure: Refund is failed
  • Manual Review: Refunds that are pending more than 10 days goes into manual review


Note: refunds are queued before sent to underlying PG. Refunds may take max. 7 days to reach customer’s account or card and delay is specific to underlying PG and its banks

Batch Refunds

User can mark multiple refunds by uploading a single file by selecting ‘Batch Refund’ on left side panel



Note: Batch files uploaded are shown here.

Create Batch Refund

When the user clicks on ‘create batch refund’ button, the console is shown to upload the file.


The batch file should be in .csv format and details should be in below format




Upon clicking the gateways tab, the user can select the payment service providers (aggregator, bank PG, wallets, containers or lending products) that need to be enabled

  • The merchant should procure the credentials from the concerned Payment Service provider.
  • Merchant to make sure the payment modes (a card, banks, UPI, etc.) are enabled by the service
  • If a merchant wishes to enable direct debit for wallets or S2S flow then make sure those features are approved and enabled for the merchant’s account

Refer Annexure 1 for credentials that are given by various service providers

Configuration - Sample


Above is the configuration of Pay.

  • Merchant has to enter the credentials: Salt, Merchant key
  • If the merchant wants to enable EMI then toggle the Fetch EMI Plans to ‘True’

Once done, the merchant has to enable the payment instruments, banks and Save gateway.


Razorpay oAuth Configuration

Click on Create Gateway from the GATEWAY section and choose RAZORPAY
Set the test mode based on the environment to which the transaction has to be routed
Click on "Authorize"


You will be redirected to Razorpay dashboard.
Tick the Terms & Conditions check box and click on "Authorize"


Login to with the Razorpay dashboard credentials


After successful login, you would be redirected back to Juspay panel. Enable the required fields based on business use case and click on Proceed to Configuration


Enable the required payment modes and save gateway


View and Edit


Merchant can view the configured gateways for the account and edit the gateway configuration ( enable/disable banks) based on business needs.

Route Scores

The merchant may want to force to route certain cards to a particular gateway (force routing). Merchant can
use this section to configure such force routings and that will ignore the routing logic. For more clarity
refer below section that covers types of routings and use cases.

ISIN Route

ISIN (Issuer Identifier number or BIN number i.e. first 6 digits of the bank. Merchant can configure BINs that needs to be processed through the specific payment provider

Use Case: HDFC is offering a discount on few BINs and merchant has to use only HDFC bank PG to process it. Merchant can configure those BINs (ISIN) and select HDFC gateway and set preference score to 2.


Issuer Route

Merchant can configure issuing bank and select the gateway for force routing by setting preference score to 2.
Use Case: HDFC is running a discount on HDFC cards and merchant has to process cards only through HDFC PG.


Card Brand Route:

If the merchant wants to force to certain card brands (Visa, MasterCard, Maestro, RuPay) through a
particular PG only then merchant to select the card brand and processing gateway and set preference score to 2.
Use Case: Diners card is processed only by HDFC PG. In this case, card-based routing will make sure Diners card always go through HDFC PG.



Note: Diners can be processed by aggregator who uses HDFC PG as well. This configuration can be done during PG configuration by enabling Diners (provided your aggregator is ready to enable it)

Priority Logics:

Select Priority Logics tab under to define routing logic as per business requirement
Routing logic Merchant can enable two types for routing logic.
a. Simple Routing
Merchant will define primary and secondary service providers. In simple words, if Primary is down
then the transaction will be processed by secondary. Example: If Billdesk is down then Payu will
process transactions.


b. Custom Logic
Depending on business requirements, the merchant can write routing logic
Few of the possibilities:
● Channel-Based: Website, Android, iOS
● Volume Based: Split volume between two or more service providers
● Bank-based: Send particular bank’s transaction to one service provider
● Card type based: Debit or credit card
● Card brand based: Visa, MasterCard, RuPay, etc.
Routing logic can be complex as per your business logic. Example: 30% of website transaction of ICICI
bank Visa Credit card to be proceeded by PayU as primary and BillDesk as secondary.


Merchant to click on Create New Logic and write the logic. Refer Annexure 2 for samples.
● Merchant can delete or edit/update the logic
● Once merchant submits the priority logic, Juspay support team will review the syntax and correctness of logic and then approve it.
● Logic will be effective as soon as it is approved by Juspay team


Note: Merchant to add comments in the logic so Juspay team can verify the logic written by the merchant does what it is expected to do.



In this section, the merchant can configure generic settings such as Return URL (return page that is shown after completion of the transaction) or order session timeout, etc.

25592559 10831083


Note: Although it is self-explanatory do not hesitate to consult Juspay team in case of doubts as these are critical configurations.


Section to add API keys, RSA keys and IP whitelisting.

  • The API key required for authentication can be generated by clicking on "Create New API key".
  • For generating the merchantKeyId required for signature generation, click on "Upload new RSA key" and upload the public key in .pem format.
  • For whitelisting the IP's, click on "Add New IP". Kinldy note that once the IP's are whitelisted, the API request from only these IP's would be accepted.

Response key is used for HMAC Signature verification.
Card Encoding Key is used for encrypt the card details from the client before initiating the transaction.




It may be possible that transaction status doesn’t reach finite status (success or failure) in real time. Some transaction may go into pending state and become success at a later point of time and these transactions are called ‘conflicted transactions’.

Juspay will ping the payment service provider to fetch updated status and new status can be pushed to the merchant.

By enabling ‘notify on status conflict’ and providing a valid email address under 'Conflict Status Email', Juspay would trigger an email notification to the provided email id whenever there is a conflicted transaction.

'Auto Refund of Conflicted Transactions'- If the merchant wants to automatically refund the conflicted transaction then enable the option (The default threshold is 10 minutes)

'Auto Refund of Conflicted Transactions Threshold in Mins'- Enter a threshold in minutes beyond that you would want Juspay to automatically refund the transaction. The default threshold is 10 minutes.

'Auto Refunds in Multiple Charged Transactions'- Enable the flag if Juspay should automatically refund the transaction(s) if there are multiple charged transactions against a single order.


Juspay fetches the updated status from payment service providers and updated status can be pushed to the merchant through webhooks. Merchant can configure the webhooks in this section.
The webhook can be Authenticated by providing a Basic HTTP authentication.
If you want Juspay to post a custom headers during the webhook notification, you may configure them by click on "Create Webhook" and provide the respective "Name" and the "value".
Webhook Events- You may choose the required events from the provided list for which


Batch Card Delete

If customer wants merchant to delete saved card (s) then merchant can use the dashboard to achieve it by uploading batch file of customer ids of which card needs to be deleted.

910910 908908


Note Sensitive activity so contact Juspay team before attempting the delete activity

comment: # (------------------------------------ Annexure 1 Card Tab ------------------------------------ )

Annexure 1: Credentials of Payment Service Providers

  1. Airtel Money
Gateway Reference IDSaltMerchant IdTest Mode (T/F)
  1. Axis Card
Gateway Reference IDAccess CodeMerchant IdAMA Username
AMA PasswordSecret KeyStaged Transaction (T / F)Multi Currency Supported (T / F)
  1. Axis NB
Gateway Reference IDAxis Merchant CodeAxis Secure SecretTest Mode (T/F)
  1. Axis UPI
Gateway Reference IdPayee VPAMCCQR Code Format
QR Code sizeWaiting Page Expiry in SecondsUse Txn UUID as Tr (T / F)Test Mode (T / F)
  1. Amazon Pay
Gateway Reference IdSeller IdAccess Key
Secret KeyTest Mode (T / F)
  1. BillDesk
Gateway Reference IdMerchant IdChecksum KeyRupay Bank Code
Amex Bank CodeLegacy Redirect (T / F)Card Redirect (T / F)Hashing Algorithm
NB Redirect (T / F)Wallet Redirect (T / F)Amex Redirect (T / F)EMI Redirect (T / F)
Rewards Redirect (T / F)Rupay Redirect (T / F)Enable Subscription (T / F)
  1. Blazepay (of PayU)
Gateway Reference IdMerchant IdSecret Key
Access KeyTest Mode (True / False)
  1. CCAvenue V2
Gateway Reference IdMerchant IdAccess Code
Secret KeyEnable S2S integration (T / F)Test Mode (True / False)
  1. Citi
Gateway Reference IdMerchant CodeMerchant KeyTest Mode (T / F)
  1. Citrus
Gateway Reference IdMerchant IdSecret Key
Access KeyTest Mode (T / F)
  1. Cyber Source
Gateway Reference IdMerchant IdUser nameCybersource Account
Direct Authorization for un
enroller cards (T / F)
User order id as
reconciliation id (T / F)
Certificate Test Mode (T / F)
  1. EBS V3
Gateway Reference IdAccount IdSecret
Page IdTest Mode (T / F)
  1. Epay later
Gateway Reference IdmCodeAPI KeyAES Key
IVCategoryTest Mode (T / F)
  1. Freecharge
Gateway Reference IdMerchant IdSecret Key
Direct Debit (T / F)Test Mode (T / F)
  1. Google Pay
    Required if Googlepay is being used via Banks. If Googlepay is being used via an aggregator then there is no separate gateway configuration required. It can be enabled from the payment methods configuration of the Aggregator.
Gateway Reference IdPayee VPAPayee Name
MCCTest Mode (T / F)
  1. GoCashfree
Gateway Reference IdApp IdSecret Key
Is Pre-Authorisation Enabled (T / F)Test Mode (T / F)
  1. HDFC
Gateway Reference IdTranportal IdTranportal PasswordTest Mode (T / F)
Gateway Reference IdPayee VPAMCCQR Code Format
QR Code SizeWaiting page expiry in secondsUse Txn UUID as Tr (T / F)Test Mode (T / F)
Gateway Reference IdTranportal IdTranportal Password
Gateway Reference IdPayee VPAMCCQR Code Format
QR Code SizeWaiting page expiry in secondsUse Txn UUID as Tr (T/F)Test Mode (T / F)
Gateway Reference IdPayee VPAMCC
QR Code FormatQR Code SizeWaiting page expiry in seconds
Use Txn UUID as Tr (T / F)Transaction Reference PrefixTest Mode (T / F)
  1. IPG
Gateway Reference IdStore IdUser IdUser Secret
PasswordCertificate PasswordCertificate
  1. Jio Money
Gateway Reference IdMerchant IdClient IdChannel
Checksum KeyDirect Debit(T/F)Test Mode(T/F)
  1. Kotak UPI
Gateway Reference IdPayee VPAMCC
QR Code FormatQR Code SizeWaiting page expiry in seconds
Use Txn UUID as Tr (T / F)Transaction Reference PrefixTest Mode(T/F)
  1. Kotak
Gateway Reference IdMerchant IdTerminal IdPasscode
Merchant Category CodeSecure Secret KeyEncryption KeyTest Mode(T/F)
  1. SIMPL
Gateway Reference IdApp IdTest Mode(T/F)
  1. MIGS
Gateway Reference IdMerchant IdSecure Secret
Access CodeAMA User nameAMA Password
Staged Transaction (T / F)Multi Currency Supported (T / F)Enable Subscription (T / F)
  1. Mobikwik
Gateway Reference IdMerchant NameMerchant Id
Secret KeySI KeyDirect Debit (True / False)
Register user automatically (T / F)Test Mode(T/F)
  1. mPESA
Gateway Reference IdMerchant CodeUser NamePassword
Secret KeyChannel IdDirect Debit (T / F)Test Mode(T/F)
  1. Ola Postpaid
Gateway Reference IdMerchant Access TokenMerchant NameMerchant Private Key
SaltPasswordOla Public KeyTest Mode(T/F)
  1. Ola Money
Gateway Reference IdUser NamePasswordSalt
Access TokenCoupon CodeDirect Debit (T / F)Test Mode (T/ F)
  1. PayPal
Gateway Reference IdClient IdSecretTest Mode (T/ F)
  1. PayU
Gateway Reference IdSaltMerchant KeySave Sodexo Token (T/F)
Enable Subscription (T/F)Fetch EMI Plans (T/F)Test Mode (T/ F)
  1. PhonePe
Gateway Reference IdMerchant IdSalt Key 1Salt Key 2
Customer IdDirect Debit (True / False)Test Mode (T/ F)
  1. PayTM
Gateway Reference IdMIDClient Idwebsite
Merchant KeySecret KeyChannel IdIndustry Type Id
ScopeHash Customer IdEnable S2S integration (T/F)Seamless Transaction (T/F)
Direct Debit (T/F)Process Authorizing
Status (T/F)
Enable withdraw flow (Direct
Debit) (T/F)
Use New end point
Test Mode (T/ F)
  1. PayU
Gateway Reference IdSaltMerchant KeySave Sodexo Token (T/F)
Enable Subscription (T/F)Fetch EMI Plans (T/F)Test Mode (T/ F)
  1. RazorPay
Gateway Reference IdTest Mode (T/ F)Authorize (To initiate OAuth)
  1. ShopSe
Gateway Reference IdAuthorizationTest Mode (T/ F)
  1. Stripe
Gateway Reference IdSecret KeyPublishable KeyTest Mode (T/ F)
  1. Sodexo
Gateway Reference IdMerchant IdTerminal Id
Fetch Balance while list cardSave Sodexo Token Implicitly (T / F)Test Mode (T/ F)
  1. TechProcess
Gateway Reference IdMerchant CodeEncryption KeyEncryption IV
Scheme CodeAmex Card bank codeInternational card bank codeDebit card bank code
Credit Card bank codeTest Mode (T/ F)
  1. Yes Bank UPI
Gateway Reference IdPayee VPAQR Default FormatQR Default Size
MCCWaiting page expiry in secondsUse Txn UUID as Tr (T / F)Test Mode (T / F)
  1. Zaakpay
Gateway Reference IdMerchant IdEncryption Key Id
Secret KeyPublic Key for RSATest Mode (T / F)
  1. Zestmoney
Gateway Reference IdClient IdClient Secret Key
Merchant Secret KeyTest Mode (T / F)
  1. Payfort
Gateway Reference IdAccess CodeMerchant IdEncryption Key
Decryption KeyEncryption MethodTest Mode
  1. PAYTM_V2
Gateway Reference IdMIDInd Type Id
Channel IdClient IdWebsite
Merchant Keys2s enableEnable Card Mandate
Enable EmandateTest Mode(T/F)Card Direct Otp Enabled
Gateway Reference IdKeySalt
Test Mode(T/F)
Gateway Reference IdPublic KeyPrivate Key
Test Mode(T/F)
  1. PayGlocal
Gateway Reference IdMerchant IdPrivate Key KId
Public Key KIdPrivate KeyPublic Key
Test Mode

Annexure 2: Sample Routing logics

Refer Documentation on Routing logic:


Example 1: Routing based on Channel

If you wish to route the transaction based on channel say web or mobile.

def priorities = ['HDFC', 'ICICI', 'PAYU'] 
  // above is the default priority

  if (order.udf1 == 'web') {
    priorities = ['HDFC','PAYU','ICICI']
  else if (order.udf1 == 'mobile' && order.udf2 == 'android')
    priorities = ['ICICI','HDFC','PAYU']

Example 2 : Volume based Routing

 // def myGateways = ['HDFC','ICICI']
  // Goal: 50% approx split between two gateways

  if(currentTimeMillis % 10 < 5) {
    setGatewayPriority(['HDFC', 'ICICI'])
  else {
    setGatewayPriority(['ICICI', 'HDFC'])  

  // def myGateways = ["HDFC","ICICI", "AXIS"]
  // Goal: 1/2 split between two gateways and use third as backup
  if(currentTimeMillis % 10 < 5) {
    setGatewayPriority(['HDFC', 'ICICI', 'AXIS'])
  else {
    setGatewayPriority(['ICICI', 'HDFC', 'AXIS'])

Example 3 : Issuer based Routing

  def priorities = [ 'HDFC', 'ICICI' ] 
  // default priorities
  if (payment.cardIssuer == 'ICICI Bank') { 
    // if ICICI Bank card, use ICICI
    priorities = [ 'ICICI', 'HDFC' ]
  else if (order.udf1 == 'mobile' && order.udf2 == 'android')
    // for android transactions, use ICICI
    priorities = [ 'ICICI', 'HDFC' ]
  else { // for everything else use HDFC as primary
    priorities = [ 'HDFC', 'ICICI' ]