Deep Offer API

Merchants can now pass user and cart context when initiating transaction with PhonePe. This
context can be used to run differential offers and provide differential transaction
experience. This is available for all the platforms(Web, Android, iOS).

Differential Offers

As a part of v3/debit and v3/debit/instant request, merchants need to pass offer context in
following format.

  "merchantId": "M12345",
  "transactionId": "TX12345",
  "amount": 100,
  "mobileNumber": "9939872251",
  "merchantContext": {
  	"offerContext": {
  	"tags": [{
    	"id": "GOLD_CATEGORY",
     	"amount": 100 }]

Tag Id are defined in the two (Merchant’s and PhonePe’s) systems in advance operationally
before starting the offer.

For example, we wish to run an offer 10% cashback upto Rs 50 for all Gold Category

In this case,

  1. A tag GOLD_CATEGORY is defined in both merchant’s and PhonePe’s system
  2. At PhonePe this tag is linked to an offer id that provides 10% cashback upto Rs 50
  3. Whenever a Gold Category customer transacts, Merchant passes tag id as
  4. PhonePe applies the 10% cashback upto Rs 50 offer.


  • Currently tag amount should be equal to total amount, else transaction will fail.
  • Merchants can pass more than one tag in tags array, in such cases we can apply best
    offer logic or can add up multiple offers depending on the offer configuration.

Transaction Reversals

No impact on transaction reversals. The reversal signature remains the same.

Offer Discovery

Primary offer discovery should happen at merchant’s site. However to ensure user does not
lose transaction context, the offer information will be shown inside PhonePe container as well.
PFB the screenshot, how an offer is displayed for a user.