Page History
...
IPS Assist provides merchants with the opportunity to organize three types of promotions:
Table of Contents |
---|
Promotions
By a promotion the merchant provides a discount on its side if the buyer pays for a product (service) with a card of a certain bank and/or a certain type.
By making a payment under a promotion:
The merchant sends the payment amount in the payment request, already taking into account the discount.
IPS Assist checks the buyer's card for participation in the promotion:
- if the promotion is valid at the time of payment and the card meets the terms of the promotion, then IPS Assist makes a payment for the amount (with a discount) transferred by the merchant;
- if the promotion is not valid at the time of payment or the card does not meet the terms of the promotion, then the payment is not made and an error message is displayed.
The merchant organizes on its side the possibility of payment for the buyer with a discount (for the promotion) or without a discount (for cards not participating in the promotion), if necessary.
Also, to pay for an order under a promotion, you need to send the additional parameter “PROMONAME” in the request. The value of the parameter is the name of the specific promotion. The unique name of the promotion is generated by the IPS Assist technical support service and transferred to the merchant (the name can also be chosen together with the merchant).
The main part of the promotion settings is performed on the IPS Assist side. To do this, the merchant should inform the technical support department of IPS Assist about the exact values of the promotion parameters:
time of action;
types of cards that participate in the advertising campaign.
Discounts
A discount may be provided as part of a promotion if the buyer pays for a product (service) with a card of a certain bank and/or a certain type.
The order amount for payment with a discount is calculated on the IPS Assist side according to the approved rules of the promotion.
The discount can be without sending the “PROMONAME” parameter or with sending the “PROMONAME” parameter. The value of the parameter is the name of the specific discount promotion. The unique name of the promotion is generated by the IPS Assist technical support service and transferred to the merchant (the name can also be chosen together with the merchant).
At the same time, only one discount with the send of the “PROMONAME” parameter is possible for the merchant. If the parameter is sent, but the card does not meet the conditions, the payment will be made for the full amount without a discount.
There can be different discounts for different conditions without sending the “PROMONAME” parameter. If the buyer’s card fits for several discounts at once, then the discount is applied according to the approved rules of the promotion.
To use a discount, it is necessary to develop special payment page templates or modify individual templates. Payment pages should display information about discount conditions.
The main part of the discount settings is performed on the IPS Assist side. To do this, the merchant should inform the technical support department of IPS Assist about the exact values of the discount parameters:
- type of discount with or without sending the “PROMONAME” parameter;
- discount duration;
- message text for buyer;
- discount amount as a percentage and rounding rules for calculating the discount amount, as well as the maximum possible discount amount;
- rules for choosing a discount if there are several different promotions with discounts (summing discounts or using the maximum of several);
- types of cards that participate in the promotion.
It should be borne in mind that payment with a discount in IPS Assist will consist of two operations: one real for the amount of the order minus the discount and the second virtual for the amount of the discount. Both operations will be displayed in the merchant’s Personal account, as well as in the responses of the payment results web services. The receipt for the buyer will indicate the total amount of the order, the amount paid and the discount.
Examples of responses to a request to receive operations results by order number
In XML format:
Code Block | ||
---|---|---|
| ||
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!DOCTYPE result [
<!ATTLIST result
firstcode CDATA #REQUIRED
secondcode CDATA #REQUIRED
count CDATA #REQUIRED>
<!ELEMENT result (order*)>
<!ELEMENT order (ordernumber?,billnumber?,testmode?,ordercomment?,orderamount?,ordercurrency?,firstname?,lastname?,middlename?,email?,orderdate?,orderstate?,packetdate?,signature?,checkvalue?,operation*)>
<!ELEMENT ordernumber (#PCDATA)>
<!ELEMENT billnumber (#PCDATA)>
<!ELEMENT testmode (#PCDATA)>
<!ELEMENT ordercomment (#PCDATA)>
<!ELEMENT orderamount (#PCDATA)>
<!ELEMENT ordercurrency (#PCDATA)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT middlename (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT orderdate (#PCDATA)>
<!ELEMENT orderstate (#PCDATA)>
<!ELEMENT packetdate (#PCDATA)>
<!ELEMENT signature (#PCDATA)>
<!ELEMENT checkvalue (#PCDATA)>
<!ELEMENT operation
(billnumber?,operationtype?,operationstate?,amount?,currency?,clientip?,ipaddress?,meantype_id?,meantypename?,meansubtype?,meannumber?,cardholder?,issuebank?,bankcountry?,responsecode?,message?,customermessage?,recommendation?,approvalcode?,protocoltypename?,processingname?,operationdate?,authresult?,authrequired?,rrn?,extrrn?)>
<!ELEMENT operationtype (#PCDATA)>
<!ELEMENT operationstate (#PCDATA)>
<!ELEMENT amount (#PCDATA)>
<!ELEMENT currency (#PCDATA)>
<!ELEMENT clientip (#PCDATA)>
<!ELEMENT ipaddress (#PCDATA)>
<!ELEMENT meantype_id (#PCDATA)>
<!ELEMENT meantypename (#PCDATA)>
<!ELEMENT meansubtype (#PCDATA)>
<!ELEMENT meannumber (#PCDATA)>
<!ELEMENT cardholder (#PCDATA)>
<!ELEMENT issuebank (#PCDATA)>
<!ELEMENT bankcountry (#PCDATA)>
<!ELEMENT responsecode (#PCDATA)>
<!ELEMENT message (#PCDATA)>
<!ELEMENT customermessage (#PCDATA)>
<!ELEMENT recommendation (#PCDATA)>
<!ELEMENT approvalcode (#PCDATA)>
<!ELEMENT protocoltypename (#PCDATA)>
<!ELEMENT processingname (#PCDATA)>
<!ELEMENT operationdate (#PCDATA)>
<!ELEMENT authresult (#PCDATA)>
<!ELEMENT authrequired (#PCDATA)>
<!ELEMENT rrn (#PCDATA)>
<!ELEMENT extrrn (#PCDATA)>]>
<result firstcode='0' secondcode='0' count='1'>
<order>
<ordernumber>2022.07.11-6</ordernumber>
<billnumber>5732614256223423</billnumber>
<testmode>0</testmode>
<ordercomment></ordercomment>
<orderamount>100.00</orderamount>
<ordercurrency>BYN</ordercurrency>
<firstname>Test</firstname>
<lastname>Testov</lastname>
<middlename>T.</middlename>
<email>test@assist.by</email>
<orderdate>11.07.2022 07:23:02</orderdate>
<orderstate>Approved</orderstate>
<packetdate>11.07.2022 07:41</packetdate>
<signature></signature>
<checkvalue>65A46731208432C4018D42091E8E4F35</checkvalue>
<operation>
<billnumber>5732614256223423.1</billnumber>
<operationtype>100</operationtype>
<operationstate>Success</operationstate>
<amount>90.00</amount>
<currency>BYN</currency>
<clientip>81.211.118.98</clientip>
<ipaddress>0.0.0.0</ipaddress>
<meantype_id>1</meantype_id>
<meantypename>VISA</meantypename>
<meansubtype>Classic</meansubtype>
<meannumber>411111****1111</meannumber>
<cardholder>TEST TESTOV</cardholder>
<cardexpirationdate>12/25</cardexpirationdate>
<issuebank>New Assist Bank</issuebank>
<bankcountry>Russia</bankcountry>
<responsecode>AS000</responsecode>
<message> </message>
<customermessage></customermessage>
<recommendation></recommendation>
<approvalcode>X26591</approvalcode>
<protocoltypename>NET</protocoltypename>
<processingname>BPCBel</processingname>
<operationdate>11.07.2022 07:23:02</operationdate>
<authresult>Y</authresult>
<authrequired>1</authrequired>
<slipno></slipno>
<threedsdata>
<version>1.0</version>
<alphaauthresult>Y</alphaauthresult>
<challenge>C</challenge>
<eci>5</eci>
</threedsdata>
</operation>
<operation>
<billnumber>5732614256223423.2</billnumber>
<operationtype>100</operationtype>
<operationstate>Success</operationstate>
<amount>10.00</amount>
<currency>BYN</currency>
<clientip>81.211.118.98</clientip>
<ipaddress>0.0.0.0</ipaddress>
<meantype_id>21</meantype_id>
<meantypename>Discount</meantypename>
<meansubtype></meansubtype>
<meannumber></meannumber>
<cardholder></cardholder>
<cardexpirationdate></cardexpirationdate>
<issuebank>UNKNOWN</issuebank>
<bankcountry>UNKNOWN</bankcountry>
<responsecode>AS000</responsecode>
<message> </message>
<customermessage></customermessage>
<recommendation></recommendation>
<approvalcode></approvalcode>
<protocoltypename></protocoltypename>
<processingname>Disc</processingname>
<operationdate>11.07.2022 07:23:08</operationdate>
<authresult></authresult>
<authrequired></authrequired>
<slipno></slipno>
<threedsdata>
<version></version>
<alphaauthresult></alphaauthresult>
<challenge></challenge>
<eci>7</eci>
</threedsdata>
</operation>
</order>
</result> |
In SOAP format:
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://www.paysecure.ru/ws/">
<soapenv:Body>
<ws:orderresultResponse>
<orderresult>
<order>
<ordernumber>2022.07.11-6</ordernumber>
<billnumber>5732614256223423</billnumber>
<testmode>0</testmode>
<ordercomment></ordercomment>
<orderamount>100.00</orderamount>
<ordercurrency>BYN</ordercurrency>
<firstname>Test</firstname>
<lastname>Testov</lastname>
<middlename>T.</middlename>
<email>test@assist.by</email>
<orderdate>11.07.2022 07:23:02</orderdate>
<orderstate>Approved</orderstate>
<packetdate>11.07.2022 07:42</packetdate>
<signature></signature>
<checkvalue>65A46731208432C4018D42091E8E4F35</checkvalue>
<operation>
<billnumber>5732614256223423.1</billnumber>
<operationtype>100</operationtype>
<operationstate>Success</operationstate>
<amount>90.00</amount>
<currency>BYN</currency>
<clientip>81.211.118.98</clientip>
<ipaddress>0.0.0.0</ipaddress>
<meantype_id>1</meantype_id>
<meantypename>VISA</meantypename>
<meansubtype>Classic</meansubtype>
<meannumber>411111****1111</meannumber>
<cardholder>TEST TESTOV</cardholder>
<cardexpirationdate>12/25</cardexpirationdate>
<issuebank>New Assist Bank</issuebank>
<bankcountry>Russia</bankcountry>
<responsecode>AS000</responsecode>
<message> </message>
<customermessage> </customermessage>
<recommendation></recommendation>
<approvalcode>X26591</approvalcode>
<protocoltypename>NET</protocoltypename>
<processingname>BPCBel</processingname>
<operationdate>11.07.2022 07:23:02</operationdate>
<authresult>Y</authresult>
<authrequired>1</authrequired>
<slipno></slipno>
<threedsdata>
<version>1.0</version>
<alphaauthresult>Y</alphaauthresult>
<challenge>C</challenge>
<eci>5</eci>
</threedsdata>
</operation>
<operation>
<billnumber>5732614256223423.2</billnumber>
<operationtype>100</operationtype>
<operationstate>Success</operationstate>
<amount>10.00</amount>
<currency>BYN</currency>
<clientip>81.211.118.98</clientip>
<ipaddress>0.0.0.0</ipaddress>
<meantype_id>21</meantype_id>
<meantypename>Discount</meantypename>
<meansubtype></meansubtype>
<meannumber></meannumber>
<cardholder></cardholder>
<cardexpirationdate></cardexpirationdate>
<issuebank>UNKNOWN</issuebank>
<bankcountry>UNKNOWN</bankcountry>
<responsecode>AS000</responsecode>
<message> </message>
<customermessage> </customermessage>
<recommendation></recommendation>
<approvalcode></approvalcode>
<protocoltypename></protocoltypename>
<processingname>Disc</processingname>
<operationdate>11.07.2022 07:23:08</operationdate>
<authresult></authresult>
<authrequired></authrequired>
<slipno></slipno>
<threedsdata>
<version></version>
<alphaauthresult></alphaauthresult>
<challenge></challenge>
<eci>7</eci>
</threedsdata>
</operation>
</order>
</orderresult>
</ws:orderresultResponse>
</soapenv:Body> |
In JSON format:
Code Block | ||
---|---|---|
| ||
{
"orderresult": {
"orders": [
{
"operations": [
{
"customermessage": " ",
"message": " ",
"operationdate": "11.07.2022 07:23:02",
"operationtype": 100,
"authrequired": "1",
"cardexpirationdate": "12/25",
"operationstate": "Success",
"threedsdata": {
"version": "1.0",
"eci": "5",
"alphaauthresult": "Y",
"challenge": "C"
},
"recommendation": "",
"processingname": "BPCBel",
"meannumber": "411111****1111",
"meantype_id": 1,
"authresult": "Y",
"clientip": "81.211.118.98",
"ipaddress": "0.0.0.0",
"amount": 90,
"responsecode": "AS000",
"meantypename": "VISA",
"protocoltypename": "NET",
"bankcountry": "Russia",
"cardholder": "TEST TESTOV",
"approvalcode": "X26591",
"slipno": "",
"issuebank": "New Assist Bank",
"currency": "BYN",
"billnumber": "5732614256223423.1",
"meansubtype": "Classic"
},
{
"customermessage": " ",
"message": " ",
"operationdate": "11.07.2022 07:23:08",
"operationtype": 100,
"authrequired": "",
"cardexpirationdate": "",
"operationstate": "Success",
"threedsdata": {
"version": "",
"eci": "7",
"alphaauthresult": "",
"challenge": ""
},
"recommendation": "",
"processingname": "Disc",
"meannumber": "",
"meantype_id": 21,
"authresult": "",
"clientip": "81.211.118.98",
"ipaddress": "0.0.0.0",
"amount": 10,
"responsecode": "AS000",
"meantypename": "Discount",
"protocoltypename": "",
"bankcountry": "UNKNOWN",
"cardholder": "",
"approvalcode": "",
"slipno": "",
"issuebank": "UNKNOWN",
"currency": "RUB",
"billnumber": "5732614256223423.2",
"meansubtype": ""
}
],
"testmode": 0,
"customer": {
"lastname": "Testov",
"firstname": "Test",
"middlename": "T.",
"email": "test@assist.by"
},
"orderdate": "11.07.2022 07:23:02",
"packetdate": "11.07.2022 07:29",
"orderamount": 100,
"ordercomment": "",
"ordercurrency": "BYN",
"orderstate": "Approved",
"signature": "",
"checkvalue": "65A46731208432C4018D42091E8E4F35",
"billnumber": "5732614256223423",
"ordernumber": "2022.07.11-6"
}
]
} |
An example of a discount operation authorization result package sent to the merchant server
Code Block | ||
---|---|---|
| ||
11.07.2022 07:15:55 Request Operation_ID:6000929 TO URL:https://<SERVER-NAME>/merchant-services/service
Params: merchant_id:732614;ordernumber:2022.07.11-5;billnumber:5732614256223415.2;testmode:0;ordercomment:;orderamount:100.00;ordercurrency:BYN;amount:10.00;currency:BYN;rate:1;firstname:Test;lastname:Testov;middlename:T.;email:null@assist.by;clientip:81.211.118.98;ipaddress:0.0.0.0;meantype_id:21;meantypename:Discount;meansubtype:;meannumber:;cardholder:;cardexpirationdate:;issuebank:UNKNOWN;bankcountry:UNKNOWN;orderdate:11.07.2022 07:15:46;orderstate:Approved;responsecode:AS000;message:;customermessage:;recommendation:SUCCESSFUL AUTHORIZATION;approvalcode:;protocoltypename:;processingname:Discount;operationtype:100;operationdate:11.07.2022 07:15:51;authresult:;authrequired:;slipno:;packetdate:11.07.2022 07:15:55;signature:;checkvalue:F0D84B730CCF85C264A9C2289EEC9113;token:;version:;alphaauthresult:;challenge:;eci:7; |
An example of a payment operation authorization result package sent to the merchant server
Code Block | ||
---|---|---|
| ||
11.07.2022 07:23:15 Request Operation_ID:6000930 TO URL:https:// URL:https://<SERVER-NAME>/merchant-services/service
Params: merchant_id:732614;ordernumber:2022.07.11-6;billnumber:5732614256223423.1;testmode:0;ordercomment:;orderamount:100.00;ordercurrency:BYN;amount:90.00;currency:BYN;rate:1;firstname:Test;lastname:Testov;middlename:T.;email:null@assist.by;clientip:81.211.118.98;ipaddress:0.0.0.0;meantype_id:1;meantypename:VISA;meansubtype:Classic;meannumber:411111****1111;cardholder:TEST TESTOV;cardexpirationdate:12/25;issuebank:New Assist Bank;bankcountry:Russia;orderdate:11.07.2022 07:23:02;orderstate:Approved;responsecode:AS000;message:;customermessage:;recommendation:SUCCESSFUL AUTHORIZATION;approvalcode:X26591;protocoltypename:NET;processingname:BPCBel;operationtype:100;operationdate:11.07.2022 07:23:02;authresult:Y;authrequired:1;slipno:;packetdate:11.07.2022 07:23:15;signature:;checkvalue:7C8A939B29D3384F8DB6890452506A27;token:;version:1.0;alphaauthresult:Y;challenge:C;eci:5; |
Promo games
Promotional games are promotions that provide prizes to customers based on the number of purchases at certain stores and payment of these purchases with certain types of cards. Prizes may include, for example, promotional codes, as well as certain goods or services.
The specific conditions of the promotional game are discussed by the merchant with the technical support service of IPS Assist; the merchant transfers the necessary data on the promotional game to the technical support department of IPS Assist for correct system configuration.
Note |
---|
If the terms of the game require payment to several different merchants, then all these merchants participate in the promotional game equally, without any special features. |
To pay for an order with the bayer participating in a promotional game, you need to send the additional parameter “PROMOGAME” in the request. The value of the parameter is the name of the specific promotional game. The unique name of the promotional game is generated by the IPS Assist technical support service and transferred to the merchant (the name can also be chosen together with the merchant). If the request does not contain the additional parameter “PROMOGAME”, by agreement with the merchant) on the IPS Assist side, you can configure the refusal of payment or acceptance of payment without participating in the game.
Unlike other types of promotions, by using promotional games, specific possibilities for implementing various functions of the promotional game are discussed with the merchant and, based on the results, all necessary settings are negotiated on the IPS Assist side and on the merchant side. The implementation of the results of promotional games in the form of prizes remains on the merchant’s side.
For the promotional game, it is necessary to develop special payment page templates or modify individual templates. Payment pages should display information about the game and its rules (or a link to them).
You should also develop special templates for letters to the buyer about the result of the payment with additional information about participation in the game.