Offer Engine Banner

Overview

Offer Engine & EMI as a Service is a payment-processor-agnostic SaaS platform that lets you enable offers and EMI across your merchant ecosystem using a simple set of APIs. Leverage Pine Labs’ existing integrations with banks and brands to power discounts, EMI, and co-funded programs—without building or maintaining complex offer logic or issuer integrations.

Launch Faster

Minimal engineering effort with quick go-live for offers and EMI programs.

No Direct Integrations

Eliminate integrations with issuing banks and brands entirely.

Scale Instantly

Scale affordability programs across merchants with zero friction.

Reduce Overhead

Lower operational burden for managing offer rules and EMI logic.

Improve Conversions

Drive higher conversion rates and average order value (AOV).

Use Existing Rails

Continue using your current payment infrastructure.

Key Features

Everything you need to power modern affordability programs.

EMI as a Service

Enable Bank EMI, Brand EMI, and Split EMI using Pine Labs' issuer integrations.

Unified Offer Engine

Support bank-funded, brand-funded, merchant-funded, and co-funded offers.

Real-Time Offer Discovery & Validation

Fetch eligible offers and validate them instantly during checkout.

Built-In Controls

Automatic handling of budgets, velocity limits, and eligibility rules.

Self-Serve Dashboard Access

View offers, budgets, redemptions, and performance insights in real time.

Scalable & SaaS-Ready

Designed for high-volume, multi-merchant environments like PGs and PAs.

How It Works

Simple integration that fits seamlessly into your checkout flow.

1
Integrate Once

Connect with the Pine Labs Offer Engine using a concise set of APIs.

2
Onboard Your Merchants

Onboard your merchants through APIs, assigning each a unique client ID.

3
Discover Offers at Checkout

At the checkout stage, use the Offer Discovery API to retrieve eligible offers and EMI plans.

4
Validate the Selected Offer

Prior to payment, utilize the Offer Validation API to confirm the eligibility of the selected offer.

5
Complete the Transaction

After payment has been made, call the Complete Payment API to document the usage of the offer or EMI.

6
Get Transaction Details

You can access transaction details at any time using the Get Transaction API.

✓ No separate integrations with banks or brands required

Offer Module APIs

The table below provides a list of Offer Engine APIs that you can use to efficiently manage offers.

Generate Token POST /pinelabs/protocol/openid-connect/token
Client Onboarding POST /api/affordability/v1/offer/clients
Offers Discovery POST /api/affordability/v1/offer/discovery
Offer Validation POST /api/affordability/v1/offer/validate
Complete Payment POST /api/affordability/v1/offer/complete-payment
Create Refund POST /api/affordability/v1/offer/refund-payment
Get Transaction Details POST /api/affordability/v1/offer/get-txn-by-id

Integration Steps

Learn how to integrate with Pine Labs Offer Engine to provide your merchants with a seamless shopping experience.


Note Icon
Note
  • Ensure you store your Client ID and Secret in your Backend securely.
  • Integrate our APIs on your backend system.
  • We strictly recommend not to call our APIs from the frontend.
  • Failure to adhere to the above guidelines may result in legal implications. In such cases, you will be held responsible for any damage or loss arising from non-compliance.

Follow the steps below to integrate the Pine Labs Offer Engine with your payment gateway.

1. Generate Token

Integrate our Generate Token API in your backend servers to generate the access token. Use the token generated to authenticate Offer Engine APIs.

Endpoint POST /pinelabs/protocol/openid-connect/token

Below are the sample requests and response for the Generate Token API.

  • cURL
  • Response
curl --location 'https://identity.pinelabs.com/realms/pinelabs/protocol/openid-connect/token' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Merchant-ID: 123456' \
--data '{
  "client_id": "client_id",
  "client_secret": "client_secret",
  "grant_type": "client_credentials"
}'
{
  "access_token": "{access_token}",
  "expires_in": 900,
  "refresh_expires_in": 0,
  "token_type": "Bearer",
  "not-before-policy": 0,
  "scope": "String",
  "account_id": "String",
  "account_name": "String",
  "partnerId": "String"
}
  
  • Header Parameters
  • Request Parameters
  • Response Parameters

The table below lists the header parameters of our Generate Token API.

Parameter Type Description
Request-Timestamp string Timestamp of the request.
Example: 123456
Request-ID string Unique request identifier.
accept string Accepted header format.

Example: application/json
content-type string Accepted content type.

Example: application/json

The table below lists the request parameters of our Generate Token API.

Parameter Type Description
client_id REQUIRED string Unique client identifier in the Plural database.

Example: a17ce30e-f88e-4f81-ada1-c3b4909ed232

Note: The Onboarding team has provided you with this information as part of the onboarding process.
client_secret REQUIRED string Unique client secret key provided while onboarding.

Example: fgwei7egyhuggwp39w8rh

Note: The Onboarding team has provided you with this information as part of the onboarding process.
grant_type REQUIRED string The grant type to generate an access token.

Accepted value: client_credentials

The table below lists the response parameters of our Generate Token API.

Parameter Type Description
access_token string The access token generated by the system.
  • Minimum length: 1 character.
  • Maximum length: 8192 characters.
Example: eyJhbGciOiJIUzI1NiIsIn

Note: Use this token in the authorization headers to authenticate Plural APIs.
expires_in string Time (in milliseconds) after which the token will expire.

Example: 2024-06-28T13:26:06.909140Z
refresh_expires_in string Time (in milliseconds) after which the refresh token will expire.

Example: 2024-06-28T13:26:06.909140Z
token_type string Type of Token.

Example: Bearer
scope string Scopes of the token.

Example: 2024-06-28T13:26:06.909140Z
account_id string Unique identifier of the account.

Example: 2024-06-28T13:26:06.909140Z
account_name string Account name.

Example: Kevin Bob
partnerId string Unique identifier of the partner.

Example: 2024-06-28T13:26:06.909140Z
Error Codes

The table below lists the possible error codes returned by the Generate Token API.

Error Code Description Details
200 OK Response JSON returned successfully.
401 Unauthorized Invalid client or Invalid client credentials.
401 Unauthorized Missing form parameter: grant_type.

2. Client Onboarding

Integrate our Client Onboarding API in your backend servers to onboard the clients.

Endpoint POST /api/affordability/v1/offer/clients

Below are the sample requests and response for the Client Onboarding API.

  • cURL
  • Response
curl --request POST \
--url https://api-affordability.pinelabs.com/api/affordability/v1/offer/clients \
--compressed \
--header 'Accept-Encoding: gzip' \
--header 'Authorization: Bearer <your_token_here>' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '{
  "name": "SHRIRAM GENERAL INSURANCE COM LTD EASEBUZZ PG",
  "external_id": "353467",
  "channel": "ONLINE",
  "type": "MERCHANT",
  "display_name": "SHRIRAMGI",
  "details": {
    "address1": "GROUND Floor TO 2ND FLOOR, E-8, Rajasthan, 302022",
    "country": "INDIA",
    "state": "Rajasthan",
    "city": "Jaipur",
    "pincode": "302022",
    "email_id": "digitalcms@shriramgi.com",
    "mcc": "Insurance, INSURANCE PREMIUMS, INSURANCE OTHER, INSURANCE BROKERS, INSURANCE AGENTS",  
  }
}'
{
  "id": "300"
}
  • Header Parameters
  • Request Parameters
  • Response Parameters

The table below lists the header parameters of our Client Onboarding API.

Parameter Type Description
Correlation-ID REQUIRED string For request tracing.

Note: This value must be generated by you.
Content-Type string Content type.

Example: application/json
Accept string Accept header.

Example: application/json
payment-processor REQUIRED string Payment processor.

Example: ICICI, JusPay

The table below lists the request parameters of our Client Onboarding API.

Parameter Type Description
name REQUIRED string Customer's name.

  • Minimum length: 1 character.
  • Maximum length: 50 characters.
Example: Kevin

Supported Characters:
  • A-Z
  • a-z
  • 0-9
  • _
  • -
  • .
external_id REQUIRED string Unique identifier of the external reference Id.

Example: fgwei7egyhuggwp39w8rh

channel REQUIRED string Type of channel.

Possible value:
  • ONLINE
  • OFFLINE
type REQUIRED string Client category.

Possible value: MERCHANT
display_name REQUIRED string Name to be displayed.

Example: Kevin
details REQUIRED string An object that contains client informations.

Learn more about our details child object.
Details Child Object

The table below lists the various parameters in the details object. This is part of the client onboarding request object.

Parameter Type Description
address1 string Address line 1 of the client.

Example: 10 Downing Street Westminster London
country string Country of the client.

Example: INDIA
state string State of the client.

Example: Karnataka
city string City of the client.

Example: Bangalore
pincode string Pincode of the client.

Example: 560100
email_id string Email ID of the client.

Example: kevin.bob@example.com
mcc string Merchant Category Code.

Example: 1234
instant_discount_settlement_enabled string Status of the Instant discount settlement enablement.

Possible values:
  • N(default): Instant discount settlement is not enabled.
  • Y: Instant discount settlement is enabled.

    Note: If `Y`: We need to settle instant discount on (T+1) day as per the contract.
instant_subvention_settlement_enabled string Status of the Instant subvention settlement enablement.

Possible values:
  • N(default): Instant subvention settlement is not enabled.
  • Y: Instant subvention settlement is enabled.

    Note: If `Y`: We need to settle instant subvention on (T+1) day as per the contract.
is_aggregator_model string Type of aggregator model.

Possible Values:
  • `Y`: If MID and TID is generated by Pine Labs.
  • `N`(default): If MID and TID is generated by other Payment Gateways.


Example: Y

The table below lists the response parameters of our Client Onboarding API.

Parameter Type Description
id string Unique identifier of the client in Pine Labs database.

Example: 300

Note: Storing this value on your side is optional.
Error Codes

The table below lists the possible error codes returned by the Client Onboarding API.

Error Code Description Details
200 OK Response JSON returned successfully.
401 Unauthorized Invalid client or Invalid client credentials.
401 Unauthorized Missing form parameter: grant_type.
422 Unprocessable Entity Parent External Id is required for Client as Store.
409 Conflict The specified resource already exists.
400 Bad Request HEADER_MISSING.

3. Offer Discovery

Use this API to fetch available offers based on order amount and other parameters. This API also helps merchants find eligible EMI and other payment options for customers based on their order amount and product details.

Endpoint POST /api/affordability/v1/offer/discovery

Below are the sample requests and response for the Offer Discovery API.

  • cURL
  • Response
curl --request POST \
--url https://api-affordability.pinelabs.com/api/affordability/v1/offer/discovery \
--compressed \
--header 'Accept-Encoding: gzip' \
--header 'Authorization: Bearer <your_token_here>' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--header 'Merchant-ID: 123456' \
--data '{
  "order_amount": {
    "currency": "INR",
    "value": 1200000
  },
  "product_details": [
    {
      "product_code": "xyz",
      "product_amount": {
        "currency": "INR",
        "value": 1200000
      },
      "product_coupon_discount_amount": {
        "currency": "INR",
        "value": 1200000
      }
    }
  ],
  "issuer": {
    "bin": 37474200
  },
  "cart_coupon_discount_amount": {
    "currency": "INR",
    "value": 1200000
  }
}'
{
  "issuers": [
    {
      "id": "1",
      "name": "ICICI CC",
      "display_name": "ICICI BANK",
      "issuer_type": "CC_BANK",
      "priority": 1,
      "tenures": [
        {
          "tenure_id": "3",
          "name": "9 Months",
          "tenure_type": "MONTH",
          "tenure_value": 9,
          "issuer_offer_parameters": [
            {
              "program_type": "BANK_EMI",
              "offer_id": "4357",
              "offer_parameter_id": "220257"
            }
          ],
          "details": [
            {
              "product_code": "xyz",
              "product_display_name": "OnePlus 11",
              "brand_id": "5",
              "brand_name": "OnePlus",
              "product_amount": {
                "currency": "INR",
                "value": 1200000
              },
              "product_coupon_discount_amount": {
                "currency": "INR",
                "value": 12000
              },
              "interest_amount": {
                "currency": "INR",
                "value": 42042
              },
              "interest_rate": 8.5,
              "cart_coupon_discount_product_share": {
                "currency": "INR",
                "value": 12000
              },
            }
          ],
          "loan_amount": {
            "currency": "INR",
            "value": 1176000
          },
          "net_payment_amount": {
            "currency": "INR",
            "value": 1218042
          },
          "monthly_emi_amount": {
            "currency": "INR",
            "value": 135338
          },
          "total_emi_amount": {
            "currency": "INR",
            "value": 1218042
          },
          "interest_amount": {
            "currency": "INR",
            "value": 42042
          },
          "interest_rate_percentage": 8.5,
          "processing_fee_details": {
            "percentage": 2,
          "amount": {
            "currency": "INR",
            "value": 20000
          }
          },
          "cart_coupon_discount_amount": {
            "currency": "INR",
            "value": 12000
          }
          "emi_type": "STANDARD",
          "total_coupon_discount": {
            "currency": "INR",
            "value": 24000
          }
        },
        {
          "tenure_id": "1",
          "name": "3 Months",
          "tenure_type": "MONTH",
          "tenure_value": 3,
          "issuer_offer_parameters": [
            {
              "program_type": "BANK_EMI",
              "offer_id": "4357",
              "offer_parameter_id": "220257"
            }
          ],
          "details": [
            {
              "product_code": "xyz",
              "product_display_name": "OnePlus 11",
              "brand_id": "5",
              "brand_name": "OnePlus",
              "product_amount": {
                "currency": "INR",
                "value": 1200000
              },
              "product_coupon_discount_amount": {
                "currency": "INR",
                "value": 12000
              },
              "interest_amount": {
                "currency": "INR",
                "value": 31479
              },
              "interest_rate": 15.99,
              "cart_coupon_discount_product_share": {
                "currency": "INR",
                "value": 12000
              },
            }
          ],
          "loan_amount": {
            "currency": "INR",
            "value": 1176000
          },
          "net_payment_amount": {
            "currency": "INR",
            "value": 1207479
          },
          "monthly_emi_amount": {
            "currency": "INR",
            "value": 402493
          },
          "total_emi_amount": {
            "currency": "INR",
            "value": 1207479
          },
          "interest_amount": {
            "currency": "INR",
            "value": 31479
          },
          "interest_rate_percentage": 15.99,
          "processing_fee_details": {
            "percentage": 0,
          "amount": {
            "currency": "INR",
            "value": 19900
          }
          },
          "cart_coupon_discount_amount": {
            "currency": "INR",
            "value": 12000
          }
          "emi_type": "STANDARD",
          "total_coupon_discount": {
            "currency": "INR",
            "value": 24000
          }
        },
        {
          "tenure_id": "2",
          "name": "6 Months",
          "tenure_type": "MONTH",
          "tenure_value": 6,
          "issuer_offer_parameters": [
            {
              "program_type": "BANK_EMI",
              "offer_id": "4357",
              "offer_parameter_id": "220257"
            }
          ],
          "details": [
            {
              "product_code": "xyz",
              "product_display_name": "OnePlus 11",
              "brand_id": "5",
              "brand_name": "OnePlus",
              "product_amount": {
                "currency": "INR",
                "value": 1200000
              },
              "product_coupon_discount_amount": {
                "currency": "INR",
                "value": 12000
              },
              "interest_amount": {
                "currency": "INR",
                "value": 55452
              },
              "interest_rate": 15.99,
              "cart_coupon_discount_product_share": {
                "currency": "INR",
                "value": 12000
              },
            }
          ],
          "loan_amount": {
            "currency": "INR",
            "value": 1176000
          },
          "net_payment_amount": {
            "currency": "INR",
            "value": 1231452
          },
          "monthly_emi_amount": {
            "currency": "INR",
            "value": 205242
          },
          "total_emi_amount": {
            "currency": "INR",
            "value": 1231452
          },
          "interest_amount": {
            "currency": "INR",
            "value": 55452
          },
          "interest_rate_percentage": 15.99,
          "processing_fee_details": {
            "percentage": 0,
          "amount": {
            "currency": "INR",
            "value": 19900
          }
          },
          "cart_coupon_discount_amount": {
            "currency": "INR",
            "value": 12000
          }
          "emi_type": "STANDARD",
          "total_coupon_discount": {
            "currency": "INR",
            "value": 24000
          }
        }
      ],
      "issuer_data": {}
    }
  ]
}
  • Header Parameters
  • Request Parameters
  • Response Parameters

The table below lists the header parameters of our Offer Discovery API.

Parameter Type Description
Merchant-ID REQUIRED string Unique identifier of the merchant in the Plural database.
Example: 123456
Correlation-ID REQUIRED string For request tracing.

Note: This value must be generated by you.

The table below lists the request parameters of our Offer Discovery API.

Parameter Type Description
order_amount REQUIRED object An object that contains the transaction amount details.

Learn more about the order_amount child object.
product_details array of objects Mandatory for Brand EMI

An array of objects that contains the product details.

Learn more about the product_details child object.
cart_coupon_discount_amount object An object that contains the cart coupon discount amount details.

Learn more about the cart_coupon_discount_amount child object.
Order Amount [Child Object]

The table below lists the various parameters in the order_amount object. This is part of the offer discovery Bank EMI request object.

Parameter Type Description
currency String Type of currency.

Example: INR
value integer Transaction amount in Paisa.
  • Minimum value: 100 (₹1)
  • Maximum value: 100000000 (₹10 lakh)
Example: 1000
Product Details [Child Object]

The table below lists the various parameters in the order_amount object. This is part of the offer discovery request object.

Parameter Type Description
product_code REQUIRED String Unique Product identifier of the product.

Example: redmi_1
product_amount REQUIRED object An object that contains the product amount details.

Learn more about the product_amount child object.
product_coupon_discount_amount object An object that contains the product coupon discount details.

Learn more about the product_coupon_discount_amount child object.
Product Amount [Child Object]

The table below lists the various parameters in the product_amount child object. This object is part of the product_details object.

Parameter Type Description
value REQUIRED integer Transaction amount is Paisa.
  • Minimum value: 100 (₹1)
  • Maximum value: 100000000 (₹10 lakh)
Example: 1000
currency REQUIRED string Type of currency.

Example: INR
Product Coupon Discount Amount [Child Object]

The table below lists the various parameters in the product_coupon_discount_amount child object. This object is part of the product_details object.

Parameter Type Description
value REQUIRED integer Transaction amount is Paisa.
  • Minimum value: 100 (₹1)
  • Maximum value: 100000000 (₹10 lakh)
Example: 1000
currency REQUIRED string Type of currency.

Example: INR
Cart Coupon Discount Amount [Child Object]

The table below lists the various parameters in the cart_coupon_discount_amount child object. This object is part of the offer Discovery request object.

Parameter Type Description
value REQUIRED integer Transaction amount is Paisa.

  • Minimum value: 100 (₹1)
  • Maximum value: 100000000 (₹10 lakh)
  • Example: 1000
    currency REQUIRED string Type of currency.

    Example: INR

    The table below lists the Response parameters of our Offer Discovery API.

    Parameter Type Description
    issuers array of objects List of issuers providing offers.

    Learn more about our issuers object.
    Issuers [Child Object]

    The table below lists the various parameters in the issuers object. This is part of the offer discovery API response object.

    Parameter Type Description
    tenures array of objects An array of objects that contains the tenures details.

    Learn more about the tenures child object.
    issuer_data objects An object that contains the issuer data details.

    Learn more about the issuer_data child object.
    id String Unique identifier of the issuer id in the Plural database.

    Example: 23
    name String Name of the Issuer.

    Example: INDUSIND CC
    display_name string Name of the issuer offering the offer.

    Example: INDUSIND
    issuer_type String The type of the Issuer offering the offer.

    Accepted values:
    • CC_BANK
    • DC_BANK
    priority integer The priority of the issuer providing the offer.

    Example: 1
    discount objects An object that contains the discount details.

    Learn more about the discount child object.
    loan_amount objects An object that contains the loan amount details.

    Learn more about the loan_amount child object.
    total_discount_amount objects An object that contains the total discount amount details.

    Learn more about the total_discount_amount child object.
    net_payment_amount objects An object that contains the net payment amount details.

    Learn more about the net_payment_amount child object.
    monthly_emi_amount objects An object that contains the monthly emi amount details.

    Learn more about the monthly_emi_amount child object.
    total_emi_amount objects An object that contains the total emi amount details.

    Learn more about the total_emi_amount child object.
    interest_amount objects An object that contains the interest amount details.

    Learn more about the interest_amount child object.
    total_subvention_amount objects An object that contains the total subvention amount details.

    Learn more about the total_subvention_amount child object.
    processing_fee_details objects An object that contains the processing fee details.

    Learn more about the processing_fee_details child object.
    convenience_fee_breakdown objects An object that contains the convenience fee breakdown details.

    Learn more about the convenience_fee_breakdown child object.
    cart_coupon_discount_amount objects An object that contains the cart coupon discount amount details.

    Learn more about the cart_coupon_discount_amount child object.
    total_coupon_discount objects An object that contains the total coupon discount details.

    Learn more about the total_coupon_discount child object.
    Tenures [Child Object]

    The table below lists the various parameters in the tenures object. This is part of the offer discovery Bank EMI response object.

    Parameter Type Description
    tenure_id String Tenure id in the Plural database.

    Example: 1
    name String The name of the Issuer offering the offer.

    Example: 3 Months
    tenure_type String The type of the Tenure.

    Accepted values:
    • MONTH
    tenure_value integer The value of the tenure.

    Example: 3
    issuer_offer_parameters array of objects An array of objects that contains the issuer_offer_parameters details.

    Learn more about the issuer_offer_parameters child object.
    details array of objects An array of objects that contains the product details.

    Learn more about the details child object.
    loan_amount object An object that contains the loan amount details.

    Learn more about the loan_amount child object.
    net_payment_amount object An object that contains the net payment amount details.

    Learn more about the net_payment_amount child object.
    monthly_emi_amount object An object that contains the monthly EMI amount details.

    Learn more about the monthly_emi_amount child object.
    total_emi_amount object An object that contains the total EMI amount details.

    Learn more about the total_emi_amount child object.
    interest_amount object An object that contains the interest amount details.

    Learn more about the interest_amount child object.
    interest_rate_percentage float Interest rate percentage for the tenure.

    Example: 16.90
    processing_fee_details object An object that contains the processing fee details.

    Learn more about the processing_fee_details child object.
    cart_coupon_discount_amount object An object that contains the cart coupon discount amount details.

    Learn more about our cart_coupon_discount_amount child object.
    emi_type strings Type of EMI.

    Example: STANDARD

    Accepted values:
    • LOW_COST
    • NO_COST
    • STANDARD
    total_coupon_discount object An object that contains the total coupon discount details.

    Learn more about our total_coupon_discount child object.
    Issuer Offer Parameters [Child Object]

    The table below lists the various parameters in the issuer_offer_parameters child object. This is part of the tenures object.

    Parameter Type Description
    program_type String Indicates the program type associated with the given offer.

    Possible values:
    • BANK_EMI
    • BRAND_EMI
    offer_id String Unique identifier of the offer.

    Example: 1
    offer_parameter_id String Unique identifier of the parameter which is the part of the offer.

    Example: 1
    Details [Child Object]

    The table below lists the various parameters in the details child object. This is part of the tenures object.

    Parameter Type Description
    product_code String Unique Product identifier of the product.

    Example: redmi_1
    product_display_name string Name of the Product.

    Example: Oneplus 13R
    brand_id String Unique brand identifier of the product.

    Example: 3
    product_offer_parameters array of objects An array of objects that contains the product offer schemes for the product EMI details.

    Learn more about the product_offer_parameters child object.
    product_amount object An object that contains the product amount details.

    Learn more about the product_amount child object.
    product_coupon_discount_amount object An object that contains the product coupon discount amount details.

    Learn more about the product_coupon_discount_amount child object.
    subvention object An object that contains the subvention details.

    Learn more about the subvention child object.
    discount object An object that contains the product discount details.

    Learn more about the discount child object.
    brand_name string Name of the Brand.

    Example: Oneplus
    interest_amount object An object that contains the interest amount details.

    Learn more about the interest_amount child object.
    interest_rate double Rate of interest applied on the product.

    Example: 2
    cart_coupon_discount_product_share object An object that contains the cart coupon discount product share details.

    Learn more about the cart_coupon_discount_product_share child object.
    Product Offer Parameters [Child Object]

    The table below lists the various parameters in the product_offer_parameters child object. This is part of the details object.

    Parameter Type Description
    program_type String Type of the Program.

    Example: BRAND_EMI

    Accepted values:
    • BRAND_EMI
    • BANK_EMI
    • MERCHANT_BRAND_OFFER
    • MERCHANT_BANK_OFFER
    • BRAND_OFFER
    • MY_EMI
    offer_id string Unique identifier of the offer.

    Example: 309
    offer_parameter_id string Unique offer parameter identifier.

    Example: 20
    Product Amount [Child Object]

    The table below lists the various parameters in the product_amount child object. This is part of the details object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount in Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Product Coupon Discount Amount [Child Object]

    The table below lists the various parameters in the product_coupon_discount_amount child object. This is part of the details object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount in Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Subvention [Child Object]

    The table below lists the various parameters in the subvention child object. This is part of the details object.

    Parameter Type Description
    subvention_type String Type of subvention.

    Example: INSTANT

    Accepted values:
    • INSTANT
    • POST
    offer_type string Type of the offer.

    Accepted values:
    • LOW_COST
    • NO_COST
    • STANDARD
    percentage integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    amount object An object that contains the subvention amount details.

    Learn more about the amount child object.
    breakup object An object that contains the subvention breakup details.

    Learn more about the breakup child object.
    max_amount object An object that contains the maximum subvention amount details.

    Learn more about the max_amount child object.
    min_amount object An object that contains the minimum subvention amount details.

    Learn more about the min_amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the subvention object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Breakup [Child Object]

    The table below lists the various parameters in the breakup child object. This is part of the subvention object.

    Parameter Type Description
    brand object An object that contains the breakup details of the brand.

    Learn more about the brand child object.
    Brand [Child Object]

    The table below lists the various parameters in the brand child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details of the brand.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the brand object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Max Amount [Child Object]

    The table below lists the various parameters in the max_amount child object. This is part of the subvention object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Min Amount [Child Object]

    The table below lists the various parameters in the min_amount child object. This is part of the subvention object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Discount [Child Object]

    The table below lists the various parameters in the discount child object. This is part of the tenures object.

    Parameter Type Description
    discount_type String Type of discount.

    Possible values:
    • INSTANT
    • DEFERRED
    discount_string string The additional discount provided by the offering entity after a specific period.

    Example: 1000
    percentage Double The discount percentage provided by the offering entity.

    Example: 16.90
    amount string Discount amount.

    Example: 2000
    max_amount object An object that contains the maximum discount amount details.

    Learn more about the max_amount child object.
    min_amount object An object that contains the minimum discount amount details.

    Learn more about the min_amount child object.
    discount_deferred_duration_value integer The duration value for the deferred discount.

    Example:
    discount_deferred_duration_type string Discount duration type deferred.

    Possible values:
    • DAY
    • MONTH
    breakup object An object that contains the product offer details with breakup.

    Learn more about the breakup child object.
    Max Amount [Child Object]

    The table below lists the various parameters in the max_amount child object. This is part of the discount object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Min Amount [Child Object]

    The table below lists the various parameters in the min_amount child object. This is part of the discount object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Breakup [Child Object]

    The table below lists the various parameters in the breakup child object. This is part of the discount object.

    Parameter Type Description
    merchant object An object that contains the merchant breakup details.

    Learn more about the merchant child object.
    issuer object An object that contains the issuer breakup details.

    Learn more about the issuer child object.
    brand object An object that contains the brand breakup details.

    Learn more about the brand child object.
    dealer object An object that contains the dealer breakup details.

    Learn more about the dealer child object.
    Merchant [Child Object]

    The table below lists the various parameters in the merchant child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Issuer [Child Object]

    The table below lists the various parameters in the issuer child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Brand [Child Object]

    The table below lists the various parameters in the brand child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Dealer [Child Object]

    The table below lists the various parameters in the dealer child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the breakup object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Interest Amount [Child Object]

    The table below lists the various parameters in the interest_amount child object. This is part of the details object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Cart Coupon Discount Product Share [Child Object]

    The table below lists the various parameters in the cart_coupon_discount_product_share child object. This is part of the details object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Loan Amount [Child Object]

    The table below lists the various parameters in the loan_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Total Discount Amount [Child Object]

    The table below lists the various parameters in the total_discount_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Net Payment Amount [Child Object]

    The table below lists the various parameters in the net_payment_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Monthly EMI Amount [Child Object]

    The table below lists the various parameters in the monthly_emi_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Total EMI Amount [Child Object]

    The table below lists the various parameters in the total_emi_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Interest Amount [Child Object]

    The table below lists the various parameters in the interest_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Total Subvention Amount [Child Object]

    The table below lists the various parameters in the total_subvention_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Processing Fee Details [Child Object]

    The table below lists the various parameters in the processing_fee_details child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Convenience Fee Breakdown [Child Object]

    The table below lists the various parameters in the convenience_fee_breakdown child object. This is part of the tenures object.

    Parameter Type Description
    fee_calculated_on_amount object An object that contains the fee calculation amount details.

    Learn more about the fee_calculated_on_amount child object.
    fee_amount object An object that contains the fee amount details.

    Learn more about the fee_amount child object.
    tax_amount object An object that contains the tax amount details.

    Learn more about the tax_amount child object.
    additional_fee_amount object An object that contains the additional fee amount details.

    Learn more about the additional_fee_amount child object.
    maximum_fee_amount object An object that contains the maximum fee amount details.

    Learn more about the maximum_fee_amount child object.
    applicable_fee_amount object An object that contains the applicable fee amount details.

    Learn more about the applicable_fee_amount child object.
    subvented_fee_amount object An object that contains the subvented fee amount details.

    Learn more about the subvented_fee_amount child object.
    Fee Calculated on Amount [Child Object]

    The table below lists the various parameters in the fee_calculated_on_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Fee Amount [Child Object]

    The table below lists the various parameters in the fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Tax Amount [Child Object]

    The table below lists the various parameters in the tax_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Additional Fee Amount [Child Object]

    The table below lists the various parameters in the additional_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Maximum Fee Amount [Child Object]

    The table below lists the various parameters in the maximum_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Applicable Fee Amount [Child Object]

    The table below lists the various parameters in the applicable_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Subvented Fee Amount [Child Object]

    The table below lists the various parameters in the subvented_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Cart Coupon Discount Amount [Child Object]

    The table below lists the various parameters in the cart_coupon_discount_amount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Total Coupon Discount [Child Object]

    The table below lists the various parameters in the total_coupon_discount child object. This is part of the tenures object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Issuer Data [Child Object]

    The table below lists the various parameters in the issuer_data object. This is part of the offer discovery response object.

    Parameter Type Description
    otp_length integer Length of the OTP.

    Example: 4
    otp_time_in_sec integer OTP validity time in seconds.

    Example: 120
    otp_retry_count integer Maximum OTP retry count.

    Example:
    is_consent_page_required Boolean Status of the required consent page.
    • true: When the consent page is required.
    • false: When the consent page is not required.
    consent_data String Transaction consent data.

    Example:
    terms_and_conditions String Transaction terms and conditions.

    Example:
    show_key_fact_statement Boolean Key fact statement status.
    • true: When the key fact statement needs to be displayed.
    • false: When the key fact statement is not required to be displayed.
    auth_type String Authentication type.

    Accepted values:
    • PENNY_DROP
    • OTP
    penny_transaction_amount string Applicable amount for penny transaction.

    Example: 100
    is_tokenized_transaction_supported Boolean Tokenized transactions support status.
    • true: Tokenized transaction is supported.
    • false: Tokenized transaction is not supported.
    pan_number_last_digit_count String Last digit count of PAN.
    offer_validation_parameters_required String Parameters required in offer validation API.
    Error Codes

    The table below lists the possible error codes returned by the Offer Discovery API.

    Error Code Description Details
    200 OK Response JSON returned successfully.
    400 Bad Request Invalid request.
    400 Bad Request Missing Merchant-ID.
    400 Bad Request Missing Authorization header.
    401 Unauthorized Token expired.
    422 Unprocessable Entity Invalid Merchant.
    400 Bad Request Missing Authorization header.

    4. Offer Validation

    Use this API for validating applied offers.

    Endpoint POST /api/affordability/v1/offer/validate

    Below are the sample requests and response for the Offer Validation API.

    • cURL
    • Response
    curl --request POST \
    --url https://api-affordability.pinelabs.com/api/affordability/v1/offer/validate \
    --compressed \
    --header 'Accept-Encoding: gzip' \
    --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
    --header 'Content-Type: application/json' \
    --header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
    --header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
    --header 'accept: application/json' \
    --header 'Correlation-ID: c0d835ab-e7cf-4434-b98d-434207776d78' \
    --header 'Merchant-ID: 123456' \
    --data '{
      "order_amount": {
        "value": 1200000,
        "currency": "INR"
      },
      "payment_option_details": {
        "bin": "37474200",
        "par": "11111111111",
        "is_token_transaction": true,
        "card_hash": "8f82064e3614470db2d922a0f9b5527f"
      },
      "payment_method_details": {
        "payment_mode": "CREDIT_EMI"
      },
      "payment_details": {
        "payment_id": "xs0344679801"
      },
      "payment_option_metadata": {
        "card_option_meta_data": {
          "card_scheme": "VISA",
          "card_scheme_id": "1",
          "central_network_type_name": "VISA"
        }
      },
      "customer_details": {
        "country_code": "+91",
        "debit_emi_mobile_no": "9812345670"
      },
      "selected_offer_details": {
        "id": "1",
        "name": "ICICI CC",
        "issuer_type": "CC_BANK",
        "priority": 1,
        "tenure": {
          "tenure_id": "3",
          "name": "9 Months",
          "tenure_type": "MONTH",
          "tenure_value": 9,
          "issuer_offer_parameters": [
            {
              "program_type": "BANK_EMI",
              "offer_id": "4357",
              "offer_parameter_id": "220257"
            }
          ],
          "loan_amount": {
            "currency": "INR",
            "value": 1176000
          },
          "net_payment_amount": {
            "currency": "INR",
            "value": 1218042
          },
          "monthly_emi_amount": {
            "currency": "INR",
            "value": 135338
          },
          "interest_rate_percentage": 8.5,
          "emi_type": "STANDARD"
        }
      }
    }'
    {
      "loan_amount": {
        "currency": "INR",
        "value": 500000
      },
      "authorization_amount": {
        "currency": "INR",
        "value": 500000
      },
      "merchant": {
        "id": "111643"
      },
      "payment_details": {
        "payment_id": "xs0344679801",
        "offer_reference_id": "18431",
        "offer_status": "INITIATED"
      },
      "selected_offer_details": {
        "id": "6",
        "name": "HDFC CC",
        "issuer_type": "CC_BANK",
        "priority": 1,
        "tenure": {
          "tenure_id": "4",
          "name": "12 Months",
          "tenure_type": "MONTH",
          "tenure_value": 12,
          "issuer_offer_parameters": [
            {
              "program_type": "BANK_EMI",
              "offer_id": "1417",
              "offer_parameter_id": "61022"
            }
          ],
          "details": [
            {
              "product_code": "redmi_1",
              "brand_id": "3",
              "product_amount": {
                "currency": "INR",
                "value": 500000
              },
              "product_coupon_discount_amount": {
                "currency": "INR",
                "value": 12000
              },
              "interest_amount": {
                "currency": "INR",
                "value": 44380
              },
              "interest_rate": 16,
              "cart_coupon_discount_product_share": {
                "currency": "INR",
                "value": 12000
              }
            }
          ],
          "loan_amount": {
            "currency": "INR",
            "value": 500000
          },
          "net_payment_amount": {
            "currency": "INR",
            "value": 544380
          },
          "monthly_emi_amount": {
            "currency": "INR",
            "value": 45365
          },
          "total_emi_amount": {
            "currency": "INR",
            "value": 544380
          },
          "interest_amount": {
            "currency": "INR",
            "value": 44380
          },
          "interest_rate_percentage": 16,
          "processing_fee_details": {
            "amount": {
              "currency": "INR",
              "value": 19900
            }
          },
          "cart_coupon_discount_amount": {
              "currency": "INR",
              "value": 12000
            },
          "emi_type": "STANDARD",
          "total_coupon_discount": {
              "currency": "INR",
              "value": 24000
            }
        }
      }
    }
    • Header Parameters
    • Request Parameters
    • Response Parameters

    The table below lists the header parameters of our Offer Discovery API.

    Parameter Type Description
    Merchant-ID REQUIRED string Unique identifier of the merchant in the Plural database.
    Example: 123456
    Correlation-ID REQUIRED string For request tracing.

    Note: This value must be generated by you.

    The table below lists the request parameters of our Offer Validation API.

    Parameter Type Description
    payment_method_details REQUIRED string Type of payment method you want to use to accept a payment.

    Accepted values:
    • CREDIT_EMI
    • DEBIT_EMI
    • CARDLESS_EMI
    order_amount REQUIRED object An object that contains the transaction amount details.

    Learn more about our order_amount child object.
    payment_details REQUIRED object An object that contains the payment details after the offer has been applied.

    Learn more about our payment_details child object.
    payment_option_metadata REQUIRED object An object that contains payment option metadata details related to the offer.

    Learn more about our payment_option_metadata child object.
    selected_offer_details object An object that contains details related to the selected offer.

    Learn more about our selected_offer_details child object.
    customer_details object An object that contains details related to the customer.

    Learn more about our customer_details child object.
    payment_option_details REQUIRED object An object that contains details related to the payment option.

    Learn more about our payment_option_details child object.
    Order Amount [Child Object]

    The table below lists the various parameters in the order_amount child object. This object is part of the offer validation sample request object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED string Type of currency.

    Example: INR
    Payment Details [Child Object]

    The table below lists the various parameters in the payment_details child object. This object is part of the offer validation sample request object.

    Parameter Type Description
    payment_id REQUIRED integer Unique identifier for the payment.

    Example: payment_12345
    Payment Option Metadata [Child Object]

    The table below lists the various parameters in the payment_option_metadata child object. This object is part of the offer validation sample request object.

    Parameter Type Description
    card_option_meta_data object An object that contains card option metadata details.

    Learn more about our card_option_meta_data child object.
    Card Option Meta Data [Child Object]

    The table below lists the various parameters in the card_option_meta_data child object. This object is part of the payment_option_metadata sample request object.

    Parameter Type Description
    card_scheme string The card network (scheme) associated with the card used for the transaction.

    Example: VISA
    card_scheme_id string The card scheme id associated with the card used for the transaction.

    Example: 1
    central_network_type_name string The name of the card network associated with the card used for the transaction.

    Example:
    • CC_BANK
    • DC_BANK
    Selected Offer Details [Child Object]

    The table below lists the various parameters in the selected_offer_details child object. This object is part of the Offer Validation API sample request object.

    Parameter Type Description
    id string Unique identifier of the issuer id.

    Example: 23
    name string Name of the Issuer.

    Example: INDUSIND CC
    display_name string The name of the issuer offering the offer.

    Example:INDUSIND
    issuer_type string Type of the Issuer.

    Possible values:
    • CC_BANK
    • DC_BANK
    priority string Priority of the issuer.

    Example:1
    tenures array of objects Array of tenure objects.

    Learn more about our tenures child object.
    Tenure [Child Object]

    The table below lists the various parameters in the tenures object. This is part of the selected_offer_details request object.

    Parameter Type Description
    tenure_id String Tenure id in the Plural database.

    Example: 1
    name String The name of the Tenure.
    tenure_type String The type of the Tenure.

    Accepted values:
    • DAY
    • MONTH

    tenure_value integer The value of the tenure.

    Example: 3
    issuer_offer_parameters array of objects List of Offer Schemes for the tenure.

    Learn more about the issuer_offer_parameters child object.
    details array of objects An array of objects that contains the product details.

    Learn more about the details child object.
    discount object An object that contains the discount details.

    Learn more about the discount child object.
    loan_amount object An object that contains the loan amount details.

    Learn more about the loan_amount child object.
    total_discount_amount object Total discount amount for the tenure.

    Learn more about the total_discount_amount child object.
    net_payment_amount object An object that contains the net payment amount details.

    Learn more about the net_payment_amount child object.
    monthly_emi_amount object An object that contains the monthly EMI amount details.

    Learn more about the monthly_emi_amount child object.
    total_emi_amount object An object that contains the total EMI amount details.

    Learn more about the total_emi_amount child object.
    interest_amount object An object that contains the interest amount details.

    Learn more about the interest_amount child object.
    total_subvention_amount object An object that contains the total subvention amount details.

    Learn more about the total_subvention_amount child object.
    interest_rate_percentage integer Interest rate percentage for the tenure.
    processing_fee_details object Processing fee details for the tenure.

    Learn more about the processing_fee_details child object.
    emi_type strings Type of EMI.

    Example: STANDARD

    Accepted values:
    • LOW_COST
    • NO_COST
    • STANDARD
    convenience_fee_breakdown object An object that contains the convenience fee breakdown details.

    Learn more about the convenience_fee_breakdown child object.
    cart_coupon_discount_amount object An object that contains the cart coupon discount amount details.

    Learn more about the cart_coupon_discount_amount child object.
    total_coupon_discount object An object that contains the total coupon discount details.

    Learn more about the total_coupon_discount child object.
    Issuer Offer Parameters [Child Object]

    The table below lists the various parameters in the issuer_offer_parameters child object. This object is part of the tenures sample request object.

    Parameter Type Description
    program_type string Program type.

    Example: 23
    offer_id string Unique identifier for the offer.

    Example: 1
    offer_parameter_id string Unique identifier for the offer parameter.

    Possible values:
    • Credit
    • Debit
    • Cardless
    • NBFC
    Details [Child Object]

    The table below lists the various parameters in the details child object. This is part of the tenures object.

    Parameter Type Description
    product_code String Unique Product identifier of the product.

    Example: redmi_1
    product_display_name String Name of the Product.

    Example: Oneplus 13R
    brand_id String Unique brand identifier of the product.

    Example: 3
    brand_name String Name of the Brand.

    Example: Oneplus
    product_offer_parameters array of objects An array of objects that contains the product offer schemes for the product EMI details.

    Learn more about the product_offer_parameters child object.
    product_amount object An object that contains the product amount details.

    Learn more about the product_amount child object.
    product_coupon_discount_amount object An object that contains the product coupon discount amount details.

    Learn more about the product_coupon_discount_amount child object.
    subvention object An object that contains the subvention details.

    Learn more about the subvention child object.
    discount object An object that contains the product discount details.

    Learn more about the discount child object.
    brand_name string Name of the Brand.

    Example: Oneplus
    interest_amount object An object that contains the interest amount details.

    Learn more about the interest_amount child object.
    interest_rate string Rate of interest applied on the product.

    Example: 19
    cart_coupon_discount_product_share object An object that contains the cart coupon discount product share details.

    Learn more about the cart_coupon_discount_product_share child object.
    Product Offer Parameters [Child Object]

    The table below lists the various parameters in the product_offer_parameters child object. This is part of the details object.

    Parameter Type Description
    program_type String Type of the Program.

    Example: BRAND_EMI

    Accepted values:
    • BRAND_EMI
    • BANK_EMI
    • MERCHANT_BRAND_OFFER
    • MERCHANT_BANK_OFFER
    • BRAND_OFFER
    • MY_EMI
    offer_id string Unique identifier of the offer.

    Example: 309
    offer_parameter_id string Unique offer parameter identifier.

    Example: 20
    Product Amount [Child Object]

    The table below lists the various parameters in the product_amount child object. This is part of the details object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Product Coupon Discount Amount [Child Object]

    The table below lists the various parameters in the product_coupon_discount_amount child object. This is part of the details object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Subvention [Child Object]

    The table below lists the various parameters in the subvention child object. This is part of the details object.

    Parameter Type Description
    subvention_type String Type of subvention.

    Example: INSTANT

    Accepted values:
    • INSTANT
    • POST
    percentage integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    amount object An object that contains the subvention amount details.

    Learn more about the amount child object.
    breakup object An object that contains the subvention breakup details.

    Learn more about the breakup child object.
    max_amount object An object that contains the maximum subvention amount details.

    Learn more about the max_amount child object.
    min_amount object An object that contains the minimum subvention amount details.

    Learn more about the min_amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the subvention object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Breakup [Child Object]

    The table below lists the various parameters in the breakup child object. This is part of the subvention object.

    Parameter Type Description
    brand object An object that contains the breakup details of the brand.

    Learn more about the brand child object.
    merchant object An object that contains the breakup details of the merchant.

    Learn more about the merchant child object.
    issuer object An object that contains the breakup details of the issuer.

    Learn more about the issuer child object.
    dealer object An object that contains the breakup details of the dealer.

    Learn more about the dealer child object.
    Brand [Child Object]

    The table below lists the various parameters in the brand child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details of the brand.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the brand object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Merchant [Child Object]

    The table below lists the various parameters in the merchant child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup details of the merchant.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the merchant object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Issuer [Child Object]

    The table below lists the various parameters in the issuer child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup details of the issuer.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the issuer object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Dealer [Child Object]

    The table below lists the various parameters in the dealer child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup details of the dealer.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the issuer object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Max Amount [Child Object]

    The table below lists the various parameters in the max_amount child object. This is part of the subvention object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Min Amount [Child Object]

    The table below lists the various parameters in the min_amount child object. This is part of the subvention object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Discount [Child Object]

    The table below lists the various parameters in the discount child object. This is part of the tenures object.

    Parameter Type Description
    discount_type String Type of discount.

    Possible values:
    • INSTANT
    • DEFERRED
    discount_string String The additional discount provided by the offering entity after a specific period.

    Example: 1000
    percentage Double The discount percentage provided by the offering entity.

    Example: 16.90
    amount string Discount amount.

    Example: 2000
    max_amount object An object that contains the maximum discount amount details.

    Learn more about the max_amount child object.
    min_amount object An object that contains the minimum discount amount details.

    Learn more about the min_amount child object.
    discount_deferred_duration_value integer The duration value for the deferred discount.

    Example:
    discount_deferred_duration_type string Discount duration type deferred.

    Possible values:
    • DAY
    • MONTH
    breakup object An object that contains the product offer details with breakup.

    Learn more about the breakup child object.
    Maximum Amount [Child Object]

    The table below lists the various parameters in the max_amount child object. This is part of the discount object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Minimum Amount [Child Object]

    The table below lists the various parameters in the min_amount child object. This is part of the discount object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Breakup [Child Object]

    The table below lists the various parameters in the breakup child object. This is part of the discount object.

    Parameter Type Description
    brand object An object that contains the brand breakup details.

    Learn more about the brand child object.
    merchant object An object that contains the merchant breakup details.

    Learn more about the merchant child object.
    issuer object An object that contains the issuer breakup details.

    Learn more about the issuer child object.
    dealer object An object that contains the dealer breakup details.

    Learn more about the dealer child object.
    Brand [Child Object]

    The table below lists the various parameters in the brand child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Merchant [Child Object]

    The table below lists the various parameters in the merchant child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Issuer [Child Object]
    child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Dealer [Child Object]

    The table below lists the various parameters in the dealer child object. This is part of the breakup object.

    Parameter Type Description
    amount object An object that contains the breakup amount details.

    Learn more about the amount child object.
    Amount [Child Object]

    The table below lists the various parameters in the amount child object. This is part of the breakup object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Loan Amount [Child Object]

    The table below lists the various parameters in the loan_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Total Discount Amount [Child Object]

    The table below lists the various parameters in the total_discount_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Net Payment Amount [Child Object]

    The table below lists the various parameters in the net_payment_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Valuevalue REQUIRED String Type of currency.

    Example: INR
    Monthly EMI Amount [Child Object]

    The table below lists the various parameters in the monthly_emi_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Total EMI Amount [Child Object]

    The table below lists the various parameters in the total_emi_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Interest Amount [Child Object]

    The table below lists the various parameters in the interest_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED String Type of currency.

    Example: INR
    Cart Coupon Discount Product Share [Child Object]

    The table below lists the various parameters in the cart_coupon_discount_product_share child object. This is part of the details object.

    Parameter Type Description
    currency String Type of currency.

    Example: INR
    value integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    Total Subvention Amount [Child Object]

    The table below lists the various parameters in the total_subvention_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Processing Fee Details [Child Object]

    The table below lists the various parameters in the processing_fee_details child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Convenience Fee Breakdown [Child Object]

    The table below lists the various parameters in the convenience_fee_breakdown child object. This is part of the tenures object.

    Parameter Type Description
    fee_calculated_on_amount object An object that contains the fee calculation amount details.

    Learn more about the fee_calculated_on_amount child object.
    fee_amount object An object that contains the fee amount details.

    Learn more about the fee_amount child object.
    tax_amount object An object that contains the tax amount details.

    Learn more about the tax_amount child object.
    additional_fee_amount object An object that contains the additional fee amount details.

    Learn more about the additional_fee_amount child object.
    maximum_fee_amount object An object that contains the maximum fee amount details.

    Learn more about the maximum_fee_amount child object.
    applicable_fee_amount object An object that contains the applicable fee amount details.

    Learn more about the applicable_fee_amount child object.
    subvented_fee_amount object An object that contains the subvented fee amount details.

    Learn more about the subvented_fee_amount child object.
    Fee Calculated on Amount [Child Object]

    The table below lists the various parameters in the fee_calculated_on_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)
    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Fee Amount [Child Object]

    The table below lists the various parameters in the fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.

    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Tax Amount [Child Object]

    The table below lists the various parameters in the tax_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.

    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Additional Fee Amount [Child Object]

    The table below lists the various parameters in the additional_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.

    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Maximum Fee Amount [Child Object]

    The table below lists the various parameters in the maximum_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.

    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Applicable Fee Amount [Child Object]

    The table below lists the various parameters in the applicable_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.

    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Subvented Fee Amount [Child Object]

    The table below lists the various parameters in the subvented_fee_amount child object. This is part of the convenience_fee_breakdown object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.

    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Cart Coupon Discount Amount [Child Object]

    The table below lists the various parameters in the cart_coupon_discount_amount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Total Coupon Discount [Child Object]

    The table below lists the various parameters in the total_coupon_discount child object. This is part of the tenures object.

    Parameter Type Description
    value REQUIRED integer Transaction amount is Paisa.
    • Minimum value: 100 (₹1)
    • Maximum value: 100000000 (₹10 lakh)

    Example: 1000
    currency REQUIRED String Type of currency.

    Example: INR
    Customer Details [Child Object]

    The table below lists the various parameters in the customer_details object. This is part of the offer validation response object.

    Parameter Type Description
    country_code String Country code of the registered mobile number.
    • Maximum length: 5 characters.
    • No spaces, hyphens, or special characters are allowed.
    Example: +91

    Note: If the country code is not provided, it defaults to +91.
    debit_emi_mobile_no String Customers mobile number.

    Example: 9876543210

    Note: Ten digit mobile number without country code
    Payment Option Details [Child Object]

    The table below lists the various parameters in the payment_option-details object. This is part of the offer validation response object.

    Parameter Type Description
    bin String BIN of the card used for the transaction.
    • Max length: 20
    • Min length: 6
    Example: 37474200

    Supported characters: 0-9
    par String PAR of the card used for the transaction.
      Max length: 20
    • Min length: 12
    • Example: 11111111111

      Supported characters: 0-9
      is_token_transaction boolean Indicates whether the transaction is a tokenized transaction.

      Example: true
      card_hash String Card hash.
      • Maximum length: 100 characters.
      • Minimum length: 12 characters.
      Example: 123456789012

      Supported characters: 0-9

      The table below lists the response parameters of the Offer Validation API.

      Parameter Type Description
      loan_amount Object An object that contains the loan amount details.

      Learn more about our loan_amount child object.
      authorization_amount Object An object that contains the authorize amount details.

      Learn more about our authorization_amount child object.
      merchant Object An object that contains the merchant details.

      Learn more about our merchant child object.
      payment_details Object An object that contains the payment information related to the transaction.

      Learn more about our payment_details child object.
      selected_offer_details Object An object that contains the selected offer and EMI configuration details.

      Learn more about our selected_offer_details child object.
      amount Object An object that contains the amount details.

      Learn more about our amount child object.
      breakup Object An object that contains the breakup details.

      Learn more about our breakup child object.
      loan_amount_details Object An object that contains the loan amount details.

      Learn more about our loan_amount_details child object.
      total_discount_amount Object An object that contains the total discount amount details.

      Learn more about our total_discount_amount child object.
      net_payment_amount Object An object that contains the net payment amount details.

      Learn more about our net_payment_amount child object.
      monthly_emi_amount Object An object that contains the monthly EMI amount details.

      Learn more about our monthly_emi_amount child object.
      total_emi_amount Object An object that contains the total EMI amount details.

      Learn more about our total_emi_amount child object.
      interest_amount Object An object that contains the interest amount details.

      Learn more about our interest_amount child object.
      total_subvention_amount Object An object that contains the total subvention amount details.

      Learn more about our total_subvention_amount child object.
      processing_fee_details Object An object that contains the processing fee details.

      Learn more about our processing_fee_details child object.
      cart_coupon_discount_amount Object An object that contains the cart coupon discount amount details.

      Learn more about our cart_coupon_discount_amount child object.
      total_coupon_discount Object An object that contains the total coupon discount details.

      Learn more about our total_coupon_discount child object.
      convenience_fee_breakdown Object An object that contains the convenience fee breakdown details.

      Learn more about our convenience_fee_breakdown child object.
      issuer_data Object An object that contains the selected offer and EMI configuration details.

      Learn more about our issuer_data child object.
      Loan Amount [Child Object]

      The table below lists the various parameters in the order_amount child object. This object is part of the offer validation sample request object.

      Parameter Type Description
      value REQUIRED integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      currency REQUIRED string Type of currency.

      Example: INR
      Authorization Amount [Child Object]

      The table below lists the various parameters in the authorization_amount child object. This object is part of the offer validation sample request object.

      Parameter Type Description
      value REQUIRED integer Authorization amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      currency REQUIRED string Type of currency.

      Example: INR
      Merchant [Child Object]

      The table below lists the various parameters in the merchant child object. This object is part of the offer validation sample request object.

      Parameter Type Description
      id REQUIRED string Unique identifier for the merchant.

      Example: merchant_12345
      Payment Details [Child Object]

      The table below lists the various parameters in the payment_details child object. This object is part of the offer validation sample request object.

      Parameter Type Description
      payment_id string Unique identifier for the payment.

      Example: payment_12345
      offer_reference_id string Unique identifier for the offer reference.

      Example: offer_reference_12345
      offer_status string Status of the offer.

      Example: active
      Selected Offer Details [Child Object]

      The table below lists the various parameters in the selected_offer_details child object. This object is part of the offer validation sample request object.

      Parameter Type Description
      id String Unique identifier of the issuer id in the Plural database.

      Example: 23
      name String Name of the Issuer.

      Example: INDUSIND CC
      display_name string Name of the issuer offering the offer.

      Example: INDUSIND
      issuer_type String The type of the Issuer offering the offer.

      Accepted values:
      • CC_BANK
      • DC_BANK
      priority integer The priority of the issuer providing the offer.

      Example: 1
      tenures array of objects An array of objects that contains the tenures details.

      Learn more about the tenures child object.
      issuer_data objects An object that contains the issuer data details.

      Learn more about the issuer_data child object.
      Tenures [Child Object]

      The table below lists the various parameters in the tenures object. This is part of the offer discovery response object.

      Parameter Type Description
      tenure_id String Tenure id in the Plural database.

      Example: 1
      name String The name of the Issuer offering the offer.

      Example: 3 Months
      tenure_type String The type of the Tenure.

      Accepted values:
      • MONTH
      tenure_value integer The value of the tenure.

      Example: 3
      issuer_offer_parameters array of objects An array of objects that contains the issuer_offer_parameters details.

      Learn more about the issuer_offer_parameters child object.
      details array of objects An array of objects that contains the product details.

      Learn more about the details child object.
      discount object An object that contains the discount details.

      Learn more about the discount child object.
      loan_amount object An object that contains the loan amount details.

      Learn more about the loan_amount child object.
      total_discount_amount object An object that contains the total discount amount details.

      Learn more about the total_discount_amount child object.
      net_payment_amount object An object that contains the net payment amount details.

      Learn more about the net_payment_amount child object.
      monthly_emi_amount object An object that contains the monthly EMI amount details.

      Learn more about the monthly_emi_amount child object.
      total_emi_amount object An object that contains the total EMI amount details.

      Learn more about the total_emi_amount child object.
      interest_amount object An object that contains the interest amount details.

      Learn more about the interest_amount child object.
      total_subvention_amount object An object that contains the total subvention amount details.

      Learn more about the total_subvention_amount child object.
      interest_rate_percentage float Interest rate percentage for the tenure.

      Example: 16.90
      processing_fee_details object An object that contains the processing fee details.

      Learn more about the processing_fee_details child object.
      convenience_fee_breakdown object An object that contains the convenience fee breakdown details.

      Learn more about our convenience_fee_breakdown child object.
      cart_coupon_discount_amount object An object that contains the cart coupon discount amount details.

      Learn more about our cart_coupon_discount_amount child object.
      total_coupon_discount object An object that contains the total coupon discount details.

      Learn more about our total_coupon_discount child object.
      emi_type strings Type of EMI.

      Example: STANDARD

      Accepted values:
      • LOW_COST
      • NO_COST
      • STANDARD
      Issuer Offer Parameters [Child Object]

      The table below lists the various parameters in the issuer_offer_parameters child object. This is part of the tenures object.

      Parameter Type Description
      program_type String Unique identifier of the issuer id in the Plural database.

      Example: 23
      offer_id String Name of the Issuer.

      Example: INDUSIND CC
      offer_parameter_id String The type of the Issuer offering the offer.

      Accepted values:
      • Credit
      • Debit
      • Cardless
      • NBFC
      Details [Child Object]

      The table below lists the various parameters in the details child object. This is part of the tenures object.

      Parameter Type Description
      product_code String Unique Product identifier of the product.

      Example: redmi_1
      product_display_name string Name of the Product.

      Example: Oneplus 13R
      brand_id String Unique brand identifier of the product.

      Example: 3
      product_offer_parameters array of objects An array of objects that contains the product offer schemes for the product EMI details.

      Learn more about the product_offer_parameters child object.
      product_amount object An object that contains the product amount details.

      Learn more about the product_amount child object.
      product_coupon_discount_amount object An object that contains the product coupon discount amount details.

      Learn more about the product_coupon_discount_amount child object.
      subvention object An object that contains the subvention details.

      Learn more about the subvention child object.
      discount object An object that contains the product discount details.

      Learn more about the discount child object.
      brand_name string Name of the Brand.

      Example: Oneplus
      interest_amount object An object that contains the interest amount details.

      Learn more about the interest_amount child object.
      interest_rate double Rate of interest applied on the product.

      Example: 2
      cart_coupon_discount_product_share object An object that contains the cart coupon discount product share details.

      Learn more about the cart_coupon_discount_product_share child object.
      Product Offer Parameters [Child Object]

      The table below lists the various parameters in the product_offer_parameters child object. This is part of the details object.

      Parameter Type Description
      program_type String Type of the Program.

      Example: BRAND_EMI

      Accepted values:
      • BRAND_EMI
      • BANK_EMI
      • MERCHANT_BRAND_OFFER
      • MERCHANT_BANK_OFFER
      • BRAND_OFFER
      • MY_EMI
      offer_id string Unique identifier of the offer.

      Example: 309
      offer_parameter_id string Unique offer parameter identifier.

      Example: 20
      Product Amount [Child Object]

      The table below lists the various parameters in the product_amount child object. This is part of the details object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount in Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Product Coupon Discount Amount [Child Object]

      The table below lists the various parameters in the product_coupon_discount_amount child object. This is part of the details object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount in Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Subvention [Child Object]

      The table below lists the various parameters in the subvention child object. This is part of the details object.

      Parameter Type Description
      subvention_type String Type of subvention.

      Example: INSTANT

      Accepted values:
      • INSTANT
      • POST
      offer_type string Type of the offer.

      Accepted values:
      • LOW_COST
      • NO_COST
      • STANDARD
      percentage integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      amount object An object that contains the subvention amount details.

      Learn more about the amount child object.
      breakup object An object that contains the subvention breakup details.

      Learn more about the breakup child object.
      max_amount object An object that contains the maximum subvention amount details.

      Learn more about the max_amount child object.
      min_amount object An object that contains the minimum subvention amount details.

      Learn more about the min_amount child object.
      Amount [Child Object]

      The table below lists the various parameters in the amount child object. This is part of the subvention object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Breakup [Child Object]

      The table below lists the various parameters in the breakup child object. This is part of the subvention object.

      Parameter Type Description
      brand object An object that contains the breakup details of the brand.

      Learn more about the brand child object.
      Brand [Child Object]

      The table below lists the various parameters in the brand child object. This is part of the breakup object.

      Parameter Type Description
      amount object An object that contains the breakup amount details of the brand.

      Learn more about the amount child object.
      Amount [Child Object]

      The table below lists the various parameters in the amount child object. This is part of the brand object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Max Amount [Child Object]

      The table below lists the various parameters in the max_amount child object. This is part of the subvention object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Min Amount [Child Object]

      The table below lists the various parameters in the min_amount child object. This is part of the subvention object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Discount [Child Object]

      The table below lists the various parameters in the discount child object. This is part of the tenures object.

      Parameter Type Description
      discount_type String Type of discount.

      Possible values:
      • INSTANT
      • DEFERRED
      discount_string string The additional discount provided by the offering entity after a specific period.

      Example: 1000
      percentage Double The discount percentage provided by the offering entity.

      Example: 16.90
      amount string Discount amount.

      Example: 2000
      max_amount object An object that contains the maximum discount amount details.

      Learn more about the max_amount child object.
      min_amount object An object that contains the minimum discount amount details.

      Learn more about the min_amount child object.
      discount_deferred_duration_value integer The duration value for the deferred discount.

      Example:
      discount_deferred_duration_type string Discount duration type deferred.

      Possible values:
      • DAY
      • MONTH
      breakup object An object that contains the product offer details with breakup.

      Learn more about the breakup child object.
      Max Amount [Child Object]

      The table below lists the various parameters in the max_amount child object. This is part of the discount object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Min Amount [Child Object]

      The table below lists the various parameters in the min_amount child object. This is part of the discount object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Breakup [Child Object]

      The table below lists the various parameters in the breakup child object. This is part of the discount object.

      Parameter Type Description
      merchant object An object that contains the merchant breakup details.

      Learn more about the merchant child object.
      issuer object An object that contains the issuer breakup details.

      Learn more about the issuer child object.
      brand object An object that contains the brand breakup details.

      Learn more about the brand child object.
      dealer object An object that contains the dealer breakup details.

      Learn more about the dealer child object.
      Merchant [Child Object]

      The table below lists the various parameters in the merchant child object. This is part of the breakup object.

      Parameter Type Description
      amount object An object that contains the breakup amount details.

      Learn more about the amount child object.
      Issuer [Child Object]

      The table below lists the various parameters in the issuer child object. This is part of the breakup object.

      Parameter Type Description
      amount object An object that contains the breakup amount details.

      Learn more about the amount child object.
      Brand [Child Object]

      The table below lists the various parameters in the brand child object. This is part of the breakup object.

      Parameter Type Description
      amount object An object that contains the breakup amount details.

      Learn more about the amount child object.
      Dealer [Child Object]

      The table below lists the various parameters in the dealer child object. This is part of the breakup object.

      Parameter Type Description
      amount object An object that contains the breakup amount details.

      Learn more about the amount child object.
      Amount [Child Object]

      The table below lists the various parameters in the amount child object. This is part of the breakup object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Interest Amount [Child Object]

      The table below lists the various parameters in the interest_amount child object. This is part of the details object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Cart Coupon Discount Product Share [Child Object]

      The table below lists the various parameters in the cart_coupon_discount_product_share child object. This is part of the details object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Loan Amount [Child Object]

      The table below lists the various parameters in the loan_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Total Discount Amount [Child Object]

      The table below lists the various parameters in the total_discount_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Net Payment Amount [Child Object]

      The table below lists the various parameters in the net_payment_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Monthly EMI Amount [Child Object]

      The table below lists the various parameters in the monthly_emi_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Total EMI Amount [Child Object]

      The table below lists the various parameters in the total_emi_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Interest Amount [Child Object]

      The table below lists the various parameters in the interest_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Total Subvention Amount [Child Object]

      The table below lists the various parameters in the total_subvention_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Processing Fee Details [Child Object]

      The table below lists the various parameters in the processing_fee_details child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Convenience Fee Breakdown [Child Object]

      The table below lists the various parameters in the convenience_fee_breakdown child object. This is part of the tenures object.

      Parameter Type Description
      fee_calculated_on_amount object An object that contains the fee calculation amount details.

      Learn more about the fee_calculated_on_amount child object.
      fee_amount object An object that contains the fee amount details.

      Learn more about the fee_amount child object.
      tax_amount object An object that contains the tax amount details.

      Learn more about the tax_amount child object.
      additional_fee_amount object An object that contains the additional fee amount details.

      Learn more about the additional_fee_amount child object.
      maximum_fee_amount object An object that contains the maximum fee amount details.

      Learn more about the maximum_fee_amount child object.
      applicable_fee_amount object An object that contains the applicable fee amount details.

      Learn more about the applicable_fee_amount child object.
      subvented_fee_amount object An object that contains the subvented fee amount details.

      Learn more about the subvented_fee_amount child object.
      Fee Calculated on Amount [Child Object]

      The table below lists the various parameters in the fee_calculated_on_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Fee Amount [Child Object]

      The table below lists the various parameters in the fee_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Tax Amount [Child Object]

      The table below lists the various parameters in the tax_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Additional Fee Amount [Child Object]

      The table below lists the various parameters in the additional_fee_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Maximum Fee Amount [Child Object]

      The table below lists the various parameters in the maximum_fee_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Applicable Fee Amount [Child Object]

      The table below lists the various parameters in the applicable_fee_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Subvented Fee Amount [Child Object]

      The table below lists the various parameters in the subvented_fee_amount child object. This is part of the convenience_fee_breakdown object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Cart Coupon Discount Amount [Child Object]

      The table below lists the various parameters in the cart_coupon_discount_amount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Total Coupon Discount [Child Object]

      The table below lists the various parameters in the total_coupon_discount child object. This is part of the tenures object.

      Parameter Type Description
      currency String Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Issuer Data [Child Object]

      The table below lists the various parameters in the issuer_data object. This is part of the offer discovery response object.

      Parameter Type Description
      otp_length integer Length of the OTP.

      Example: 4
      otp_time_in_sec integer OTP validity time in seconds.

      Example: 120
      otp_retry_count integer Maximum OTP retry count.

      Example:
      is_consent_page_required Boolean Status of the required consent page.
      • true: When the consent page is required.
      • false: When the consent page is not required.
      consent_data String Transaction consent data.

      Example:
      terms_and_conditions String Transaction terms and conditions.

      Example:
      show_key_fact_statement Boolean Key fact statement status.
      • true: When the key fact statement needs to be displayed.
      • false: When the key fact statement is not required to be displayed.
      auth_type String Authentication type.

      Accepted values:
      • PENNY_DROP
      • OTP
      penny_transaction_amount string Applicable amount for penny transaction.

      Example: 100
      is_tokenized_transaction_supported Boolean Tokenized transactions support status.
      • true: Tokenized transaction is supported.
      • false: Tokenized transaction is not supported.
      pan_number_last_digit_count String Last digit count of PAN.
      offer_validation_parameters_required String Parameters required in offer validation API.
      Error Codes

      The table below lists the possible error codes returned by the Offer Validation API.

      Error Code Description Details
      200 OK Response JSON returned successfully.
      400 Bad Request Invalid request.
      400 Bad Request Missing Merchant-ID.
      400 Bad Request Missing Authorization header.
      401 Unauthorized Token expired.
      422 Unprocessable Entity Invalid Merchant.
      400 Bad Request Missing Authorization header.
      402 Bad Request UNPROCESSABLE_ENTITY.
      404 Not Found RESOURCE_NOT_FOUND.

      5. Complete Payment

      Use this API to complete the payment.

      Endpoint POST /api/affordability/v1/offer/complete-payment

      Below are the sample requests and response for the Complete Payment API.

      • cURL
      • Response
      curl --location 'https://api-affordability.pinelabs.com/api/affordability/v1/offer/complete-payment' \
      --header 'accept: application/json' \
      --header 'content-type: application/json' \
      --header 'Merchant-ID: 123456' \
      --data '{
        "payment_method_details": {
          "payment_mode": "string"
        },
        "payment_details": {
          "payment_id": "string",
          "offer_reference_id": "string"
        },
        "debit_emi_limit_block": true
      }'
      {
        "loan_amount": {
          "currency": "string",
          "value": 0
        },
        "payment_details": {
          "payment_id": "string",
          "offer_reference_id": "string",
          "offer_status": "string"
        }
      }
      • Header Parameters
      • Request Parameters
      • Response Parameters

      The table below lists the header parameters of our Complete Payment API.

      Parameter Type Description
      Merchant-ID REQUIRED string Unique identifier of the merchant in the Plural database.
      Example: 123456
      Correlation-ID. REQUIRED string For request tracing.

      Note: This value must be generated by you.

      The table below lists the request parameters of our Complete Payment API.

      Parameter Type Description
      payment_method_details. REQUIRED object An object that contains the payment method details.

      Learn more about the payment_method_details> child object.
      payment_details REQUIRED object An object that contains the payment details.

      Learn more about the payment_details> child object.
      debit_emi_limit_block boolean A boolean value indicating whether to block the debit EMI limit.

      Example: true
      Payment Method Details [Child Object]

      The table below lists the various parameters in the payment_method_details child object. This is part of the complete payment request object.

      Parameter Type Description
      payment_mode REQUIRED string Type of payment method you want to use to accept a payment.

      Accepted value:
      • CREDIT_EMI
      • DEBIT_EMI
      Example: CREDIT_EMI
      Payment Details [Child Object]

      The table below lists the various parameters in the payment_details child object. This is part of the complete payment request object.

      Parameter Type Description
      payment_id REQUIRED string Unique identifier of the payment in the Plural database.
      • Maximum length: 50 characters.
      Example: v1-5206071124-aa-mpLhF3-cc-l
      offer_reference_id REQUIRED string Unique identifier of the offer in the Plural database.
      • Maximum length: 50 characters.
      Example: 13627

      The table below lists the response parameters of our Complete Payment API.

      Parameter Type Description
      loan_amount object An object that contains the loan amount details.

      Learn more about the loan_amount> child object.
      payment_amount object An object that contains the payment amount details.

      Learn more about the payment_amount> child object.
      payment_details object An object that contains the payment details.

      Learn more about the payment_details> child object.
      Loan Amount [Child Object]

      The table below lists the various parameters in the loan_amount child object. This is part of the complete payment response object.

      Parameter Type Description
      currency string Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Payment Amount [Child Object]

      The table below lists the various parameters in the payment_amount child object. This is part of the complete payment response object.

      Parameter Type Description
      currency string Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Payment Details [Child Object]

      The table below lists the various parameters in the payment_details child object. This is part of the complete payment response object.

      Parameter Type Description
      payment_id string Unique identifier of the payment in the Plural database.
      • Maximum length: 50 characters.
      Example: v1-5206071124-aa-mpLhF3-cc-l
      offer_reference_id string Unique identifier of the offer in the Plural database.
      • Maximum length: 50 characters.
      Example: 13627
      offer_status string Status of the offer.

      Possible values:
      • PENDING
      • COMPLETED
      • CANCELLED
      Error Codes

      The table below lists the possible error codes returned by the Complete Payment API.

      Error Code Description Details
      200 OK Response JSON returned successfully.
      400 Bad Request Invalid request.
      400 Bad Request Missing Merchant-ID.
      400 Bad Request Missing Authorization header.
      401 Unauthorized Token expired.
      422 Unprocessable Entity Invalid Merchant.
      400 Bad Request Missing Authorization header.
      402 Bad Request UNPROCESSABLE_ENTITY.
      404 Not Found RESOURCE_NOT_FOUND.

      6 Create Refund

      Use this API to refund a payment.

      Endpoint POST /api/affordability/v1/offer/refund-payment

      Below are the sample requests and response for the Refund API.

      • cURL
      • Response
      curl --location 'https://api-affordability.pinelabs.com/api/affordability/v1/offer/refund-payment' \
      --header 'accept: application/json' \
      --header 'content-type: application/json' \
      --header 'Merchant-ID: 123456' \
      --data '{
        "payment_details": {
          "payment_id": "string",
          "offer_reference_id": "string"
        },
        "refund_amount": {
          "currency": "string",
          "value": 0
        }
      }'
      {
        "loan_amount": {
          "currency": "string",
          "value": 0
        },
        "payment_amount": {
          "currency": "string",
          "value": 0
        },
        "payment_details": {
          "payment_id": "string",
          "offer_reference_id": "string",
          "offer_status": "string"
        },
        "acquirer_details": {
          "mid": "string",
          "tid": "string",
          "name": "string",
          "acquirer_reference_id": "string",
          "rrn": "string",
          "approval_code": "string"
        }
      }
      • Header Parameters
      • Request Parameters
      • Response Parameters

      The table below lists the header parameters of our Refund API.

      Parameter Type Description
      Merchant-ID REQUIRED string Unique identifier of the merchant in the Plural database.
      Example: 123456
      Correlation-ID REQUIRED string For request tracing.

      Note: This value must be generated by you.

      The table below lists the request parameters of our Refund API.

      Parameter Type Description
      payment_details REQUIRED object An object that contains the payment details.

      Learn more about the payment_details child object.
      refund_amount REQUIREDREQUIRED object An object that contains the refund amount details.

      Learn more about the refund_amount child object.
      Payment Details [Child Object]

      The table below lists the various parameters in the payment_details child object. This is part of the settle payment request object.

      Parameter Type Description
      payment_id REQUIRED string Unique identifier of the payment in the Plural database.
      • Maximum length: 50 characters.
      Example: v1-5206071124-aa-mpLhF3-cc-l
      offer_reference_id REQUIRED string Unique identifier of the offer in the Plural database.
      • Maximum length: 50 characters.
      Example: 13627
      Refund Amount [Child Object]

      The table below lists the various parameters in the refund_amount child object. This is part of the settle payment request object.

      Parameter Type Description
      currency REQUIRED string Type of currency.

      Example: INR
      value REQUIRED integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000

      The table below lists the response parameters of our Refund API.

      Parameter Type Description
      refund_result object An object that contains the refund result details.

      Learn more about our refund_result child object.
      status string Refund status.

      Example: Processed
      message string Corresponding message to the status.

      Example: Refund processed
      Refund Result [Child Object]

      The table below lists the various parameters in the refund_result child object. This is part of the refund response object.

      Parameter Type Description
      currency REQUIRED string Type of currency.

      Example: INR
      value REQUIRED integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Error Codes

      The table below lists the possible error codes returned by the Create Refund API.

      Error Code Description Details
      200 OK Response JSON returned successfully.
      400 Bad Request Invalid request.
      400 Bad Request Missing Merchant-ID.
      400 Bad Request Missing Authorization header.
      401 Unauthorized Token expired.
      401 Unauthorized Invalid Merchant.
      400 Bad Request Missing Authorization header.
      402 Bad Request UNPROCESSABLE_ENTITY.
      404 Not Found RESOURCE_NOT_FOUND.

      7 Get Transaction Details by ID

      Use this API to fetch the transaction details.

      Endpoint POST /api/affordability/v1/offer/get-txn-by-id

      Below are the sample requests and response for the Get Transaction Details by ID API.

      • cURL
      • Response
      curl --location 'https://api-affordability.pinelabs.com/api/affordability/v1/offer/get-txn-by-id' \
      --header 'accept: application/json' \
      --header 'content-type: application/json' \
      --header 'Authorization: Bearer {access_token}' \
      --header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
      --header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
      --header 'Merchant-ID: 123456' \
      --data '{
        "payment_details": {
          "payment_id": "string",
          "offer_reference_id": "string"
        }
      }'
      {
        "loan_amount": {
          "currency": "INR",
          "value": 1176000
        },
        "payment_amount": {
          "currency": "INR",
          "value": 1218042
        },
        "payment_details": {
          "payment_id": "xs0344679801",
          "offer_reference_id": "xs0344679801",
          "offer_status": "INITIATED"
        },
        "acquirer_details": {
          "mid": "",
          "tid": "",
          "name": ""
        }
      }
      • Header Parameters
      • Request Parameters
      • Response Parameters

      The table below lists the header parameters of our Get Transaction Details by ID API.

      Parameter Type Description
      Merchant-ID REQUIRED string Unique identifier of the merchant in the Plural database.
      Example: 123456
      Correlation-ID REQUIRED string For request tracing.

      Note: This value must be generated by you.

      The table below lists the request parameters of our Get Transaction Details by ID API.

      Parameter Type Description
      merchant REQUIRED object An object that contains the merchant details.

      Learn more about the merchant child object.
      payment_details REQUIRED object An object that contains the payment details.

      Learn more about the payment_details child object.
      payment_method_details object An object that contains the payment method details.

      Learn more about the payment_method_details child object.
      Merchant [Child Object]

      The table below lists the various parameters in the merchant child object. This is part of the Get Transaction Details by ID request object.

      Parameter Type Description
      id REQUIRED string Unique identifier of the merchant in the Plural database.

      Example: 123456
      Payment Details [Child Object]

      The table below lists the various parameters in the payment_details child object. This is part of the Get Transaction Details by ID request object.

      Parameter Type Description
      payment_id REQUIRED string Unique identifier of the payment in the Plural database.
      • Maximum length: 50 characters.
      Example: v1-5206071124-aa-mpLhF3-cc-l
      offer_reference_id REQUIRED string Unique identifier of the offer in the Plural database.
      • Maximum length: 50 characters.
      Example: 13627
      Payment Method Details [Child Object]

      The table below lists the various parameters in the payment_method_details child object. This is part of the Get Transaction Details by ID request object.

      Parameter Type Description
      payment_mode string Type of payment mode you wish to use for the transaction.

      Possible values:
      • DEBIT_EMI
      • CREDIT_EMI
      • CARDLESS_EMI

      The table below lists the response parameters of our Get Transaction Details by ID API.

      Parameter Type Description
      merchant object An object that contains the merchant details.

      Learn more about the merchant child object.
      loan_amount object An object that contains the loan amount details.

      Learn more about the loan_amount child object.
      payment_amount object An object that contains the payment amount details.

      Learn more about the payment_amount child object.
      payment-method-details object An object that contains the payment method details.

      Learn more about the payment_method_details child object.
      payment_details object An object that contains the payment details.

      Learn more about the payment_details child object.
      acquirer_details object An object that contains the acquirer details.

      Learn more about the acquirer_details child object.
      Merchant [Child Object]

      The table below lists the various parameters in the merchant child object. This is part of the Get Transaction Details by ID response object.

      Parameter Type Description
      id string Unique identifier of the merchant in the Plural database.

      Example: 123456
      Loan Amount [Child Object]

      The table below lists the various parameters in the loan_amount child object. This is part of the Get Transaction Details by ID response object.

      Parameter Type Description
      currency string Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Payment Amount [Child Object]

      The table below lists the various parameters in the payment_amount child object. This is part of the Get Transaction Details by ID response object.

      Parameter Type Description
      currency string Type of currency.

      Example: INR
      value integer Transaction amount is Paisa.
      • Minimum value: 100 (₹1)
      • Maximum value: 100000000 (₹10 lakh)
      Example: 1000
      Payment Method Details [Child Object]

      The table below lists the various parameters in the payment_method_details child object. This is part of the Get Transaction Details by ID response object.

      Parameter Type Description
      payment_mode string Type of payment mode you wish to use for the transaction.

      Possible values:
      • DEBIT_EMI
      • CREDIT_EMI
      • CARDLESS_EMI
      Payment Details [Child Object]

      The table below lists the various parameters in the payment_details child object. This is part of the Get Transaction Details by ID response object.

      Parameter Type Description
      payment_id string Unique identifier of the payment in the Plural database.
      • Maximum length: 50 characters.
      Example: v1-5206071124-aa-mpLhF3-cc-l
      offer_reference_id string Unique identifier of the offer in the Plural database.
      • Maximum length: 50 characters.
      Example: 13627
      offer_status string Status of the offer.

      Possible values:
      • PENDING
      • COMPLETED
      • CANCELLED
      Acquirer Details [Child Object]

      The table below lists the various parameters in the acquirer_details child object. This is part of the Get Transaction Details by ID response object.

      Parameter Type Description
      mid string Unique identifier of the merchant in the Plural database.

      Example: 123456
      tid string Unique identifier of the transaction in the Plural database.

      Example: 23024802480248
      name string Bank's name.
      • Minimum length: 1 character.
      • Maximum length: 50 characters.
      Example: HDFCDebitEMI
      acquirer_reference_id string Unique reference returned from acquirer for the payment.

      Example: 202455840588334
      rrn string Retrieval reference number returned from acquirer for the payment.

      Example: 419335023601
      approval_code string Authorization code returned from acquirer against the payment.

      Example: 030376
      Error Codes

      The table below lists the possible error codes returned by the Get Transaction Details by ID API.

      Error Code Description Details
      200 OK Response JSON returned successfully.
      400 Bad Request Invalid request.
      400 Bad Request Missing Merchant-ID.
      400 Bad Request Missing Authorization header.
      401 Unauthorized Token expired.
      401 Unauthorized Invalid Merchant.
      400 Bad Request Missing Authorization header.
      402 Bad Request UNPROCESSABLE_ENTITY.
      404 Not Found RESOURCE_NOT_FOUND.