A hidden payment mode, when all data about the order, about the customer, about the payment method and payment means are transmitted directly by the merchant, can be performed using a card or a token.

Card payment

Transfer of payment parameters

To use this mode, the silentpay web service is provided.

URL for payment via silentpay:

https://<SERVER-NAME>/pay/silentpay.cfm

Silentpay service parameters:

Name

Manda-
tory

Accepted values

Default value

Description

Merchant_ID

Yes

Number


Merchant identification number in IPS Assist

Login

Yes

String


Service Login

Password

Yes

String


Password

OrderNumber

Yes/No

128 symbols


Order number (order identification on the merchant side)

OrderAmount

Yes

Number, 15 dig. (decimal separators '.' and, ',')


Payment amount (ex.: 10.34)

OrderCurrency

No

3 symbols

Default currency of enterprise or merchant

Order currency code (for OrderAmount value)

Ex.: RUB, USD, EUR and so on.

OrderComment

No

256 symbols


Order comment

Delay

No

0 – one stage payment,
1- two stage payment

0

Flag for selection of one or two payment stages

Language

No

RU – Russian
EN - English

Enterprise or merchant language

Language of payment pages

ClientIP

No



IP-address of customer

Cardtype

No

1 – VISA
2 - EC/MC
3 – DCL
4 – JCB
5- AMEX


Card type

Cardnumber

Yes



Card number

Cardholder

Yes

70 letters (no digits). Space as delimiter


Card-holder

Expiremonth

Yes

1-12


Card expiration month

Expireyear

Yes

Year in YYYY format


Card expiration year

Cvc2

Yes



CVC2 code

Lastname

Yes

70 letters (no digits)


Customer second name

Firstname

Yes

70 letters (no digits)


Customer first name

Middlename

No

70 letters (no digits)


Customer middle name

Email

Yes

128 symbols


E-mail of customer

Address

No

256 symbols


Customer address

HomePhone

No

64 symbols


Customer home phone

WorkPhone

No

20 symbols


Customer work phone

MobilePhone

No

20 symbols


Customer mobile phone

Fax

No

20 symbols


Customer fax number

Country

No

3 symbols


Customer's country code

State

No

3 symbols


Customer's region code

City

No

70 symbols


Customer's city

Zip

No

25 symbols


Customer's postal index

isConvert

No

0 – don't convert to the base currency

1 - don't convert to the base currency if possible

2 – always convert to the base currency

1

Currency conversion indicator

TestMode

No

0 – ordinary payment,

1 – test payment

Merchant working mode

Test mode indicator

Format

No

1 – CSV
2 – WDDX
3 – XML
4 - SOAP

1

Results format.

Signature

No

String


The string is joined according to determined rules.

Then the MD5 hash prepared from this string. Hash is signed by private RSA key of the merchant. Key length - 1024. Received bit sequence is a signature. Signature is transferred BASE64 coded string.

RecurringIndicator

No

1 –recurring payment

0 – standard payment

0

Recurring payment indicator

RecurringMinAmount

No/Yes

Number, 15 dig. (decimal separators '.' and, ',')


Minimum payment amount for recurring payments

Mandatory when RecurringIndicator = 1

RecurringMaxAmount

No/Yes

Number, 15 dig.

(decimal separators '.' and, ',')


Maximum payment amount for recurring payments

Mandatory when RecurringIndicator = 1

RecurringPeriod

No/Yes

10 digits number


Recurring interval in days

Mandatory when RecurringIndicator = 1

RecurringMaxDate

No/Yes

Date in string representation DD.MM.YYYY


Finish date of recurring payments

Mandatory when RecurringIndicator = 1

GenerateReceipt*

No

0 or 1


Permission to build a fiscal receipt. With the value of parameter 0, the building of a fiscal receipt is prohibited for this order.

Tax*

No

10 symbols

It is determined by the merchant's setting "Default tax rate" and is used in the mode without transferring the check items (the whole amount should be handled with one rate).

Tax rate identifier

ReceiptLine*

No

128 symbols

It is determined by the merchant's setting "Default cheque string template" and is used in the mode without transferring the check items.

Text description of the cheque item, if the cheque contains only one single item.

FPMode*

No

Number

It is determined by the merchant's setting "Default payment method" and is used in the mode without transferring the check items.

Payment method

ChequeItems**

No

Data structure


Cheque item parameters

CustomerNumber

No

32 symbols


Merchant's internal customer identification

SaveCard

No

1 - the card is stored to this customer number;

0 - the card is not stored.

0

This parameter permits to store the card to this client number for subsequent payments, if the current payment is successful.

If this card for this client number already has been saved before, the parameter is ignored.

* Parameters required when merchant uses the fiscalization service through the IPS Assist.

** Parameters required by the transfer of cheque items, the detailed description is here.

HTTP POST request example:

<FORM ACTION="https://SERVER-NAME/pay/silentpay.cfm " method="POST">
<INPUT TYPE="hidden" NAME="Merchant_ID" VALUE="Your_merchant_ID">
<INPUT TYPE="hidden" NAME="Login" VALUE="Service login">
<INPUT TYPE="hidden" NAME="Password" VALUE="Password">
<INPUT TYPE="hidden" NAME="OrderNumber" VALUE="011001-10">
<INPUT TYPE="hidden" NAME="OrderAmount" VALUE="22">
<INPUT TYPE="hidden" NAME="OrderCurrency" VALUE="RUB">
<INPUT TYPE="hidden" NAME="OrderComment" VALUE="Order 011001-10">
<INPUT TYPE="hidden" NAME="Delay" VALUE="0">
<INPUT TYPE="hidden" NAME="isConvert" VALUE="1">
<INPUT TYPE="hidden" NAME="Language" VALUE="RU">
<INPUT TYPE="hidden" NAME="ClientIP" VALUE="Customer IP address">
<INPUT TYPE="hidden" NAME="Cardtype" VALUE="Card type">
<INPUT TYPE="hidden" NAME="Cardnumber" VALUE="Card number">
<INPUT TYPE="hidden" NAME="Cardholder" VALUE="Card-holder">
<INPUT TYPE="hidden" NAME="Expiremonth" VALUE="Card expiration- month">
<INPUT TYPE="hidden" NAME="Expireyear" VALUE="Card expiration - year">
<INPUT TYPE="hidden" NAME="Cvc2" VALUE="CVC2 or CVV code">
<INPUT TYPE="hidden" NAME="Lastname" VALUE="Second name">
<INPUT TYPE="hidden" NAME="Firstname" VALUE="First name">
<INPUT TYPE="hidden" NAME="Middlename" VALUE="Middle name">
<INPUT TYPE="hidden" NAME="Email" VALUE="Email">
<INPUT TYPE="hidden" NAME="Address" VALUE="Customer address">
<INPUT TYPE="hidden" NAME="Homephone" VALUE="Customer home phone">
<INPUT TYPE="hidden" NAME="Workphone" VALUE="Customer work phone">
<INPUT TYPE="hidden" NAME="Mobilephone" VALUE="Customer mobile phone">
<INPUT TYPE="hidden" NAME="Fax" VALUE="Customer fax number">
<INPUT TYPE="hidden" NAME="Country" VALUE="Customer's country">
<INPUT TYPE="hidden" NAME="State" VALUE="Customer's region">
<INPUT TYPE="hidden" NAME="City" VALUE="Customer's city">
<INPUT TYPE="hidden" NAME="Zip" VALUE="Customer postal index">
<INPUT TYPE="hidden" NAME="TestMode" VALUE="Test mode">
<INPUT TYPE="hidden" NAME="Format" VALUE="Result format">
<INPUT TYPE="hidden" NAME="GenerateReceipt" VALUE="1">
<INPUT TYPE="hidden" NAME="Tax" VALUE="Tax rate identifier">
<INPUT TYPE="hidden" NAME="ReceiptLine" VALUE="Cheque item name">
<INPUT TYPE="hidden" NAME="FPMode" VALUE="Payment method">
<INPUT TYPE="Submit"></FORM>

The service description for SOAP format can be found on page:

https://<SERVER-NAME>/pay/silentpay.wsdl

Returned values:

Name

Description

ordernumber

Order number

billnumber

IPS Assist bill number

testmode

Test mode

ordercomment

Comment

orderamount

Original order amount

ordercurrency

Original order currency

amount

Payment amount

currency

Payment currency

rate

Currency rate

firstname

Customer first name

lastname

Customer second name

middlename

Customer middle name

email

Email

ipaddress

IP-address of customer

meantypename

Payment mean type

meansubtype

Payment mean sub-type

meannumber

Payment mean number

cardholder

Payment mean holder

cardexpirationdate

Card expired date

issuebank

Issuer-Bank name

bankcountry

Issuer-Bank country

orderdate

Order date (GMT)

orderstate

Order status

responsecode

Return code

message

Message

customermessage

Message for customer

recommendation

Recomendations

approvalcode

Authorization code

protocoltypename

Protocol

processingname

Processing

operationtype

Operation type

packetdate

Request date (GMT)

signature

1) For signature type 'MD5' - empty

2) For signature type 'PGP' – value X signed by secured key of IPS Assist, BASE64 encoded

pareq

3D-Secure authorization request packet

ascurl

URL for 3D-Secure authorization redirect

Request result will be provided according the requested format.

For CSV format:

Field name:field value Field name:field value....Field name:field value

For WDDX format:

field value field value field value field value field value field value .................

For XML format:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<!DOCTYPE result [
<result firstcode='first code' secondcode='second code' count='objects count'>
<orders><order>
<ordernumber>Order number</ordernumber>
<responsecode>Return code</response_code>
<recommendation>Recommendations</recommendation>
<message>Message</message>
<ordercomment>Comment</ordercomment>
<orderdate>Payment date/time</orderdate>
<amount>Payment amount</amount>
<currency>Currency code</currency>
<meantypename>Card type</meantype>
<meannumber>Card Number</meannumber>
<lastname>Second name</lastname>
<firstname>First name</firstname>
<middlename>Middle name</middlename>
<issuebank>Issuer-Bank name</ issuebank >
<email>E-mail</email>
<bankcountry>Issuer-Bank country code</bankcountry>
<rate>Currency rate</rate>
<approvalcode>Authorization code</approvalcode>
<meansubtype>Card sub-type</meansubtype>
<cardholder>Card-holder</cardholder>
<cardexpirationdate>Card expired date</cardexpirationdate>
<ipaddress>IP-address</ipaddress>
<protocoltypename>Protocol type</protocoltypename>
<testmode>Test mode payment indicator</ testmode >
<customermassage>Message for customer</customermassage >
<orderstate>Order status</orderstate>
<processingname>Processing name</ processingname>
<operationtype>Operation type</operationtype>
<billnumber>Bill number</billnumber>
<orderamount>Original payment amount</orderamount>
<ordercurrency>Original currency </ordercurrency>
<paketdate> Packet data</paketdate>
<signature> </signature>
<pareq>pareq value</pareq>
<ascurl>URL of Issuer-Bank </ascurl>
</order></orders></result>

For SOAP format:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://www.paysecure.ru/ws/">
<soapenv:Header/>
<soapenv:Body>
<ws:SilentPayResponse>
<return> 
<ordernumber xsi:type="xsd:string">Order number</ordernumber>
<responsecode xsi:type="xsd:string">Return code</response_code>
<recommendation xsi:type="xsd:string">Recommendations</recommendation>
<message xsi:type="xsd:string">Message</message>
<ordercomment xsi:type="xsd:string">Comment</ordercomment>
<orderdate xsi:type="xsd:string">Payment date/time</orderdate>
<amount xsi:type="xsd:string">Payment amount</amount>
<currency xsi:type="xsd:string">Currency code</currency>
<meantypename xsi:type="xsd:string">Card type</meantype>
<meannumber xsi:type="xsd:string">Card number</meannumber>
<lastname xsi:type="xsd:string">Second name</lastname>
<firstname xsi:type="xsd:string">First name</firstname>
<middlename xsi:type="xsd:string">Middle name</middlename>
<issuebank xsi:type="xsd:string">Issuer-Bank name</ issuebank >
<email xsi:type="xsd:string">E-mail</email>
<bankcountry xsi:type="xsd:string">Issuer-Bank country code</bankcountry>
<rate xsi:type="xsd:string">Currency rate</rate>
<approvalcode xsi:type="xsd:string">Authorization code</approvalcode>
<meansubtype xsi:type="xsd:string">Card sub-type</meansubtype>
<cardholder xsi:type="xsd:string">Card-holder name</cardholder>
<cardexpirationdate xsi:type='xsd:string'>Card expired date</cardexpirationdate>
<ipaddress xsi:type="xsd:string">customer IP-address</ipaddress>
<protocoltypename xsi:type="xsd:string">Protocol type</protocoltypename>
<testmode xsi:type="xsd:string">Test mode payment flag</ testmode >
<customermassage xsi:type="xsd:string">Message fro customer</customermassage >
<orderstate xsi:type="xsd:string">Order status</orderstate>
<processingname xsi:type="xsd:string">Processing name</processingname>
<operationtype xsi:type="xsd:string">Operation type</operationtype>
<billnumber xsi:type="xsd:string">Bill number</billnumber>
<orderamount xsi:type="xsd:string">Original payment amount</orderamount>
<ordercurrency xsi:type="xsd:string">Original payment currency</ordercurrency>
<paketdate xsi:type="xsd:string">packet date</paketdate>
<signature xsi:type="xsd:string"> </signature>
<pareq xsi:type="xsd:string">pareq value </pareq>
<ascurl xsi:type="xsd:string">Issuer-Bank URL </ascurl>
</return>
</ws:SilentPayResponse>
</soapenv:Body>
</soapenv:Envelope>

In case of successful payment the return code responsecode is equal to AS000 value.

In case of unsuccessful payment the responsecode is one of AS100-AS998 values (except AS110 code that is returned when 3-D Secure authorization required – see here, for details).

If the request can't be processed the firstcode and secondcode parameters have non-zero values.

If responsecode AS300 is received, and order status (orderstate) and operation status (operationstate) are 'In Process', the current status of the payment can be obtained later via the request to the web-service orderresult.

If the payment result is not received (for example, due to network problems), then you can get it later via the request to the web-service orderresult.

Result example in XML format for error return (not correct password):

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
  <!DOCTYPE result [...]> 
  <result firstcode="7" secondcode="102" count="0"></result>

For the decryption of firstcode and secondcode values, please, refer here

Recurring payments

The service is intended for initiation payments for continued services by subscription. This possibility is allowed for payments conducted through the UCS processing.

The parameter RecurringIndicator = 1 should be set in initial authorization request (see paragraph 2) in order to initiate the recurrent payment. Also the parameters of the range of amounts in subsequent recurring payments, payment frequency (in days) and the end date of subscription should be provided.

Then periodically the company will initiate the payment, setting the payment amount only and the rest required payment information (credit card data) is taken from the original payment.

To make the subsequent recurring payment, send a request to IPS Assist server by HTTP POST or SOAP method (in UTF-8 coding).











3D-Secure authorization