Two Factor Authentication

Juspay dashboard is authenticated with 2 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”
1600 221

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 (not email id) 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.


Merchant admin can create users by going to EC Operations-->Users from the dashboard and provide access to the required module.

Step 1: Provide the Username, Full Name and Email id of the user to whom the dashboard access has to be given. Then click on "Next Step"

Step2: We have listed all the modules available on the dashboard. Merchant can now give either Read Only or Read & Write access to the required module.

Once the module access is given click on "Next Step".

Step3: Review the provided details and the access and click on "Submit". An email with the list to reset password will be triggered to the provided email id.


Note: Juspay will create the Admin and share credentials


Order View:

When clicked on ‘Orders’ on the left panel Under the EC Operations, the list of orders for the merchant is shown. And the user can select the time frame to view the orders

  • Order Id: Unique Id created during payment and one order can have multiple transaction Id's as the customer may retry payments
  • 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
  • Created At: The timestamp when order was created.
  • Last Modified The timestamp when the order was last modified.
  • Amount: The order amount
  • Customer Id: Unique Id of the customer that was passed during order create by merchant

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: The amount passed in order create.
  • Currency The currency passed in order create. Default is INR.
  • Customer information: Customer related information like id, email, phone number etc passed in order create will be shown.
  • Order related: order id, PG used, the order created timestamp and order modified timestamp, (if the status is updated later point),return url etc.
  • Refunded Entirely True if full refund is initiated.

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.

The section displays all the transaction related information like PG, Payment method used, PG response etc.


To view the refund details against a particular order, click on Refunds dropdown under the particular transaction. Audit trail section will have the trail of events from refund initiation to completion.

Marking Refund:

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

If the order has multiple transaction then choose the transaction against which refund have to be initiated. You may then enter the refund amount. The refund amount cannot be greater than the order amount.

After entering the amount click on "Initiated Refund" .

A refund record will be created and will be shown as below.



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

Below are the possible status against a particular refund.

  • Pending: Juspay has created the 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



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 ‘Refunds’ under EC Batch Operations on the left panel.



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

PG Control Centre


Click on PG Control Centre and navigate to Gateways section to configure, enable or disable the PG configurations. When you click on "PG Control Centre" the below page would be shown up.



Merchants should procure the respective credentials from the Payment gateways/ aggregators.
Before enabling the payment methods on Juspay dashboard ensure that its enabled for your account at the PG/ PA end.

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

Configuration - Sample

Taking an example of Payu configuration. Click on Payu from Add a Payment Gateway Section.

Choose the environment that you wanted to configure.Based on the environment click on Configure button.

Based on your business model choose the right configuration and click on "Proceed".

Merchant has to enter the credentials: Salt, Merchant key and then click on Proceed.

Verify the details entered and click on "Confirm and saved gateway".

There are certain configurations required to be enabled for using your payu account via Juspay. Verify the email recipient list and click on Send and proceed to Add Payment Methods.

Now enable the required payment methods and click on Proceed.

Verify the details and click on Finish.

After the gateway is configured and you wanted to edit some configuration, choose the gateway from the main screen and click on "Edit Gateway Configurations".


Click on Razorpay icon from "Add a Payment Gateway" section. Choose the environment and click on Configure.

Enter the Razorpay credentials. And click on "Link My Razorpay Account" to follow Oauth process and then click on "Link Account" .

Once Link account is clicked you would be redirected to razorpay dashboard login page where you should login in with the root email associated with the account.

Enter the login details, post successful login, the below screen will be shown, click on Authorize.

Once the Authorization is successful, you will be redirected back to juspay dashboard and you can see that account linking is shown as successful.Enter the Key ID and Click on Proceed.

Verify the details and click on Confirm and Save Gateway.

Now configure the webhook by following the instructions provided and click on proceed.

There are certain configurations that has to be enabled at Razorpay end. An email template is predefined, verify the recipient list and click on Send and Proceed to Add a Payment method.

Enable the required payment method and click on Proceed.

Verify all the details from the summary screen and click on Finish.

Now Razorpay account is successful configured on Juspay.

View and Edit

Merchant can view the configured gateways for the account and edit the gateway configuration ( enable/disable banks) based on business needs. You may click on the respective PG and Click on "Edit Gateway configuration" for making any changes.

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. Advance Configuration
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 New Configurations, provide a name and description for the configuration and click on Next. You may now add the rule based on your business requirement.

Refer Annexe 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.


Merchants can configure the surcharge logic from the dashboard based on their business use-case.

Click on New configuration from surcharge section and provide a description and click on Next. Now you can select the required fields and provide the details.

Once the rule is added you may click on "Send For Approval".

Juspay will now verify the logic and approve the same.

Once Approved you may activate it from the dashboard

Route Settings

The route settings can be used to enable score based gateway switching. You may select the threshold from the Downtime switching threshold provided and choose the number of merchants to be considered for global routing and click on "Update Route Settings"

Outage Settings

The outage settings can be used to set the threshold for providing Outage information in Payment Method API. You may set the fluctuate and Down setting based on the business requirement.



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.


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 Security keys, API keys, RSA keys and IP whitelisting.

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

RSA Keys

For generating the merchantKeyId required for signature generation, click on "Upload new RSA key" and upload the public key in .pem format.

API keys

The API key required for authentication can be generated by clicking on "Create New API key". You may copy or download the key. Please do not use the API key in the client side API calls.

Rotating the API key:

To rotate the API key, click on Create New API Key. Replace the existing API key with the newly generated API key. Then delete/ disable the old key.

IP Whitelisting

For whitelisting the IP's, click on "Add New IP". Kindly note that once the IP's are whitelisted, the API request from only these IP's would be accepted.


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.



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' ]