Offer Discovery (v2)
/api/affordability/v2/offer/discoveryUse this API to discover offers available on cart amount or product and calculate the EMI. V2 returns an entity-based response structure with support for multiple entity types including UPI.
Bearer token. Get token →Request Body
| Name | Type | Description |
|---|---|---|
order_amount | objectrequired | An object that contains the transaction amount details. |
value | integerrequired | The transaction amount in Paisa. Minimum value: 100 (₹1). Maximum value: 100000000 (₹10 lakh). |
currency | stringrequired | Type of currency. |
product_details | object[] | Mandatory for Brand EMI. An object that contains product details. |
product_code | stringrequired | Unique identifier for the product. |
product_amount | object | Mandatory Object. An object that contains product amount. |
product_coupon_discount_amount | object | An object that contains the product coupon discount amount details. |
cart_coupon_discount_amount | object | An object that contains the cart coupon discount amount details. |
value | integerrequired | The transaction amount in Paisa. |
currency | stringrequired | Type of currency. |
issuer | object | An object that contains the issuer details. |
bin | string | Bank Identification Number, First 8 digits of your Card. Has to be 8 digits. Note: Passing the card information will filter the results based on the specific BIN. |
id | string | Mandatory for EMI with Downpayment. Unique Identifier of the issuer. |
name | string | Mandatory for EMI with Downpayment. Name of the issuer. |
issuer_type | string | Mandatory for EMI with Downpayment. The category of the issuer. Allowed values: CC_BANKDC_BANKCARDLESS_BANKCC_NBFCDC_NBFCCARDLESS_NBFCNTBNTB_BANKNTB_NBFC |
downpayment_details | object | Mandatory for EMI with Downpayment. An object that contains the downpayment amount details. |
downpayment_amount | object | An object that contains the downpayment amount details. |
payment_options | object | An object that contains the details of the payment options. You can use either |
card_details | object | An object that contains the card details. |
card_token_details | object | An object that contains the card token details. |
customer_details | object | An object that contains the customer details. |
customer_id | string | Mandatory when |
Response
| Name | Type | Description |
|---|---|---|
entities | OfferDiscoveryEntityDetailV2[] | List of Entities offering the Offer. |
entity_id | string | Entity Id. |
entity_name | string | Entity Name. |
entity_display_name | string | Display Name of the Entity offering the Offer. |
entity_type | string | Type of Entity. Allowed values: UPICC_BANKDC_BANKCARDLESS_BANKCC_NBFCDC_NBFCCARDLESS_NBFCNTBNTB_BANKNTB_NBFC |
entity_priority | integer | Priority of the Issuer offering the Offer. |
tenures | EntityTenureDetail[] | List of Tenures available for the Offer. |
entity_data | object | Data related to the Entity (OTP, consent, etc.). |
Status Codes
200 | 200 |
400 | 400 |
422 | 422 |
curl -X POST "https://api.pluralpay.in/api/affordability/v2/offer/discovery" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order_amount": {
"currency": "INR",
"value": 1200000
},
"issuer": {
"bin": "60100000"
}
}'Run this request
{
"entities": [
{
"entity_id": "37",
"entity_name": "UPI",
"entity_display_name": "UPI",
"entity_type": "UPI",
"entity_priority": 26,
"tenures": [
{
"tenure_id": "7",
"name": "No EMI Only Cashback",
"tenure_type": "MONTH",
"tenure_value": 0,
"details": [],
"offers": [
{
"offer_ranking": 1,
"issuer_offer_parameters": [
{
"program_type": "MERCHANT_BANK_OFFER",
"offer_id": "6037",
"offer_parameter_id": "v1-37-10-7-5-6037-287151"
}
],
"details": [
{
"product_code": "ICB_BOSCH_001",
"brand_id": "7",
"product_amount": {
"currency": "INR",
"value": 500
},
"interest_rate": 0,
"discount": {
"discount_type": "INSTANT",
"percentage": 10,
"amount": {
"currency": "INR",
"value": 50
},
"max_amount": {
"currency": "INR",
"value": 50000
},
"breakup": {
"merchant": {
"amount": {
"currency": "INR",
"value": 50
}
}
}
}
}
],
"discount": {
"discount_type": "INSTANT",
"percentage": 10,
"amount": {
"currency": "INR",
"value": 50
},
"max_amount": {
"currency": "INR",
"value": 50000
},
"breakup": {
"merchant": {
"amount": {
"currency": "INR",
"value": 50
}
}
}
},
"loan_amount": {
"currency": "INR",
"value": 450
},
"auth_amount": {
"currency": "INR",
"value": 450
},
"total_discount_amount": {
"currency": "INR",
"value": 50
},
"net_payment_amount": {
"currency": "INR",
"value": 500
},
"interest_rate_percentage": 0,
"emi_type": "STANDARD",
"is_mobile_number_required_for_eligibility": false,
"is_offer_auto_applied": true
}
]
}
],
"entity_data": {
"issuer_data": {
"otp_length": 6,
"otp_time_in_sec": 30,
"otp_retry_count": 3,
"is_consent_page_required": false,
"consent_data": "Sample Consent",
"terms_and_conditions": "Sample TNC",
"show_key_fact_statement": false,
"auth_type": "OTP",
"pan_number_last_digit_count": 3
}
}
}
]
}