Online cash registers (54 Federal law)

Cheque format with payment

To transfer a Cheque, you must create a data structure consisting of check items in the form of an array of objects and contact information in the JSON format. The check in this case consists of positions, tax settings, contact information of the merchant's client.

When should I create an electronic Cheque?


You need to create a Cheque when you block customer funds. When you use the Payture API for checks with payments, everything will happen automatically. If you use the API without payments (and simply pass checks through us), then you need to make a request for the formation of a Cheque when transferring information to any processing, payment system or payment aggregator.

How to deal with refunds / unblocks?


With a full refund and an unblocking Cheque for the return of the coming issues automatically. In case of partial refund and partial charge, it is necessary to transfer information on the residual positions in the check.

Cheque

Name Description Format Mandatory
Positions Array of positions Array M
CheckClose Container with information on the taxation system. In general, you can set up via support@payture.com and not send with all requests Container O
CustomerContact Email or Phone. Phone in the format "79165554444" String M
Message The subject of the message or string in the SMS message String (50 characters) M

Positions

Name Description Format Mandatory
Quantity Quantity Digits without spaces M
Price Amount Digits M
Tax VAT Digits M
Text Item name String(128) M

CheckClose

Name Description Format Mandatory
TaxationSystem Tax system number Numbers without spaces M

Example of correct json: Base64/Normal
{ "Positions":[ { "Quantity":1.000, "Price":123.45, "Tax":6, "Text":"Bread" }, { "Quantity":2.000, "Price":4.45, "Tax":4, "Text":"Matches" } ], "CheckClose":{ "TaxationSystem":0 }, "CustomerContact":"foo@example.com", "Message":"Payture Cheque", "AdditionalMessages":[ { "Key":"Param1", "Value":"Value1" } ] }




Cheque transfer format without payment


Cheque creating


Creating a cheque is an asynchronous request, after it is completed, the cheque is queued for processing. IIn addition to the check data, the client transfers a unique identifier of the document that he uses later, he can request the status of the cheque. The INN serves to identify the device by which a check can be posted.

How to deal with refunds / unblocks?


A cheque is created for the return - a return of the coming with all the positions of the check of the coming. On a partial refund - a check is created for the return of the coming with all the positions of the receipt of the coming, and then a new check of the coming with new positions is created.

Cheque

Name Description Format Mandatory
Id Document ID String(32) M
INN INN of the organization for which the check is created String(12) M
Content Document content Container M
Group Device group String(32) O

Content

Name Description Format Mandatory
Type Documnet Type Digit M
Positions Array of items Array M
CheckClose Closing parameters Container M
CustomerContact Customer phone or mail String(32)(Email or phone. "79165554444" phone format) M
Message Message to customer(If using Payture cheque send robot) String(64) M

Positions

Name Description Format Mandatory
Quantity Quantity Decimal number with an accuracy of 3 characters after the point M
Price The price of the product including all discounts and extra charges Decimal number with an accuracy of 2 characters after the point M
Tax VAT Rate Number from 1 to 6 M
Text Item text String(128) M

CheckClose

Name Description Format Mandatory
Payments Payments Array M
TaxationSystem Tax system number Number from 0 to 5 M

Payments

Name Description Format Mandatory
Type Payment type Number from 0 to 16 M
Amount Payment amount Decimal number with an accuracy of 2 characters after the point M

Correct json example:
{ "Key":"Merchant", "Password":"1234", "Message":"Payment Payture", "Cheque":{ "Id":"1231244424", "INN":"5902202276", "Group":"Main", "Content":{ "Type":1, "Positions":[ { "Quantity":1.000, "Price":111.45, "Tax":1, "Text":"Bread" } ], "CheckClose":{ "Payments":[ { "Type":1, "Amount":123.45 } ], "TaxationSystem":1 }, "CustomerContact":nikita.popovsky@payture.com } } } Note: "Key":"Merchant", (terminal name issues with a test access)
Example response
{ "Success":true, "ErrCode":null, "Status":"Created" }




Cheque status

Status

Name Description Format Mandatory
Key Merchant Key String M
Password Password String M
Id Document(Cheque) ID from notification String O
OrderId Payment identifier in merchant's system String(50) O

Example of a valid json:
{ "Key":"VWMerchantViasatAdd", "Password":"1234", "Id":"6363737176995117182", "OrderId":"" }
At least one of the optional parameters must be specified

Example response
{ "Success":true, "ErrCode":null, "Cheques":[ { "Sended":true, "Cheque":{ ....... "ErrCode":null, "Status":"Created" } } ] }


VAT rate numbers
Positions.Tax

Name Number
VAT rate 18% 1
VAT rate 10% 2
VAT rate calc. 18/118 3
VAT rate calc. 10/110 4
VAT rate 0% 5
VAT is not charged 6

Tax system numbers
CheckClose.TaxationSystem

Name Number
Common, ОСН 0
Simplified income, УСН (Income) 1
Simplified income minus expenses, УСН 2
3
Unified agricultural tax, ЕСН 4
ПPatent system of taxation 5

Types of documents
Contents.Type

Name Number
Income 1
Income return 2
Expense 3
Expense return 4

Payment types
Payments.Type

Name Number
Cash 1
MIR Card 2
Card Visa 3
Card MasterCard 4
Advance payment 14
Subsequent payment (Credit) 15
Other payment 16

Payture API

Payture API interface is designed for merchants interested in a powerful and friendly solution for automated execution of e-commerce operations. Use Payture API to link your e-commerce website with Payture Payment Gateway, to ensure reliable and secure processing of your clients’ payments.

Before you start using Payture API, please review the registration procedure and complete all required steps in order.

Mandatory verification

Important! For the security reasons, Visa and MasterCard payment systems require the party operating the payment cards data to meet the PCI DSS security standards. In order to confirm the compliance with this standard, the Merchant needs, as a rule, to fill in the self-evaluating questionnaire (SAQ) type D and pass the verification procedure, which may entail additional albeit small financial and organizational expenses.

If you have difficulties with PCI DSS verification, access to Payture API functionality will not be available to you. In this case we recommend switching to Payture InPay interface, which does not require PCI DSS compliance.

Features

API Payture allows the execution of a standard set of e-commerce operations in case of card details entered directly on the Merchant site:

Pay Go through one-step payment processing
Block Block funds on User’s payment card
Charge Block funds on User’s payment card
Unblock Modify the amount blocked on User’s card
Refund Refund some or all of the funds charged
GetState View current status of a payment

Payment gateway integration

Payture API Pay/Block

Important! During integration, please make sure your XML parsing system runs in “maximum tolerance” mode. The system must be tolerant to such issues as missing optional parameters, wrong attribute sequence order, or new attributes introduced. The analysis of values should be case-insensitive, wherever possible. All Payture API commands must contain the obligatory parameter Key (Merchant ID), which will be issued to you as soon as the agreement is signed.

The interaction between the client’s solution and the Payture payment gateway is based on the request-response scheme.

Request

The request with the necessary parameters is created on the client side and sent to the gateway using the POST request method via the HTTP protocol:

https://{Host}.payture.com/api/{Command}

where {Host} – URL payments gateway URL address,
{Command} – command name.

Response

Payment gateway gives the results of request processing synchronously in XML format, UTF-8 encoding

<{Command} Key="Value" Key2="Value2" />

Extra security

To ensure additional payment security, 3-D Secure authentication mechanism is available for Merchant’s convenience. The mechanism is activated on the gateway side upon Merchant’s written request after the preliminary 3-D Secure support integration.

Please note that as soon as 3-D Secure protection is activated, the format of Block/Pay operations will be modified slightly, as described in the 3-D Secure section.

Pay

This request is used for quick one-step client payments. The request follows the one-step payment scheme. As a result of the processing of the request, the specified amount will be charged from the User card. The charged amount can be (fully or partially) refunded to User’s card via Refund command.
https://{Host}.payture.com/api/Pay

Запрос

Name Description Format
Key Merchant ID, issued with test/production access parameters String
PayInfo Request parameters URL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
OrderId Payment ID in Merchant system. Unique for this terminal String (maximum length of 50 characters)
Amount Amount of payment in kopecks Digits without floating decimal or other points
PaytureId Payment ID in Payture AntiFraud system String (maximum length of 50 characters)
CustomerKey Customer ID in Payture AntiFraud system String (maximum length of 50 characters)
CustomFields Additional transaction fields. It can be used to transfer the additional parameters to the processing, for example, for the fraud-monitoring URL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal).
curl https://sandbox.payture.com/api/Pay \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
--data-urlencode "PayInfo= \
PAN=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
OrderId=; \
Amount=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive.

Important! The OrderId and Amount parameters are transferred twice in one request: in the main request parameters and in the PayInfo parameter, after the URL Encoding.

PaytureAPI::Pay(, , array(
    "PAN" => ,
    "EMonth" => ,
    "EYear" => ,
    "CardHolder" => ,
    "SecureCode" => ,
    "OrderId"=> ,
    "Amount" => 
))

Names of parameters in the requests are case-sensitive.

Important! The OrderId and Amount parameters are transferred twice in one request: in the main request parameters and in the PayInfo parameter, after the URL Encoding.

PayInfo parameter key structure
Key Description Format
PAN Card number Digits without spaces
EMonth Month of card expiration date 2 digits with leading 0 (zero)
EYear Year of card expiration date 2 digits (last digits of year)
CardHolder Cardholder first name and last name String (maximum length of 30 characters [a-Z])
SecureCode CVC2/CVV2 Digits
OrderId Payment ID in Merchant system. Unique for this terminal String (maximum length of 50 characters)
Amount Amount of payment in kopecks Digits without floating decimal or other points

PAN=; EMonth=; EYear=; CardHolder=; SecureCode=; OrderId=; Amount=

Possible key structure of the CustomFields parameter
Key Description Format
IP User IP address String of the form xxx.xxx.xxx.xxx
Description Additional transaction description String

IP=; Description=MyTestTransaction

Response format

An XML string with the Pay node
Name Description Values
Success Operation success flag «True» — operation succeeded, «False» — operation failed, 3DS — card involved in 3DS
OrderId Payment ID in Merchant system. Unique for this terminal Corresponds to the value from the request
Key Merchant ID Corresponds to the value from the request
Amount Payment amount. Exists, if «Success=True» Corresponds to the value from the request
ErrCode Error code. Exists, if «Success=False» see error codes
Example of the response to a successful request
<Pay OrderId="" Key="Merchant" Success="True" Amount="" />
Example of the response to an unsuccessful request
<Pay OrderId="" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Example of the response to a successful request
[OrderId] => 
[Key] => Merchant
[Success] => 1
[Amount] => 
Example of the response to an unsuccessful request
[OrderId] => 
[Key] => Merchant 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Block

This request blocks the specified amount of cash on User’s card.

The request follows the two-step payment scheme. As a result of the processing of the request, the funds will be blocked on the User card.

The blocked funds can be changed via Charge command, or unblocked via Unblock.

https://{Host}.payture.com/api/Block

Request parameters

NameDescriptionFormat
KeyMerchant ID issued with test/production access parametersString
PayInfoRequest parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
OrderIdPayment ID in Merchant system.String (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
PaytureIdPayment ID in Payture AntiFraud systemString (maximum length of 50 characters)
CustomerKeyCustomer ID in Payture AntiFraud systemString (maximum length of 50 characters)
CustomFieldsAdditional transaction fields. It can be used to transfer the additional parameters to the processing, for example, for the fraud-monitoringURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/api/Block \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
--data-urlencode "PayInfo= \
PAN=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
OrderId=; \
Amount=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive.

Important! The OrderId and Amount parameters are transferred twice in one request: in the main request parameters and in the PayInfo parameter, after the URL Encoding.

PaytureAPI::Block(, , array(
    "PAN" => ,
    "EMonth" => ,
    "EYear" => ,
    "CardHolder" => ,
    "SecureCode" => ,
    "OrderId"=> ,
    "Amount" => 
))

Names of parameters in the requests are case-sensitive.

Important! The OrderId and Amount parameters are transferred twice in one request: in the main request parameters and in the PayInfo parameter, after the URL Encoding.

PayInfo parameter key structure

KeyDescriptionFormat
PANCard numberDigits without spaces
EMonthMonth of card expiration date2 digits with leading 0 (zero)
EYearYear of card expiration date2 digits (last digits of year)
CardHolderCardholder first name and last nameString (maximum length of 30 characters [a-Z])
SecureCodeCVC2/CVV2Digits
OrderIdPayment ID in Merchant system. Unique for this terminalString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points

PAN=;
EMonth=;
EYear=;
CardHolder= ;
SecureCode=;
OrderId=;
Amount=

Possible key structure of the CustomFields parameter
КлючОписаниеФормат
IPUser IP addressString of the form xxx.xxx.xxx.xxx
DescriptionAdditional transaction descriptionString

IP=;
Description=MyTestTransaction

Response format

An XML string with the Block node

NameDescriptionValue
Success Operation success flag True — success of operation
False — operation failed
OrderId Payment ID in Merchant system Corresponds to the value from the request
Amount Payment amount.
Exists, if «Success=True»
Corresponds to the value from the request
ErrCode Error code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Block OrderId="" Success="True" Amount="" />
Example of the response to an unsuccessful request
<Block OrderId="" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Example of the response to a successful request
[OrderId] => 
[Key] => Merchant
[Success] => 1
[Amount] => 
Example of the response to an unsuccessful request
[OrderId] => 
[Key] => Merchant 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Charge

This request charges User’s card for the amount of cash previously blocked by Block command.

The request follows the two-step payment scheme.

As a result of the processing of the request, the amount blocked during the execution of the Block command will be charged from the User card.

Important: User’s card will only be charged if the payment status is Authorized at the moment of request execution.

https://{Host}.payture.com/api/Charge

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
curl https://sandbox.payture.com/api/Charge \
-d Key=Merchant \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureAPI::Charge() \

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Charge node.

NameDescriptionValue
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
AmountPayment amount in kopecksDigits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Charge Success="True" OrderId="" Amount="" />
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[Amount] => 

Unblock

This request or completely removes the block of amount blocked on User’s card by earlier Block command.

The request follows the two-step payment scheme.

As a result of the processing of the request the blocked amount on the User card will be voided.

Important: User’s card will only be charged if the payment status is Authorized at the moment of request execution.

https://{Host}.payture.com/api/Unblock

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountAmount in kopecks that is to be unblockedDigits without floating decimal or other points
curl https://sandbox.payture.com/api/Unblock \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureAPI::Unblock(, )

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Unblock node

NameDescriptionValue
SuccessOperation success flagTrue — operation succeeded,
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
NewAmountOptional. Blocked amount balance in kopecks.
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Unblock Success="True" OrderId="" NewAmount="0"/>
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[NewAmount] => 0

Refund

This request refunds the amount charged by Pay or Charge command to User’s card. The request is used both in one-step and two-step payment schemes. As a result of the processing of the request, the charged amount will be returned (fully or partially) to the User card. Important: User’s card will only be charged if the payment status is Charged at the moment of request execution.
https://{Host}.payture.com/api/Refund

Request parameters

Name Description Format
Key Merchant ID, issued with test/production access parameters String
Password Merchant password for executing operations via API. It is issued with test/production access parameters. String (maximum length of 50 characters)
OrderId Payment ID in Merchant system String (maximum length of 50 characters)
Amount Amount in kopecks that is to be returned Digits without floating decimal or other points
curl https://sandbox.payture.com/api/Refund \
-d Key=Merchant \
-d Password=123 \
-d Amount= \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureAPI::Refund() \

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Refund node
Name Description Values
Success Operation success flag True — operation succeeded, False — operation failed
OrderId Payment ID in Merchant system Corresponds to the value from the request
NewAmount Charged amount balance in kopecks. Exists, if «Success=True» Digits without floating decimal or other points
ErrCode Error code. Exists, if «Success=False» see error codes
Example of the response to a successful request
<Refund Success="True" OrderId="" NewAmount="0" />
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[NewAmount] => 0

GetState

This request retrieves information on current status of a payment. It should also be used at discretion in case of Payture gateway not responding, while other payment requests are being processed.

The request is used both in one-step and two-step payment schemes.

As a result of the request, the current payment status will be received.

https://{Host}.payture.com/api/GetState

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
curl https://sandbox.payture.com/api/GetState \
-d Key=Merchant \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureAPI::GetState() \

Names of parameters in the requests are case-sensitive

Response format

An XML string with the GetState node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
AmountPayment amount.
Exists, if «Success=True»
Digits without floating decimal or other points
StatePayment status.
Exists, if «Success=True»
see transaction statuses
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<GetState Success="True" MerchantContract="Merchant" OrderId="" Amount="" State="Voided" />
Example of the response to a successful request
[Success] => 1 
[MerchantContract] => Merchant 
[OrderId] =>  
[Amount] =>  
[State] => Charged

Payture InPay

Payture InPay is designed for merchants interested in a powerful and friendly solution for automated execution of e-commerce operations. You can use Payture InPay to link your e-commerce website with Payture Payment Gateway, to ensure reliable and secure processing of your clients’ payments. Payture InPay interface is essentially identical to Payture API, with one major exception – customer’s card details are entered at Payture gateway web page, instead of Merchant’s page. In this architecture, all required data security is provided by Payture, saving Merchant efforts and expenses related to card information protection.

Before you start using Payture InPay, please review the registration procedure and complete all required steps in order.

Features

Payture InPay interface allows the execution of a standard set of e-commerce operations at (with case of card data details entered input on the Payture gateway page):

Init Initialize a new payment session. This step is obligatory before Charge or Block commands during a two-step payment
Pay Go through quick one-step payment processing, or block the amount on Customer’s card to be charged later (in case of two-step payment)
Charge Charge Customer’s card for specified amount blocked earlier
Unblock Modify the amount blocked on Customer’s card
Refund Full or partial refund to the Customer’s card
PayStatus View the current payment status

Payment gateway integration

Payture Inpay Pay/Block

The interaction between the client’s solution and the Payture payment gateway is based on the request-response scheme.

Request

The request with the necessary parameters is created on the client side and sent to the gateway using the POST request method via the HTTP protocol

https://{Host}.payture.com/apim/{Command}

where {Host} – payments gateway URL address,
{Command} – command name.

Response

Payment gateway gives the results of request processing synchronously in XML format, UTF-8 encoding

<{Command} Key="Value" Key2="Value2" />

Extra security

To ensure additional payment security, 3-D Secure authentication mechanism is available for Merchant’s convenience. The mechanism is activated on the gateway side upon Merchant’s written request after the preliminary 3-D Secure support integration.

Please note that as soon as 3-D Secure protection is activated, the format of Charge/Pay operations will be modified slightly, as described in the 3-D Secure section.

Important! When using Payture InPay, customer’s card details are entered at Payture gateway web page, instead of Merchant’s page. Therefore, Merchants using Payture InPay are not required to comply with PCI DSS security standards.

Templates for Payture InPay

Before you start using Payture InPay interface, it will be necessary to create a special page where the customers will be redirected for payment. General and detailed information on the redirect pages for Payture InPay is available here. You can also download preloaded templates of customer redirect pages that can be used out of the box or be easily modified and customized to meet your demands.

Init

This is a payment initialization request. It is executed before User is redirected to the Payture payment gateway where User’s card data will be entered.

https://{Host}.payture.com/apim/Init

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
DataPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/apim/Init \
-d Key=Merchant \
--data-urlencode "Data= \
SessionType=Pay; \
OrderId=; \
Amount=; \
IP=; \
Url=http://payture.com/result?orderid={orderid}&result={success}" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureInPay::Init(array (
    "SessionType" => "Pay",
    "OrderId" => ,
    "Amount" => ,
    "IP" => $_SERVER["REMOTE_ADDR"]
))

Names of parameters in the requests are case-sensitive

Minimal key structure of the Data parameter
KeyDescriptionFormat
SessionTypeSession type. It determines the number of payment stagesPay – one-step payment
Block – two-step payment
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
IPUser IP addressString of the form xxx.xxx.xxx.xxx
UrlUser return address after payment is madeFull url fpr user return
TemplateTagPayment page template. If absent, the «default» template is usedString (maximum length of 50 characters)
LanguageAdditional parameter for determining the page template. It is used to determine the page languageString (maximum length of 50 characters)

Apart from the necessary keys, the Merchant is able to transfer a random quantity of additional keys. Their values will be displayed to the User on the payment page.

For example, the parameters Total (order amount), Product (purchase/service paid) transferred in the session initialization request, will be displayed unchanged in the respective fields of the payment page template – {Total} and {Product}.

SessionType=Pay;
OrderId=;
Amount=;
IP= ;
Total=123;
Product=ticket;
TemplateTag=mobile;
Url=http://payture.com/result?orderid={orderid}&result={success}

Response format

An XML string with the Init node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
AmountPayment amount.
Exists, if «Success=True»
Corresponds to the value from the request
SessionIdPayment ID in Payture system.
Exists, if «Success=True»
String (maximum length of 50 characters)
ErrCodeError code.
Exists, if »Success=False»
see error codes
Example of the response to a successful request
<Init Success="true" OrderId="" Amount="" SessionId="" />
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[Amount] =>  
[SessionId] => 

Pay

This request is used for quick Customer payments (when used in one-step payment scheme), or for blocking specified amount of cash on Customer’s card (followed by Charge command, in two-step payments).

Must be preceded by successful Init command.

As a result of the processing of the request, the specified amount will be charged from Customer’s card, or blocked for future charging, depending on the selected payment scheme.

The charged amount can be (fully or partially) refunded to Customer’s card via Refund command.

https://{Host}.payture.com/apim/Pay

Request parameters

NameDescriptionFormat
SessionIdPayment ID. It exists in a response to the InitString
curl https://sandbox.payture.com/apim/Pay \
-d SessionId=
 \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureInPay::generatePayLink()

The method must be accomplished right after the Init request was proceeded. As a result of execution you will get the payment link.

Names of parameters in the requests are case-sensitive

After processing the request Pay on the gateway side, the User will be redirected to the page with payment results, and in 3 seconds will be returned to the Merchant’s site.

User return address (URL page) – is to be indicated beforehand by the Merchant, in the form of static URL or a template, for the further forming of the Init command by the parameters.

Important! The Success parameter is allowed to be indicated in the URL redirection of User, pointing out the successful completion of the transaction. The Success parameter (that takes on the values True or False) when transmitting in URL may be substituted by a fraud. Therefore, this parameter cannot ensure the success of payment and serves only for the quickest possible reaction of the Merchant system in relation to a User. In order to get the actual transaction results use the data received within the Payment confirmation (see notification methods) or the transaction status request.

http://server.com/result?orderid={OrderId}&result={Success}

Parameters {success}, {orderid} and other, that has values in {}, should be in lower case.

Charge

This request charges Customer’s card for the amount of cash previously blocked by Pay command.

The request follows the two-step payment scheme. Must be preceded by successful Init command with SessionType key set to “Block”.

As a result of the processing of the request, the amount blocked during the execution of the Pay command will be charged from the Customer’s card.

Important: User’s card will only be charged if the payment status is Authorized at the moment of request execution.

https://{Host}.payture.com/apim/Charge

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
PasswordMerchant password for executing operations via API. It is issued with test/production access parameters.String (maximum length of 50 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountCharging amount in kopecks. If the parameter isn’t specified, the operation will be done for the total sumDigits without floating decimal or other points
curl https://sandbox.payture.com/apim/Charge \
-d Key=Merchant \
-d Password= \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureInPay::Charge(, );

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Charge node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
AmountCharged amount.
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Charge Success="True" OrderId="" Amount="" />
Example of the response to an unsuccessful request
<Charge Success="False" OrderId="" Amount="0" ErrCode="ILLEGAL_ORDER_STATE" />
Example of the response to a successful request
[OrderId] => 
[Success] => 1
[Amount] => 
Example of the response to an unsuccessful request
[OrderId] => 
[Success] => 1 
[ErrCode] => ILLEGAL_ORDER_STATE

Unblock

This request or completely removes the block of amount blocked on User’s card by earlier Block command.

The request follows the two-step payment scheme.

As a result of the processing of the request the blocked amount on the User card will be voided.

Important: User’s card will only be charged if the payment status is Authorized at the moment of request execution.

https://{Host}.payture.com/apim/Unblock

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
PasswordMerchant password for executing operations via API. It is issued with test/production access parameters.String (maximum length of 50 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountAmount in kopecks that is to be returnedDigits without floating decimal or other points
curl https://sandbox.payture.com/apim/Unblock \
-d Key=Merchant \
-d Password= \
-d OrderId= \
-d Amount= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureInPay::Unblock(, , );

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Unblock node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
NewAmountBlocked amount balance in kopecks.
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Unblock Success="True" OrderId="" NewAmount="0" />
Example of the response to an unsuccessful request
<Unblock Success="False" OrderId="" ErrCode="ILLEGAL_ORDER_STATE" />
Example of the response to a successful request
[OrderId] => 
[Success] => 1
[NewAmount] => 0
Example of the response to an unsuccessful request
[OrderId] => 
[Success] => 1 
[ErrCode] => ILLEGAL_ORDER_STATE

Refund

This request refunds the amount charged by Pay or Charge command to Customer’s card.

The request is used both in one-step and two-step payment schemes.

As a result of the processing of the request, the charged amount will be returned (fully or partially) to the Customer’s card.

Important: Customer’s card will only be refunded if the payment status is Charged at the moment of request execution.

https://{Host}.payture.com/apim/Refund

Запрос

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
PasswordMerchant password for executing operations via API. It is issued with test/production access parameters.String (maximum length of 50 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountAmount in kopecks that is to be returnedDigits without floating decimal or other points
curl https://sandbox.payture.com/apim/Refund \
-d Key=Merchant \
-d Password= \
-d OrderId= \
-d Amount= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureInPay::Refund(, , );

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Refund node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
NewAmountCharged amount balance in kopecks.
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Refund Success="True" OrderId="" NewAmount="2000" />
Example of the response to an unsuccessful request
<Refund Success="False" OrderId="" ErrCode="AMOUNT_ERROR" />
Example of the response to a successful request
[OrderId] => 
[Success] => 1
[NewAmount] => 0
Example of the response to an unsuccessful request
[OrderId] => 
[Success] => 1 
[ErrCode] => AMOUNT_ERROR

PayStatus

This request retrieves information on current status of a payment. It should also be used at discretion in case of Payture gateway not responding, while other payment requests are being processed.

The request is used both in one-step and two-step payment schemes.

As a result of the request, the current payment status will be received.

https://{Host}.payture.com/apim/PayStatus

Request parameters

NameDescriptionFormat
KeyMerchant ID, issued with test/production access parametersString
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
curl https://sandbox.payture.com/apim/PayStatus \
-d Key=Merchant \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureInPay::PayStatus()

Names of parameters in the requests are case-sensitive

Response format

An XML string with the PayStatus node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant system.Corresponds to the value from the request
AmountPayment amount.
Exists, if «Success=True»
Digits without floating decimal or other points
StatePayment status.
Exists, if «Success=True»
see transaction statuses
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<PayStatus Success="True" OrderId="" Amount="2000" State="Charged" />
Example of the response to a successful request
[OrderId] => 
[Success] => 1
[Amount] => 
[State] => "Charge"

Payture eWallet

The Payture eWallet interface offers a range of extra features designed to streamline user experience of e-payment systems’ returning clients. eWallet provides the Merchant with extended functionality supporting to user registration and linkage of payment cards to registered user accounts.

Features

Payture eWallet provides functionality for user account management, payment card management, as well as transactions with registered users’ cards:

Init Initialize session to execute the operation on the Payture page. This function is used when the Customer is redirected to the Payture side in order to enter the card data ( required in case of adding a card to user account, or in case of payment)
Pay Charge the User card in favor of the Merchant
SendCode Additional authentication of the cardholder (User) before the payment
Charge Charge the amount blocked on the Customer card as a part of the two-step payment procedure
Unblock Cancel the block on funds or change the amount blocked on user card
Refund Partial or full return of funds, generally, for non-rendered services or returned products
PayStatus Specify current status of a payment

Extra security

To ensure additional payment security, 3-D Secure authentication mechanism is available for Merchant’s convenience. The mechanism is activated on the gateway side upon Merchant’s written request after the preliminary 3-D Secure support integration.

Please note that as soon as 3-D Secure protection is activated, the format of Charge/Pay operations will be modified slightly, as described in the 3-D Secure section.

Important! Payture eWallet supports two options of payment solution architecture: entering payment card data on Merchant’s webpage, or on the secure Payture gateway webpage. In the first case, Merchant must meet the PCI DSS security standards. In order to confirm the compliance with this standard, the Merchant needs, as a rule, to fill in the self-evaluating questionnaire (SAQ) type D and pass the verification procedure, which may entail additional albeit small financial and organizational expenses.

If you have difficulties with PCI DSS verification, access to Payture eWallet functionality “entering card data on Merchant’s webpage” will not be available to you. In this case we recommend switching to functionality “entering card data on Payture gateway webpage”, which does not require PCI DSS compliance.

Templates for Payture eWallet

If you choose to implement “entering card data on Payture gateway webpage” option, you will need to prepare a webpage to which the user will be redirected after completing the payment. You can find information on creating such pages here. You can also download ready-to-use templates for the user redirect webpages, easily customizable to your specific needs.

User management

Payture eWallet offers powerful functionality for client account management. With this functionality, you can create new client accounts, modify account parameters, or delete accounts.

Register Registration of users in the Payture system.
Update Change the parameters of user registered previously
Delete Delete user registered previously
CheckCheck if user with set password and login exists in Payture payment system

Register

This request is used to register a new user in Payture payment system.

The system also supports automatic user registration during new card registration. To enable this option, please contact Payture support service.

https://{Host}.payture.com/vwapi/Register

Request format

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Register \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
PhoneNumber=79156783333;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::UserRegister();

В запросах наименования параметров чувствительны к регистру

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be used.String (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
PhoneNumberUser phone numberIn international format (only digits, without spaces): [country code][operator code][subscriber number]

VWUserLgn=;
VWUserPsw=;
PhoneNumber=79156783333

Response format

An XML string with the Register node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture system.
E-mail is recommended to be used.
Corresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Register Success="True" VWUserLgn="" />
Example of the response to a successful request
[Success] => 1 
[VWUserLgn] => 

Update

This request is used to edit the parameters of a registered Payture user.

https://{Host}.payture.com/vwapi/Update

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Update \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
PhoneNumber=79266786457;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::UserUpdate( array (
        "PhoneNumber" => "8-999-99-99"
));

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
PhoneNumberIn international format (only digits, without spaces): [country code][operator code][subscriber number]
EmailUser e-mailString (maximum length of 50 characters)

VWUserLgn=;
VWUserPsw=;
PhoneNumber=79266786457

Response format

An XML string with the Update node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Update Success="True" VWUserLgn="" />
Example of the response to a successful request
[Success] => 1 
[VWUserLgn] => 

Delete

This request deletes a registered user’s account data, as well as all cards linked to his account.

https://{Host}.payture.com/vwapi/Delete

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Delete \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
Password=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::UserDelete();

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
PasswordMerchant password for executing operations via API. It is issued with test/production access parametersString (maximum length of 50 characters)

VWUserLgn=;
Password=

Response format

An XML string with the Delete node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Delete Success="True" VWUserLgn="" />
Example of the response to a successful request
[Success] => 1 
[VWUserLgn] => 

Check

This request is used to check if user with set password and login exists in Payture payment system.

https://{Host}.payture.com/vwapi/Check

Request format

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Check \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be used.String (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)

Response format

An XML string with the Check node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture system.
E-mail is recommended to be used.
Corresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Check Success="True" VWUserLgn="" />
Example of the response to a successful request
[Success] => 1 
[VWUserLgn] => 

Card management

This section describes functionality for client card management in eWallet system (linking cards to client accounts, activating cards, deleting cards, and more).

Important! It is necessary to activate a card after linking it to a client account. During activation, the card will be charged for a small random amount that the client must name correctly in order to complete the activation procedure. Until the card is activated, it cannot be used for payments.

Add Link a bank card to the user account, with the automatic blocking of funds for further activation.
Activate Card activation, an optional operation based on checking a random cash amount blocked during registration. The card cannot be used for payment until it is activated
GetList Get latest information on the user cards, for example, in order to activate or delete a card, or to make a payment.
Remove Unlink a card from the user account

Add

This request is used to register a new card in Payture system and link it to an existing user account.

While registering the card, a random amount (1 to 5000 kopecks)2) will be blocked on the User card in order to confirm User ownership of the card. The blocked amount must be specified during card activation after it is registered in the system. If the blocked amount is specified correctly, the card will be activated and the amount will be unblocked. If the blocked amount is specified incorrectly, the blocked amount can only be unblocked upon a separate request. The unblock operation may take up to 1 month, according to card issuer’s procedures.

Automatic card activation without blocking of random amount can be enabled at Merchant’s discretion – it is available upon a request to the Payture support service

Important! Until the registered card is successfully activated, it cannot be used for payments.

Card registration can be performed at merchant’s webpage or via Payture secure gateway, depending on whether the merchant is PCI DSS compliant.

Payture eWallet Add Card
https://{Host}.payture.com/vwapi/Add

Card data input on Merchant side

This command is used to register a new payment card on Merchant’s webpage.

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with parameters for test, and then, for production accessString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal).
curl https://sandbox.payture.com/vwapi/Add \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardNumber=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
PhoneNumber=79001234567;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::CardAdd([
    "CardNumber" => ,
    "EMonth" => ,
    "EYear" => ,
    "CardHolder" => ,
    "SecureCode" => ,
]);

В запросах наименования параметров чувствительны к регистру

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
CardNumberCard numberDigits without spaces
EMonthMonth of card expiration date2 digits with leading 0 (zero)
EYearYear of card expiration date2 digits (last digits of the year)
CardHolderCardholder first name and last nameString (maximum length of 50 characters [a-Z])
SecureCodeCVC2/CVV2Digits
PhoneNumberUser phone numberIn international format (only digits, without spaces): [country code][operator code][subscriber number]

VWUserLgn=;
VWUserPsw=;
CardNumber=;
EMonth=;
EYear=;
CardHolder=;
SecureCode=;
PhoneNumber=79001234567

Response format

An XML string with the Add node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
CardNameCard number (cut, last 4 digits in explicit form)String (maximum length of 32 characters)
CardIdCard ID in Payture systemString (maximum length of 32 characters)
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the successful response
<Add VWUserLgn="" Success="True" CardName="" CardId="" />
Example of the successful response
[VWUserLgn] => 
[Success] => 1
[CardName] => 
[CardId] => 

Card data input on Payture side

This command is used to register a new payment card via Payture payment gateway. It is executed after successful session initialization command.

First, a POST request is generated to redirect the client to Payture webpage.

https://{Host}.payture.com/vwapi/Add

Request parameters

NameDescriptionFormat
SessionIdSession ID, returned in response to the Init commandString
curl https://sandbox.payture.com/vwapi/Add \
-d SessionId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWalletTemplate::generateCardAddLink()

The method must be accomplished right after the Init request was proceeded. As a result of execution you will get the payment link.

Names of parameters in the requests are case-sensitive

After card registration attempt is complete, the client will be redirected back to Merchant’s webpage. The redirect address (i.e. webpage URL) must be specified by Merchant in advance.

The operation results are sent by the gateway as a notification.

Important! Parameter Success (flag for successful transaction) technically can be sent in the client redirect URL; however, this method is highly vulnerable against malicious users and therefore cannot guarantee successful payment. To retrieve actual transaction results, please use data received in notification.

http://server.com/result/order?Id={MerchantOrderId}

Activate

When prompted, the User must input the exact amount blocked on his card.

If the blocked amount is specified correctly, the card will be activated and the amount will be unblocked. If the blocked amount is specified incorrectly, the blocked amount can only be unblocked upon a separate request.

https://{Host}.payture.com/vwapi/Activate

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Activate \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=; \ 
Amount=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive.

PaytureEWallet::CardActivate(['CardId' => , "Amount" => ])

Names of parameters in the requests are case-sensitive.

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User informationString (maximum length of 50 characters)
CardIdCard ID in Payture systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points

VWUserLgn=;
VWUserPsw=;
CardId=;
Amount=

Response format

An XML string with the Activate node.

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
CardIdCard ID in Payture systemCorresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Activate Success="True" VWUserLgn="" CardId="" />
Example of the response to a successful request
[Success] => 1
[VWUserLgn] =>  
[CardId] => 

Remove

This request is used to remove the selected card (activated or non-activated) from the user’s card list.

https://{Host}.payture.com/vwapi/Remove

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal).
curl https://sandbox.payture.com/vwapi/Remove \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn%=; \
VWUserPsw=; \
CardId=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::CardRemove()

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User informationString (maximum length of 50 characters)
CardIdCard ID in Payture systemString (maximum length of 32 characters)

VWUserLgn=;
VWUserPsw=;
CardId=

Response format

An XML string with the Remove node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
CardIdCard ID in Payture systemCorresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Remove Success="True" VWUserLgn="" CardId="" />
Example of the response to a successful request
[Success] => 1 
[VWUserLgn] => 
[CardId] => 

GetList

This request fetches the list of payment cards registered by the selected user in Payture system.

https://{Host}.payture.com/vwapi/GetList

Запрос

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/GetList \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::CardGetList()

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User informationString (maximum length of 50 characters)

VWUserLgn=;
VWUserPsw=

Response format

An XML string with the GetList and the Item embedded nodes

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
ItemПередается, если «Success=True»Cостав элемента Item ниже
ErrCodeError code.
Exists, if «Success=False»
see error codes
Item node attributes
NameDescriptionValues
CardNameCard number (cut, last 4 digits in explicit form) 123456хххххх1234
CardIdCard ID in Payture systemString (maximum length of 32 characters)
CardHolderCardholder first name and last nameString (maximum length of 30 characters [a-Z])
StatusCurrent card statusIsActive – card is active (payment, delete card requets are available);
NotActive – card is non-active (activate card, delete card requests are available)
NoCVVPayment without CVV/CVC2 is possibleTrue — payment is possible оплата
False — payment impossible
ExpiredCard expiration time validationTrue — card has expired карта просрочена
False — card has not expired
Example of the response to a successful request
<GetList Success="True" VWUserLgn="Tester@payture.com">
  <Item CardName="411111xxxxxx1112" CardId="e5dfa016-27e0-45bb-8167-44299642b529" CardHolder="Tester" Status="NotActive" NoCVV="false" Expired="false" />
  <Item CardName="411111xxxxxx1111" CardId="001f2def-64e9-4cef-ae02-aa2bd9508a8b" CardHolder="User" Status="IsActive" NoCVV="true" Expired="false">
    <Param Key="LastSuccess" Value="2014.06.24 12:42:14" />
    <Param Key="LastLessSecureCode:VWMerchantTest" Value="True" />
  </Item>
</GetList>

Init

Payment initialization request. It is executed before redirecting the User to the Payture payment gateway page to enter the card data.

https://{Host}.payture.com/vwapi/Init

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Init \
-d VWID=Merchant \
--data-urlencode "DATA= \
SessionType=Add; \
VWUserLgn=; \
VWUserPsw=; \
PhoneNumber=79001234567; \
IP=" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::Init(array (
    "SessionType" => "Pay",
    "OrderId" => ,
    "Amount" => ,
    "IP" => $_SERVER["REMOTE_ADDR"]
))

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
NameDescriptionFormat
SessionTypeSession type. It determines the operation typeAdd – card registration
Pay – one-step payment
Block – two-step payment
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
IPUser IP addressString of the form xxx.xxx.xxx.xxx
PhoneNumberUser phone numberIn international format (only digits, without spaces): [country code][operator code][subscriber number]
CardIdCard ID in Merchant system.
Exists, if «SessionType=Pay» (Block)
String (maximum length of 50 characters)
OrderIdPayment ID in Merchant system. Unique for this terminal.
Exists, if «SessionType=Pay» (Block)
String (maximum length of 50 characters)
AmountPayment amount in kopecks.
Exists, if «SessionType=Pay»(Block)
Digits without floating decimal or other points
TemplateTagPayment page template.
If absent the «default» template is used
String (maximum length of 50 characters)
LanguageAdditional parameter for determining the page template. It is used to determine the page languageString (maximum length of 50 characters)

SessionType=Add;
VWUserLgn=;
VWUserPsw=;
PhoneNumber=79001234567;
IP=

Response format

An XML string with the Init node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdOptional. Payment ID in Merchant system. Unique for this terminal.
Exists, if «Success=True» and «SessionType=Pay»
AmountPayment amount in kopecks.
Exists, if «Success=True»
Corresponds to the value from the request or eqials to «0» (zero) if «SessionType=Add» in the request
SessionIdPayment ID in Payture system.
Exists, if «Success=True»
String (maximum length of 50 characters)
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Init Success="True" Amount="0" SessionId="" SessionType="Add" />
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[Amount] =>  
[SessionId] => 

Pay

This request is used for quick one-step client payments.

The payment procedure includes several scenarios to be used in specific situations. User card data may be entered either on Merchant side, or on Payture side. The card used for payment may be either registered in Payture system, or not.

For improved payment security, the Merchant can send a random 6-digit code to the User cell number obtained during the registration of the User or his/her card. In any future payment request the User should specify the code received.

Payment on Merchant side

This request is used to perform a payment directly on Merchant’s webpage.

Two payment scenarios are identified: payment with registered card, and unregistered card.

Payture eWallet Pay Merchant
https://{Host}.payture.com/vwapi/Pay

Payment with registered card

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with parameters for test, and then, for production accessString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal).
curl https://sandbox.payture.com/vwapi/Pay \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=; \ 
OrderId=; \
Amount=; \
SecureCode=; \
IP=; \
CustomField1=Value1; \
CustomFiledN=ValueN;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::Pay(array (
        'CardId' => ,
        'OrderId' => ,
        'Amount' => ,
        'SecureCode' => ,
        'IP' => $_SERVER["REMOTE_ADDR"]
    ))

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
CardIdCard ID in Payture systemDigits without spaces
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
SecureCodeCVC2/CVV23 digits
IPUser IP addressString of the form xxx.xxx.xxx.xxx
ConfirmCodeConfirmation code received by SMS. It is obligatory in case of request for confirmation code for this OrderId6 digits
CustomFieldsAdditional transaction fieldsKey pairs and their values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)

VWUserLgn=;
VWUserPsw=;
CardId=;
OrderId=;
Amount=;
SecureCode=;
IP=;
CustomField1=Value1;
CustomFiledN=ValueN;

Response format

An XML string with the Pay node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example for succeeded operation
<Pay VWUserLgn="" OrderId="" Success="True" Amount="" />
Example for failed operation
<Pay VWUserLgn="" OrderId="" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Example for succeeded operation
[OrderId] => 
[Key] => Merchant
[Success] => 1
[Amount] => 
Example for failed operation
[OrderId] => 
[Key] => Merchant 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Payment with unregistered card

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with parameters for test, and then, for production accessString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Pay \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=FreePay; \
OrderId=; \
Amount=; \
CardNumber=; \
CardHolder=; \
EMonth=; \
EYear=; \
SecureCode=; \
IP=; \
CustomField1=Value1; \
CustomFiledN=ValueN;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::Pay(array (
        'CardId' => 'FreePay',
        'OrderId' => ,
        'Amount' => ,
        "CardNumber" => ,
        "EMonth" => ,
        "EYear" => ,
        "CardHolder" => ,
        'SecureCode' => ,
        'IP' => $_SERVER["REMOTE_ADDR"]
    ))

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
КлючDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
CardIdCard ID in Payture systemCardId=FreePay
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
CardNumberVisa or MasterCard card numberDigits without spaces
CardHolderCardholder first name and last nameString (maximum length of 30 characters [a-Z])
EMonthMonth of card expiration date2 digits with leading 0 (zero)
EYearYear of card expiration date2 digits (last digits of the year)
SecureCodeCVC2/CVV23 digits
IPUser IP addressString of the form xxx.xxx.xxx.xxx
ConfirmCodeConfirmation code received by SMS. It is obligatory in case of request for confirmation code for this OrderId6 digits
CustomFieldsAdditional transaction fieldsKey pairs and their values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)

VWUserLgn=;
VWUserPsw=;
CardId=FreePay;
OrderId=;
Amount=;
CardNumber=;
CardHolder=;
EMonth=;
EYear=;
SecureCode=;
IP=;
CustomField1=Value1;
CustomFiledN=ValueN

Response format

An XML string with the Pay node

NameDescriptionValues
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example for succeeded operation
<Pay VWUserLgn="" OrderId="" Success="True" Amount="1300" />
Example for failed operation
<Pay VWUserLgn="" OrderId="" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Example for succeeded operation
[OrderId] => 
[Success] => 1
[Amount] => 
Example for failed operation
[OrderId] => 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Payment on Payture side

This request is used to perform a payment via Payture payment gateway.

It is executed after successful session initialization command.

The operation procedure is as follows: First, a POST request is generated to redirect the client to Payture webpage.

Payture eWallet Pay - Payture side
https://{Host}.payture.com/vwapi/Pay

Request parameters

NameDescriptionFormat
SessionIdPayment ID. It exists in a response to the Init requestString
curl https://sandbox.payture.com/vwapi/Pay \
-d SessionId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWalletTemplate::generatePayLink()

The method must be accomplished right after the Init request was proceeded. As a result of execution you will get the payment link.

Names of parameters in the requests are case-sensitive

As a result of the processing of the request, the User will be redirected to the Payture page to enter the card parameters or the confirmation code, if necessary.

Once the payment attempt is complete, the client will be redirected back to Merchant’s webpage. The redirect address (i.e. webpage URL) must be specified by Merchant in advance.

The operation results are sent by the gateway as a notification.

Important! Parameter Success (flag for successful transaction) technically can be sent in the client redirect URL; however, this method is highly vulnerable against malicious users and therefore cannot guarantee successful payment. To retrieve actual transaction results, please use data received in notification.

http://server.com/result?orderid={MerchantOrderId}

SendCode

The SendCode request is performed before the payment command for additional cardholder (User) authentication. As a result of the processing of the request, the confirmation code will be generated. Thus, the User will need to indicate only the CVC2/CVV2 and the confirmation code during payment.

Confirmation code is a random 6-digit sequence sent by Payture gateway to the client’s mobile number.

The confirmation code is generated for a set of parameters containing VWUserLgn, CardId (optional), OrderId (optional). Repeating the request with the same parameter values results in a new code being generated and sent.

Each code stays valid for 30 minutes after delivery, or until a repeated code request occurs, whichever is earlier; after that, the code will be removed from the system. Once a code is successfully confirmed by client during payment procedure, it will be removed from the system as well.

https://{Host}.payture.com/vwapi/SendCode

Format

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/SendCode \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=; \ 
OrderId=; \
Amount=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
VWUserLgnUser ID in Payture system. E-mail is recommended to be usedString (maximum length of 50 characters)
VWUserPswAdditional parameter of access to private User information (User password)String (maximum length of 50 characters)
CardIdCard ID in Payture systemString (maximum length of 32 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points

VWUserLgn=;
VWUserPsw=;
CardId=;
OrderId=;
Amount=

Response format

An XML string with the SendCode node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
VWUserLgnUser ID in Payture systemCorresponds to the value from the request
AmountPayment amount in kopecksCorresponds to the value from the request or equals to «0» (zero) if passed with no parameter in the request
OrderIdPayment ID in Merchant system. Exists if transferred in the requestCorresponds to the value from the request
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<SendCode VWUserLgn="" OrderId="" Success="True" Amount="" />

Charge

The request is used to charge the amount blocked by Pay command from user’s card.

The request follows the two-step payment scheme.

The payment status must be “Authorized”.

https://{Host}.payture.com/vwapi/Charge

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
PasswordMerchant password for executing operations via API. It is issued with test/production access parametersString (maximum length of 50 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountPayment amount in kopecksDigits without floating decimal or other points
curl https://sandbox.payture.com/vwapi/Charge \
-d VWID=Merchant \
-d Password= \
-d OrderId= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::Charge() \

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Charge node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
AmountCharged amount.
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Charge Success="True" OrderId="" Amount="" />
Example of the response to a failed request
<Charge Success="False" OrderId="" Amount="0" ErrCode="ILLEGAL_ORDER_STATE" />
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[Amount] => 

Unblock

This request or completely removes the block of amount blocked on User’s card by earlier Block command.

The request follows the two-step payment scheme.

As a result of the processing of the request the blocked amount on the User card will be voided.

Important: User’s card will only be charged if the payment status is Authorized at the moment of request execution.

https://{Host}.payture.com/vwapi/Unblock

Запрос

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
PasswordMerchant password for executing operations via API.String (maximum length of 50 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountReturn amount in kopecksDigits without floating decimal or other points
curl https://sandbox.payture.com/vwapi/Unblock \
-d VWID=Merchant \
-d Password= \
-d OrderId= \
-d Amount= \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::Charge(, ) \

Names of parameters in the requests are case-sensitive

Response format

An XML string with the Unblock node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
NewAmountBlocked amount balance in kopecks
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Unblock Success="True" OrderId="" NewAmount="0" />
Example of the response to a failed request
<Unblock Success="False" OrderId="" ErrCode="ILLEGAL_ORDER_STATE" />
Example of the response to a successful request
[Success] => 1
[OrderId] =>  
[NewAmount] => 

Refund

This request refunds the amount charged by Pay or Charge command to User’s card, fully or partially.

As a result of the processing of the request, the charged amount will be returned (fully or partially) to the Customer’s card

Generally, it is used in case of non-rendered services or returned products.

As third parties may require refund commission, this operation may incur financial losses to Merchant.

Important: User’s card will only be refunded if the payment status is Charged at the moment of request execution.

https://{Host}.payture.com/vwapi/Refund

Request parameters

NameDescriptionFormat
VWIDMerchant ID, issued with test/production access parametersString
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/Refund \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
OrderId=; \
Amount=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::Refund(array ("Password" => 123, "OrderId" => , "Amount" => )) \

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
PasswordMerchant password for executing operations via API.String (maximum length of 50 characters)
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)
AmountReturn amount in kopecksDigits without floating decimal or other points

OrderId=;
Amount=

Response format

An XML string with the Refund node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
OrderIdPayment ID in Merchant systemCorresponds to the value from the request
NewAmountCharged amount balance after refunding in kopecks.
Exists, if «Success=True»
Digits without floating decimal or other points
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<Refund Success="true" OrderId="" NewAmount="7800" />
Example of the response to a successful request
[Success] => 1 
[OrderId] => 
[NewAmount] => 0

PayStatus

This request retrieves information on current status of a payment. It should also be used at discretion in case of Payture gateway not responding, while other payment requests are being processed.

https://{Host}.payture.com/vwapi/PayStatus

Request parameters

NameDescriptionFormat
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAPayment parametersURL Encoded string, containing the key pairs and their command values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal)
curl https://sandbox.payture.com/vwapi/PayStatus \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
OrderId=;" \
Copy code Get link

Names of parameters in the requests are case-sensitive

PaytureEWallet::PayStatus()

Names of parameters in the requests are case-sensitive

Minimal key structure of the DATA parameter
KeyDescriptionFormat
OrderIdPayment ID in Merchant systemString (maximum length of 50 characters)

OrderId=

Response format

An XML string with the PayStatus node

NameDescriptionValues
SuccessOperation success flagTrue — operation succeeded
False — operation failed
StatusCurrent payment status
Exists, if «Success=True»
see table of possible values
VWUserLgnUser ID in Payture system
Exists, if «Success=True»
String (maximum length of 50 characters)
OrderIdPayment ID in Merchant system
Exists, if «Success=True».
Corresponds to the value from the request
AmountPayment amount in kopecks
Exists, if «Success=True»
Digits without floating decimal or other points
CardIdCard ID in Payture system
Exists, if «Success=True».
String (maximum length of 50 characters)
ErrCodeError code.
Exists, if «Success=False»
see error codes
Example of the response to a successful request
<PayStatus Success="true" Status="Charged" VWUserLgn="" OrderId="" Amount="" CardId="" />
Example of the response to a successful request
[OrderId] => 
[VWUserLgn] => 
[Success] => 1
[Amount] => 
[State] => "Charge"

Masterpass API

Masterpass API lets customers to make payments by cards that are stored in the Masterpass wallet. Masterpass API provides merchants an additional possibility of receiving payments by debit and credit cards.


Features

Masterpass API enables to make a standard e-Commerce operation if card data are confirmed by verification in the Masterpass wallet.

MPPay

This request is used for quick one-step client payments. The request follows the one-step payment scheme. As a result of the processing of the request, the specified amount will be charged from the User card. The charged amount can be (fully or partially) refunded to User’s card via Refund command.
Query example: https://secure.payture.com/api/MPPay?Key=Merchant&OrderId=123456&Token=7f604806-7462-466d-be53-c037878caaad&Amount=1001&CVC2=155

Request in format POST

Name Description Format Mandatory
Key TSP identifier string M
OrderId Payment ID in Merchant system, must be unique string M
Token Card ID in Wallet system string M
Amount Payment amount in kopecks int M
CVC2 CVV/CVC2 code int O

Answer in format XML

Name Description Format Mandatory
OrderId Payment ID in Merchant system, must be unique string M
Key TSP identifier string M
Amount Payment amount in kopecks int M
Success Operation success flag bool M
ErrCode Error Code string O

MPBlock

This request blocks the specified amount of cash on User’s card.
The request follows the two-step payment scheme. As a result of the processing of the request, the funds will be blocked on the User card.
The blocked funds can be changed via Charge command, or unblocked via Unblock.
Query example: Query example: https://secure.payture.com/api/MPBlock?Key=Merchant&OrderId=123456&Token=7f604806-7462-466d-be53-c037878caaad&Amount=1001&CVC2=155

Request in format POST

Name Description Format Mandatory
Key TSP identifier string M
OrderId Payment ID in Merchant system, must be unique string M
Token Card ID in Wallet system string M
Amount Payment amount in kopecks int M
CVC2 CVV/CVC2 code int O

Answer in format XML

Name Description Format Mandatory
OrderId Payment ID in Merchant system, must be unique string M
Key TSP identifier string M
Amount Payment amount in kopecks int M
Success Operation success flag bool M
ErrCode Error Code string O

3-D Secure

To ensure additional security for Customer cards, 3-D Secure authentication mechanism is available for Merchant’s convenience.

The procedure for payment and funds blocking requests for cards protected by 3-D Secure is non-standard. Please see below for detailed description.

Payture 3DS

Procedure of 3-­D Secure authentication for customer cards

Upon receiving a request for one-step card charging or funds blocking, Payture gateway verifies if the card is protected by 3-D Secure authentication system.

If a customer card is protected by 3-D Secure, the value of Success attribute used in synchronous response to Block and Pay commands is set to «3DS». In this case, ACSUrl, PaReq and ThreeDSKey attributes will also be added to the response.

NameDescriptionFormat
ACSUrlAddress (URL/URI) of 3-D Secure authentication serverString
PaReq3-D Secure authentication resultsString
ThreeDSKeyUnique transaction IDString

Executing authentication procedure

Upon receiving the response from the gateway, the Merchant redirects the user to the Issuer’s website for additional authentication, using POST request to address specified in ACSUrl attribute.

Request format

NameDescriptionFormat
ACSUrlAddress (URL/URI) of 3-D Secure authentication serverCorresponds to ACSUrl parameter from response to previous request
TermUrlForwarding address to be used after successful 3-D Secure authenticationString
MDUnique transaction IDCorresponds to ThreeDSKey parameter from response to previous request
PaReq3-D Secure authentication resultsString
<body onload="document.form.submit()" >
<form name="form" action="{ACSUrl}" method="post" >
    <input type="hidden" name="TermUrl" value="{TermUrl}" >
    <input type="hidden" name="MD" value="{ThreeDSKey}" >
    <input type="hidden" name="PaReq" value="{PaReq}" >
</form>
</body>

Response format

Return of the user by POST request to the address specified in the TermUrl attribute value.

NameDescriptionFormat
MDUnique transaction IDCorresponds to ID provided in the request
PaResEncrypted string containing 3-D Secure authentication resultsString

Payture API

The procedure for payment and blocking requests for cards protected by 3-D Secure is non-standard.

Pay3DS command is used to charge a protected card, and Block3DS command is used to block funds on protected cards.

Pay3DS

Pay3DS request is performed to charge a card protected by 3-D Secure, upon receiving the authentication results from the Issuer.

Request format
NameDescriptionFormat
KeyMerchant ID delivered to Merchant together with test/commercial access parametersString
OrderIdPayment ID in Merchant’s systemString (max 50 characters)
PaResEncrypted string containing 3-D Secure authentication resultsIdentical to response from ACS
Response format

Identical to response to standard Pay request.

curl https://sandbox.payture.com/api/Pay3DS \
-d Key=Merchant \
-d OrderId= \
-d PaRes= \
Copy code Get link

Parameter names included in the requests are case sensitive

Block3DS

Block3DS request is performed to block funds on a card protected by 3-D Secure, upon receiving the authentication results from the Issuer.

Request format
NameDescriptionFormat
KeyMerchant ID delivered to Merchant together with test/commercial access parametersString
OrderIdPayment ID in Merchant’s systemString (max 50 characters)
PaResEncrypted string containing 3-D Secure authentication resultsIdentical to response from ACS
Response format

Identical to response to standard Block request.

curl https://sandbox.payture.com/api/Block3DS \
-d Key=Merchant \
-d OrderId= \
-d PaRes= \
Copy code Get link

Parameter names included in the requests are case sensitive

Payture eWallet

The procedure for processing charging requests for cards protected by 3-D Secure is non-standard.

PaySubmit3DS

PaySubmit3DS request is performed to complete the payment from a card protected by 3-D Secure, upon receiving the authentication results from the Issuer.

Request format
NameDescriptionFormat
MDUnique transaction IDCorresponds to ID provided in the request
PaResEncrypted string containing 3-D Secure authentication resultsIdentical to response from ACS
Response format

Identical to response to standard Pay request.

curl https://sandbox.payture.com/vwapi/PaySubmit3DS \
-d MD=20150624160356619170 \
-d PaRes= \
Copy code Get link

Parameter names included in the requests are case sensitive

Error codes

Error codeDescription
NONE The transaction was completed without errors
ACCESS_DENIED Access from the current IP address or with the indicated parameters is denied
AMOUNT_ERROR The transaction amount is invalid
AMOUNT_EXCEED The transaction amount exceeds the available card balance
API_NOT_ALLOWED The given API is not allowed to be used
CARD_EXPIRED The card is expired
CARD_NOT_FOUND The card is not found
COMMUNICATE_ERROR An error occurred while transferring the data to the GPS (Global Payment Systems)
CURRENCY_NOT_ALLOWED The currency is not allowed for the merchant
CUSTOMER_NOT_FOUND The customer is not found
DUPLICATE_ORDER_ID The order number has already been used earlier
DUPLICATE_PROCESSING_ORDER_ID The order number has already been used earlier in the proseccing
DUPLICATE_CARD The card has already been registered
DUPLICATE_USER The User has already been registered
EMPTY_RESPONSE Empty response from the processing
EMAIL_ERROR An error occurred while transferring the email
FRAUD_ERROR Invalid transaction according to the AntiFraud filter settings
FRAUD_ERROR_BIN_LIMIT The card (BIN, mask) limit exceeded according to the AntiFraud filter settings
FRAUD_ERROR_BLACKLIST_BANKCOUNTRY The country of the given BIN is blacklisted or is not in the list of the approved countries
FRAUD_ERROR_BLACKLIST_AEROPORT The airport is blacklisted
FRAUD_ERROR_BLACKLIST_USERCOUNTRY The country of the given IP is blacklisted or is not in the list of the approved countries
FRAUD_ERROR_CRITICAL_CARD The card number (BIN, mask) is entered in the blacklist of the AntiFraud filter
FRAUD_ERROR_CRITICAL_CUSTOMER The IP-address is entered in the blacklist of the AntiFraud filter
FRAUD_ERROR_IP The IP-address is blacklisted
FRAUD_INTERNAL_ERROR An error of the AntiFraud filter
ILLEGAL_ORDER_STATE An attempt to perform an illegal operation for current payment status
INTERNAL_ERROR Wrong transaction format according to the network
INVALID_PAYTUREID Wrong fingerprint of the device
INVALID_SIGNATURE Wrong signature of the request
ISSUER_BLOCKED_CARD The cardholder is trying to make an operation which prohibited by its bank issuer or internal error occurred
ISSUER_CARD_FAIL The Issuer blocked the Internet transactions
ISSUER_FAIL The cardholder attempts to make a transaction not allowed by the Issuer or an internal issuer error occurred
ISSUER_LIMIT_FAIL The cardholder attempts to make a transaction, exceeding the Issuer’s limits on the amount or number of operations at a definite period of time
ISSUER_LIMIT_AMOUNT_FAIL The cardholder attempts to make a transaction for amount, exceeding the (daily) limit set by the Issuer
ISSUER_LIMIT_COUNT_FAIL The limit on the number of transactions exceeded: the client had made the maximum authorized number of transactions during a limited cycle and attempted to make another one
ISSUER_TIMEOUT Connection with Issuer has been failed
MERCHANT_FORWARD The transaction was forwarded to other terminal
MERCHANT_RESTRICTION Merchant limit exceeded or transactions for Merchant were prohibited
MPI_CERTIFICATE_ERROR MPI service error (payment gate)
MPI_RESPONSE_ERROR MPI service error (IPS)
ORDER_NOT_FOUND The transaction is not found
ORDER_TIME_OUT Payment (session) is timed out
PAYMENT_ENGINE_ERROR An internal communication error in processing
PROCESSING_ACCESS_DENIED Access processing is prohibited
PROCESSING_ERROR Common system error, registered by the payment network or the Issuer
PROCESSING_FRAUD_ERROR Processing declines the transaction according to the AntiFraud filter settings
PROCESSING_TIME_OUT The response from processing is timed out
REFUSAL_BY_GATE Refusal from the gateway to perform an operation
THREE_DS_ATTEMPTS_FAIL An attempt of 3DS authorization is failed
THREE_DS_AUTH_ERROR An error 3DS authorization
THREE_DS_ERROR An error 3DS payment
THREE_DS_FAIL An error 3DS service
THREE_DS_NOT_ATTEMPTED 3D SecureCode has not been entered
THREE_DS_NOTENROLLED The card is not enrolled in 3DS system
THREE_DS_TIME_OUT 3D SecureCode is timed out
THREE_DS_USER_AUTH_FAIL Wrong 3D SecureCode
UNKNOWN_STATE Unknown transaction status
USER_NOT_FOUND The user is not found
WRONG_AUTHORIZATION_CODE Wrong activation code
WRONG_CARD_INFO Wrong card details
WRONG_CONFIRM_CODE Wrong confirmation code
WRONG_CVV Wrong CVV
WRONG_EXPIRE_DATE Wrong card expired date
WRONG_PAN Wrong card number
WRONG_CARDHOLDER Wrong cardholder name
WRONG_PARAMS Wrong set or format of parameters
WRONG_PAY_INFO Wrong PayInfo parameter (the parameter is formed incorrectly or the cryptogram is broken)
WRONG_PHONE Wrong phone
WRONG_CONFIRM_CODE Wrong confirmation code
WRONG_USER_PARAMS The user is not found
OTHER_ERROR An error occurred while unforeseen cases

Parameters of test cards

In the course of technical integration with the Payture payment gateway, the Merchant should use the gateway sandbox and the parameters of test cards.

The use of parameters of valid bank cards in testing is strictly prohibited!

PANCVC2/CVV2Exp.DatePayment result
41111111111111121232018/08successful payment without 3ds with optional CVV
41111111111000311232018/08successful payment without 3ds with optional CVV
41111111111000231232018/08successful payment without 3ds with obligate CVV
54867320588644711232018/08successful payment with 3ds
41111111111111111232018/08successful payment with 3ds
41111111111111141232018/08unsuccessful payment with 3ds
41111111111111151232018/08unsuccessful payment with 3ds
70000000000000075212018/08unsuccessful payment («insufficient funds»)
80000000000000085212011/09unsuccessful payment («invalid card expiration date»)
76000000000000065212018/08unsuccessful payment («blacklisted card number»)
12345619999999993742018/08unsuccessful payment («nonexistent card»)
41111010000000461232018/08«AMOUNT_EXCEED» when blocked (if 100 rubles amount is exceeded (Amount=10001))
41111111111000561232018/08«PROCESSING_ERROR» when blocked
41111111111000721232018/08«ISSUER_BLOCKED_CARD» when blocked
41111111111000801232018/08«ISSUER_CARD_FAIL» when blocked
41111111111002211232018/08«PROCESSING_ERROR» when charged
41111111111006271232018/08«PROCESSING_ERROR» when charged
41111111111020291232018/08«PROCESSING_ERROR» when charged
41004011111000621232018/0840 seconds timeout when blocked
41004011111007241232018/0840 seconds timeout when unblocked
41004011111003281232018/0840 seconds timeout when charged
41004011111030251232018/0840 seconds timeout when refunded
Payment amount

from 1 to 100 rubles

Cardholder

any name (Latin), but at least three characters

Example: Test

Sandbox service address

https://sandbox2.payture.com

Notifications

The notifications are the asynchronous responses from Payture on the request results.

Format and parameters of notification

Upon receiving the Merchant request for execution of operation, for which the notification is provided, the gateway confirms acceptance of the request and closes the connection after the synchronous response. Then, after processing the request, the gateway sends the results of the operation using the notification method, chosen by the Merchant.

The notifications contain all the obligatory parameters of the original request (except for the payment card details, the card number is replaced with a masked one and transmitted in the CardName parameter), and the Notification parameter (string-type) that determines the notification event.

Notification methods
  • HTTP POST request. The request repeats at 10 second intervals until receiving the response «200 OK».
  • Email message. The message is sent one time.
  • SMS message. The message is sent one time.
OperationAvailable notifications
Interface Payture API
api/Pay Success: EngineBlockSuccess, EngineChargeSuccess, EnginePaySuccess
Fail: EnginePayFail, EngineBlockFail, EngineChargeFail
api/Block Success: EngineBlockSuccess
Fail: EngineBlockFail
api/Charge Success: EngineChargeSuccess
Fail: EngineChargeFail
api/Refund Success: EngineRefundSuccess
Fail: EngineRefundFail
api/Unblock Success: EngineUnblockSuccess
Fail: EngineUnblockFail
Interface InPay
apim/PaySuccess: MerchantPay, EngineBlockSuccess, EngineChargeSuccess, EnginePaySuccess
Fail: EngineBlockFail, EnginePayFail
apim/BlockSuccess: MerchantBlock, EngineBlockSuccess
Fail: EngineBlockFail
apim/ChargeSuccess: EngineChargeSuccess
apim/RefundSuccess: MerchantRefund, EngineRefundSuccess
apim/UnblockSuccess: EngineUnblockSuccess
Интерфейс eWallet
wapi/Pay Success: EngineBlockSuccess, EngineChargeSuccess, CustomerPaySuccess, EnginePaySuccess
Fail: EngineBlockFail, EngineChargeFail, CustomerPayFail, EnginePayFail
wapi/RefundSuccess: CustomerRefundSuccess, EngineRefundSuccess
Fail: CustomerRefundFail, EngineRefundFail
wapi/AddSuccess: EngineBlockSuccess, CustomerAddSuccess
Fail: EngineBlockFail, CustomerAddFail
wapi/SendCodeCustomerSendCode


NameDescription
Possible values of Notification parameter for Payture API
EngineBlockSuccessEngineBlockSuccess Example
IP: [127.0.0.1]
Description: [TestDescription]
OrderId: [635894175573296165]
Is3DS: [False]
IsAFAuthorize: [False]
IsSecureCodeByPhone: [False]
TransactionDate: [26.01.2016 15:04:54]
Success: [True]
ErrCode: [NONE]
Notification: [EngineBlockSuccess]
MerchantContract: [Bono]
EngineBlockFailEngineBlockFail Example
IP: [127.0.0.1]
Description: [TestDescription]
OrderId: [635894197418249955]
Is3DS: [False]
IsAFAuthorize: [False]
IsSecureCodeByPhone: [False]
TransactionDate: [26.01.2016 15:53:47]
Success: [False]
ErrCode: [DUPLICATE_ORDER_ID]
Notification: [EngineBlockFail]
MerchantContract: [Bono]
EnginePaySuccessEnginePaySuccess Example
OrderId: [635894197418249955]
Amount: [2100]
TransactionDate: [26.01.2016 15:40:56]
Success: [True]
ErrCode: [NONE]
Notification: [EnginePaySuccess]
MerchantContract: [Bono]
EnginePayFailEnginePayFail Example
OrderId: [635894197418249955]
Amount: [2100]
TransactionDate: [26.01.2016 16:32:06]
Success: [False]
ErrCode: [DUPLICATE_ORDER_ID]
Notification: [EnginePayFail]
MerchantContract: [Bono]
EngineChargeSuccessEngineChargeSuccess Example
OrderId: [635894175573296165]
Amount: [5700]
TransactionDate: [26.01.2016 15:08:28]
Success: [True]
Notification: [EngineChargeSuccess]
MerchantContract: [Bono]
EngineChargeFailEngineChargeFail Example
OrderId: [635894197418249955]
TransactionDate: [26.01.2016 16:06:54]
Success: [False]
ErrCode: [ILLEGAL_ORDER_STATE]
Notification: [EngineChargeFail]
MerchantContract: [Bono]
EngineUnblockSuccessEngineUnblockSuccess Example
OrderId: [635894186601047892]
TransactionDate: [26.01.2016 15:23:20]
Success: [True]
ErrCode: [NONE]
Notification: [EngineUnblockSuccess]
MerchantContract: [Bono]
EngineUnblockFailEngineUnblockFail Example
OrderId: [635894197418249955]
TransactionDate: [26.01.2016 16:16:41]
Success: [False]
ErrCode: [ILLEGAL_ORDER_STATE]
Notification: [EngineUnblockFail]
MerchantContract: [Bono]
EngineRefundSuccessEngineRefundSuccess Example
OrderId: [635894190709382580]
NewAmount: [0]
TransactionDate: [01/26/2016 15:30:16]
Success: [True]
ErrCode: [NONE]
Notification: [EngineRefundSuccess]
MerchantContract: [Bono]
EngineRefundFailEngineRefundFail Example
OrderId: [635894197418249955]
TransactionDate: [26.01.2016 16:23:39]
Success: [False]
ErrCode: [ILLEGAL_ORDER_STATE]
Notification: [EngineRefundFail]
MerchantContract: [Bono]
Possible values of Notification parameter for InPay
MerchantBlockMerchantBlock (Success=True/False) Example
OrderId: [e5eea2c9-26f0-40b8-9e7e-93ce52c0ab55]
Amount: [400]
SessionType: [Block]
templatetag: []
street: [street]
email: [test@payture.com]
city: [moscow]
zip: [1234567]
phone: [+79104298581]
CardNumber: [411111xxxxxx1112]
AuthCode: [1569017831]
RefNumber: [63590103660,2168,62427]
TransactionDate: [03.02.2016 13:41:01]
Is3DS: [false]
Success: [True]
Notification: [MerchantBlock]
MerchantContract: [Arrows12]
MerchantPayMerchantPay (Success=True/False) Example
OrderId: [02d989a0-aef2-4286-ba26-8c9324605b5e]
Amount: [400]
SessionType: [Pay]
templatetag: []
street: [street]
email: [test@payture.com]
city: [moscow]
zip: [1234567]
phone: [+79104298581]
CardNumber: [411111xxxxxx1112]
AuthCode: [1049449603]
RefNumber: [63590097444,8828,34354]
TransactionDate: [03.02.2016 11:57:27]
Is3DS: [false]
Success: [True]
Notification: [MerchantPay]
MerchantContract: [Arrows12]
MerchantRefundMerchantRefund (Success=True/False) Example
OrderId: [e5eea2c9-26f0-40b8-9e7e-93ce52c0ab55]
Amount: [400]
TransactionDate: [03.02.2016 13:44:38]
Success: [True]
ErrCode: [NONE]
Notification: [MerchantRefund]
MerchantContract: [Arrows12]
Possible values of Notification parameter for eWallet
CustomerAddSuccessCustomerAddSuccess Example
VWUserLgn: [payture.tester@gmail.com]
PhoneNumber: [79265351604]
CardNumber: [411111xxxxxx1112]
TransactionDate: [26.01.2016 17:08:20]
IsAlfa: [False]
CardName: [411111xxxxxx1112]
CardHolder: [ivan ivanov]
CardId: [15227c4a-d352-4191-8c3d-b331e9a9e57d]
SessionId: [89a02546-daf5-41c7-805d-5439a95c432d]
DateTime: [635894248576845703]
Success: [True]
Notification: [CustomerAddSuccess]
MerchantContract: [Arrows12]
CustomerAddFailCustomerAddFail Example
VWUserLgn: [payture.tester@gmail.com]
PhoneNumber: [79265351604]
TransactionDate: [27.01.2016 10:39:41]
Success: [False]
ErrCode: [WRONG_PARAMS]
Notification: [CustomerAddFail]
MerchantContract: [Arrows12]
CustomerPaySuccessCustomerPaySuccess Example
VWUserLgn: [payture.tester@gmail.com]
CardId: [15227c4a-d352-4191-8c3d-b331e9a9e57d]
OrderId: [da0b3a87-602f-40c4-83d7-3d88fd1151f2]
Amount: [300]
ConfirmCode: [10]
ExternalMerchantOrderId: [da0b3a87-602f-40c4-83d7-3d88fd1151f2]
IP: [109.73.11.168]
Is3DS: [False]
IsAFAuthorize: [False]
IsSecureCodeByPhone: [False]
TransactionDate: [26.01.2016 17:42:43]
SessionId: [4788156e-48bc-4103-96fb-2f32f5d65e6c]
CardNumber: [411111xxxxxx1112]
DateTime: [635894269530527343]
CustomerPayFailCustomerPayFail Example
Email: [test@server.com]
OrderId: [462e381b-5bd4-4d0e-91e8-e9036dc3c896]
CardNumber: [411111xxxxxx1112]
Amount: [10000]
TransactionDate: [03.02.2016 13:28:27]
Success: [False]
ErrCode: [AMOUNT_ERROR]
Notification: [CustomerPayFail]
MerchantContract: [Arrows12]
CustomerRefundSuccessCustomerRefundSuccess Example
OrderId: [805be31d-5f08-4a03-b7d1-adbaf82ec913]
NewAmount: [0]
TransactionDate: [01/26/2016 18:40:25]
Success: [True]
Notification: [CustomerRefundSuccess]
MerchantContract: [Arrows12]
CustomerRefundFailCustomerRefundFail Example
OrderId: [d751e605-2f24-4917-ae95-c2a57e3e5769]
Amount: [700]
TransactionDate: [19.02.2016 10:58:44]
Success: [False]
ErrCode: [AMOUNT_ERROR]
Notification: [CustomerRefundFail]
MerchantContract: [Arrows12]
CustomerSendCodeCustomerSendCode Example
Email: []
OrderId: [333444555]
Amount: [300]
TransactionDate: [27.01.2016 10:27:03]
Notification: [CustomerSendCode]
MerchantContract: [Arrows12]

Notification activation order

When connecting the test access to the payment gateway, the Merchant sends a connection request to the Payture support service. The request, among others, should contain the selected notification method, the notification receiving address, the operations for which the selected notification method should be used.

When passing to the commercial operation, all the notification method parameters are set, by default, similar to the corresponding parameters of the test access.

Any modification is made according to the Merchant request to the Payture support service.

Important! At the Merchant’s will, in order to increase payment safety, in the request RSA algorithm encryption may be applied. In this case the request will have the single DATA parameter with indication, for its value, of the encrypted URL Encoded string, containing the key pairs and their values, separated by the symbol «;» (semicolon). The keys and values are separated by the symbol «=» (equal). The encryption keys are exchanged at the stage of connection, and are replaced in the process of interconnection, on the initiative of any of the parties.

Transaction statuses

StatusDescription
NewThe payment is registered in the gateway but has not being processed yet
PreAuthorized3DSThe User has started the authentication on the 3-D secure protocol, hereon the payment operations have been completed
PreAuthorizedAFThe User has started the authentication with the AntiFraud service, hereon the payment operations have been completed
AuthorizedThe funds are blocked, but not charged (two-step payment)
VoidedThe funds on the card were blocked and unblocked (two-step payment)
ChargedThe funds are charged from User card, the payment has been completed successfully
RefundedThe funds have been successfully returned fully to the User card
RejectedThe last payment operation was rejected
Forwarded(Terminal)The payment is forwarded to terminal, specified in brackets
ErrorThe last payment operation was completed with an error

Modules

Для облегчения интеграции платежного решения на сайт магазина вы можете использовать готовые платежные модули.

Узнать о новых бесплатных модулях, которые сейчас тестируются или предложить свой модуль для интеграции с нами можно по электронной почте press@payture.com.

Мы не поддерживаем работу приложений сторонних разработчиков, все обновления вы можете посмотреть по ссылке для скачивания.

Mygento

Magento is a free engine for managing online-shops with open code. It is in the top-20 most popular platforms for eCommerce in the world. Mygento company specializes on developing online-shops on CMS Magento and prepared integration module with Payture. They have had more than 100 successful cases.

Magento
ИнтерМедиа Сервис

CMS 1C-Bitrix is an automated content management system. Product is intended for creation and developing of corporate projects for companies and organizations, information, news and reference portals, online-shops and for other types of websites. 1C-Bitrix integration module is developed by InterMedia Service company. It’s a gold-certified partner and Hosting-partner of 1C-Bitrix company and provides full range of services in web-development using new ideas and technologies that allows to reach qualitative result. While installing this module you’ll have to accept license agreement

1С-Битрикс
Opencart

OpenCart is a free content management system, oriented on online-shop creation. Software is written in PHP language, platform can be installed on every web-server with PHP and MySQL support. This CMS is suitable for everybody who needs simple and stable online-shop engine. Great advantage of this online-shop management system is attractive interface

Magento
Drupal

UberCart is a program module with open code, that fully integrates online-shop with CMS Drupal. Drupal is an online-shop management system that has the maximum functionality. It’s a free software, that is secured by GPL license and it’s being developed by programmers from all over the world. Programming language is PHP, databases are MySQL, PostgreSQL etc. Suitable for any kinds of complexity apps.

Drupal
Drupal

Drupal Commerce is a program module with open code, that fully integrates online-shop with CMS Drupal. Drupal is an online-shop management system that has the maximum functionality. It’s a free software, that is secured by GPL license and it’s being developed by programmers from all over the world. Programming language is PHP, databases are MySQL, PostgreSQL etc. Suitable for any kinds of complexity apps.

Drupal
Joomla!

Joomla! VirtueMart is a program module, that fully integrate online-shop with CMS Joomla!. Joomla! is a content management system, written in PHP and JavaScript languages. It uses MySQL as a database. It’s a free software, distributed by GNU CPL license. CMS allows to create wonderful and dynamic sites without any kinds of deep knowledges in web-developing.

Joomla!
WordPress

Woocommerce is a program module with open code, that fully integrate online-shop with CMS WordPress. WordPress is a content management system with open code, written in PHP language. WordPress is universal and the most popular CMS in the world.It is suitable for any kinds of resources, from blogs to online-shops.

WordPress

Readyscript module. Readyscript has gathered the best opportunities and features existing on CMS market. The site automatically adapts, hiding or rebuilding some secondary blocks, which leads to maintaining usability of the site on screens of different sizes. This all is included into the standard design.

WordPress
en less than more than $