Promo Management
Introduction
Midtrans Promo Engine is an exclusive feature of hosted checkout page (Snap and Payment Link) integration, where merchant can easily run promotion without any additional code or technical development. From promo campaign creation to implementation in the checkout page can be set via dashboard without any technical capabilities needed.
Promo Engine makes it easy for merchant to perform the following operations :
- Implement promotion directly in the checkout flow
If promotion is active and customer is eligible, customer will see a promo sticker next to the payment method selection in Snap's payment list. Customer then can choose which promotion they want to apply to their transaction, and final amount will be deducted before customer clicks pay. Note that user can only choose 1 promotion within a transaction.
-
Budget control
Set maximum budget (max IDR budget, trx cap, or both) per campaign. Once the budget runs out, campaign will be automatically deactivated, ensuring that merchant will not spend more then the allocated budget. -
User maximum transaction cap
Limit the number of time a user (defined by either email, phone number or card number) can transact using a promotion according to the campaign rules to prevent promo abuse or fraud. -
Implement BIN based campaign
For card payment specific promotions, limit which card BINs would be eligible to receive promotion, according to partner bank's terms and conditions. -
Set campaign active period
Set the time period when the campaign will be active - once campaign has passed the set date, campaign will automatically deactivate. -
Set campaign recurrence
Set when campaign will be applicable (certain day of the week, certain date of the month) or the frequency (reset campaign's user cap every day, every week, or every month). -
Promotion reporting
Easily download promotion reports for merchant's own recon activities or to be shared with bank/payment's partners, via Midtrans's dashboard or Promo Engine's dashboard.
Supported payment method
Promo Engine currently only support Midtrans's card payment transactions - more schemes coming soon.
Activating and Logging in to Promo Engine
To activate Promo Engine on your merchant account, activate first via Midtrans's Dashboard's Payment Methods page for feature activation. Once done, you will be able to see the Promo menu in your Midtrans's dashboard.
Creating Promo Campaigns
Transaction counted as successful transaction in Promo Engine
Transaction with the status
PENDING
,CAPTURE
, orSETTLEMENT
with the promo applied during checkout in Snap's page is counted as a successful transaction and will deduct the allocated budget/user cap set in the campaign. If the transaction's status isCANCEL
,EXPIRE
, orFAILURE
however, the campaign's promo limit from said transactions will be replenished.Example :
A promo campaign is set with a budget limit of 1,000,000 IDR. If a transaction with a 10,000 IDR discount applied was made by customer and transaction status isCAPTURE
, budget will be deducted and 990,000 IDR is left. However if transaction is cancelled later on; 10,000 IDR will be returned back to the budget limit, making the budget limit of said campaign back to 1,000,000 IDR.
Promo campaigns can be created by going to Midtrans Dashboard > Promo > Create Promo. You can save the campaign as draft first by ensuring that the Promo will be automatically active during the promo period tickbox in the Promo Period section is left unticked when clicking the Submit Promo button. It's very important to note that campaigns' budget and terms cannot be modified once set to active.
To deactivate a campaign, go to the Promo List, click the ...
menu on the right side of the table, then click Deactivate.
To create a campaign; set your promo details, discount terms, promotion's budget, customer's max transaction limit, and promo period within the promo creation page.
Promo Details
Fill in the following promotion details upon creating a campaign :
-
Name
Promotion name. This will appear as the promotion name that customer can choose in Snap's checkout page. -
Sponsor Name
Input the provider who sponsors this campaign. This will be available as filterable information in the Promo page. -
Promo code
Promotion unique code, used as promo identifier within Promo Engine. Promo code needs to be unique for every campaign. -
Promo period
Tick the Promo will be automatically active during the promo period checkbox in the Promo Period section if you want to activate the campaign which will run on the defined date, otherwise it will be saved as draft and needs to be activated manually. You will also need to specify at least the promo start date. If no end date is specified, promo will run indefinitely.
Discount Terms
Discount Type
Set the discount type between Fixed Amount, Percentage or Combo (Fixed Amount & Percentage). This section is mandatory to be filled.
- Fixed
Fixed discount will discount the transaction over a fixed amount. If discount amount exceeds the total transaction amount, final transaction amount will be zero - be careful as this might cause the transaction to fail as some payment method/banks do not support transaction below a certain amount.
Example :
If you set the fixed discount amount to 10,000, and total transaction amount prior to discount is 100,000 - once applied by customer, final transaction amount that will be charged to Midtrans and customer will be 90,000 IDR.
- Percentage
Percentage discount will discount the transaction based on % set in the Discount Amount
field.. If discount IDR amount exceeds the total transaction amount, final transaction amount will be zero, same caution above applies.
Example :
If Discount Percentage is set to 10%, and total transaction amount prior to discount is 100,000 - once applied by customer, final transaction amount that will be charged to Midtrans and customer will be 90,000 IDR.
- Fixed Amount & Percentage (Combo)
Combo discount will apply % based discounts with maximum IDR amount of discount, whichever IDR discount amount is lower (either the % based discount or maximum IDR amount) will be applied to the transaction.
Example :
If discount percentage is set to 10% and fixed discount amount is set to 10,000 - if a transaction with basket size of 1,000,000 is made by customer and promotion is applied; IDR 10,000 will be discounted from the transaction (making the final amount charged to Midtrans 990,000) as 10% of the transaction amount is greater than the maximum discount amount (IDR 100,000 vs IDR 10,000).
Minimum transaction amount
Set the minimum transaction amount (basket size) eligible to receive promo and discount type in this section.

Tick the Minimum transaction amount
in the Advanced Settings section if you want to enable promo for transaction with basket size (before discount is applied) to be at least a certain amount. Customers who makes transactions with gross amount below the set minimum amount will not be shown this promo.
Promo Budget
Promo Budget section in the promo creation page allows you to set a maximum budget for your promo campaign. Untick it to set the promo campaign to run without regard of campaign budget until the end of specified promo period. If set to Yes, your campaign will only run until the set limit is reached, then campaign will automatically deactivate. Budget limit can be set by transaction amount, transaction count, or a combination of both.
Budget amount
Budget amount
will limit the promotion up to your total allocated IDR budget for the whole campaign. If the budget amount
is exceeded, the promo can no longer be used.
Example :
If you set the Budget amount
as 100,000,000 - and then you have 1000 transactions which have redeemed the promotion amount accumulated to a total of 100,000,000 - the 1001st transaction going forward will not see any promotion option in Snap checkout page and be processed as normal.
Promo quota
Limit the promotion for x number of transactions only. If the transaction count is exceeded within the promo period, the promo can no longer be used by customer.
Example :
If promo quota
is set to 100, and 100 transactions from various customers have successfully used the promotion, the 101th transaction going forward will not see any promotion option in Snap and be processed as normal.
Budget amount & promo quota
Combine both Budget amount
and Promo quota
. Whichever condition is met first will deactivate the campaign.
Example :
If you set the Budget amount
as 1,000,000 and count to 10 - and then you have 10 transactions which have redeemed in total 900,000 IDR worth of discount before the campaign ends - the 11th transaction going forward will not see any promotion option in Snap and be processed as normal.
Promo Period
This section governs how long the campaign will be active (and with it, the budget calculation time).
Tick the Promo will be automatically active during the promo period checkbox in the Promo Period section if you want to activate the campaign which will run on the defined date, otherwise it will be saved as draft and needs to be activated manually. You will also need to specify at least the promo start date and time. If no end date is specified, promo will run indefinitely.
Promo Schedule
This section governs when promotion will be available for customers.
Daily - at selected time
: campaign will be active everyday within the specified hour. Outside of specified hour, promo will deactivate and be automatically reactivated again on the next calendar day within the specified hour.
On selected days
: campaign will be active on certain days of the week (multiple days selection are supported), within the specified hour.
On specific dates
: campaign will be active on a certain date of the month (range between 1-31, multiple inputs are allowed separated by comma) and specified hour. Example : if you want to set up a payday period campaign that occurs every month on 25-27th day, type25,26,27
into theEnter specific dates
field.
Budget calculation
Promo schedule
does not affect budget calculation - say that if you set it toDaily - at selected time
, budget calculation will not be reset daily. Instead, it will follow the start date and end date set in thePromo Period
fields (or never reset if on End Date is specified in Promo Period).
Credit Card Rules
You can set promo limitation specific to card payment properties in the Credit Card BIN and installment
section. Setting this section is optional; if not needed, then leave the checkbox unticked or leave it as empty.
Credit Card Bin
Activate promo only for transactions using card with specific BIN number. For example, if you want the promo to be activated only for Mandiri cards, simply adding 46170069 in the input field will enable the promo option only for customers who use cards beginning with 46170069. You can also input multiple BINs by separating them with commas such as 46170069,52642210,45992078 (no space).
Please note that we highly recommend filling in 8 digits Card Bin in this input field.
Installment
Tick all the eligible the Installment Terms options. If not set, promo will be applicable for all type of transactions.
Promo usage limit
Setting the max count per customer
You can set how many times a customer can use the promotion within a certain time period. If customer exceeds the cap set here, the subsequent transaction made by said customer will proceed as normal without promotion applied.
A customer is defined by a unique card number, phone number or email address - promo engine will count transactions made by each card, phone number and email. If all three limitation fields (shown in above picture) are filled and customer is using the same credentials across three fields, whichever limit is met first will deactivate the promotion for said customer's transaction. These fields are optional.
Example :
If you set the max trx limit as follows,
a. 1 trx per card
b. 2 trx per email
c. 3 trx per mobile phone number.
If customer using card A, email B, and phone number C across all of their transactions, the first transaction will be eligible for promo, but 2nd transaction going forward will no longer be eligible for promotion since max cap per card has already been met, even though cap per email or phone number hasn't been met yet.
If customer however changes card for their second transaction, customer will be eligible for promotion on their second transaction as no max cap is met as of 2nd transaction.
Setting the timeframe of customer's limitation
The previously set customer's limitation period can be set in the Reset cycle of promo usage
section. Once the timeframe has been exceeded, customer's limit will be reset and customer can use the promo again. If not set, each customer's quota will not be reset until the end of campaign.
Example :
If limitation timeframe is set as End of day
and max transaction cap is set as 1, if customer has made a transaction and used promo today on 11PM GMT+7, customer can only use the promo again from said campaign as early as 00:00:01 GMT+7 the following day.
There are 3 types of timeframe :
-
End of promo period
Customer's limitation will last as long as the campaign is active. Once customer's transaction limit is met, customer can no longer use the promo until the campaign ends. -
End of day
Customer's limitation will last per transaction's date (GMT+7). Once the day changed, the limitation will be reset. -
End of month
Customer's limitation will last per transaction's month (GMT+7). Once the month changed, the limitation will be reset. -
Custom interval
Define how many days (1 day is defined as 24 hour) after transaction until the limitation will be reset. Days will be calculated from the date and time when customer made a transaction. Max days that can be set is 30 days. E.g. if you set is as 2 days and customer transact at 2023-02-14 03:00:00, then customer can use promo again on 2023-02-16 03:00:00.
Downloading Reports
Download transaction as usual via Midtrans's Dashboard > Transactions. When downloading, tick the `Promo Details` checkbox which will add two columns in the report, the Promo Code (campaign unique identifier as set in the Promo Creation page), and Promo Original Amount (original transaction amount as sent by merchant prior to discount).
Updated about 1 month ago