The use of the functions or functionality of the system not described in this document is not allowed.
The register.do request is used to register an order (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
token | AN..30 | no | A public key that can be used to register an order. If login and password are used for authentication during order registration, the token parameter does not need to be passed. |
orderNumber | AN..32 | yes | The order number (identifier) in the store's system is unique for each store within the system |
amount | N..12 | yes | Payment amount in kopecks (or cents) |
currency | N3 | no | The payment currency code is ISO 4217. If not specified, it is considered equal to 810 (Russian rubles). |
returnUrl | AN..512 | yes | The address to which the user must be redirected in case of successful payment. The address must be specified in full, including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type: http://<payment_gateway_address>/<merchant_address> .
|
failUrl | AN..512 | no | The address to which the user must be redirected in case of failed payment. The address must be specified in full, including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type: http://<payment_gateway_address>/<merchant_address> .
|
description | ANS..512 | no | Description of the order in any form |
ip | ANS..39 | no | The buyer's IP address |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
pageView | ANS..20 | no |
The value of this parameter determines which pages of the payment interface should be loaded for the client. Possible values are:
If the parameter is missing or does not match the format, the default value is pageView=DESKTOP. |
clientId | AN..255 | no |
The client's number (ID) in the store's system. It is used to implement the functionality of bindings. It can be present if creating bindings is allowed for the store.
|
merchantLogin | AN..255 | no | To register an order on behalf of a child merchant, specify the merchant login in this parameter. |
jsonParams | AN..1024 | no |
A block for passing additional merchant parameters. The fields for additional information and its subsequent storage are passed as:
These fields can be passed to the Bank processing system to be subsequently displayed in the registries. This functionality can be enabled upon additional agreement with the bank during the integration period. |
sessionTimeoutSecs | N...9 | no | The order lifetime in seconds. If the parameter is not specified, the value specified in the merchant's settings or the default time (1200 seconds = 20 minutes) will be used. If the expirationDate parameter is present in the request, the value of the sessionTimeoutSecs parameter is ignored. |
expirationDate | ANS | no | Date and time of the order lifetime expiration. Format: yyyy-MM-DDThh:mm:ss. If this parameter is not passed in the request, then sessionTimeoutSecs is used to determine the end-of-life time of the order. |
bindingId | AN..255 | no | ID of the binding created earlier. It can only be used if the store has permission to work with bindings. If this parameter is passed in this request, it means: 1. This order can only be paid using a binding; 2. The payer will be redirected to the payment page, where only CVC input is required. |
features | ANS..255 | no | AUTO_PAYMENT – if the request for order registration initiates auto-payments. VERIFY – if this parameter is specified, after the request for order registration, the cardholder is to be verified without debiting funds from the cardholder account. Thus, it is possible to pass a zero amount in the request. |
dynamicCallbackUrl | AN..512 | no | This parameter allows you to use the dynamic callback notification sending functionality. All payment-related callbacks enabled for the merchant could be directed to the address passed in this parameter. Payment-related notifications are callback notifications about the following events: successful hold, payment rejected by timeout, successful debit, refund, reversal. Notably, payment-unrelated callbacks that are active for the merchant (enabling/disabling a binding, binding creation) will be sent to static callback address. It is necessary to contact technical support for configuration. |
ANS..40 | no | Buyer's email address. | |
phone | ANS.12 | no | Buyer's phone number. If the phone includes a country code, the number must begin with a plus sign (+). If the phone is passed without a plus sign (+), the country code should not be specified. Thus, the following options are acceptable: +79998887766; 9998887766. |
By default the following fields are passed to the bank processing system:
If an additional parameter named merchantOrderId is passed in the order, then its value will be passed to the processing system as the order number (instead of the value of the orderNumber field).
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
orderId | ANS36 | no | The order number in the payment system. It is unique within the system. It is missing if the order registration failed due to an error detailed in ErrorCode. |
formUrl | AN..512 | no | URL of the payment form to which the client's browser is to be redirected. It is not returned if the order registration failed due to an error detailed in ErrorCode. |
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Error description in the language passed in the language parameter in the request. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | Order with given order number is processed already |
1 | An order with this number was registered, but was not paid for |
1 | Invalid order number |
3 | Currency is not defined |
4 | The order number cannot be empty |
4 | The merchant's name cannot be empty |
4 | Empty amount |
4 | The return URL cannot be empty |
4 | The password cannot be empty |
5 | The seller's login is incorrect |
5 | Incorrect amount |
5 | Incorrect 'Language' parameter |
5 | Access denied |
5 | The user must change password |
5 | Access denied |
5 | jsonParams is invalid |
7 | System error |
13 | Using both values, Features FORCTDS/FORCESSL and AUTO_PAYMENT, is not allowed |
13 | The Merchant does not have the permission to process auto-payments |
13 | The Merchant does not have the permission to process verification payments |
14 | Features are specified incorrectly |
Example of a POST request:
amount=100¤cy=810&language=ru&orderNumber=87654321&returnUrl=[https://tws.egopay.ru/ab/finish.html&pageView=DESKTOP&](https://tws.egopay.ru/ab/finish.html&pageView=DESKTOP&){jsonParams="param1":"value1","param2":"value2"}&expirationDate=2014-09-08T14:14:14&merchantLogin=merch_child&features=AUTO_PAYMENT
Response example:
{"orderId":"70906e55-7114-41d6-8332-4609dc6590f4","formUrl":"https://tws.egopay.ru/ab/merchants/test/payment_ru.html?mdOrder=70906e55-7114-41d6-8332-4609dc6590f4"}
The registerPreAuth.do request is used to request registration of an order with pre-authorization (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
token | AN..30 | no | A public key that can be used to register an order. If login and password are used for authentication during order registration, the token parameter does not need to be passed. |
orderNumber | AN..32 | yes | The order number (identifier) in the store's system is unique for each store within the system |
amount | N..12 | yes | Payment amount in kopecks (or cents) |
currency | N3 | no | The payment currency code is ISO 4217. If not specified, it is considered equal to the default currency code. |
returnUrl | AN..512 | yes | The address to which the user must be redirected in case of successful payment. The address must be specified in full, including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type: http://<payment_gateway_address>/<merchant_address> .
|
failUrl | AN..512 | no | The address to which the user must be redirected in case of failed payment. The address must be specified in full, including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type: http://<payment_gateway_address>/<merchant_address> .
|
description | ANS..512 | no | Description of the order in any form |
ip | ANS..39 | no | The buyer's IP address |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
pageView | ANS..20 | no |
The value of this parameter determines which pages of the payment interface should be loaded for the client. Possible values are:
If the parameter is missing or does not match the format, the default value is pageView=DESKTOP. |
clientId | AN..255 | no |
The client's number (ID) in the store's system. It is used to implement the functionality of bindings. It can be present if creating bindings is allowed for the store.
|
merchantLogin | AN..255 | no | To register an order on behalf of a child merchant, specify the merchant login in this parameter. |
jsonParams | AN..1024 | no |
A block for passing additional merchant parameters. The fields for additional information and its subsequent storage are passed as:
These fields can be passed to the Bank processing system to be subsequently displayed in the registries. This functionality can be enabled upon additional agreement with the bank during the integration period. |
sessionTimeoutSecs | N...9 | no | The order lifetime in seconds. If the parameter is not specified, the value specified in the merchant's settings or the default time (1200 seconds = 20 minutes) will be used. If the expirationDate parameter is present in the request, the value of the sessionTimeoutSecs parameter is ignored. |
expirationDate | ANS | no | Date and time of the order lifetime expiration. Format: yyyy-MM-DDThh:mm:ss. If this parameter is not passed in the request, then sessionTimeoutSecs is used to determine the end-of-life time of the order. |
autocompletionDate | ANS..19 | no | The date and time of completion of the two-phase payment in the following format: 2017-12-29T13:02:51. To enable this functionality, contact technical support. |
bindingId | AN..255 | no | ID of the binding created earlier. It can only be used if the store has permission to work with bindings. If this parameter is passed in this request, it means: 1. This order can only be paid using a binding; 2. The payer will be redirected to the payment page, where only CVC input is required. |
features | ANS..255 | no | AUTO_PAYMENT – if the request for order registration initiates auto-payments. VERIFY – if this parameter is specified, after the request for order registration, the cardholder is to be verified without debiting funds from the cardholder account. Thus, it is possible to pass a zero amount in the request. |
dynamicCallbackUrl | AN..512 | no | This parameter allows you to use the dynamic callback notification sending functionality. All payment-related callbacks enabled for the merchant could be directed to the address passed in this parameter. Payment-related notifications are callback notifications about the following events: successful hold, payment rejected by timeout, successful debit, refund, reversal. Notably, payment-unrelated callbacks that are active for the merchant (enabling/disabling a binding, binding creation) will be sent to static callback address. It is necessary to contact technical support for configuration. |
ANS..40 | no | Buyer's email address. | |
phone | ANS.12 | no | Buyer's phone number. If the phone includes a country code, the number must begin with a plus sign (+). If the phone is passed without a plus sign (+), the country code should not be specified. Thus, the following options are acceptable: +79998887766; 9998887766. |
By default the following fields are passed to the bank processing system:
If an additional parameter named merchantOrderId is passed in the order, then its value will be passed to the processing system as the order number (instead of the value of the orderNumber field).
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
orderId | ANS36 | no | The order number in the payment system. It is unique within the system. It is missing if the order registration failed due to an error detailed in ErrorCode. |
formUrl | AN..512 | no | URL of the payment form to which the client's browser is to be redirected. It is not returned if the order registration failed due to an error detailed in ErrorCode. |
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Error description in the language passed in the language parameter in the request. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | Order with given order number is processed already |
1 | An order with this number was registered, but was not paid for |
1 | Invalid order number |
3 | Currency is not defined |
4 | The order number cannot be empty |
4 | The merchant's name cannot be empty |
4 | Empty amount |
4 | The return URL cannot be empty |
4 | The password cannot be empty |
5 | Incorrect amount |
5 | Incorrect 'Language' parameter |
5 | The seller's login is incorrect |
5 | Access denied |
5 | The user must change password |
5 | Access denied |
5 | jsonParams is invalid |
7 | System error |
13 | Using both values, Features FORCTDS/FORCESSL and AUTO_PAYMENT, is not allowed |
13 | The Merchant does not have the permission to process auto-payments |
13 | The Merchant does not have the permission to process verification payments |
14 | Features are specified incorrectly |
Example of a POST request:
amount=100¤cy=810&language=ru&orderNumber=87654321&returnUrl=https://tws.egopay.ru/ab/finish.html&pageView=MOBILE&{jsonParams="param1":"value1","param2":"value2"}&merchantLogin=merch_child&features=AUTO_PAYMENT
Response example:
{"orderId":"61351fbd-ac25-484f-b930-4d0ce4101ab7","formUrl":"https://tws.egopay.ru/ab/merchants/test/mobile_payment_ru.html?mdOrder=61351fbd-ac25-484f-b930-4d0ce4101ab7"}
The deposit.do request is used to request the completion of a previously pre-authorized order (see the Connection coordinates section).
This operation can be performed if there are appropriate rights in the system.
Request parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
orderId | ANS36 | yes | The order number in the payment system. It is unique within the system. |
amount | N..12 | yes | Payment amount in kopecks (or cents) |
If zero is specified in the amount parameter, the completion will occur for the entire pre-authorized amount.
Response parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Description of the error in the language. |
Error codes (ErrorCode field):
Classification:
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | Incorrect value of a request parameter |
6 | Unregistered OrderId |
7 | System error |
Decoding:
Meaning | Description |
---|---|
5 | Access denied |
5 | The user must change password |
5 | Incorrect amount |
5 | The deposit amount must be equal to zero or at least one ruble |
6 | Invalid order number |
7 | The payment must be in the correct state |
7 | System error |
Example of a POST request:
amount=100¤cy=810&language=ru&orderId=e5b59d3d-746b-4828-9da4-06f126e01b68
Response example:
{"errorCode":0}
The getOrderStatus.do request is used to get the current order status (see the Connection coordinates section).
The order status must be determined by the value of the OrderStatus parameter. The AuthCode field is deprecated.
Request parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
orderId | ANS36 | yes | The order number in the payment system. It is unique within the system. |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, it is assumed that the language is Russian. The error message will be returned in this language. |
Response parameters:
Name | Type | Compulsoriness | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OrderStatus | N2 | no | The value of this parameter determines the order status in the payment system. The list of possible values is given in the table below. It is missing if the order has not been found. | ||||||||||||
ErrorCode | N3 | no | Error code. | ||||||||||||
ErrorMessage | AN..512 | no | Error description in the language passed in the Language parameter in the request. | ||||||||||||
OrderNumber | AN..32 | yes | Order number (ID) in the store's system | ||||||||||||
Pan | N..19 | no | The masked number of the card that was used for payment. It is specified only after payment of the order. | ||||||||||||
expiration | N6 | no | Card expiration date in the YYYYMM format. It is specified only after payment of the order. | ||||||||||||
cardholderName | A..64 | no | Cardholder's name. It is specified only after payment of the order. | ||||||||||||
Amount | N..12 | yes | Payment amount in kopecks (or cents) | ||||||||||||
currency | N3 | no | The payment currency code is ISO 4217. If not specified, it is considered equal to 810 (Russian rubles). | ||||||||||||
approvalCode | AN6 | no | IPS authorization code. This field has a fixed length (6 characters) and can contain digits and Latin letters. | ||||||||||||
authCode | N3 | no | This field is deprecated. Its value is always "2", regardless of the order status and the authorization code of the processing system. | ||||||||||||
Ip | AN..20 | no | The IP address of the user who paid for the order | ||||||||||||
BindingInfo | - | no |
The element consists of the following parameters:
|
The OrderStatus field can have the following values:
Status number | Description |
---|---|
0 | The order is registered, but not paid for |
1 | The pre-authorized amount is reserved (for two-phase payments) |
2 | Full authorization of the order amount has been carried out |
3 | Authorization canceled |
4 | A refund operation was performed on the transaction |
5 | Authorization initiated through the issuing bank's ACS |
6 | Authorization denied |
Error codes ( ErrorCode) field:
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
2 | The order was rejected due to an error in the payment details |
5 | Access denied |
5 | The user must change password |
5 | orderId not specified |
6 | Invalid order number |
7 | System error |
Example of a POST request:
orderId=b8d70aa7-bfb3-4f94-b7bb-aec7273e1fce&language=ru
Response example:
{"expiration":"201512","cardholderName":"tr tr","depositAmount":789789,"currency":"810","approvalCode":"123456","authCode":2,"clientId":"666","bindingId":"07a90a5d-cc60-4d1b-a9e6-ffd15974a74f","ErrorCode":"0","ErrorMessage":"Success","OrderStatus":2,"OrderNumber":"23asdafaf","Pan":"411111**1111","Amount":789789}
The getOrderStatusExtended.do request is used to request the status of a registered order (see the Connection coordinates section).
Request parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
orderId | ANS36 | yes* | The order number in the payment system. It is unique within the system. |
orderNumber | AN..32 | yes* | Order number (ID) in the store's system. |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, it is assumed that the language is Russian. The error message will be returned in this language. |
The request must contain either orderId or orderNumber. If both parameters are present in the request, the OrderID is prioritized.
There are several sets of response parameters. Exactly what kind of sets of parameters will be returned depends on the version of getOrderStatusExtended specified in the seller's settings.
Name | Type | Mandatory | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
orderNumber | AN..32 | yes | The order number (ID) in the store's system. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orderStatus | N2 | no |
The value of this parameter determines the order status in the payment system. List of possible values:
It is missing if the order has not been found. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actionCode | N3 | yes | Response code. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actionCodeDescription | AN..512 | yes | Decryption of the response code in the language transmitted in the Language parameter in the request. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
errorCode | N3 | no |
Error code. The following options are possible:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
errorMessage | AN..512 | no | Error description in the language passed in the Language parameter in the request. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
amount | N..12 | yes | Payment amount in kopecks (or cents) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency | N3 | no | The payment currency code is ISO 4217. If not specified, it is considered equal to 810 (Russian rubles). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
date | ANS | yes | Order registration date. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orderDescription | AN..512 | no | Description of the order transmitted during its registration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ip | AN..20 | yes | The buyer's IP address. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
merchantOrderParams | – | no |
It is present in the response if the order contains additional parameters of the seller.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cardAuthInfo | – | no |
The element contains a structure consisting of a list of the secureAuthInfo element and the following parameters:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bindingInfo | - | no |
The element consists of the following parameters:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentAmountInfo | - | no |
The element consists of the following parameters:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bankInfo | - | no |
The element consists of the following parameters:
|
Example of a POST request:
orderId=b9054496-c65a-4975-9418-1051d101f1b9&language=ru&merchantOrderNumber=0784sse49d0s134567890
Response example:
{"errorCode":"0","errorMessage":"Success","orderNumber":"0784sse49d0s134567890","orderStatus":6,"actionCode":-2007,"actionCodeDescription":"Session time expired","amount":33000,"currency":"810","date":1383819429914,"orderDescription":" ","merchantOrderParams":[{"name":"email","value":"yap"}],"attributes":[{"name":"mdOrder","value":"b9054496-c65a-4975-9418-1051d101f1b9"}],"cardAuthInfo":{"expiration":"201912","cardholderName":"Ivan","secureAuthInfo":{"eci":6,"threeDSInfo":{"xid":"MDAwMDAwMDEzODM4MTk0MzAzMjM="}},"pan":"411111**1111"},"terminalId":"333333"}
The reverse.do request is used to cancel the order payment (see the Connection coordinates section).
The cancellation function is available within a limited time after payment, the exact terms must be specified in the Bank.
The payment cancellation operation can be performed only once. If it ends with an error, the repeated payment cancellation operation will fail.
This function is available to stores in agreement with the Bank. To perform the cancellation operation, the user must have the appropriate rights.
Request parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
orderId | ANS36 | yes | The order number in the payment system. It is unique within the system. |
language | A2 | no | The language is encoded in ISO 639-1. The error description is returned in this language. If the parameter is not available, the default language specified in the merchant's settings is used. |
jsonParams | AN..1024 | no |
A block for passing additional merchant parameters. The fields for additional information and its subsequent storage are passed as:
Data type: name ANS..255; value ANS..1024 |
Response parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Description of the error in the language. |
Error codes (ErrorCode field):
Classification:
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | Incorrect value of a request parameter |
6 | Unregistered OrderId |
7 | System error |
Decoding:
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | Access denied |
5 | The user must change password |
5 | orderId not specified |
6 | Invalid order number |
7 | The operation is not possible for the current payment status |
7 | Reversal is impossible. Reason: incorrect internal values, check the amount of hold, deposit |
7 | System error |
Example of a POST request:
language=ru&orderId=9231a838-ac68-4a3e-bddb-d9781433d852
Response example:
{"errorCode":"0","errorMessage":"Success"}
The refund.do request is used for the refund (see the Connection coordinates section).
Upon this request, the funds for the specified order will be returned to the payer. The request will end with an error if the funds for this order have not been debited. The system allows to return funds more than once, but in total no more than the initial amount of the debited amount.
When processing a refund for housing and utilities services, only a full refund is available.
To perform the refund operation, one must have the appropriate rights in the system.
Request parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
orderId | ANS36 | yes | The order number in the payment system. It is unique within the system. |
amount | N..12 | yes | Payment amount in kopecks (or cents) |
jsonParams | AN..1024 | no |
A block for passing additional merchant parameters. The fields for additional information and its subsequent storage are passed as:
Data type: name ANS..255; value ANS..1024 |
Response parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Description of the error in the language. |
Error codes (ErrorCode field):
Classification:
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | Incorrect value of a request parameter |
6 | Unregistered OrderId |
7 | System error |
Decoding:
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | Access denied |
5 | The user must change password |
5 | orderId not specified |
6 | Invalid order number |
7 | The payment must be in the correct state |
7 | Incorrect deposit amount (less than one ruble) |
7 | System error |
Example of a POST request:
amount=500¤cy=810&language=ru&orderId=5e97e3fd-1d20-4b4b-a542-f5995f5e8208
Response example:
{"errorCode":0}
The verifyEnrollment.do request is used to verify the card's enrolment in 3DS (see the Connection coordinates section).
Request parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
userName | AN..30 | yes | User login (API) |
password | AN..30 | yes | User password (API) |
pan | N12...19 | yes | Card number |
Response parameters:
Name | Type | Compulsoriness | Description |
---|---|---|---|
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Error description. |
enrolled | A1 | no | A sign of the card's enrolment in 3DS. Possible values: Y, N, U. |
emitterName | AN..160 | no | Name of the Issuing bank. |
emitterCountryCode | AN..4 | no | Country code of the issuing bank. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | The card number is not specified |
1 | The card number must be a number containing from 13 to 19 digits |
5 | The user must change password. |
5 | Access denied |
6 | No information was found for the specified card number. |
7 | System error. |
Example of a POST request:
pan=4111111111111111
Response example:
{"errorCode":"0","errorMessage":"Success","emitterName":"TEST CARD","emitterCountryCode":"RU","enrolled":"Y"}
The addParams.do request is used to add new additional parameters to the order (see the Connection coordinates section).
If an additional parameter already exists in the order, then when adding a parameter with the same name, the last transferred value will be saved in the order.
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
orderId | ANS36 | yes | The order number in the payment system. It is unique within the system. |
language | A2 | no | The language is encoded in ISO 639-1. The error description is returned in this language. If the parameter is not available, the default language specified in the merchant's settings is used. |
params | AN..1024 | yes | Fields for transferring additional parameters, such as {"param":"value","param2":"value2"}. |
Response parameters
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N3 | yes | Error code. |
errorMessage | AN..512 | no | Error description. Not available if the request is successful. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | Access denied |
5 | The user must change password |
6 | orderId not set |
6 | Invalid order number |
7 | System error |
Example of a POST request:
language=ru&orderId=769b8dad-2318-4c01-bfc4-94532522fa68¶ms={"addParams1":"value1","addParams2":"value2"}
Response example:
{"errorCode":0}
The getLastOrdersForMerchants.do request is used to get statistics on payments for a certain period (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting. |
password | AN..30 | yes | The store's password received when connecting. |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, it is assumed that the language is Russian. The error message will be returned in this language. |
page | N | no | When processing the request, a list will be generated, divided into pages (with the number of size records per page). The response returns a page with the number specified in the page parameter. Page numbering starts from 0. If the parameter is not specified, the page number 0 will be returned. |
size | N..3 | yes | The number of elements on the page (maximum value = 200). |
from | ANS | yes | Date and time of the start of the period for sampling orders in the YYYYMMDDHHmmss format. |
to | ANS | yes | Date and time of the end of the period for sampling orders in the YYYYMMDDHHmmss format. |
transactionStates | A..9 | yes | In this block, it is necessary to list the required order states. Only orders that are in one of the specified states will be included in the report. Multiple values shall be separated by commas. Possible values: CREATED, APPROVED, DEPOSITED, DECLINED, REVERSED, REFUNDED. |
merchants | ANS | yes | A list of logins of merchants whose transactions should be included in the report. Multiple values shall be separated by commas. Leave this field empty to get a list of reports on all available merchants (subsidiary merchants and merchants specified in the user settings). |
searchByCreatedDate | A..5 | no | Possible values: • true – search for orders whose creation date falls within the specified period. • false – search for orders whose payment date falls within the specified period (thus, orders with the CREATED and DECLINED status cannot be present in the report). The default value – false. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N..2 | yes | Error code. The description of possible codes is given below in the "Error codes (ErrorCode field)" table |
errorMessage | AN..512 | no | Error description. It is present only if there is an error (errorCode is not equal to 0). |
orderStatuses | - | - | The block containing information about orders included in the report. See the "orderStatuses block parameters" table below. |
totalCount | N | yes | The total number of items in the report (on all pages). |
page | N | yes | The number of the current page (equal to the page number transferred in the request). |
pageSize | N..3 | yes | The maximum number of records per page (equal to the page size transferred in the request). |
Parameters of the orderStatuses block:
Name | Type | Mandatory | Description |
---|---|---|---|
orderNumber | AN..32 | yes | The order number (ID) in the store's system. |
orderStatus | N..2 | yes | The order status in the payment system. Possible values are shown below in the "orderStatus field" table. |
actionCode | N..3 | yes | Response code. |
actionCodeDescription | AN..512 | yes | Decryption of the response code. |
amount | N..12 | yes | Payment amount in minimum currency units. |
currency | N3 | yes | The payment currency code is ISO 4217. If not specified, it is considered equal to the default currency. |
date | ANS | yes | Order registration date. |
orderDescription | AN..512 | no | Description of the order transmitted during its registration |
ip | AN..20 | no | The buyer's IP address. Specified only after payment. |
errorCode | N..2 | yes | Error code. |
merchantOrderParams | - | no | A tag with attributes that transfer additional merchant parameters. See the "Parameters of the merchantOrderParams block" table below. |
attributes | - | yes | Order attributes in the payment system (order number). See the "Attributes block parameters" table below. |
cardAuthInfo | - | no | A tag with payment attributes. See the "cardAuthInfo block parameters" table below. |
bindingInfo | - | no | A tag with information about the binding that was used to make the payment. See the "bindingInfo block parameters" table below. |
authDateTime | ANS | no | Date/time of authorization |
terminalId | AN..10 | no | Terminal Id |
authRefNum | AN..24 | no | Reference number |
paymentAmountInfo | - | no | A tag with information about the amounts of confirmation, debiting, and refund. See the "paymentAmountInfo block parameters" table below. |
bankInfo | - | no | A tag with information about the Issuing bank. See the "bankInfo block parameters" table below. |
Parameters of the merchantOrderParams block:
Name | Type | Mandatory | Description |
---|---|---|---|
name | AN..20 | yes | Name of the merchant's additional parameter |
value | AN..1024 | yes | The value of the merchant's additional parameter |
Attributes block parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
name | A7 | yes | The attribute name - "mdOrder". |
value | ANS36 | yes | The attribute value is the order number in the payment system (unique within the system). |
cardAuthInfo block parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
pan | N..19 | no | The masked number of the card that was used for payment. |
expiration | N6 | no | Card expiration date in the YYYYMM format. |
cardholderName | A..64 | no | Cardholder's name. |
approvalCode | AN6 | no | Payment authorization code. This field has a fixed length (6 characters) and can contain digits and Latin letters. |
bindingInfo block parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
clientId | AN..255 | no | The client's number (ID) in the store's system. |
bindingId | AN..255 | no | ID of the binding used for payment. |
paymentAmountInfo block parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
paymentState | N..9 | no | Payment status |
approvedAmount | N..12 | no | The amount confirmed for debiting. |
depositedAmount | N..12 | no | The amount debited from the card. |
refundedAmount | N..12 | no | Refund amount. |
bankInfo block parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
bankName | AN..200 | no | Name of the Issuing bank. |
bankCountryCode | AN..4 | no | Country code of the Issuing Bank |
bankCountryName | AN..160 | no | Name of the issuing bank's country in the language passed in the language parameter in the request, or in the language of the user who called the method, if the language is not specified in the request. |
The OrderStatus field can have the following values:
Meaning | Description |
---|---|
0 | The order is registered, but not paid for |
1 | The pre-authorized amount is reserved (for two-phase payments) |
2 | Full authorization of the order amount has been carried out |
3 | Authorization canceled |
4 | A refund operation was performed on the transaction |
5 | Authorization initiated through the issuing bank's ACS |
6 | Authorization denied |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
5 | One of the required fields is not filled in |
5 | Invalid format of the transactionStates parameter |
5 | Access denied |
7 | System error |
10 | The value of the size parameter exceeds the maximum allowed |
10 | Insufficient rights to view transactions of the specified merchant |
Example of a POST request:
language=ru&page=0&size=100&from=20141009160000&to=20141111000000&transactionStates=DEPOSITED,REVERSED&merchants=SevenEightNine&searchByCreatedDate=false
Response example:
{"errorCode":0,
"orderStatuses":[
{"errorCode":"0","orderNumber":"58drs0Pes459Hdsddd0567a0","orderStatus":2,"actionCode":0,"actionCodeDescription":"Request successfully processed","amount":250000,"currency":"810","date":1414485649233,"orderDescription":"Opisanie","ip":"212.5.125.194","merchantOrderParams":[{"name":"registr1","value":"registr1"}],"attributes":[{"name":"mdOrder","value":"f1a3365b-542c-4c8d-b34c-e9a7ee8dbc9c"}],"cardAuthInfo":{"expiration":"201512","cardholderName":"Ivan","approvalCode":"123456","pan":"411111**1111"},"bindingInfo":{"clientId":"666","bindingId":"1eabfb8e-b90e-4dc8-bef6-14bd392b1cec"},"authDateTime":1414485661207,"terminalId":"111113","authRefNum":"111111111111","paymentAmountInfo":{"paymentState":"DEPOSITED","approvedAmount":250000,"depositedAmount":250000,"refundedAmount":0},"bankInfo":{"bankName":"TEST CARD","bankCountryCode":"RU","bankCountryName":"Russia"}},
{"errorCode":"0","orderNumber":"57drs0Pes459Hdsddd0567a0","orderStatus":2,"actionCode":0,"actionCodeDescription":"Request successfully processed","amount":250000,"currency":"810","date":1414485277286,"orderDescription":"Opisanie","ip":"212.5.125.194","merchantOrderParams":[{"name":"registr1","value":"registr1"}],"attributes":[{"name":"mdOrder","value":"09489184-bc5e-44a7-b6c4-3ca1feb8ef69"}],"cardAuthInfo":{"expiration":"201512","cardholderName":"Ivan","approvalCode":"123456","pan":"411111**1111"},"bindingInfo":{"clientId":"666","bindingId":"1eabfb8e-b90e-4dc8-bef6-14bd392b1cec"},"authDateTime":1414485296046,"terminalId":"111113","authRefNum":"111111111111","paymentAmountInfo":{"paymentState":"DEPOSITED","approvedAmount":250000,"depositedAmount":250000,"refundedAmount":0},"bankInfo":{"bankName":"TEST CARD","bankCountryCode":"RU","bankCountryName":"Russia"}}],
"totalCount":2,"page":0,"pageSize":100}
The paymentotherway.do request with special parameters is used to pay for an order via an external payment system (see the Connection coordinates section). Only a POST request is possible. This operation is available if you have the appropriate rights in the system.
This operation is available if you have the appropriate rights in the system.
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
MDORDER | ANS36 | yes | Order number received during order registration |
paymentWay | ANS..* | yes | The payment method is passed in this parameter. Possible values: ALFA_ALFACLICK – for payment using Alfa-Click (via the PayByClik system); UPOP – for payment via the UPOP system, available for China UnionPay cardholders. |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N1 | yes | Error code |
error | ANS..* | (in case of error) | Error message |
info | ANS..* | no |
With a successful response. The result of the payment attempt. The possible values are shown below:
|
redirect | ANS..* | no | Return address after payment |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | Payment method is not specified or the value is incorrect |
2 | Order not found |
5 | Session timeout |
5 | Access denied |
5 | The user must change password |
5 | System error |
Example of a POST request:
language=ru&MDORDER=c96a734c-e2c9-429c-8fda-aaa0030c8a92&paymentWay=ALFA_ALFACLICK
Response example:
{"redirect":"http://testjmb.alfabank.ru/PayByClick/login.jsp?orderId=b37da970-e2b8-4729-a196-b4c2ab5bb401&backUrl=+","info":"Your
order is proceeded, redirecting...","errorCode":0}
The paymentOrderBinding.do request is used to make a payment by bindings (see the Connection coordinates section).
After the card expires, the binding becomes unavailable for use in payment.
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting. |
password | AN..30 | yes | The store's password received when connecting. |
mdOrder | ANS36 | yes | The order number in the payment system. It is unique within the system. |
bindingId | AN..255 | yes | ID of the binding created when paying for the order or used for payment. Present only if the store is allowed to create bindings. |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
ip | NS..15 | yes | payer's ip address. |
cvc | N..3 | no | CVC code. This parameter is required if the merchant does not have the "Can make payment without CVC confirmation" permission selected. |
ANS..* | no | The payer's email address. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
redirect | ANS..* | no | With a successful response in the case of an SSL payment. The URL to which the redirection is made after the payment. |
info | ANS..* | no |
With a successful response. The result of the payment attempt. The possible values are shown below:
|
errorCode | N1 | yes | Error code. |
errorMessage | AN..* | no | When responding with an error. Error message. |
error | AN..* | no | When responding with an error. Error message. |
processingErrorType | ANS..* | no | Processing system error type. It is transferred when an error occurs on the processing system side, and not in the payment gateway, despite the fact that payment attempts have not yet been exhausted and redirects to the final page do not occur. The error decryption is transferred in the error parameter. |
acsUrl | ANS..* | no | With a successful response in the case of a 3DS payment. URL to go to ACS. |
paReq | ANS..* | no | With a successful response in the case of a 3DS payment. Payment Authentication Request. |
termUrl | ANS..* | no | With a successful response in the case of a 3DS payment. URL to return from ACS. |
Error codes (success field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | It is necessary to specify the CVC2/CVV2, since the merchant does not have permission to make a payment without CVC |
1 | Invalid CVC format |
1 | Wrong language |
2 | The binding was not found |
2 | Order with given order number was not found |
5 | Access denied |
5 | The user calling the service must change password |
7 | System error |
Example of a POST request:
mdOrder=eb49300c-95b7-4dcd-9739-eee6c61f2ac4&bindingId=308042e8-2b28-484a-811e-f786c9776c3b&cvc=123
Example of a successful response for an SSL payment:
{"redirect":"http://ya.ru?orderId=eb49300c-95b7-4dcd-9739-eee6c61f2ac4","info":"Your payment is proceeded, redirecting...","errorCode":0}
Example of a successful response for a 3DS payment:
{"info":"Your payment is proceeded, redirecting...","acsUrl":"https://tws.egopay.ru/ab/acs/auth/start.do","paReq":"eJxVUdtugkAQ/RXCOy7LRdQMa2ixKU28pGrfyTICqSzKpcW/765AbR8mOWcyOWfmDCy74qx9YVXn\npfB1OjF1DQUvk1ykvn48vBgzfcngkFWI4R55WyGDNdZ1nKKWJ74+TVz05tPE8NyZbThOfDJmFjcN\ni55Mz+MJzu25zmAXvOOVwWDEpM/EAjJSqVjxLBYNg5hfn6INcyxvappABgoFVlHIPCA9ABEXyPb4\nhWKVp1mzyQUCuTeBl61oqhubOjaQkUBbnVnWNJcFId5sPuFlAUT1gDy8d61CtdTo8oStw+C7r5W5\nCVNZx9v6ENmyfCBqApK4QWaZ1KXUcjVqLVx7Ycu77n2IC2XOqDqjh3BRDsGj/5eDDLeS2Y+bjwyw\nu5QC5YRU/sVAHts+v6rceCODyfbb7m3bfmzD22dnlycaFHF+DGl0y6hK8z6kFHMZity7l1QEiJIh\nw6PI8GOJ/v3+BweMtyE=","termUrl":"https://tws.egopay.ru/:443/ab/rest/finish3ds.do","errorCode":0}
Example of a response with an error:
{"error":"Access denied","errorCode":5,"errorMessage":"Access denied"}
The unBindCard.do request is used to make an existing binding inactive unBindCard.do (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting. |
password | AN..30 | yes | The store's password received when connecting. |
bindingId | AN..255 | yes | ID of the binding created when paying for the order or used for payment. Present only if the store is allowed to create bindings. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Error description. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
2 | Incorrect binding state (when trying to deactivate an inactive binding) |
2 | The binding was not found |
5 | Access denied |
5 | The user must change password |
7 | System error |
Example of a POST request:
bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc
Response example:
{"errorCode":"2","errorMessage":"Binging isn't active"}
The bindCard.do request is used to activate a previously deactivated binding (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting. |
password | AN..30 | yes | The store's password received when connecting. |
bindingId | AN..255 | yes | ID of the binding created when paying for the order or used for payment. Present only if the store is allowed to create bindings. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N3 | no | Error code. |
errorMessage | AN..512 | no | Error description. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
2 | Incorrect binding state (when trying to activate an active binding) |
2 | The binding was not found |
5 | Access denied |
5 | The user must change password |
7 | System error |
Example of a POST request:
bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc
Response example:
{"errorCode":"2","errorMessage":"Binding is active"}
The extendBinding.do request is used to extend the validity period of a binding (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting. |
password | AN..30 | yes | The store's password received when connecting. |
bindingId | ANS36 | yes | ID of the binding created when paying for the order or used for payment. Present only if the store is allowed to create bindings. |
newExpiry | N6 | yes | New expiration date (year and month) of the binding in the YYYYMM format |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N1 | yes | Completion code |
errorMessage | ANS..* | (in case of error) | Error message |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | One or more required parameters are not specified or incorrectly specified |
2 | The binding was not found |
5 | Access denied |
5 | The user must change password |
7 | System error |
Example of a POST request:
bindingId=1eabfb8e-b90e-4dc8-bef6-14bd392b1cec&newExpiry=201612&language=ru
Response example:
{"errorCode":"0","errorMessage":"Success"}
The getBindings.do request is used to get a list of bindings by client ID (see the Connection coordinates section).
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting. |
password | AN..30 | yes | The store's password received when connecting. |
clientId | AN..255 | yes | The client's number (ID) in the store's system, transmitted during the order registration. Present only if the store is allowed to create bindings. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N1 | yes | Completion code |
errorMessage | ANS..* | (in case of error) | Error message |
Binding element (consists of bindingId, maskedPan and ExpiryDate):
Name | Type | Mandatory | Description |
---|---|---|---|
bindingId | AN..255 | no | ID of the binding created when paying for the order or used for payment. Present only if the store is allowed to create bindings. |
maskedPan | N..19 | no | The masked number of the card that was used for payment. It is specified only after payment of the order. |
expiryDate | N6 | no | Card expiration date in the YYYYMM format. It is specified only after payment of the order. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors |
1 | clientId not set |
2 | Information not found |
5 | Access denied |
5 | The user must change password |
7 | System error |
Example of a POST request:
clientId=client
Response example:
{"bindings":[{"bindingId":"fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc","maskedPan":"4000 00** **** **02","expiryDate":"201512"}],"errorCode":"0","errorMessage":"Success"}
The getBindingsByCardOrId.do method is used to get a list of bank card bindings (see the Connection coordinates section).
If the appropriate permissions are available, the store can request a list of all bindings related to a particular bank card. This can be done by card number or by a known binding identifier. If the appropriate permissions are available, the store can request a list of all bindings related to a particular bank card. One can do this by card number or by a known binding identifier.
The response returns all bindings available to the merchant in accordance with its settings.
Request parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
userName | AN..30 | yes | The store's login received when connecting |
password | AN..30 | yes | The store's password received when connecting |
pan | N..19 | no | Card number. Required if bindingId is not specified. The search by the full card number is available to stores only if they have the appropriate permission. |
bindingId | AN..255 | no | Binding identifier. Required if pan is not specified. If pan is transferred in the request, the bindingId value is ignored. |
showExpired | boolean | no | This parameter determines whether to display bindings with expired cards. Possible values: true, false. By default, the parameter have the "false" value. |
Response parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
errorCode | N1 | yes | Completion code. |
errorMessage | ANS..* | yes | Completion code description. |
The bindings element (contains blocks consisting of the bindingId, maskedPan, expiryDate and clientId parameters):
Name | Type | Mandatory | Description |
---|---|---|---|
bindingId | AN..255 | no | Binding identifier. |
maskedPan | N..19 | no | The masked number of the card that was used for payment. |
expiryDate | N6 | no | Card expiration date in the YYYYMM format. |
clientId | AN..255 | no | The client's number (ID) in the merchant's system. |
Error codes (ErrorCode field):
Meaning | Description |
---|---|
0 | Request processing took place without system errors. |
1 | Neither the card number nor the binding ID is specified. |
2 | Information not found. |
5 | Access denied. |
5 | The user must change password. |
7 | System error. |
Request example:
https://tws.egopay.ru/ab/rest/getBindingsByCardOrId.do?userName=login&password=password&pan=4111111111111111
Response parameters:
{"errorCode":"0","errorMessage":"Success","bindings":[{"bindingId":"0b8edeb2-8380-4092-bf7e-1e1a78f2b15e","maskedP
an":"411111**1111","expiryDate":"201912","clientId":"12"},{"bindingId":"6a8c0738-cc88-4200-acf6-afc264d66cb0","mas
kedPan":"411111**1111","expiryDate":"201912","clientId":"666"},{"bindingId":"97a70989-c1fb-49f7-8a42-27c19dc160dw"
,"maskedPan":"411111**1111","expiryDate":"201512","clientId":"666"}]}
The payment.do request is used to register an order (see the Connection coordinates section).
For cancellation, refund and payment completion operations, standard requests to the payment gateway should be used.
Example of a POST request
{"merchant":"merchant_name","orderNumber":"applepay123456794","description":"descritpion_text", "paymentToken":"eyJ2ZXJzaW9uIjoiRUNfdjEiLCJkYXRhIjoiNTFhUTNGOXl0Q1YwYTdpQS9mMUh0RGc1TnBvSVZtc2RFa1FvTlpoOW95ZVA3eGgvVDk4dXJkenJDN0dOQ3o4c1FodXpXOVZNWUhGU25DTytTWXo0eDYrTnZwZjdCUzhOcnlUWk1Keldtcml0VUZJVytwVjNvNWY4M0F3OU55c1BCMlAxZGZicS9hZDVzV1RwZTMwTnV2UDltRGhaUStET1M3RzB6MDZSNHRXY0R0VFErT0U5YlI1OHFQRUdnTTRiSmRmUklZb25oQlJrdWY2cGw4aU9PQ0VvS01QN2lRck84Z2IrVGNnSjVZSDdDL3J3enBDUVZjMGQxNWJuME9wbE1SOGwxMDcrMDR4ZVVWT3BUMGI3cHRmYnA3VmVaeHVXaHhSTTlHYlF5QmVkVlJHQ2toN3kyREtZY3BRdjJqM1h2L0NjNzRKaVBZM09DTFVEMEIvS0UwUFo1TnJvUEJFUmZ2a1B4WUFzV1ZmM1E3UUtTcTk4Z3p5UXlrWEpwTmFwcEt6cENDMkNKU09XdzVkenNPWjAiLCAic2lnbmF0dXJlIjoiTUlBR0NTcUdTSWIzRFFFSEFxQ0FNSUFDQVFFeER6QU5CZ2xnaGtnQlpRTUVBZ0VGQURDQUJna3Foa2lHOXcwQkJ3RUFBS0NBTUlJRDVqQ0NBNHVnQXdJQkFnSUlhR0QybWRuTXB3OHdDZ1lJS29aSXpqMEVBd0l3ZWpFdU1Dd0dBMVVFQXd3bFFYQndiR1VnUVhCd2JHbGpZWFJwYjI0Z1NXNTBaV2R5WVhScGIyNGdRMEVnTFNCSE16RW1NQ1FHQTFVRUN3d2RRWEJ3YkdVZ1EyVnlkR2xtYVdOaGRHbHZiaUJCZFhSb2IzSnBkSGt4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRFMk1EWXdNekU0TVRZME1Gb1hEVEl4TURZd01qRTRNVFkwTUZvd1lqRW9NQ1lHQTFVRUF3d2ZaV05qTFhOdGNDMWljbTlyWlhJdGMybG5ibDlWUXpRdFUwRk9SRUpQV0RFVU1CSUdBMVVFQ3d3TGFVOVRJRk41YzNSbGJYTXhFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRWdqRDlxOE9jOTE0Z0xGRFptMFVTNWpmaXFRSGRiTFBnc2MxTFVtZVkrTTlPdmVnYUphakNIa3d6M2M2T0twYkM5cStoa3dORnhPaDZSQ2JPbFJzU2xhT0NBaEV3Z2dJTk1FVUdDQ3NHQVFVRkJ3RUJCRGt3TnpBMUJnZ3JCZ0VGQlFjd0FZWXBhSFIwY0RvdkwyOWpjM0F1WVhCd2JHVXVZMjl0TDI5amMzQXdOQzFoY0hCc1pXRnBZMkV6TURJd0hRWURWUjBPQkJZRUZBSWtNQXVhN3UxR01aZWtwbG9wbmtKeGdoeEZNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVJL0pKeEUrVDVPOG41c1QyS0d3L29ydjlMa3N3Z2dFZEJnTlZIU0FFZ2dFVU1JSUJFRENDQVF3R0NTcUdTSWIzWTJRRkFUQ0IvakNCd3dZSUt3WUJCUVVIQWdJd2diWU1nYk5TWld4cFlXNWpaU0J2YmlCMGFHbHpJR05sY25ScFptbGpZWFJsSUdKNUlHRnVlU0J3WVhKMGVTQmhjM04xYldWeklHRmpZMlZ3ZEdGdVkyVWdiMllnZEdobElIUm9aVzRnWVhCd2JHbGpZV0pzWlNCemRHRnVaR0Z5WkNCMFpYSnRjeUJoYm1RZ1kyOXVaR2wwYVc5dWN5QnZaaUIxYzJVc0lHTmxjblJwWm1sallYUmxJSEJ2YkdsamVTQmhibVFnWTJWeWRHbG1hV05oZEdsdmJpQndjbUZqZEdsalpTQnpkR0YwWlcxbGJuUnpMakEyQmdnckJnRUZCUWNDQVJZcWFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyMHZZMlZ5ZEdsbWFXTmhkR1ZoZFhSb2IzSnBkSGt2TURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dVlYQndiR1V1WTI5dEwyRndjR3hsWVdsallUTXVZM0pzTUE0R0ExVWREd0VCL3dRRUF3SUhnREFQQmdrcWhraUc5Mk5rQmgwRUFnVUFNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURhSEdPdWkrWDJUNDRSNkdWcE43bTJuRWNyNlQ2c01qT2haNU51U28xZWd3SWhBTDFhKy9ocDg4REtKMHN2M2VUM0Z4V2NzNzF4bWJMS0QvUUozbVdhZ3JKTk1JSUM3akNDQW5XZ0F3SUJBZ0lJU1cwdnZ6cVkycGN3Q2dZSUtvWkl6ajBFQXdJd1p6RWJNQmtHQTFVRUF3d1NRWEJ3YkdVZ1VtOXZkQ0JEUVNBdElFY3pNU1l3SkFZRFZRUUxEQjFCY0hCc1pTQkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFVE1CRUdBMVVFQ2d3S1FYQndiR1VnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13SGhjTk1UUXdOVEEyTWpNME5qTXdXaGNOTWprd05UQTJNak0wTmpNd1dqQjZNUzR3TEFZRFZRUUREQ1ZCY0hCc1pTQkJjSEJzYVdOaGRHbHZiaUJKYm5SbFozSmhkR2x2YmlCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUd0Z4R0VHZGRraGRVYVhpV0JCM2JvZ0tMdjNudXVUZUNOL0V1VDRUTlcxV1piTmE0aTBKZDJEU0pPZTdvSS9YWVh6b2pMZHJ0bWNMN0k2Q21FLzFSRm80SDNNSUgwTUVZR0NDc0dBUVVGQndFQkJEb3dPREEyQmdnckJnRUZCUWN3QVlZcWFIUjBjRG92TDI5amMzQXVZWEJ3YkdVdVkyOXRMMjlqYzNBd05DMWhjSEJzWlhKdmIzUmpZV2N6TUIwR0ExVWREZ1FXQkJRajhrbkVUNVBrN3lmbXhQWW9iRCtpdS8wdVN6QVBCZ05WSFJNQkFmOEVCVEFEQVFIL01COEdBMVVkSXdRWU1CYUFGTHV3M3FGWU00aWFwSXFaM3I2OTY2L2F5eVNyTURjR0ExVWRId1F3TUM0d0xLQXFvQ2lHSm1oMGRIQTZMeTlqY213dVlYQndiR1V1WTI5dEwyRndjR3hsY205dmRHTmhaek11WTNKc01BNEdBMVVkRHdFQi93UUVBd0lCQmpBUUJnb3Foa2lHOTJOa0JnSU9CQUlGQURBS0JnZ3Foa2pPUFFRREFnTm5BREJrQWpBNnozS0RVUmFac1liN05jTld5bUsvOUJmdDJROTFUYUtPdnZHY2dWNUN0NG40bVBlYldaK1kxVUVOajUzcHd2NENNREl0MVVRaHNLTUZkMnhkOHpnN2tHZjlGM3dzSVcyV1Q4WnlhWUlTYjFUNGVuMGJtY3ViQ1lraFlRYVpEd21TSFFBQU1ZSUJYekNDQVZzQ0FRRXdnWVl3ZWpFdU1Dd0dBMVVFQXd3bFFYQndiR1VnUVhCd2JHbGpZWFJwYjI0Z1NXNTBaV2R5WVhScGIyNGdRMEVnTFNCSE16RW1NQ1FHQTFVRUN3d2RRWEJ3YkdVZ1EyVnlkR2xtYVdOaGRHbHZiaUJCZFhSb2IzSnBkSGt4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRBZ2hvWVBhWjJjeW5EekFOQmdsZ2hrZ0JaUU1FQWdFRkFLQnBNQmdHQ1NxR1NJYjNEUUVKQXpFTEJna3Foa2lHOXcwQkJ3RXdIQVlKS29aSWh2Y05BUWtGTVE4WERURTJNVEV3TVRBNU5UY3dObG93THdZSktvWklodmNOQVFrRU1TSUVJQWpSdk9nWkxDa0w5ZmNCZjdOSm5RY3hsd2ltL09ieHkrcEltZ1M0TGRUYU1Bb0dDQ3FHU000OUJBTUNCRWN3UlFJZ1BKaHlkTXE5UDdTaHJFT2RxVk5KUk84QnN1MC93SXNCS0Y1cnlFR0JPSDRDSVFEeWo4Wml3VVV5alRJUFRUZDBKTTlaMExIdGZTQVhOWVN2T0t4eGN3MTlod0FBQUFBQUFBPT0iLCJoZWFkZXIiOnsiZXBoZW1lcmFsUHVibGljS2V5IjoiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNUdmb2t2U2Z3WnV3aXYwSGxKVE1MS0dlMS96dWtjejczSFlvVjh5cjNGNWdmZmthVmNQTmptNjFhdFNOZm9UZUxiSnQ1aHBLWkJuSWlwZlVXSXZxMmc9PSIsInB1YmxpY0tleUhhc2giOiJLMG9KcmJiYURVUDh6YitSUEZhTmxVUTdTU2I3T1FEWERVeU9vM0JXdDJzPSIsInRyYW5zYWN0aW9uSWQiOiIyYTNkZjhjNDg0Y2JmMDg1OTgyN2Y0ZDBkZjhkYjY4YjYyNjBlNTIxYWUwZmI4YjI1NDRmNzNiM2RlMDVlYjE5In19","language":"ru","additionalParameters":{},"preAuth":"true"}
The request parameters are described in the table below.
To process the request correctly, one needs to add a header with the definition of the content type - Content-Type: application/json.
Parameter | Data type | Mandatory parameter | Description |
---|---|---|---|
merchant | AN..30 | yes | Merchant's login name in the payment gateway system. |
orderNumber | AN..32 | yes | A unique order number on the seller's side. |
description | ANS..512 | no | Order description. |
language | A2 | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
additionalParameters | AN..1024 | no | Additional order parameters that are saved for viewing from the merchant's personal area. Additional parameters should be specified in the following format. "parameter name": "parameter value" Each new pair of parameter name and value should be separated by a comma. |
clientId | ANS..255 | no | The number of the client for whom one should create a binding for making regular payments. It should be indicated only if a technical payment is made for subsequent regular payments. |
preAuth | A..5 | no | Parameter that determines the need for pre-authorization (blocking funds on the client's account before they are debited). The following values are available: • true - the parameter is enabled, the payment is made with preauthorization (the client's funds are blocked before being debited); • false - the parameter is disabled (debiting is made immediately). If the parameter is not specified in the request, the debiting is made immediately. |
paymentToken | AN..8192 | yes |
The paymentToken parameter must contain the Base64 encoded value of the paymentData property obtained from the PKPaymentToken Object from the Apple Pay system (for more information, see Apple Pay documentation).
|
dynamicCallbackUrl | AN..512 | no | This parameter allows you to use the dynamic callback notification sending functionality. All payment-related callbacks enabled for the merchant could be directed to the address passed in this parameter. Payment-related notifications are callback notifications about the following events: successful hold, payment rejected by timeout, successful debit, refund, reversal. Notably, payment-unrelated callbacks that are active for the merchant (enabling/disabling a binding, binding creation) will be sent to static callback address. It is necessary to contact technical support for configuration. |
An example of a PKPaymentToken Object received by a seller from Apple looks as follows:
{
"paymentData": {
"data": "vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN/aQQEThe2pQ0c7hgzzZlA6TpkIR/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwXp6mOwJZ6ZFO/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1/dFvQJjDYbMorKQ8GJbWtlsVbKsy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7/404kMGpnHgkNVqFc/4SN0U2XQ5rrb14DM8M69w=",
"signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDkyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O/0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22\/VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnwSoyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou\/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7\/S5LMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwowV3bF3zODuQZ/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDMxNzEwMzgzOVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgvL+q07/reM0N/5b0hwWT7TJReVTdS9QX5SPhiqeie+cwCgYIKoZIzj0EAwIERzBFAiEAttC68Xyzs6I0+tAKmg6x+0UrqmkQN/V5c8RMMIEJHooCIHIgUHbAt2p5WrFHQKrAVL4c7nohRplZWVbVu6wbBeCgAAAAAAAA",
"header": {
"publicKeyHash": "fpvAnSDwQFX4NX4pghdjpNwUFhoTH/DDGhew94uJaRA=",
"ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==",
"transactionId": "38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2"
},
"version": "EC_v1"
},
"transactionIdentifier": "38E4C267EF1DE62A343D0ECCADA3F7E19F6B22FFC7EDE899C039865432BA6AA2",
"paymentMethod": {
"network": "Visa",
"type": "debit",
"displayName": "Visa5223"
}
}
The value of the paymentData property (from the example above), which needs to be encoded in Base64 and passed in a payment request to the payment gateway, looks as follows:
{
"data": "vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN\/aQQEThe2pQ0c7hgzzZlA6TpkIR\/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwX+p6mOwJZ6ZFO\/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1\/dFvQJjDYbMorKQ8+GJbWtlsVb+Ksy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7\/404kMGpnHgkNVqFc\/4SN0U2XQ5rrb14DM8M69w=","signature":"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDkyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O\/0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22\/VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB\/wQCMAAwHwYDVR0jBBgwFoAUI\/JJxE+T5O8n5sT2KGw\/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB\/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB\/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnw+Soyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+\/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou\/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT\/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7\/S5LMA8GA1UdEwEB\/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH\/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr\/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC\/gIwMi3VRCGwowV3bF3zODuQZ\/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDMxNzEwMzgzOVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgvL+q07\/reM0N\/5b0hwWT7TJReVTdS9QX5SPhiqeie+cwCgYIKoZIzj0EAwIERzBFAiEAttC68Xyzs6I0+tAKmg6x+0UrqmkQN\/V5c8RMMIEJHooCIHIgUHbAt2p5WrFHQKrAVL4c7nohRplZWVbVu6wbBeCgAAAAAAAA",
"header": {
"publicKeyHash":"fpvAnSDwQFX4NX4pghdjpNwUFhoTH\/DDGhew94uJaRA=",
"ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB\/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==",
"transactionId":"38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2"
},
"version":"EC_v1"
}
Response examples and description
Successful payment
{
"success":true,
"data": {
"orderId": "12312312123"
}
}
Unsuccessful payment
{
"error": {
"code": 1,
"description": "Processing Error",
"message": "Insufficient funds on the card"
},
"success": false
}
The description of the response parameters is given in the table below.
Parameter | Nested parameter | Data type | Mandatory parameter | Description |
---|---|---|---|---|
success | Not relevant | A..5 | yes | Indicates the success of the payment. The following values are available: true - the request was processed successfully; false - the request failed. |
data (returned only if the payment was successful) | orderId | ANS36 | yes | The order number unique to the seller in the payment system. |
error (returned only if the payment failed) | code | N..2 | yes | Error code. |
description | ANS..512 | yes | Detailed technical explanation of the error - the contents of this parameter are not intended to be displayed to the user.. | |
message | AN..512 | yes | Clear error description - designed to be displayed to the user. | |
orderStatus (Contains the order status parameters and is returned only if the payment gateway has recognized all the request parameters as correct.) | errorCode | N3 | no | Error code. |
orderNumber | AN..32 | no | The order number (identifier) in the store's system is unique for each store within the system. | |
orderStatus | N..2 | no | The value of this parameter determines the order status in the payment system. It is missing if the order has not been found. The following values are possible: 0 - The order is registered, but not paid for; 1 - The pre-authorized amount is reserved (for two-phase payments); 2 - authorization of the order amount has been carried out; 3 - Authorization canceled; 4 - A refund operation was performed on the transaction; 5 - Authorization has been initiated through the issuing bank's ACS; 6 - Authorization denied. |
|
actionCode | N..5 | no | Response codes are a digital designation of the result that the user's access to the system led to. | |
actionCodeDescription | AN..512 | no | Decryption of the response code in the language passed in the language request parameter. | |
amount | N..20 | no | Payment amount in minimum units of currency (e.g., kopecks or cents). | |
currency | N3 | no | Payment currency. | |
date | ANS | no | Date of order registration in UNIX-time (POSIX-time) format. | |
ip | AN..20 | no | The IP address of the user who paid for the order. IPv6 is supported in all requests. | |
merchantOrderParams | AN..1024 | no | Parameter containing attributes where additional seller parameters are transferred: name - additional parameter name; value - additional parameter value. | |
attributes | AN..1024 | no | Order attributes in the payment system (order number): name - the name of the attribute, always have the mdOrder value; value - the order number in the payment system (unique within the system). | |
cardAuthInfo | - | no | Information about the buyer's payment card: expiration (ANS) - year and month of expiration of the payment card; cardholderName (A..64) - name of the cardholder, if available; approvalCode (AN6) - payment authorization code, may contain digits and Latin letters; pan (NS..19) - masked DPAN: a number linked to the buyer's mobile device and performing the functions of a payment card number in the Apple Pay system. |
|
authDateTime | ANS | no | Date and time of authorization in UNIX-time (POSIX-time) format. | |
terminalId | AN..10 | no | ID of the processing system terminal through which the payment was made. | |
authRefNum | AN..24 | no | The authorization account number that is assigned when registering the payment. | |
paymentAmountInfo | - | no | Parameter containing nested parameters with information about the amounts of confirmation, debiting, refund: paymentState (A..10) - payment status; approvedAmount (N..12) - amount confirmed for debiting; depositedAmount (N..12) - amount debited from the card; refundedAmount (N..12) - Refund amount. totalAmount (N..12) - order amount + fee (fee if it was used in the order). |
|
bankInfo | - | no | Contains a nested parameter bankCountryName (AN..160) - if available, the name of the issuing bank's country is transferred in the parameter in the language transferred in the "language" parameter in the request, or in the language of the user who called the method, if the language is not specified in the request. |
This functionality supports recurrent payments with MasterCard and Visa cards
The recurrentPayment.do request is used to register an order (see the Connection coordinates section).
Example of a POST request
{
"userName": "userName",
"password": "password",
"orderNumber": "UAF-203974-DE-12",
"language": "RU",
"bindingId": "binding_id",
"amount": 12300,
"currency": "810",
"description" : "Test description",
"additionalParameters": {
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
}
}
The parameters are described in the table below.
Parameter | Mandatory | Description |
---|---|---|
userName | yes | The name of the user with access to the payment gateway API. |
password | yes | The password of the user with access to the payment gateway API. |
orderNumber | yes | Order number. |
language | no | Two-letter language code. |
bindingId | yes | Binding identifier. |
amount | yes | Order amount in minimum units of currency (e.g., kopecks). |
currency | no | Digital currency code as per ISO 4217. |
description | no | Order description. |
additionalParameters | no | "parameter name 1": "parameter value 1", "parameter name 2": "parameter value 2" |
Response examples and descriptions
Below is an example of a successful payment.
{"success":true,"data":{"orderId":"f7beebe4-7c9a-43cf-8e26-67ab741f9b9e"},"orderStatus":{"errorCode":"0","orderNumber":"UAF-203974-DE-12","orderStatus":2,"actionCode":0,"actionCodeDescription":"","amount":12300,"currency":"810","date":1491333938243,"orderDescription":"Test description","merchantOrderParams":[{"name":"firstParamName","value":"firstParamValue"},{"name":"secondParamName","value":"secondParamValue"}],"attributes":[],"cardAuthInfo":{"expiration":"201912","cardholderName":"sdf sdf","approvalCode":"123456","paymentSystem":"VISA","pan":"411111**1111"},"authDateTime":1491333939454,"terminalId":"11111","authRefNum":"111111111111","paymentAmountInfo":{"paymentState":"DEPOSITED","approvedAmount":12300,"depositedAmount":12300,"refundedAmount":0},"bankInfo":{"bankCountryName":"<Unknown>"},"chargeback":false,"operations":[{"amount":12300,"cardHolder":"sdf sdf","authCode":"123456"}]}}
Below is an example of an unsuccessful payment.
{
"error": {
"code": "10",
"description": "An order with this number has already been registered.",
"message": "An order with this number has already been registered."
},
"success": false
}
The description of the response parameters is given in the table below.
Parameter | Nested parameter | Mandatory parameter | Description |
---|---|---|---|
success | Not relevant | yes | Indicates the success of the payment. The following values are available: true - the request was processed successfully; false - the request failed. |
data (returned only if the payment was successful) | orderId | yes | The order number unique to the seller in the payment system. |
error (returned only if the payment failed) | code | yes | Error code. |
description | - | yes | Detailed technical explanation of the error - the contents of this parameter are not intended to be displayed to the user.. |
message | - | yes | Clear error description - designed to be displayed to the user. |
Error codes
Error code | Message |
---|---|
0 | Processing took place without system errors. |
1 | Incorrect payment details. |
1 | It is not possible to use a binding for recurring payments. |
1 | Invalid payment parameters. |
1 | Invalid order number. |
4 | Invalid binding ID. |
5 | The ability to use bindings is disabled. |
5 | Incorrect amount. |
5 | Invalid user name. |
5 | Invalid password. |
5 | Authentication error. |
5 | Authentication error. |
10 | An order with this number has already been registered. |
The payment.do request is used to register an order (see the Connection coordinates section).
For cancellation, refund and payment completion operations, standard requests to the payment gateway should be used.
The parameters are described in the table below.
Parameter | Mandatory | Description |
---|---|---|
merchant | Yes | Merchant's login name in the payment gateway system. |
orderNumber | Yes | A unique order number on the seller's side. |
description | No | Order description. |
language | No | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
additionalParameters | No |
Additional order parameters that are saved for viewing from the merchant's personal area. Additional parameters should be specified in the following format.
Each new pair of parameter name and value should be separated by a comma. |
preAuth | No | Parameter that determines the need for pre-authorization (blocking funds on the client's account before they are debited). The following values are available: • true - the parameter is enabled, the payment is made with preauthorization (the client's funds are blocked before being debited); • false - the parameter is disabled (debiting is made immediately). If the parameter is not specified in the request, the debiting is made immediately. |
clientId | No | The number of the client for whom one should create a binding for making regular payments. It should be indicated only if a technical payment is made for subsequent regular payments. |
paymentToken | Yes | A token received from Google Pay and encoded in Base64. |
ip | Yes | Payer's IP address. |
amount | Yes | Payment amount in minimum units of currency (e.g., kopecks). |
currencyCode | No | The payment currency digital code as per ISO 4217. If not specified, it is considered equal to 643 (Russian ruble). |
No (see description) | Email address. Required if the online store has fiscalization configured and no phone number is specified. | |
phone | No (see description) | Phone number. Required if the online store has fiscalization configured and no email address is specified. |
failUrl | No | to which the user must be redirected in case of failed payment. The address must be specified in full, including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type: http://<payment_gateway_address>/<merchant_address>.|
returnUrl | Yes |
The address to which the user must be redirected in case of successful payment. The address must be specified in full, including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type: http://<payment_gateway_address>/<merchant_address>.
|
dynamicCallbackUrl | no | This parameter allows you to use the dynamic callback notification sending functionality. All payment-related callbacks enabled for the merchant could be directed to the address passed in this parameter. Payment-related notifications are callback notifications about the following events: successful hold, payment rejected by timeout, successful debit, refund, reversal. Notably, payment-unrelated callbacks that are active for the merchant (enabling/disabling a binding, binding creation) will be sent to static callback address. It is necessary to contact technical support for configuration. |
Below is an example of a request for payment.
To process the request correctly, one needs to add a header with the definition of the content type - Content-Type: application/json.
{
"merchant": "OurBestMerchantLogin",
"orderNumber": "UAF-203974-DE",
"language": "RU",
"preAuth": true,
"returnUrl":"https://test.ru",
"description" : "Test description",
"additionalParameters":
{
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=",
"ip" : "127.0.0.1",
"amount" : "230000",
"currencyCode" : 643
}
The description of the response parameters is given in the table below..
Parameter | Nested parameter | Mandatory parameter | Description |
---|---|---|---|
success | Not relevant | Yes | Indicates the success of the payment. The following values are available: true - the request was processed successfully; false - the request failed. |
data (returned only if the payment was successful) | orderId | Yes | The order number unique to the seller in the payment system. |
error (returned only if the payment failed) | code | Yes | Error code. |
error | description | Yes | Detailed technical explanation of the error - the contents of this parameter are not intended to be displayed to the user. |
error | message | Yes | Clear error description - designed to be displayed to the user. |
termUrl | Not relevant | No | It is not used for payments that do not require additional authentication through the Issuing Bank's ACS. |
acsUrl | Not relevant | No | It is not used for payments that do not require additional authentication through the Issuing Bank's ACS. |
paReq | Not relevant | No | It is not used for payments that do not require additional authentication through the Issuing Bank's ACS. |
Response examples and description
Successful payment
{
"success":true,
"data": {
"orderId": "12312312123"
}
Unsuccessful payment
{
"error": {
"code": 1,
"description":
"Processing Error",
"message":
"Insufficient funds on the card"
},
"success": false
}
Possible error codes are described in the table below.
Error code | Error message |
---|---|
0 | Request processing took place without system errors |
1 | Insufficient funds on the card |
5 | Access denied |
5 | The user must change password |
7 | System error |
10 | Invalid value of the paymentToken parameter |
10 | Invalid value of the orderNumber parameter |
10 | Invalid value of the merchant parameter |
10 | Invalid ip parameter value |
10 | Decryption of the transferred data failed |
10 | No private key |
The payment.do request is used to register an order in Samsung Pay (see the Connection coordinates section).
For cancellation, refund and payment completion operations, standard requests to the payment gateway should be used.
Below is an example of a request for payment via Samsung Pay.
To process the request correctly, one needs to add a header with the definition of the content type - Content-Type: application/json.
{
"merchant": "OurBestMerchantLogin",
"orderNumber": "UAF-203974-DE",
"language": "RU",
"preAuth": true,
"description" : "Test description",
"additionalParameters":
{
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "ew0KICB7DQoJICAidmVyc2lvbiI6ICJSU0FfdjEiLA0KCSAgInNpZ25hdHVyZSI6ICJabUZyWlNCemFXZHVZWFIxY21VPSIsDQoJICAiaGVhZGVyIjogew0KCQkiZXBoZW1lcmFsUHVibGljS2V5IjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRW14Q2hDcGpLemY5YVh6MjZXVDZaVE4yekUzaUdYUWpjWlJZWUFkUUlURFgyUmtBTmJ0N2s5cmFoRjFoempqbWVWVHhjZ0NvZkg4MXprMkdOVFozZHRnPT0iICAgICAgIA0KCQkid3JhcHBlZEtleSI6ICJYejI2V1Q2WlROMnpFM2lHWFFqYz0iDQoJCSJwdWJsaWNLZXlIYXNoIjogIk9yV2dqUkdrcUVXamRrUmRVclhmaUxHRDBoZS96cEV1NTEyRkpXckdZRm89IiwNCgkJInRyYW5zYWN0aW9uSWQiOiAiYXBwbGUtMTIzNDU2Nzg5MEFCQ0RFRiINCgkgIH0sDQoJICAiZGF0YSI6ICIxZFhFMTNrdnpUVlA2bldFTjhEMnBoclBsZlFjR3I4VzN5ajJTSFlZai9QeWNIV1RqbnBWN3ovRXI3OGJyaT09Ig0KICB9DQp9",
"ip" : "127.0.0.1"
}
The description of the parameters is given in the table below.
Name | Mandatory | Description |
---|---|---|
merchant | yes | Merchant's login name in the payment gateway system. |
orderNumber | yes | A unique order number on the seller's side. |
description | no | Order description. |
language | no | The language is encoded in ISO 639-1. If not specified, the default language specified in the store settings will be used. |
additionalParameters | no | Additional order parameters that are saved for viewing from the merchant's personal area. Additional parameters should be specified in the following format. "parameter name": "parameter value" Each new pair of parameter name and value should be separated by a comma. |
preAuth | no | Parameter that determines the need for pre-authorization (blocking funds on the client's account before they are debited). The following values are available: • true - the parameter is enabled, the payment is made with preauthorization (the client's funds are blocked before being debited); • false - the parameter is disabled (debiting is made immediately). If the parameter is not specified in the request, the debiting is made immediately. |
clientId | no | The number of the client for whom one should create a binding for making regular payments. It should be indicated only if a technical payment is made for subsequent regular payments. |
paymentToken | yes | The contents of the 3ds.data parameter from the response received from Samsung Pay. |
ip | yes | Payer's IP address. |
currencyCode | no | The payment currency digital code as per ISO 4217. If not specified, it is considered equal to the default currency code. |
Response examples and description
Successful payment
{
"success":true,
"data": {
"orderId": "12312312123"
}
}
Unsuccessful payment
{
"error": {
"code": 1,
"description": "Processing Error",
"message": "Insufficient funds on the card"
},
"success": false
}
The description of the response parameters is presented in the table below.
Parameter | Nested parameter | Mandatory | Description |
---|---|---|---|
success | Not relevant | yes | Indicates the success of the payment. The following values are available: true - the request was processed successfully; false - the request failed. |
data (returned only if the payment was successful) | orderId | yes | The order number unique to the seller in the payment system. |
error (returned only if the payment failed) | code | yes | Error code. |
description | - | yes | Detailed technical explanation of the error - the contents of this parameter are not intended to be displayed to the user.. |
message | - | yes | Clear error description - designed to be displayed to the user. |
Possible error codes are described in the table below.
Code | Description |
---|---|
0 | Request processing took place without system errors |
1 | Insufficient funds on the card |
5 | Access denied |
5 | The user must change password |
7 | System error |
10 | Invalid value of the paymentToken parameter |
10 | Invalid value of the orderNumber parameter |
10 | Invalid value of the merchant parameter |
10 | Invalid ip parameter value |
10 | Invalid value of the paymentToken parameter.header.alg |
10 | Invalid value of the paymentToken parameter.header.enc |
10 | Invalid value of the paymentToken parameter.header.typ |
10 | Invalid value of the paymentToken parameter.header.channelSecurityContext |
10 | Invalid value of the paymentToken parameter.header.kid |
10 | Decryption of the transferred data failed |