Offer List
API for listing the ACTIVE offers at a particular point in time based on the configurations in the offers operations dashboard.
List Offers API filters through the complete set of Merchant offers configured in the DB and provides key details per offer such as:
Offer description and terms
Offer eligibility for the current transaction
Offer benefits with calculation rules (Discount / Cashback / EMI Discount Value)
Order amount pre/post discount
Eligible payment instruments/methods for an offer
Eligible Products along with offer breakup for each of the product
Optimistic Behaviour : List Offers API has an Optimistic behaviour wherein if any param is not passed in the request, Offer engine will assume that this param will be received in the later part of the journey and hence response will be given without evaluating this param at that point.
This is due to the fact that ListOffers can be called at any point in the consumer Journey like Home page, Product details page, Cart, Payment page etc. where certain information might not be available.
Consists of two parts.
Username: API Key obtained from Juspay dashboard
Password: Empty string
Example:- Basic MUQ2QUxxxxxxxxxxxxU5QTIxQzNFNTQwNkFDMEZCOg==
The merchant id that a merchant hold at Juspay.
application/json
We recommend passing the customer_id as the x-routing-id. If the customer is checking out as a guest, you can pass an alternative ID that helps track the payment session lifecycle. For example, this could be an Order ID or Cart ID.
This ID is associated with the customer. It plays a key role in ensuring consistency and maintaining connections across different systems. If you fail to pass the same x-routing-id for the same customer in all related API calls, it could lead to issues with API functionality. Therefore, it’s crucial that you use the same x-routing-id for all requests tied to the same customer.
Example:- customer_1122
Used when there are offers configured for EMI Option. For displaying EMI based offers, ?emi=true should be sent in API request. If not sent, then EMI based offers will not be returned in the response even if EMI offers were configured on the dashboard
Order level details
Unique ID generated by JusPay for the given order
Order Amount
Currency passed during order creation
Payment channel used for making transaction. Possible values ANDROID, IOS, WEB and MWEB
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
The user defined fields passed during order creation
List of Products/SKU details for Offer application
Unique ID for the product where offer eligibility/applicability checks needs to be performed
Number of items against a particular product
Price of the individual product
Amount of the split transaction. Should be passed only for split transaction flows
Contains Price breakup of the cart amount. Can be used when Offer shouldn’t be applied on components like tax, delivery fees etc.
Note :
Sum of the amounts in amount_info should be equal to the order amount
Base price value of the cart
Any additional components of the cart. Eg : tax, delivery fees etc
Name of the additional component
Supported Values : DELIVERYCHARGE, DELIVERYTIP, DONATION, SURCHARGE, TAX, OTHERCHARGES, PACKINGCHARGE
Amount of the corresponding additional component
Array of Payment Method Information
Unique identifier that can be sent by the merchant for the respective Payment Instruments
Payment Method Type of the transaction. Possible values are "CARD" | "NB" | "UPI" | "WALLET" | "REWARD"
Payment Method of the transaction
Valid Card Number
A valid card token obtained using /card/list API
Unique identifier received from Payv3 (Only for Payv3 integrations).
Card type of the valid card.(Only for Payv3 integrations).
Bank Code
Card bin of the valid card
Card subtype of the valid card
Valid VPA of the customer
UPI App package name
UPI transaction type. Possible values are UPI_PAY, UPI_COLLECT
To Fetch EMI Offer for that praticular intsrument
Example:- True/False
Customer id passed during order creation
Email Id of the customer passed during order creation
Phone number of the customer passed during order creation
Coupon code configured on Juspay Dashboard
Contains details of the best offers against an order, mapped to eligible payment types sent in the request
Unique payment method reference ID sent in request body
Offer details for the best offer available against the above payment_method_reference
Unique offer ID of the eligible offer
Cashback amount benefit associated with the offer
Discount amount benefit associated with the offer
Offer amount that needs to be validated for a given order. Merchant discount benefit is used to validate offer and order amount in the backend and payment locking in the payment page
Total offer benefit amount associated with the offer ID
Order details breakup
Order amount before offer is applied (for merchant discount benefit, this is the amount post application of offer)
Order amount applicable for calculation of offer
Final order amount after offer has been applied
Discount amount applied on order
Offer discount amount that should be validated in the back end
Cashback amount applied on order
Total offer amount applicable on the order
Breakdown of benefits on the order
Benefits type, can be either CASHBACK | DISCOUNT | MERCHANT_DISCOUNT | EMI_DISCOUNT | EMI_CASHBACK
Calculation rule for offer, can be either PERCENTAGE | ABSOLUTE
List of strings that shows order amount elements on which offer has been applied
Product level offer breakdown
Unique identifier for products
Quantity of product in an order
Applicable product quantity to calculate offer
Price per unit of offer
Discount applicable on order amount
Cashback applicable on order amount
Amount to be validated in the backend for a product
Maximum discount applicable on a product
Maximum cashback applicable on a product
EMI discount/cashback applicable on a product based on tenure and interest rate
Breakdown of active offers based on offers configured on the dashboard by merchant
Unique ID associated with active offers
Status of the offer, can be either ACTIVE or INACTIVE
Offer code configured by merchant on the offers dashboard
Offer description details including title, description, tnc etc
UI configuration details of an offer
Product application mode of an order, can be either PRODUCT | LINE_ITEM | ORDER
Order rules breakdown with amount and payment instrument detail
Offer benefit amount associated with an offer ID
Order basket with product level details uploaded along with WHITELIST/BLACKLIST specification for those offers
Platforms on which offers are applicable
EMI eligibility rules for the offer with tenure and bank details
WHITELIST/BLACKLIST of customer IDs that were uploaded during offer configuration
Eligible payment instruments for an offer
WHITELIST/BLACKLIST of gateways that were uploaded during offer configuration
WHITELIST/BLACKLIST of filters that were uploaded during offer configuration
Specifying the transaction type for an offer - can be ORDER (full swipe transactions) or EMI (EMI transactions)
Order level breakdown with details
Eligible payment methods (for ELIGIBLE offers) based on the payment_method_reference sent as request
API Latency Guidelines
What is API Latency?
Time taken by the server to respond to the API request.
Average API Percentile Metrics and Recommended Timeout
TP50 (ms): This represents the median latency, meaning 50% of all requests are completed in this time or less. It indicates the typical performance experienced by the majority of users.
TP90 (ms): This value shows that 90% of requests are completed within this time, leaving 10% of requests that take longer. It gives insight into the performance for a broader set of users, beyond the median.
TP99 (ms): This value indicates that 99% of requests finish within this time, with only 1% of requests taking longer. It helps identify outlier cases where latency may become an issue for a small group of users.
TP99.9 (ms): This metric captures extreme latency outliers, where only 0.1% of requests take longer than this value. It’s useful for understanding edge cases where performance degrades for very few users.
TP99.99 (ms): This measures the most rare and severe performance outliers, where just 0.01% of requests exceed this time. Monitoring this helps in addressing the rarest and most critical latency issues that may impact user experience in exceptional scenarios.
|
Transaction Percentile
|
Latency (ms)
|
|---|---|
TP50 (ms)
| 49.277
|
TP90 (ms)
| 128.11
|
TP99 (ms)
| 404
|
TP99.9 (ms)
| 640.38
|
Recommended Timeout(ms)
| 1000
|
The recommended timeouts are based on TP99.9 data, though edge cases (0.01% of requests) may still exceed these limits and are captured in the TP99.99 data as shown below.
|
Transaction Percentile
|
Latency (ms)
|
|---|---|
TP99.99 (ms)
| 4456.05
|
Recommended Timeout(ms)
| 5000
|

