Pine LabsDOCS

Create Offer Discovery V2 API

POST/api/affordability/v2/offer/discovery

Use 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.

Requires Bearer token. Get token →

Header Parameters

FieldDetails
Request-Timestamp
stringdate-time

ISO 8601 UTC timestamp of the request. Used for idempotency and audit.

Request-ID
string

Use a global unique identifier [GUID] for the request.

Constraints
Minimum length: 1 characterMaximum length: 50 characters

Request Bodyrequired

FieldDetails
order_amount
objectrequired2 nested fields

An object that contains the transaction amount details.

product_details
object[]3 nested fields

Mandatory for Brand EMI. An object that contains product details.

cart_coupon_discount_amount
object2 nested fields

An object that contains the cart coupon discount amount details.

issuer
object4 nested fields

An object that contains the issuer details.

downpayment_details
object1 nested field

Mandatory for EMI with Downpayment. An object that contains the downpayment amount details.

payment_options
object2 nested fields

An object that contains the details of the payment options. You can use either card_details or card_token_details as a payment option.

customer_details
object1 nested field

An object that contains the customer details.

Response

FieldDetails
entities
OfferDiscoveryEntityDetailV2[]7 nested fields

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[]30 nested fields

List of Tenures available for the Offer.

entity_data
object1 nested field

Data related to the Entity (OTP, consent, etc.).

Status Codes

200200
400400
422422
Run
Request
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"
  }
}'
{
  "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
        }
      }
    }
  ]
}