How to Apply Discounts on Certain Cards?
This parameter ONLY working with those integration types (Hosted Payment Page, Invoices(Payment Endpoint)).
The Card Discounts
feature/parameter enables merchants to provide tailored discounts to their customers based on specific card BIN ranges. This feature is designed to enhance customer loyalty and engagement by allowing merchants to offer discounts either as a fixed amount or a percentage off the total purchase.
By utilizing this feature, merchants can strategically target specific customer segments, rewarding them for their loyalty or encouraging new purchases. This flexibility allows for various promotional strategies, such as seasonal offers, loyalty rewards, or targeted marketing campaigns.
Next, we can delve into the specifics of how to implement the card_discounts
parameter in your requests.
How this parameter could benefit you?β
Here are some scenarios to help you understand when to use the Card Discounts feature:
- Loyalty Programs: A merchant wants to reward loyal customers who frequently use specific card BIN range. By applying discounts to these BIN ranges, they can enhance customer retention and encourage repeat purchases.
- Promotional Campaigns: During a special promotion, a merchant can offer discounts to customers using cards within a certain BIN range. This can help target specific customer segments and drive sales during the campaign.
- Seasonal Offers: For holidays or special events, merchants can create temporary discounts for certain card BIN ranges. This allows them to attract more customers during peak shopping times.
- Customer Segmentation: If a merchant identifies a group of customers who typically spend more, they can apply discounts to their card BIN ranges to incentivize even higher spending.
- New Customer Acquisition: To encourage new customers to try their services, merchants can apply discounts to specific card BIN ranges that are associated with new customer sign-ups.
- New Bank Partnerships: If a merchant establishes a new contract with a specific bank, they can apply card discounts to transactions made with cards that fall within that bankβs BIN ranges. This allows merchants to incentivize customers who use cards from that bank, potentially driving more business through targeted promotions and strengthening the partnership
Limitationsβ
- Uncertainty of Card Usage: you cannot guarantee that customers will use cards from the specified BIN ranges. Even if multiple BIN ranges are added, thereβs no assurance that they will cover all potential customers.
- Incompatibility with Donation Mode: The Card Discounts feature does not function in conjunction with the Donation Mode. In this mode, customers can enter their own donation amounts, which means discounts cannot be applied.
- Limited Control Over Customer Behavior: Merchants have limited control over which cards customers choose to use, making it challenging to predict the effectiveness of the discount strategy.
How to Use?β
In order for you to start use the card_discounts
feature, you kindly need to follow the below simple steps:
- Within the initiation of the request payload of the payment page/link in Step 3 via any of the supported integration types by this feature, you will use the optional parameter
card_discounts
within the main request payload itself as shown below:{
"card_discounts":[
{
"discount_cards":"41111,520000",
"discount_amount": "30.00",
"discount_title": "30.00 SAR discount on cards starts with 41111, 520000"
},
{
.....
}
]
} - Once you post your request, you will receive a response that includes redirect URL like the following:
"redirect_url": "https://secure.paytabs.com/payment/page/599458B182E5B6B********************B4818688",
- Finally you will need navigate/redirect your customer to the the previous mentioned link as this is crucial for your customer to proceed through the payment process. You may need to check his customer experience after in the coming Expected Payment Flow Behavior.
Parameter Specificationsβ
-
card_discounts
Parameter card_discounts Data Type Array Description To provide discounts for specific customers. To know more about this parameter please click here.Required β Sample {
"card_discounts":[
{
"discount_cards":"41111,520000",
"discount_amount": "30.00",
"discount_title": "30.00 SAR discount on cards starts with 41111, 520000"
},
{
.....
}
}Object Nested Parameters Parameter Data Type Required Min Max discount_cards STRING β - - Provide a comma-separated list of card prefixes (usually first 6, can be up to first 11)
To know more about this parameter please click here.discount_amount DECIMAL β 0.01 9999999999.99 The actual discount should be deducted from thecart_amount
.
To know more about this parameter please click here.discount_title STRING β - - Description of the discount that will be displayed for the customer on the hosted payment page.
To know more about this parameter please click here.
Request & Response Payloads Samplesβ
- Hosted Payment Page
- Invoices
The below sample request payload will show you how you can pass the above-mentioned required parameter/s, which are needed to be passed with valid values to perform a request. Along with the response payload received after using this request payload.
- Request Sample Payload
- Response Sample Payload
{
"profile_id": {{profile_id}},
"tran_type": "sale",
"tran_class": "ecom",
"cart_description": "Description of the items/services",
"cart_id": "Unique order reference00",
"cart_amount": 25000.2,
"cart_currency": "SAR",
"card_discounts":[
{
"discount_cards":"41111,520000",
"discount_amount": "30.00",
"discount_title": "30.00 SAR discount on cards starts with 41111, 520000"
}
]
}
{
"tran_ref": "TST22********159",
"tran_type": "Sale",
"cart_id": "CART#1001",
"cart_description": "Description of the items/services",
"cart_currency": "SAR",
"cart_amount": "500.00",
"return": "none",
"redirect_url": "https://secure.paytabs.sa/payment/page/599458B182E5B6B********************B4817FD44318539688688",
"serviceId": 2,
"profileId": 9*****4,
"merchantId": 1*****7,
"trace": "PMN****4.63****A8.00****C4"
}
The below sample request payload will show you how you can pass the above-mentioned required parameter/s, which are needed to be passed with valid values to perform a request. Along with the response payload received after using this request payload.
- Request Sample Payload
- Response Sample Payload
{
"profile_id": {{profile_id}},
"tran_type": "sale",
"tran_class": "ecom",
"cart_currency": SAR,
"cart_amount": "9.5",
"cart_id": "cart_12345_2",
"cart_description": "Test Description",
"hide_shipping": true,
"card_discounts":[
{
"discount_cards":"41111,520000",
"discount_amount": "30.00",
"discount_title": "30.00 SAR discount on cards starts with 41111, 520000"
}
],
"invoice": {
"line_items": [
{
"unit_cost": 9.5,
"quantity": 1,
}
]
}
}
{
"tran_ref": "TST22********159",
"tran_type": "Sale",
"cart_id": "CART#1001",
"cart_description": "Description of the items/services",
"cart_currency": "SAR",
"cart_amount": "9.5",
"return": "none",
"redirect_url": "https://secure.paytabs.sa/payment/page/599458B182E5B6B********************B4817FD44318539688688",
"serviceId": 2,
"profileId": 9*****4,
"merchantId": 1*****7,
"trace": "PMN****4.63****A8.00****C4"
}
Expected Payment Flow Behaviorβ
- Hosted Payment Page
- Invoices
- As mentioned above in the How to use? section, As a merchant you would initiate a payment request per the above Specifications, same as the sample codes mentioned in the samples section above.
be aware ofyou cannot pass card_amount and card_percentage parameters together inside the card_discount object, only one of them will be applied, I added it in the How To Use section for showing all the fields - Then, you will receive a response that includes redirect URL. This means you have initiated a correct payment request/page successfully.
"redirect_url": "https://secure.paytabs.com/payment/page/599458B182E5B6B********************B4818688",
- Next, you should redirect your customer to this URL so the payment process can be finalized.
- After this, your customer would proceed normally with payment by providing his card information, and he will be able to see both the original and the alternative currency as shown below:
- Then, he will be redirected to his issuer bank 3DS/OTP page to authenticate the used card
- Finally, he would be redirect to a success/error page accordingly. By this time, you will be able to see his transaction on your merchant dashboard, whether it's accepted/authorized or not.
- As mentioned above in the How to use? section, As a merchant you would initiate a payment request per the above Specifications, same as the sample codes mentioned in the samples section above.
be aware ofyou cannot pass card_amount and card_percentage parameters together inside the card_discount object, only one of them will be applied, I added it in the How To Use section for showing all the fields - Then, you will receive a response that includes redirect URL. This means you have initiated a correct payment request/page successfully.
"redirect_url": "https://secure.paytabs.com/payment/page/599458B182E5B6B********************B4818688",
- Next, you should redirect your customer to this URL so the payment process can be finalized.
- After this, your customer would proceed normally with payment by providing his card information, and he will be able to see both the original and the alternative currency as shown below:
- Then, he will be redirected to his issuer bank 3DS/OTP page to authenticate the used card
- Finally, he would be redirect to a success/error page accordingly. By this time, you will be able to see his transaction on your merchant dashboard, whether it's accepted/authorized or not.