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 Format String
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

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"

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

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

Error codes

Error codeDescription
NONEThe operation was completed without errors
ACCESS_DENIEDAccess from the current IP address or with the indicated parameters is denied
AMOUNT_ERRORThe transaction amount is invalid
AMOUNT_EXCEEDThe transaction amount exceeds the available card balance
AMOUNT_EXCEED_BALANCEThe transaction amount exceeds the available card balance
API_NOT_ALLOWEDThe given API is not allowed to be used
COMMUNICATE_ERRORAn error occurred while transferring the data to the GPS (Global Payment Systems)
DUPLICATE_ORDER_IDOrder number has already been used earlier
DUPLICATE_CARDThe card has already been registered
DUPLICATE_USERThe User has already been registered
EMPTY_RESPONSEProcessing error
FORMAT_ERRORWrong format of the transmitted data
FRAUD_ERRORInvalid transaction according to the AntiFraud filter settings
FRAUD_ERROR_BIN_LIMITThe card (BIN, mask) limit exceeded according to the AntiFraud filter settings
FRAUD_ERROR_BLACKLIST_BANKCOUNTRYThe country of the given BIN is blacklisted or is not in the list of the approved countries
FRAUD_ERROR_BLACKLIST_AEROPORTThe airport is blacklisted
FRAUD_ERROR_BLACKLIST_USERCOUNTRYThe country of the given IP is blacklisted or is not in the list of the approved countries
FRAUD_ERROR_CRITICAL_CARDThe card number (BIN, mask) is entered in the blacklist of the AntiFraud filter
FRAUD_ERROR_CRITICAL_CUSTOMERThe IP-address is entered in the blacklist of the AntiFraud filter
ILLEGAL_ORDER_STATEAn attempt to perform an illegal operation for current payment status
INTERNAL_ERRORWrong transaction format according to the network
INVALID_FORMATWrong transaction format according to the network
ISSUER_BLOCKED_CARDCardholder is trying to make an operation which prohibited by its bank issuer or internal error occurred
ISSUER_CARD_FAILThe Issuer blocked the Internet transactions
ISSUER_FAILThe cardholder attempts to make a transaction not allowed by the Issuer or an internal issuer error occurred
ISSUER_LIMIT_FAILThe 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_FAILThe cardholder attempts to make a transaction for amount, exceeding the (daily) limit set by the Issuer
ISSUER_LIMIT_COUNT_FAILThe 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_TIMEOUTConnection with Issuer failed
LIMIT_EXCHAUSTTime or number of attempts for inputting the data exceeded
MERCHANT_RESTRICTIONMerchant limit exceeded or transactions for Merchant were prohibited
NOT_ALLOWEDThe refusal of the issuer to conduct a transaction. Most often occurs when the bans imposed on the card
OPERATION_NOT_ALLOWEDThe operation is not allowed
ORDER_NOT_FOUNDThe transaction is not found
ORDER_TIME_OUTPayment (session) time out
PROCESSING_ERRORCommon system error, registered by the payment network or the Issuer
PROCESSING_TIME_OUTProcessing time out
REAUTH_NOT_ALOWEDThe authorization amount is not allowed to be changed
REFUND_NOT_ALOWEDThe refund is not allowed
REFUSAL_BY_GATERefusal from the gateway to perform an operation
RETRY_LIMIT_EXCEEDEDThe refund retry count exceeded
THREE_DS_FAILFailure of the 3DS transaction
THREE_DS_TIME_OUTTransaction period expired by the time of card data input
USER_NOT_FOUNDThe User is not found
WRONG_AMOUNTThe amount is less than the minimum or more than maximum allowable value
WRONG_CARD_INFOWrong card details
WRONG_CARD_PANWrong card number
WRONG_CARDHOLDER_NAMEWrong cardholder name
WRONG_PARAMSWrong set or format of parameters
WRONG_PAY_INFOWrong PayInfo parameter (the parameter is formed incorrectly or the cryptogram is broken)
WRONG_AUTH_CODEWrong activation code
WRONG_CARDWrong card parameters or invalid state
WRONG_CONFIRM_CODEWrong confirmation code
WRONG_USER_PARAMSUser not found

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

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.
Possible values of Notification parameter for Payture API interface
NameDescription
EngineBlockSuccessSuccessful fund blocking
EngineBlockFailFund blocking failed
EnginePaySuccessSuccessful fund charging
EnginePayFailFund charging failed
EngineChargeSuccessSuccessful charging completion
EngineChargeFailCharging completion failed
EngineUnblockSuccessSuccessful fund unblocking
EngineUnblockFailFund unblocking failed
EngineRefundSuccessSuccessful refunding
EngineRefundFailRefunding failed
Possible values of Notification parameter for InPay interface
NameDescription
MerchantBlockFund blocking (with parameter Success=True/False)
MerchantPayFund charging (with parameter Success=True/False)
MerchantRefundRefunding (with parameter Success=True/False)
Possible values of Notification parameter for eWallet interface
NameDescription
CustomerAddSuccessSuccessful card registration
CustomerAddFailCard registration failed
CustomerPaySuccessSuccessful fund charging
CustomerPayFailFund charging failed
CustomerRefundSuccessSuccessful refunding
CustomerRefundFailRefunding failed
CustomerSendCodeSuccessSuccessful confirmation code sending
CustomerSendCodeFailConfirmation code sending failed
BatchPayResponseSuccessSuccessful batch charging
BatchPayResponseErrorBatch charging failed

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.

Modules

Besides the primary functionality described above, Payture payment processing system also supports integration with external functional modules providing CMS services.

If you are interested in collaborating with us on this, please send us your business proposal and description of the available modules to info@payture.com.

Mygento

Mygento offers professional services on eshop development based on CMS Magento. The company’s portfolio includes over 100 successful projects. Mygento employs a close-knitted professional team with extensive experience, deep platform expertise, and a lot of understanding and warmth for both clients and partners.

Magento
InterMedia Service

InterMedia Service is a Gold certified partner and Hosting partner of 1C-Bitrix. The company offers a full range of services in web development area, based on cutting-edge ideas and technologies ensuring highest quality level. During module installation, user must accept a separate licensing agreement.

1С-Bitrix
en less than more than $