Process Payload
Payload for Process SDK
Since the SDK is an enhanced Payments Orchestrator, the payload to Process SDK is typically a bunch of basic Payments payload parameters. Merchants must make sure to add these required metrics while invoking Payments SDK. These parameters are crucial in initiating the SDK and for analytical purposes. Find below the steps to create the set of parameters which needs to be passed in the payload:
Using your cart information, create the orderDetails payload as given below
Unique Identifier for the order. Should be Alphanumeric with character length less than 21.
Example:-
order-id-9876580
If you have enabled paymentAttempt event, then you can send order_id in resumePayment event.
Merchant ID provided by Juspay during onboarding
Amount that the customer has to pay. Will accept stringified double or integer values with upto two decimal places. For example, "100.15" and "100" are valid input but "100.1532" is not valid.
Example:-
1.00
Epoch Unix timestamp in milliseconds
Example:-
1695029591000
It is the ID with which merchant refers to a customer object. This id is used to access the stored payment methods, allow EMI transactions and setup subscriptions.
In case of guest login it should be an empty string.
Example:-
customer-id-007
Email address of the customer. If the backend gateway requires it, then you must send this value.
Constraints : You are allowed to use alphanumeric characters and the following special characters:!#$%&'*+-/=?^_.{|}~`@
_ and . cannot appear at the beginning or end of the local part of the email address (before and after the @ symbol).
Example:-
test@gmail.com
Mobile number or fixed line number of the customer. If the backend gateway requires it, then you must send this value. We recommend passing a 10-digit number without including the "+91" or any mobile country code at the beginning.
Example:-
9999999912
A fully qualified URL on which the customer will be redirected after payment completion. It is also required to provide the control back to SDK after the completion of transaction. This URL takes higher precedence over the common return URL configured in your account settings.
NOTE:
URL shouldn't contain any query parameters or Ip address
URL should be a valid HTTPS endpoint that is reachable from Juspay servers
Return URL should not redirect to a different URL
Please ensure to pass a valid return URL in the session API call or configure it on the Juspay Dashboard. Not doing the same will lead the SDK not being closed post transaction completion
Example:-
https://shop.merchant.com
When passed as true merchant receives a payment attempt when the user clicks on proceed to pay on the payment page. Sample event - https://juspay.io/in/docs/payment-page-enterprise/web/resources/order-updation-events#2.-paymentAttempt-Event
Example:- true/false
Applicable only for TPV Orders.
Example:- Eg: TPV_PAYMENT
Enum: 'REQUIRED' , "OPTIONAL'.
Defines what kind mandate support is available during a session. Required to create a Mandate.
Chose between the follow values based upon requirements :-
REQUIRED : Mandate is must for completing transaction. Only instruments which support Mandate will be shown
OPTIONAL : Mandate is a user choice for completing transaction.
Example:-
OPTIONAL
This is the maximum amount which can be debited via mandate. Required, only when amount type is variable. If amount type is fixed, amount parameter itself will be considered as max amount.
Example:-
1000.0
Mandatory for UPI Mandate. Mandate start date in UNIX EPOCH timestamp (UTC timezone). By default value will be today’s date. Note: For PayU enach, tomorrow’s date needs to be passed. If today’s date is passed, it will be changed internally to tomorrow’s date.
Example:-
1633087969
Mandatory for UPI Mandate. Mandate end date in UNIX EPOCH timestamp (UTC timezone). Post end date, mandate will move to EXPIRED state and recurring mandate will not be allowed. By default value will be Mandate start date + 30 years
Example:-
1633088989
Defines the frequency of mandate execution, how often a customer should be charged
Data type ENUM:
ONETIME (Supported only by UPI)
DAILY
WEEKLY
FORTNIGHTLY
MONTHLY
BIMONTHLY
QUARTERLY
HALFYEARLY
YEARLY
ASPRESENTED
Default: ASPRESENTED
Note:
1. Daily is not supported by Billdesk and Paytm (For cards)
2. In UPI AutoPay, ONETIME frequency, Mandate is valid only for 90 Days
Example:-
ASPRESENTED
1-7 when frequency is WEEKLY. In weekly, serial numbers start from Monday. Monday represents 1 and Sunday represents 7.
1-16 when frequency is FORTNIGHTLY. This mandate is executed twice a month. First day of the month is represented by value '1' and ends with '15' on 15th day of the month. Then again starts with '1' for 16th of the month and ends with the last day of the month.
1-31 when frequency is MONTHLY, BIMONTHLY, QUARTERLY, HALFYEARLY, or YEARLY.
Not required when frequency is ONETIME, DAILY, ASPRESENTED. For Razorpay, rule_value will be considered as the last date of the week/month/year. For Paytm, rule_value will be considered as today's date/day
Example:-
1
Data type ENUM: FIXED, VARIABLE.
By default, it is considered as VARIABLE. In case of FIXED amount_rule
Example:-
FIXED
If false, the mandate cannot be revoked by the customer once set. Applicable only for UPI mandate. It should be true for Recurring and true/false for ONETIME. By default value will be true
Example:-
false
Set to true if funds have to be blocked while a mandate is being created.
Should be true for ONETIME and false for Recurring.
By default value will be TRUE for ONETIME and FALSE for Recurring.
User Defined Parameter (UDF)
The above field can be used to send any user defined parameters. These fields will not accept any special characters in value
The UDF parameters for orders can be seen in the JUSPAY dashboard under each order
Example:-
user5349
User Defined Parameter (UDF)
This field can be used to send any user defined parameters
The UDF parameters for orders can be seen in the JUSPAY dashboard under each order
Example:-
user_5349
Use this parameter only when you have use case of gateway reference ID. For detailed information check here
Applicable for TPV Orders.
Either bank_account_number or bank_account_id is mandatory
Customer Bank account
IFSC code of bank
juspay bank code given in eligibility API. e.g. JP_HDFC
Name of account holder
bank account id provided by Juspay while storing bank account details
Account Type of the Customer Account
Example:- Eg: CURRENT or SAVINGS
This block contains the details of the Mutual Fund
NOTE: mutual_fund_details needs to be passed in a stringified format
Member Id with ICCL or ARN_RIA with RTA
Client Id with ICCL or USER_CODE with RTA
NSE/BSE/KFIN/CAMS
Unique order number or application number of each MF
Individual MF amount within the array of MF being purchased in a single basket
LUMPSUM/SIP
Scheme Code of the MF (Mandatory for RTA reporting)
Folio Number of the MF (Mandatory for RTA reporting)
PAN Number of the user, to be passed in UPPERCASE only (Mandatory for RTA reporting)
AMC Code of the MF
In-house Number of the SIP (Mandatory for K-Fin RTA)
To show expiry timer on the payment page
Pass true if the expiry timer needs to be shown
Example:- true/false
Pass the time within which user has to complete the transaction (in ms)
To pass product specific information in the user’s basket/cart. This key is required to be passed as stringified JSON
Name of the product
Product ID
Quantity of the product that User has in basket/cart
Price of the product
To pass amount breakup information for displaying surcharge, convenience fee or shipping fee. This key is required to be passed as stringified JSON.
Example:"amount_info": "{\"base_amount\":\"100\", \"add_on_amounts\": [{\"name\":\"SURCHARGE\",\"amount\":\"2\"}]}"
To enable features like paymentAttempt.
Example:
\"features\":{\"paymentAttempt\":{\"enable\":true}}
This event is triggered whenever user attempts to make payment using any PO.
paymentAttempt Payload
resumePayment : In response to paymentAttempt, merchant needs to call the resumePayment event with hyperServices.process call
Status value true is indicative of merchant approval to proceed with the transaction, whereas false aborts the payment and SDK exits to return control back to merchant website.
resumePayment Payload
If true, then SDK will wait for resumePayment call before proceeding with the transaction.
Example:- true/false
To provide enterprise-grade security, it is required to create a RSA-SHA256 signature of the orderDetails payload created above.
The orderDetails JSON payload first needs to be converted into a string and then signed using the Private key stored on the merchant server. Click here to know How to Generate the Signature
The orderDetails payload along with the signature are required to create the process payload as a next step
The process API takes a JSONObject as argument. This argument is also known as process payload.
Pass paymentPage is to start the Hypercheckout screen
Pass paymentManagement to start the payment management interface for deleting saved cards and linking/unlinking wallets
Merchant ID provided by Juspay during onboarding
Client ID provided by Juspay during onboarding
Unique identifier for the order. Should be Alphanumeric with character length less than 21.
Order ID at Juspay end is not case sensitive. We do not differentiate between upper and lower case values
Amount that the customer has to pay. Will accept stringified double or integer values with upto two decimal places. For example, "100.15" and "100" are valid input but "100.1532" is not valid.
Example:-
1.00
It is the ID with which merchant refers to a customer object. This id is used to access the stored payment methods, allow EMI transactions and setup subscriptions.
In case of guest login it should be an empty string.
Example:-
customer-id-007
Email address of the customer. If the backend gateway requires it, then you must send this value.
Constraints : You are allowed to use alphanumeric characters and the following special characters:!#$%&'*+-/=?^_.{|}~`@
_ and . cannot appear at the beginning or end of the local part of the email address (before and after the @ symbol).
Example:-
test@gmail.com
Mobile number or fixed line number of the customer. If the backend gateway requires it, then you must send this value. We recommend passing a 10-digit number without including the "+91" or any mobile country code at the beginning.
Example:-
9999999912
Stringify the JSON payload created in Step 3.1
In signature, pass the Output of Step 3.2
Example:-
AZOn8jH8RPWSzrbZ0iiHSLjMdvnvDBkyKslgx4yDadtiQ49kqf8vFh7GMEC/aSARgfovwUOBoPPRTksV6IXNlwIBwuSLWeH7/dIBC+FdtgOR1UNhRGKM17xNg/A6iLufR880Pa31QT3JAWJtRPeQ3aGczsgsFc8NzbSNCQmV2w7ziSSUAwdpU8JWthkFc2oW23QTcMHXnk/EHXf9vAHUZS1x2vKMnrUE6JuTa8vNLlpAcsZ8ueGLvBuobx6lBltsyb8+DjWT+3+W4nt1xmH734g9aOkduLyQTvGIYDKCpnvWdR0J34SvgUnCnv5XzRm9+HQInZDSslJ+1q5hAe3PQQ==
Unique identifier against which merchant’s public key is stored with Juspay. Can be fetched from Juspay Dashboard. Login>EC Operations>Settings>Security>RSA Key
Pass the language value to localise payment experience in regional language. Accepted values are "english", "hindi", "telugu", "tamil", "bengali", "malayalam", "gujarati", "kannada", "marathi"
Custom payeeName to override default payeeName in UPI-INTENT APP
May or may not reflect due to extra verification at UpiApps end which cannot be controlled by Juspay
Custom displayNote to override default displayNote(transaction-note) in UPI-INTENT APP
May or may not reflect due to extra verification at UpiApps end which cannot be controlled by juspay
Description for order to be displayed to the user on amountBar
Example:-
Complete your payment
As soon as you sign up with Juspay, we set you up with a Dummy PG automatically. Using this Dummy PG, you can run test transactions with a pre-configured set of cards.
You may also configure the test credentials of the gateway and use the respective test cards for completing the transaction journey.
Please refer to the Test Resources page for more details.
Have questions?
- Need help? Contact support
- LLM? Read llms.txt

