Sberbank payment gateway API (1.1.6)

Download OpenAPI specification:Download

Переключиться на Русский

This document describes the software interfaces of Sberbank's payment gateway for Internet acquiring payments.

To learn more about how to use the API, please contact the Support Service (email: Support_ecomm@sberbank.ru). When contacting us, please specify that the question concerns the target Internet acquiring gateway.

Contact your manager for access, operational and other service issues.

Revision History

Date Document version Revision Description
02.10.2025 1.1.5 An important change! Updated the coordinates of the connection to the combat environment in the Message processing section. Added restrictions on repeated requests for a number of errors in the Description of the Gateway response codes
25.07.2025 1.1.3 The structure in the error description has been adjusted/ Added parameter for working with dynamic Callback
13.03.2025 1.1.2 The rounding method has been clarified when calculating Savings bonuses, especially when making refunds. Added test cards for testing the functionality of the SberSpasibo loyalty program.
02.11.2024 1.1.1 Added a description of money transfer services
17.10.2024 1.1.0 Added support for the specification in two languages
17.09.2024 1.0.9 Added the description of electronic certificate payments.
10.09.2024 1.0.8 Clarified the description of the loyaltyInfo.awardBonus item.
28.05.2024 1.0.7 Added the information on working with the SberSpasibo loyalty program.
15.03.2024 1.0.6 Added the information on password change services and POS lending.
15.12.2023 1.0.5 Added the information on increasing the conversion of payments.
03.10.2023 1.0.4 Added the documents regarding fiscalization and FPS. Added the video explaining how to work in the personal account.
18.07.2023 1.0.3 Added the documentation on how to work with bindings.
18.07.2023 1.0.2 Added the SberPay testing documentation, corrected the description of services. Added test cards.
14.06.2023 1.0.1 Added the description of QR link registration. Added the examples of queries and responses for various business scenarios.
21.05.2023 1.0.0 Initial openAPI version

General Information

Terms

  • Payment Gateway (PG, Gateway) is a number of solutions for the Internet acquiring process using various payment means.
  • Merchant is the system or the person interacting with PG.
  • Payer is the individual or the legal entity that makes a payment with his/her card for the merchant’s services in PG.
  • Order is the elementary entity of PG describing the order in a certain online store or its analog.
  • One-stage payment is the transaction of payment for goods/services that does not require additional confirmation (Completion), i.e. the funds are blocked and debited in one stage. This type of payment is preferred if the goods or services are provided immediately after the payment.
  • Two-stage payment is the transaction of payment for goods/services that requires an additional confirmation (Completion), i.e. the payment is made in two stages. At the first stage, the payer's funds are checked and blocked (pre-authorization); then, at the second stage, the company either confirms that the funds should be debited or cancels the blocking of funds. The amount to be debited may be lower than the blocking amount.
  • Holding (Blocking of funds) - The status of the amount of funds intended for compensation under the conducted transaction, from the time of successful authorization to the completion of settlements between the participating banks. At this stage, the funds are still on the Payer’s account, but are no longer available for use on the card.
  • Refund means a partial or full refund of the Payer’s funds in case of their refusal to receive goods/services or the return of these. Refund is an offline transaction carried out after the funds are debited from the Payer. The reimbursement deadlines generally depend on the issuing bank and may be up to 30 days.
  • Payment transaction cancellation (Reversal) is the operation of withdrawal (cancellation) of the Payer's funds withholding. Cancellation is an online operation, i.e. the card issuer receives an immediate request to unblock the amount. The cancellation may be carried out before the beginning of mutual settlements between the participating banks, therefore it is available for a limited time.
  • Binding is the correspondence between the Payer and the card payment details (card or token number and validity period).
  • 3-D Secure (3DS) is the protocol of additional Payer authentication based on the concept of three domains: acquirer, issuer and compatibility.
  • Access Control Server (ACS) is the element of 3-D Secure infrastructure that ensures the Payer authentication on the issuing bank's side.
  • MPI, 3DS Server is the element of 3-D Secure infrastructure on the acquiring bank's or Merchant's side.
  • Fiscalization (54-FZ) is the procedure for generating a fiscal receipt for a successfully paid Order. This concept includes both the generation of a receipt for successful payment and the generation of a refund receipt, a closing receipt, etc.
  • FDF - Fiscal Document Format. Standard of the Federal Tax Service, according to which all fiscal receipts are generated.
  • Electronic Certificate (EC) is a record in the State Information System of Electronic Certificates (GIS ES). The EC holder gets access to this record using a national payment instrument, that is a PS Mir card.
  • GWS — Goods/work/service
  • NPCS - National Payment Card System
  • FEC - Front Office of NPCS Electronic Certificates is the solution for a trade and service enterprise making it possible to purchase certain types of goods, work, services using EC tools

Message processing

  • Connection coordinates. Information about the coordinates for connecting to the test environment is also available in a special section for each service (on the right of the page).

Attention! For correct interaction with the gateway, you need to install the NCC certificate of the Digital Ministry.

Attention! Provisional windows are provided in the test environment: on the weekdays, the time intervals are reserved for 02:00 - 06:00, 09:00 - 10:00 and 18:00 - 20:00 (Moscow time), during which maintenance work can be done to implement the functionality in the test facility.The stability of the environment performance at this time is not guaranteed.

Test environment: https://ecomtest.sberbank.ru/...

Production environment: https://epay.sberbank.ru/...

  • The payment gateway represents HTTP REST services by the POST method, with the transmission in "Content-Type: application/json" headers and a character set in the UTF-8 encoding. Messages are transmitted in JSON format (RFC 7159);
  • The names of objects in the services are passed as case-sensitive;
  • TLS protocols 1.2 and 1.3 are used for interaction;
  • After the Merchant’s registration, the login and password to be used for connection to PG are provided;
  • For the interaction with PG services, it is required to install the NCC certificate of the Digital Ministry.

Attention! It's not allowed to assign the value "null" to the parameters! If the parameter is "null", it should be completely excluded from the query.

Payment making scenarios

Entry of the details on the Merchant's side without 3DS on the Gateway side

Entry of the details on the Merchant's side with 3DS on the Gateway side

Entry of the details on the Merchant's side with a simplified 3DS on the Gateway side

Entry of the details on the Gateway side

Payment using bindings

General algorithm for making payments using binding.

The scenario is divided into two stages:

1. Creation of a binding.

Below there is a brief description of the algorithm for creating a binding.

1.1. After receiving the Payer’s consent to further using the card data for making payments, the Merchant registers the order using register.do (with a mandatory transmission of the clientId parameter.

Attention! In case the specified parameter (clientId) is not present in the query, no binding will be created. The query can also pass features=VERIFY. In this case, the order amount must be 0 rubles and 0 kopecks, and the funds will not be debited from the Payer. At the same time, all necessary checks are carried out. This method of order registration is the most correct one for generating bindings.

1.2. The payer pays for the order with all attributes: card data and 3DS input or transaction payment via SberPay.

1.3. If the order is paid successfully, a binding will be created, whose ID can be obtained using the getOrderStatusExtended.do and/or getBindings.do queries.

1.4. Optional step. If it is necessary to return the funds under the order (when authorizing for an amount other than 0 rubles and 0 kopecks), a reverse.do query may be sent. The cancellation is required to prevent actual debiting of funds in case a technical operation is used to link the card.

Binding creation completed.

2. Payment using a binding

Below there is a brief description of the algorithm of payment using the available binding.

There are several payment options which can be initiated by both the Payer, and the Merchant.

  1. The initiator is the Merchant.

Method 1.

1.1.1. The Merchant sends a recurrentPayment.do query.

1.1.2. The payment gateway enriches the query with the card data corresponding to the bindingId received from the Merchant.

1.1.3. The authorization is carried out using the data of the cards filled in in clause 1.1.2.

1.1.4 The authorization result is sent to the Merchant.

Method 2.

1.2.1. The Merchant registers the order using register.do / registerPreAuth.do with a mandatory transmission of the clientId parameter.

1.2.2. The order payment is initiated with the help of paymentOrderBinding.do, with the transfer of the bindingId parameter.

Attention! The bindingId parameter must match the clientId passed during the order registration.If you attempt to pay with the binding created for another clientId, the error "The order cannot be paid with this binding" will return.

1.2.3. The payment gateway checks that clientId and bindingId match. If there is a match, the Payment Gateway enriches the query with the card data corresponding to the transmitted bindingId value.

1.2.4. The authorization is performed using the data of the cards filled in in clause 1.2.3.

1.2.5. The authorization result is sent to the Merchant.

  1. The initiator is the Payer.

2.1. The payer selects the payment with the saved card.

2.2. The Merchant registers the order using register.do / registerPreAuth.do with the mandatory transmission of the clientId parameter.

2.3. The order payment is initiated with the help of paymentOrderBinding.do, with the transfer of the bindingId parameter.

Attention! The bindingId parameter must match the clientId passed during the order registration.If you attempt to pay with the binding created for another clientId, the error "The order cannot be paid with this binding" will return.

2.4. The payment gateway checks clientId against bindingId. If the check is correct, the Payment Gateway enriches the query with the card data corresponding to the transmitted bindingId value.

2.5. The authorization is carried out using the data of the cards filled in in clause 1.2.3.

2.6. The authorization result is sent to the Merchant.

2.7. The Merchant notifies the Payer of the authorization result.

Attention! If the clientId and bindingId do not match, the error "The order cannot be paid with this binding" is returned to the Merchant.

Increasing the payment conversion rate

In e-commerce, conversion is a critical indicator. If the integration is correct and the Merchant journey is intuitive, one of the main ways to improve the indicators is to transfer additional parameters.

Additional parameters make it possible to get more complete information about Merchants and their payment transactions, making it possible to significantly reduce the risks of fraud and avoid excessive blocking of transactions by the Bank, NPCS and other issuers. Additional parameters can be transmitted upon the order registration and in the payment services in blocks jsonParams or additionalParameters in accordance with the service description in the documentation.

Transfer of cart and payer account identifier of the partner are the most important factors that increase the conversion. The order cart transfer may be used without the fiscalization functionality.

Additional parameters may overlap 3DS parameters and in most cases affect the outcome of payer authentication, increasing the likelihood of frictionless flow work.

Order status in the Gateway

Description of the Gateway error codes

Description of the Gateway error codes

Errors of this block are returned at the stage of validation of the request to the Gateway

errorCode errorMessage
0 The query was processed without system errors
5 Access denied
5 Error, value of the request parameter
7 System error

Description of the Gateway error codes

Errors of this block are returned at the processing stage of the called service

errorCode errorMessage
0 The query was processed without system errors
0 The query is accepted for processing
1 The order with this number has already been processed
1 The order cannot be paid for with this binding
1 Invalid card number
1 Incorrect card validity period
1 Creating bindings for this card is unavailable
1 Binding not found
2 Binding inactive
2 Binding already created
2 Invalid binding state
3 Currency with the code not found:
4 The mandatory parameter is not transmitted in the query or an incorrect mandatory parameter is transmitted
4 Username does not match the value given during the order registration
4 The order number cannot be empty
5 Invalid transaction parameter
5 Access denied
5 Transaction prohibited
5 Merchant not found in the system
5 Terminal not found in the system
5 Order not found
5 Order lifetime expired
5 Incorrect amount
5 Not possible to do a partial cancellation more than once
5 The completion amount exceeds the holding amount
5 The total refund amount exceeds the order amount
5 Query data validation error
5 Transaction error
5 Query execution error
5 With orderId missing, OrderNumber has been left blank
5 Permitted number of payment attempts exceeded
5 Impossible to pay for the order as it is blocked by another action
5 Impossible to complete the order payment as it is blocked by another action
5 Impossible to cancel the order as it is blocked by another action
5 Transaction declined. Check the data you entered, whether the card has sufficient funds, and repeat the transaction. Redirection is progress
5 Payment error
6 Invalid order number
7 Incorrect order status
7 Successful pre-authorization not found
7 The total refund amount exceeds the order amount
7 Successful payment transaction not found
7 Validation operation not found
7 System error
8 Currency in the Cart does not match the order currency
8 The amount of goods in the Cart does not match the total order amount
8 Wrong cart format
9 Data validation error
9 Number of notification attempts exceeded
9 Incorrect phone number
9 Order not found
9 Merchant not found
9 Merchant not verified
9 Merchant data is insufficient
9 Merchant inactive
9 Merchant data is insufficient
9 The Merchant found is registered dead
9 Unclassified Merchant profile
9 Several Merchants found
14 Features are incorrect
15 Binding deactivated by the Merchant

Description of the Gateway response codes

Errors of this block are returned when the operation is succesfully processed by the Processing Center Each order has 3 payment attempts before the order expiration time (20 minutes by default, this value can be specified during the order registration).

actionCode actionCodeDescription Explanation of the response code Recommendation for the Merchant/Payer
-5031 FPS payment error Client subscription not found
-3101 The Payer prohibited the execution of transactions with this binding Repeat the payment using an alternative payment tool
-3100 Binding deactivated Repeat the payment using an alternative payment tool
-2020 Transaction declined. Please contact the card issuer ECI received during the transaction does not match the permitted values for this IPS Repeat the payment using an alternative payment tool
-2019 Transaction declined. Please contact the card issuer Error received at the time of processing of 3-D Secure messages Repeat the payment using an alternative payment tool
-2018 Transaction declined. Please contact the card issuer IPS Directory Server inaccessible Retry later (within the time limit allocated for order payment) or use an alternative order payment tool
-2017 Transaction declined. Please contact the merchant Payer not authenticated (status 3-D Secure not Y) Cardholder 3ds authentication not completed. Repeat the payment using an alternative payment tool
-2016 Transaction declined. Please contact the card issuer It is impossible to authenticate the payer (status 3-D Secure U) An error occurred when checking for the possibility of cardholder 3ds authentication in the issuing bank. Please try again or use an alternative payment tool.
-2015 Transaction declined. Please contact the card issuer Error received at the time of processing of 3-D Secure messages Repeat the payment using an alternative payment tool
-2013 Payment attempts are over Payment attempts are over The number of payment attempts set for this order has been exceeded. A new order needs to be created.
-2011 Transaction declined. Please contact the card issuer The Payer authentication is not possible (status 3-D Secure U) An error occurred at the time of check for the possibility of cardholder 3ds authentication in the issuing bank. Please try again or use an alternative payment tool.
-2010 Transaction declined. Please contact the card issuer Error during the validation of 3-D Secure messages (XID mismatch) Repeat the payment using an alternative payment tool
-2007 The data entry timeout has expired The time for payment of the order from the moment of payment registration has expired (the default timeout is 20 minutes, you can specify the duration when creating the order) A new order must be created
-2006 Transaction declined. Please contact the card issuer The Payer authentication failed (status 3-D Secure N) The cardholder authentication in the issuing bank failed. Please try again or use an alternative payment tool.
-2005 Transaction declined. Please contact the card issuer Error during the validation of 3-D Secure messages The cardholder authentication in the issuing bank failed. Please try again or use an alternative payment tool.
-100 There have been no attempts to pay You need to pay for the order
-99 _Error at the time of FPS payment_Transaction is being processed. For such transactions as FPS Payment/Refund, Interruption Payment, and Cancellation/Refund by QR POS Transaction is being processed No action required
0 Payment completed successfully No action required
1 Transaction declined. Please contact the card issuer To complete the transaction successfully, you need to confirm your identity The cardholder should contact the issuing bank to confirm the transaction
5 Transaction declined. Please contact the card issuer Network failure to carry out the transaction Repeat the payment using an alternative payment tool
7 Transaction declined. Please contact the merchant Withdraw the card. Fraud Repeat the payment using an alternative payment tool
12 Transaction declined. Please contact the card issuer An attempt was made to perform a transaction for an amount exceeding the limit set by the issuing bank Rejection of the query by the issuing bank's processing as the transaction amount does not match the transaction terms. The order payment can be repeated using an alternative payment tool
13 Transaction declined. Please contact the merchant The transaction amount is incorrect Repeat the payment using an alternative payment tool
14 Transaction declined. Please contact the card issuer Invalid card number Check the card details or use another tool to pay for your order. If you receive the response when paying with a binding, delete the binding.
15 Payment error. Please try again later. If this error occurred again, please contact your bank for clarification IPS could not identify the card issuer Repeat the payment using an alternative payment tool
31 No connection with the bank. Try again later No connection to the card issuing bank Repeat later or use another payment tool/method
41 Transaction declined. Please contact the merchant Withdraw the card. The card is lost The card is marked as lost in the issuing bank's processing. Use an alternative payment tool. If you receive the response when paying with a binding, delete the binding.
43 Transaction declined. Please contact the merchant Withdraw the card. The card is stolen The card is marked as stolen in the issuing bank's processing. An alternative payment tool should be used. If you receive the response when paying with a binding, delete the binding.
53 Transaction declined. Please contact the merchant The card cannot be found in processing systems Refusal from the issuing bank's processing due to the account closure or the query or wrong account type. The order payment can be repeated using an alternative payment tool. If you receive the response when paying with a binding, delete the binding.
61 Transaction declined. Please contact the card issuer An attempt has been made to complete the transaction for an amount exceeding the daily limit set by the issuing bank The payer is recommended to check the restrictions in the issuing bank or repeat the payment using an alternative payment tool
62 Transaction declined. Please contact the card issuer The card is blocked The card is subject to restrictions in the issuing bank's processing. The order payment can be repeated using an alternative payment tool.
65 Transaction declined. Please contact the card issuer The limit for the number of transactions has been exceeded: the Client has completed the maximum permitted number of transactions during the limit cycle and is trying to perform another one, or the Client has set a restriction on performing transactions without 3DS authentication The payer is recommended to check the restrictions set in the issuing bank or repeat the payment using an alternative payment tool
75 Transaction declined. Please contact the merchant The maximum number of attempts to enter PIN has been exceeded. Your card is probably temporarily blocked You may repeat the payment using an alternative payment tool
76 Transaction declined. Please contact the merchant Transaction not found (in case of completion, cancellation or refund) A new order must be created
81 Transaction declined. Please contact the card issuer Refusal to carry out the transaction by the issuing bank Check the card details or use another tool to pay for the order
82 Transaction declined. Please contact the card issuer Incorrect CVC Check your card details or use another tool to pay for your order
93 Transaction declined. Please contact the card issuer The transaction is illegal An attempt to carry out the transaction that violates the legal requirements. The Client is recommended to report the refusal to perform the transaction without specifying the reason.
94 Transaction declined. Please contact the merchant The transaction duplicate is received (in case of completion or cancellation) Please specify the processing status
96 Transaction declined. Please contact the card issuer The transaction cannot be completed Repeat later or use another payment tool/method
101 Transaction declined. Check the data entered, whether there are enough funds on the card, and repeat the transaction The card has expired Recommend the holder to check the validity of the card and repeat the payment, or to use an alternative order payment tool. If you receive the response when paying with a binding, delete the binding.
103 Transaction declined. Please contact the card issuer Sales oulet need to contact Issuing bank. Retry later (within the time limit allocated for order payment) or use an alternative order payment tool
104 Transaction declined. Please contact the card issuer Attempt to perfom a transaction on the account with the restricted use Restrictions are imposed on the card in the issuing bank's processing. The order payment can be repeated using an alternative payment tool.
106 Transaction declined. Please contact the merchant Incorrect PIN. Your card is probably temporarily blocked You can repeat the payment using an alternative payment tool
107 Transaction declined. Please contact the card issuer Please contact the issuing bank You can repeat the order payment using an alternative payment tool
109 Transaction declined. Please contact the merchant / Error at the time of FPS payment Payment in POS is suspended Wrongly specified merchant/terminal ID or ACC blocked at the processing level The Client needs to contact the Bank to clarify the reasons
110 Error at the time of FPS payment Incorrect query format or no data found Error at the time of query generation The Client should check that the parameters used in the query are correct
111 Transaction declined. Please contact the card issuer Invalid card number Check the card details or use another tool to pay for your order. If you receive the response when paying with a binding, delete the binding.
107 Transaction declined. Check the data you entered, the sufficiency of funds on your card and repeat the transaction The transaction amount exceeds the available balance of funds on the selected account Recommend the cardholder to check the sufficiency of funds on the account of the card used and try again
118 Transaction declined. Please contact the card issuer Service not allowed (decline from the issuing bank) This code is not currently being used
120 Transaction declined. Please contact the card issuer Transaction decline - the transaction is not allowed by the issuer One of the possible reasons is the restriction set at the product level in the issuing bank's processing. The order payment can be repeated using an alternative payment tool.
125 Transaction declined. Check the data you entered, the sufficiency of funds on your card and try again Wrong card number. Attempt to refund an amount greater than the hold, attempt to refund a zero amount Check the card details or use another tool to pay for the order
239 Transaction declined. At the request of the card issuing bank, you should cancel the subscription The card issuing bank declined the authorization and sent a response code that implies the cancellation of the subscription for which the authorization was sent Check the card details or use another tool to pay for the order. If you receive the response when paying with a binding, delete the binding.
258 _Error at the time of FPS payment_POS not found in the system Terminal ID is incorrect. The Client should contact the Bank to clarify the reasons.
400 Reversal processed Successful cancellation. No action required
902 Transaction declined. Please contact the card issuer / In case of an FPS transaction The transaction was not successful Restriction on the card (the cardholder tries to perform a transaction that is not allowed for them) Transaction processing error in the issuing bank's processing. The order payment can be repeated using an alternative payment tool.
904 Transaction declined. Please contact the card issuer Wrong message format according to the issuing bank. Repeat the payment using an alternative payment tool.
909 Transaction declined. Please contact the card issuer The transaction cannot be completed Repeat later or use another payment tool/method
910 No connection with the bank. Please try again later The issuing bank is not available Please try again later or use another payment tool/method
913 Transaction declined. Please contact the card issuer Wrong message format (Incorrect transaction format according to the network) A wrong currency code was specified during order registration. You should create a new order with the correct currency.
914 Transaction declined. Please contact the merchant / In case of an FPS transaction Original order to be cancelled not found Transaction not found (when sending completion, cancellation, or return) A new order must be created
997 A new transaction with an additional authentication (3-D Secure or equivalent) is required There is no start of transaction authorization. Declined due to fraud or 3-D Secure error You need to execute a 3-D Secure front-end scenario or a similar scenario for the payer
999 Transaction declined. Please contact the merchant / In case of an FPS transaction suspicious transaction There is no start of transaction authorization. Declined due to fraud or 3-D Secure error Repeat later or use another payment tool/method
1001 No response received from the bank. Try again later Empty (Set during transaction registration, i.e. when no card details have been entered for the transaction yet) Use another payment tool/method
1004 _Error at the time of FPS payment_The transaction is not allowed to the partner Error in the performance of the transaction (the most probable reason is the failure to establish the relevant authorizations on the terminal) The Client should contact the Bank to clarify the reasons
1014 Transaction declined. Please contact the merchant Default payment gateway decline code Repeat later or use another payment tool/method
1015 Transaction declined. Check the data entered, the sufficiency of funds on the card and repeat the transaction Invalid card parameters Check the card details or use another tool to pay for the order
1018 No response received from the bank. Try again later Timeout in processing Failure to send Try later or use another payment tool/method
1019 No response received from the bank. Try again later Timeout in processing Sent successfully, but no response was received from the bank Try later or use another payment tool/method
2002 Transaction declined. Please contact the merchant / In case of an FPS transaction The sequence of queries has been violated Wrong transaction Attempt to complete the payment in a two-stage scenario in case the pre-authorization failed. You should create a new order.
2003 Transaction declined. Please contact the merchant Transactions without 3-D Secure are forbidden to the Client Payment without an additional cardholder authentication (3ds) is not allowed for the store and the authentication attempt failed. Use another payment tool/method.
2004 Transaction declined. Please contact the merchant Payment via SSL without the entry of CVС2 is prohibited Payment without the entry of a verification code from the card is not allowed for the store. Repeat the order payment, with the holder's required entry of the card verification code (CVC2/CVV2/CVP2).
2005 Transaction declined. Please contact the merchant The payment does not meet the 3-D Secure verification conditions for the Client Use another payment tool/method
2007 Transaction declined. Please contact the merchant The order has already been paid The order has been paid earlier. No action is required.
2009 Transaction declined. Please contact the merchant In case of an FPS transaction The cancellation/refund amount is greater than the original transaction amount The refund amount exceeds the payment amount Check the transaction amount, correct if necessary, and repeat the refund or completion
2014 Transaction declined. Please contact the merchant Error in the execution of the 3DS rule Attempt to carry out the transaction with the restrictions configured on this terminal that corresponds to the restriction conditions
2016 Transaction declined. Please contact the merchant The merchant does not have the 3-D Secure authorization required to make a payment Attempt to carry out a transaction with the 3ds authentication of the cardholder in the store that does not have an established authorization. Create a new order.

Test cards

Card PAN Expiry date CVC/CVV ACS code Comment
2202 2050 0001 2424 05/35 669 -//- MIR 3DS 2.0 Frictionless, Authenticated
2202 2053 0006 8092 05/26 583 111111 MIR 3DS 2.0 Challenge, Authenticated. Fixed balance - 100 rubles
4006 8009 0096 2514 05/30 706 111111 VISA 3DS 1.0
5469 9801 0004 8525 05/26 041 111111 MasterCard 3DS 1.0
2202 2061 0004 0083 05/26 061 -//- MIR, card not enrolled in 3DS
2202 2060 0027 0541 05/28 123 111111 MIR, corporate card
2202 2050 0006 0910 06/28 810 111111 MIR, card for repeating error 116 (not sufficient funds)
2202 2021 0759 3166 06/22 123 111111 MIR, card for repeating error 101 (card expired)

Payment with SberPay

When interacting with the Payment Gateway, the Merchant has access to payment functions with SberPay in the mobile Sberbank Online app. The implementation of the functionality to achieve the best possible conversion rates provides for the compliance of the Merchant's payment experience with the Bank's requirements, the functionality description and the examples of implementation are available in briefing materials.

APP channel payments

SberPay supports the APP channel payment feature set. Two implementations of the payment feature set are used:

  • SberPay SDK InApp
  • SberPay App2App

SberPay SDK InApp

This SDK is a software development kit that enables easy integration of SberPay into a partner’s mobile app and enhance user expirience.

SDK InApp benefits include: • No need to make any modifications to the implemented method. The Bank is responsible for any InApp SDK surface modifications and support • Better conversion into payments. All Sber cards are available on the SDK InApp surface, while balances and additional Sber financial services are also displayed • Advanced customer experience. The shortest possible customer journey. Long-term cookie-driven authentication support. Customers are not led away from a partner’s surface. A high-quality payment surface UX/UI • InApp SDK operating stability is not vulnerable to sanctions.

Developer materials available by the link

SberPay App2App

This legacy SberPay feature set enables integration of SberPay into a partner’s app. Payments are to be confirmed and completed in the Sber app via a deeplink embedded in the SberPay payment button.

WEB channel payment

SberPay supports its own payment feature set on desktop and mobile WEB sites.

SberPay WEB SDK

WEB SDK enables integration of the native SberPay payment surface into a partner’s website. This technology solution offers the best SberPay customer experience and has the following benefits:

• Straightforward implementation. The Bank will provide a ready-made library that the partner only needs to embed into their web site • Customers are not led away from a web site. From the customer’s prospective, a payment is completed right on the website without any redirections. A convenient payment curtain allows customers to see all of their cards and balances at once, and supports Sber’s financial services • No support costs. The Bank updates and maintains the customer experience on the payment surface • A single sign-in is sufficient. Once a customer has authenticated on the payment surface, we will remember them. All subsequent payments will be made seamlessly.

Developer materials available by the link

SberPay Web2App (native integration)

This is an alternative native payment experience on a WEB surface without using a payment page. The payment feature set is implemented under two scenarios: • A partner displays a QR code on their website’s surface. The customer must scan it to make a payment. The payment will be confirmed and completed within Sberbank’s app. • A partner displays a “Pay by phone number” button. To pay, the customer will enter their Sberbank app-linked phone number. After that, they will be sent a push notification or an SMS. The push notification or a link in the SMS will open the Sberbank app where the client will confirm and complete the payment. IMPORTANT! This payment feature set requires a particularly thorough compliance with the Bank’s UX/UI guidelines.

Payment page

SberBank’s payment page is installed by default when Sber’s acquiring service is enabled. The partner has the ability to enable payments via SberPay on the payment page surface. It’s an easy and convenient way to shop online. A customer just needs to press the SberPay payment button and scan the QR code (or select payment by the phone number). Payments are completed within the Sberbank app, where customers can select any available card. You won’t need to make any modifications if you have SberBank’s acquiring service enabled.

You can file an application to join SberPay at our site

Additional matherials on service integration

Please note! Work with the SberPay payment functionality is available as part of the services described in the documentation, but can be integrated by the Merchant separately from other payment methods. When working with the SberPay functionality, the utilisation of the sberbankOnlineAttributes block in the query body in jsonParams is mandatory when registering an order in the register/registerPreAuth services.

When integrating the mweb2app scenario on apple devices, it is necessary to implement a deeplink lookup procedure. This is related to different app versions installed on users' devices. Detailed instructions for the procedure implementation are available in document.

For additional details on the SberPay testing procedure, please see documentation.

The description of the requirements to Merchant experience when implementing the SberPay functionality is in the attached document.

The description of the integration of the SberPay functionality is in the attached document.

The logos guide for SberbankOnline is in the attached document.

The transaction processing and the Gateway responses correspond to the description placed in the sections [Description of Gateway response codes] doc#section/Obshaya-informaciya/Opisanie-kodov-otveta-Shlyusa) and Description of Gateway error codes.

The example of payment with SberPay SDK can be found at link.

The instructions for SberPay SDK implementation for websites and mobile applications are available at link.

You can see how to draw a button SberPay here.

Acceptable options for rendering the logo of SberPay is in the attached document

Fiscalization (54-FZ)

In accordance with Federal Law of the Russian Federation No. 54-FZ dated July 1, 2017, when conducting online sales, the Seller (in this documentation - the Merchant), using an online cash register, is obliged to generate a cash receipt and send it to the Federal Tax Service and the buyer. In order to meet this requirement, Sberbank developed the mechanism for integration with online cash registers, which enables to simplify this procedure for the Merchant. At present, the Payment Gateway supports only ATOL Online, EVOTOR Digital Cash Desks, Business.ru with FDF versions 1.05 and 1.2 and OFD.RU with FDF version 1.1 and 1.2

Available functionality

  • Sending data to an online cash register to generate receipts in FDF formats 1.05 and 1.2;
  • Generation of receipts and refunds of receipts (including partial);
  • Possibility to resend an unsuccessful receipt with changing the cart;
  • Resending the receipt in case of a cash register error or at the sending timeout;
  • Creating a receipt separately from the financial transaction (closing receipt);
  • Possibility to divide the receipt into several, if the maximum size is exceeded;
  • Getting the receipt status with a separate API query.

Receipt generation conditions

For a cash receipt to be registered successfully, the following conditions must be met:

  • To create a receipt it is necessary to transfer the cart with the mandatory presence of ffdVersion and receiptType parameters in any of the register, registerPreAuth, deposit, reverse, refund services;
  • Each receipt will have the parameters that were transferred as part of the relevant service;
  • The order fiscalization functionality is connected and successfully configured for the merchant: the credentials for connecting the online cash register are correct and entered in settings.

Permissive regime for the sale of labeled goods

Starting from 04/01/2025, before selling market goods, it is necessary to online check the marking code in an Honest Sign. There are 2 ways to perform verification:

  1. On the side of your cash register service, you must enable marking code verification and specify the pre-receive Honest Sign Token. The check will be performed automatically by the cash register service, and the data will be transmitted into the Honest Sign. In this case, you cannot transfer sectoralItemProps (tag 1260) and all nested objects as part of the bucket. Please note that only Business cash register services support this method.Ru and Farms from OFD.RU .
  2. Self-integration with a Honest Sign to obtain data on the status of the marking code, and the inclusion of this data in the sectoralItemProps object (tag 1260) when forming a "closing" receipt.

1260 tag composition:

Tag Name Value
1262 FOIV identificator Fixed: 030
1263 Date of the substantiating document Fixed: 21.11.2023
1264 Number of the substantiating document Fixed: 1944
1265 The value of industry props Dynamic field. In the response of the marking code in an Honest Mark online verification method, the attributes are returned: reqId (Request identificator) and reqTimestamp (Requet time). Attributest must be passed to the 1265 tag in the format: UUID=reqId&Time=reqTimestamp

Connection of the cash register

To connect the Evotor cash register, it is necessary to:

  1. Log in the Digital cash register service to receive a cloud cash register or install the Digital cash register app from the Evotor store of your online cash register.
  2. On your own, in accordance with instructions or with the help of Evotor employees, register the cash register with the Federal Tax Service (FTS) and the Fiscal Data Operator (FDO).
  3. In your Digital cash register personal account (if you use a cloud cash register) or in the Evotor personal account (if you use an online cash register), get the cash register credentials - Cash register group code.
  4. You can set up the integration through your personal account of SberBusiness or by sending a query to the technical support service of Sberbank's Internet acquiring. The query should specify the Cash Register Group Code, the FDF version used and the merchantID provided by the Bank.

To connect the ATOL cash register, it is necessary to:

  1. Log in the service "ATOL Online";
  2. On your own, in accordance with instructions or with the help of ATOL Online employees, register the cash register with the Federal Tax Service (FTS) and the Fiscal Data Operator (FDO);
  3. Get the cash register credentials (login, password, cash register group code) in your ATOL Online personal account;
  4. You can set up the integration through your personal account of SberBusiness or by sending a query to the technical support service of Sberbank's Internet acquiring. The query should specify the cash register credentials and the FDF version being used.

To connect the OFD.RU cash register, it is necessary to:

  1. Log in the personal account of the OFD.RU Merchant;
  2. Register the cash register with the Federal Tax Service (FTS);
  3. Get the cash register credentials (login, password) in your OFD.RU Merchant personal account;
  4. You can set up the integration through your personal account of SberBusiness or by sending a query to the technical support service of Sberbank's Internet acquiring. The query should specify the cash register credentials and the FDF version being used.

To connect the Business.ru cash register, it is necessary to:

  1. Log in the personal account of the Business.ru;
  2. Register the cash register with the Federal Tax Service (FTS);
  3. Contact with Business.ru support with a request to enable Sberbank api-integration;
  4. Get the cash register credentials (login, password) in your Business.ru Merchant personal account;
  5. You can set up the integration through your personal account of SberBusiness or by sending a query to the technical support service of Sberbank's Internet acquiring. The query should specify the cash register credentials and the FDF version being used.

Receipt handling scripts

SberSpasibo loyalty program

Functionality is under development

SberSpasibo is a bonus loyalty program from Sberbank for its Merchants.

The Payer’s special bonus account is credited with a percentage of the purchase amount made by the Payer with the card.

In order to credit bonuses to the bonus account of the Payer paying with the card, the store connected to the Payment Gateway does not need to make any additional calls on its side.

The accumulated bonuses (1 bonus is equal to 1 ruble) can be used to pay for goods in partner stores. The ability to pay for goods/services with bonuses can be provided in several ways.

Integration schemes for bonus payments

Payment using bonuses on the PG payment page

Payment with bonuses in SberPay

Payment with bonuses through binding

SberSpasibo loyalty program restrictions

  • The order must be issued in Russian rubles.
  • Only the full order cancellation is available (the partial order cancellation is not available)
  • Instead of the standard services for completion of the two-stage scenario deposit and return of the Payer's fundsrefund, it is necessary to use the equivalent services autoCompletion and autoRefund, specifying the total transaction amount in rubles and bonuses.
  • In the event of completion of the two-stage scenario, or a partial refund, the Payment Gateway will recalculate the proportion of bonuses and rubles.
  • When you work with the cart of goods, additional checks are carried out for the content of the cart:
    • For each item, the product of the unit value itemPrice and the qunatity of itemsquantity.value shall be exactly equal to the final amount of the item itemAmount.

    • The sum of the values of all product items itemAmount shall be equal to the total receipt amount total and the transaction amount in the query amount/compositeAmount.

    • For related transactions within one order (completion of the two-stage scenario, cancellation, refund), it is necessary to:

      • Ensure the consistency of unique positionId and itemCodeproduct item identifiers within the Cart.
      • Transfer the values of the goods itemPrice and itemAmount before the deduction of bonuses.
    • The unique identifier of the product item within the Cart(positionId) must be greater than or equal to 1.

    • It is possible to return only the goods included in the payment under the one-stage scenario (transmitted in the queryregister) or in the payment completion under the two-stage scenario (transmitted in the query autoCompletion).

    • The SberSpasibo loyalty processing is responsible for distributing the discount in the shopping cart during payment with bonuses.

      • Due to the peculiarity of SberSpasibo loyalty program bonus distribution on the side of loyalty processing for transferred items, the Gateway uses the following rounding method when making returns:
      • Determines the value of the discounted item by subtracting the discount amount per item from the original item value;
      • Determines the unit price of an item by dividing the discounted item value by the quantity of the item using mathematical rounding;
      • When you return the value of the last item unit in an position, its price is calculated by subtracting the price of all previous items from the discounted value of the item.

      Example:

      • There are 3 items in the card with a price of 33.00. Discount of SberSpasibo loyalty program is apllied you 29.99;
      • Item value including discout: 33.00 - 29.99 = 3.01;
      • Item unit price including discount: 3.01/3 = 1.00;
      • Price of the last returned item unit: 3.01 - 1.00 - 1.00 = 1.01.

      This technique is applicable when implementing its own solution for fiscalization.

    • If the fiscalization by the gate functionality is used (functional is under development):

      • The payment gateway deducts the applied discount in bonuses from the value of the item. The discount deduction due to bonuses does not apply to the service for creating a new receipt doReceipt.
      • If after applying the discount with bonuses, it is impossible to correctly calculate the price for a unit of goods, one product item is divided into two product items with different prices for a unit of goods, with the total value of product items maintained.
  • Data on the status of bonuses for loyalty programs in the order are available in the response to the service for obtaining information about the order getOrderStatusExtended.

Electronic certificates (491-FZ)

Functionality is under development

Electronic certificate is a new payment tool that enables to independently purchase certain types of goods, work and services at the expense of budgets if there are grounds for receiving governmental support measures in kind. The electronic certificate is issued for the PS Mir card, and the payment is carried out similarly to the transactions using bank cards and allows an instant payment for certain types of goods if there are grounds for providing social support measures.

The certificate contains information about what goods, work or services, in what quantity and in what maximum amount can be purchased using it. The funds are not transferred to the PS Mir card, but are reserved in the budget until the purchase is made. At the same time, it is necessary to use own funds only if the quantity and/or cost of the goods, work or services being purchased exceeds the quantity and/or maximum cost in the electronic certificate.

Access to the functionality

In order to enable the acceptance of payments with electronic certificates, the Merchant shall do the following:

  1. To carry out settlements on transactions using an EC, it is required to conclude a supplementary agreement to the IE contract.

  2. To be able to interact with the Front Office of Electronic Certificates of NPCS TSE, the Merchant needs to support the encoding of goods corresponding to the list of goods/work/services - truCode.

  3. It is necessary to log in the State Information System of Electronic Certificates GIS ES.

  4. The seller's internal accounting systems must ensure that the GWS are encoded in line with the list approved in accordance with Resolution of the Government of the Russian Federation No. 631 dated April 23, 2021 "On the procedure of generation and approval of the Lists of certain types of goods, works, services purchased using an electronic certificate at the expense of the budget of the budgetary system of the Russian Federation". The up-to-date list is published in the Unified Regulatory Reference Information System.

  5. Complete the registration of the seller and the stores in the Automated System for Collection of Questionnaires (ASCQ) to obtain an access key (API KEY). NPCS JSC sends a link to the e-mail address of the seller's employee specified as a technical specialist when filling in the form on the website of the State Information System of Electronic Certificates (GIS ES) at step 3 to enter ASCQ and create a password to access the seller's personal account in ASCQ. When you enter the system for the first time, ASCQ will prompt you to set a login password.

  6. Having the API KEY, the Merchant must receive a cash register ID (cashboxId) and a cash register key (MAC KEY) in NPCS FEC.

  7. The merchant must transfer the API KEY, cashboxId, MAC KEY to the Acquiring Bank and perform a test transaction.

  8. Go to the production environment.

The guide for trade and service enterprises explaining how to organize the acceptance of electronic certificates when paying for certain types of goods, work, services is posted on the official website of NPCS JSC in the Electronic Certificates section - Offer for TSE.

Integration schemes for EC payments

Payment using an EC on the PG payment page

EC utilisation restrictions

  • The order must be issued in Russian rubles.
  • Transactions paid with an EC cannot be cancelled. Partial and full returns of the goods purchased with EC funds are supported. When you return the goods purchased with EC funds, the funds will be returned to the EC account.
  • EC funds are used to pay, in full or in part, for only those goods for which GWS codes were transferred; the goods from the cart without GWS codes cannot be paid with EC.
  • When using an EC, you must transfer the shopping cart. Additional checks of the content of the shopping cart are carried out on the side of PG:
    • For each item, the product of the unit value itemPrice and the quantity of items quantity.value shall be exactly equal to the final value of the item itemAmount
    • The sum of the values of all the items itemAmount shall be equal to the total receipt amount total and the transaction amount amount in the query.
    • When generating the return operation, it is necessary to ensure the invariability of the parameters of cart items: positionId, itemCode, itemPrice, truCode.
    • Only the items included in the payment (transmitted in the queryregister) may be returned.
  • Data on the status of EC funds in the order are available in the response to the service for obtaining order information getOrderStatusExtended.
  • In case of fiscalization on the Merchant’s side, after receiving the details of the fiscal receipt of purchase or return from the online cash register, it is necessary to transfer these parameters of the fiscal receipt in the service externalReceipt to transmit them to FEC. If the fiscalization is performed on the side of PG, no additional calls to work with EC are required.

Personal account

You can read the instructions in your Sberbank Business Online personal account on Sberbank website. Below you can find the most popular links to the sections dedicated to work with orders of Internet acquiring.

Services for working with the order

API methods for creating an order, cancelling an order, obtaining an order status, performing a refund on the order.

Order registration [register]

The query is intended for registration (creation) of the order in the Gateway. If the query is processed successfully, the order is assigned a number (identifier), unique within the Gateway. The method is used to register the order with a subsequent payment by any method:

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for order registration as per one-stage scenario

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderNumber
required
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

currency
string (currency) = 3 characters ^\d{3}$
Default: "643"

Digital code of the transaction currency ISO 4217

returnUrl
required
string (returnUrl) [ 12 .. 2048 ] characters ^(http://|https://).*$

The address to which the Payer must be redirected in case of successful payment, when the Merchant uses the PG payment page

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
failUrl
string (failUrl) [ 12 .. 2048 ] characters ^(http://|https://).*$

The address to which the Payer must be redirected in case of unsuccessful payment, when the Merchant uses the PG payment page. If not specified, returnUrl is used.

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
description
string (description) [ 1 .. 512 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Free-form order description on the Merchant’s side. The recommended length is up to 99 characters.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

clientId
string (clientId) [ 1 .. 255 ] characters ^[ -~]+$

Payer’s number (identifier) in the Merchant's system. It is used to implement the Bindings functionality.

merchantLogin
string (merchantLogin) [ 1 .. 30 ] characters ^[A-Za-z0-9-_.-]+$

Subsidiary Merchant's login (if used)

fmConversionAttributes (object) or sberbankOnlineAttributes (object) or qrAttributes (object) or paymentPageAttributes (object) or tdsDestinationNumberAttributes (object) or tdsAdditionalAttributes (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant. If it is necessary to process the jsonParams block (display in SberBusiness, transfer to reporting/notifications), the pdAgreement parameter must be passed with a value of true in the jsonParams block

sessionTimeoutSecs
integer (sessionTimeoutSecs) [ 0 .. 999999999 ]
Default: 1200

The order lifetime in seconds. In case the parameter is not set, the value specified in the Merchant settings or the default time (20 minutes) will be used. If the query has the expirationDate parameter, the value of the sessionTimeoutSecs parameter will be ignored.

expirationDate
string <date-time> (expirationDate)

Date and time of the orderlife end on the PG side in the yyyy-MM-ddTHH:mm:ss format. If this parameter is not transmitted in the query, then sessionTimeoutSecs will be used to find the orderlife end time.

bindingId
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

features
string (features) [ 1 .. 255 ] characters ^[ -~]*$

Additional parameters for scenario management when using payment details (you can specify several of them using the separator ";"):

  • VERIFY = The Payer is verified with no funds debited from his account, so the zero amount may be transferred in the query. Even if the payment amount is transferred in the query, it will not be debited from the buyer's account. After a successful verification, the order is immediately transferred to the REVERSED status (cancelled);
  • AUTO_PAYMENT = The payment by card binding is made without the cardholder authentication (without CVC and 3-D Secure). The seller must have appropriate authorizations to make such payments. On-demand functionality;
  • FORCE_SSL = Forced payment without using 3-D Secure. On-demand hight-risk functionality;
  • FORCE_TDS = Forced payment using 3-D Secure. If the card does not support 3-D Secure, the transaction will be rejected;
  • FORCE_FULL_TDS = Forced payment only with a successful payer authentication 3-D Secure (Y). Otherwise, the transaction will be rejected.
phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

dynamicCallbackUrl
string (dynamicCallbackUrl) [ 12 .. 512 ] characters ^(https://).*$

The address to which you want to send the callback. If the parameter is missing, the URL specified in the merchant settings is used

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "amount": 19900,
  • "features": "FORCE_SSL"
}

Response samples

Content type
application/json
Example
{}

order registration for a two-stage scenario [registerPreAuth]

The query is intended to register (create) an order in the Gateway, whose further processing (payment) requires an additional confirmation. If the query is processed successfully, the order is assigned a number (identifier), unique within the Gateway. On-demand functional.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Order registration query in a two-stage scenario

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderNumber
required
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

currency
string (currency) = 3 characters ^\d{3}$
Default: "643"

Digital code of the transaction currency ISO 4217

returnUrl
required
string (returnUrl) [ 12 .. 2048 ] characters ^(http://|https://).*$

The address to which the Payer must be redirected in case of successful payment, when the Merchant uses the PG payment page

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
failUrl
string (failUrl) [ 12 .. 2048 ] characters ^(http://|https://).*$

The address to which the Payer must be redirected in case of unsuccessful payment, when the Merchant uses the PG payment page. If not specified, returnUrl is used.

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
description
string (description) [ 1 .. 512 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Free-form order description on the Merchant’s side. The recommended length is up to 99 characters.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

clientId
string (clientId) [ 1 .. 255 ] characters ^[ -~]+$

Payer’s number (identifier) in the Merchant's system. It is used to implement the Bindings functionality.

merchantLogin
string (merchantLogin) [ 1 .. 30 ] characters ^[A-Za-z0-9-_.-]+$

Subsidiary Merchant's login (if used)

fmConversionAttributes (object) or sberbankOnlineAttributes (object) or qrAttributes (object) or paymentPageAttributes (object) or tdsDestinationNumberAttributes (object) or tdsAdditionalAttributes (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

sessionTimeoutSecs
integer (sessionTimeoutSecs) [ 0 .. 999999999 ]
Default: 1200

The order lifetime in seconds. In case the parameter is not set, the value specified in the Merchant settings or the default time (20 minutes) will be used. If the query has the expirationDate parameter, the value of the sessionTimeoutSecs parameter will be ignored.

expirationDate
string <date-time> (expirationDate)

Date and time of the orderlife end on the PG side in the yyyy-MM-ddTHH:mm:ss format. If this parameter is not transmitted in the query, then sessionTimeoutSecs will be used to find the orderlife end time.

bindingId
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

features
string (features) [ 1 .. 255 ] characters ^[ -~]*$

Additional parameters for scenario management when using payment details (you can specify several of them using the separator ";"):

  • VERIFY = The Payer is verified with no funds debited from his account, so the zero amount may be transferred in the query. Even if the payment amount is transferred in the query, it will not be debited from the buyer's account. After a successful verification, the order is immediately transferred to the REVERSED status (cancelled);
  • AUTO_PAYMENT = The payment by card binding is made without the cardholder authentication (without CVC and 3-D Secure). The seller must have appropriate authorizations to make such payments. On-demand functionality;
  • FORCE_SSL = Forced payment without using 3-D Secure. On-demand hight-risk functionality;
  • FORCE_TDS = Forced payment using 3-D Secure. If the card does not support 3-D Secure, the transaction will be rejected;
  • FORCE_FULL_TDS = Forced payment only with a successful payer authentication 3-D Secure (Y). Otherwise, the transaction will be rejected.
phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

dynamicCallbackUrl
string (dynamicCallbackUrl) [ 12 .. 512 ] characters ^(https://).*$

The address to which you want to send the callback. If the parameter is missing, the URL specified in the merchant settings is used

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
autocompletionDate
string <date-time> (autocompletionDate)

Date and time of automatic order confirmation in the yyyy-MM-ddTHH:mm:ss format. If the parameter is passed, no deposit method call is required.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "amount": 19900,
  • "features": "FORCE_SSL"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "externalParams": {
    }
}

Completion of the two-stage scenario [deposit]

The query is intended for an additional confirmation of the two-stage payment. If the processing is successful, the debiting of funds from the Payer’s account will be confirmed.

Attention! When the amount "0" is transferred in the amount parameter, the payment confirmation will be executed for the full amount of the order, without taking into account the previously performed partial cancellation operation

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for completion of the two-stage scenario

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "amount": 14900
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Order cancellation [reverse]

The query is intended to unblock the funds for the payment transaction. It can be done before the beginning of mutual settlements between the participating banks. With a one-stage payment, it can be completed during the banking day of the transaction (~ until 23:59 Moscow time). With a two-stage scenario, it can only be performed before the operation of completion of the two-stage scenario.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Order cancellation query

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

amount
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Payer’s refund [refund]

The query is intended to refund the Payer in full or in part, after the mutual settlements among the participating banks for the payment transaction.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Payer’s refund query

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

externalRefundId (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "amount": 14900
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Getting order information [getOrderStatusExtended]

The query is intended to obtain the complete data on the previously registered order regardless of its status.

Request Body schema: application/json
required

Request for obtaining order information

One of
orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "merchantOrderParams": [
    ],
  • "cardAuthInfo": {
    },
  • "bindingInfo": {
    },
  • "paymentAmountInfo": {
    },
  • "bankInfo": { },
  • "payerData": {
    },
  • "transactionAttributes": [
    ],
  • "attributes": [
    ],
  • "operations": [
    ],
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "orderStatus": 2,
  • "actionCode": 0,
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "amount": 19900,
  • "currency": "643",
  • "date": 1675169008805,
  • "depositedDate": 1675169010957,
  • "orderDescription": "Описание заказа",
  • "ip": "192.168.0.1",
  • "authRefNum": "303112098637",
  • "authDateTime": 1675169010957,
  • "terminalId": "20235777"
}

Order cancellation before the beginning of payment [decline]

The query is intended for cancelling the order before the Payer starts the payment (before they enter card details).

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for cancellation of the order before the beginning of payment

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

merchantLogin
string (merchantLogin) [ 1 .. 30 ] characters ^[A-Za-z0-9-_.-]+$

Subsidiary Merchant's login (if used)

orderId
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

orderNumber
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Payment services

API methods for making the order payment

Making a payment by card [paymentOrder]

The query is intended to block the funds on the Payer’s card for further settlements between the participating banks. It is available with appropriate permissions.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for making a payment by card

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

MDORDER
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

$PAN
required
string (pan) [ 13 .. 19 ] characters ^\d+$

Payer Card Number

$CVC
string (cvc) = 3 characters ^\d+$

Payer Card verification code (typically on the back side of the card). This parameter is required for SSL operations/

YYYY
required
string (expiryYear) = 4 characters ^\d{4}$

Card expiry year

MM
required
string (expiryMonth) = 2 characters ^\d{2}$

Card expiry month

TEXT
string (cardholderName) [ 1 .. 200 ] characters ^[ -~]+$

Text on the Payer Card in ISO 8859-1. Name, surname, initials, or any combination of special ASCII characters other than Cyrillic are allowed.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

ip
string (ip) [ 1 .. 39 ] characters ^[ -~]*$

IP address of the Payer

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

fmConversionAttributes (object) or dataEntryModeAttributes (object) or tdsDestinationNumberAttributes (object) or tdsDecoupledAttributes (object) or tdsBrowserAttributes (object) or tdsAdditionalAttributes (object) or tdsApplicationAttributes (object) or tdsExternalAttributes (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

Atention! When using saved card data for payments, the transfer of parameters from the dataEntryModeAttributes tab is mandatory.

threeDSMethodNotificationUrl
string (threeDSMethodNotificationUrl) [ 1 .. 2048 ] characters ^https?:\/\/(.*)$

URL address of the Merchant for receiving the notification about the completion of a 3DS Method call (3DS Method Notification URL)

termUrl
string (termUrl) [ 1 .. 256 ] characters ^https?:\/\/(.*)$

Merchant's URL address for the return after the Payer's 3-D Secure authentication. Mandatory if the payment page is used on the Merchant side and 3DS Server of the Bank

bindingNotNeeded
boolean (bindingNotNeeded)

Sign of refusal to create a Binding by the Payer.

  • true = true, no Binding is created after the payment, and the Payer ID (clientId) transmitted at the time of order registration will be deleted after the payment or will not be generated automatically;
  • false = false (by default), the Binding is created after a successful payment and if a number of additional conditions are met.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "MDORDER": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "$PAN": "2201382000000047",
  • "$CVC": "123",
  • "YYYY": "2025",
  • "MM": "12"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "error": "Обработка запроса прошла без системных ошибок",
  • "info": "Ваш платёж обработан, происходит переадресация",
}

Making a payment via the mobile Sberbank Online app [paymentSberPay]

The query is intended to make a payment through the SberPay functionality available in the mobile Sberbank Online app.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for a payment via the mobile Sberbank Online app

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

phone
required
string [ 1 .. 11 ] characters ^\d{7,11}$

Payer's phone number in 7XXXXXXXXXX format.

merchantLogin
string (merchantLogin) [ 1 .. 30 ] characters ^[A-Za-z0-9-_.-]+$

Subsidiary Merchant's login (if used)

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "phone": "79011234567"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0"
}

Making a payment by FPS subscription [paymentOrderBySubscription]]

The query is intended to make a payment by FPS subscription.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for a payment by FPS subscription

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

subscriptionId
required
string = 32 characters ^[a-f0-9]+$

Stored subscription ID.

memberId
required
string = 12 characters ^\d{12}$

Sending bank ID

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "subscriptionId": "c9403ef2f9254736a5af837238ce05b1",
  • "memberId": "100000000111"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0"
}

Services for working with bindings

API methods for creating, receiving information, activating, deactivating, and making payments by bindings Attention! For some merchant categories (MCC) recurrent payments, using the MIR card are not possible.

Making a payment by binding [paymentOrderBinding]

The query is intended for making a payment (blocking the funds) according to a previously saved binding.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for a payment by binding

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

mdOrder
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

bindingId
required
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

cvc
string (cvc) = 3 characters ^\d+$

Payer Card verification code (typically on the back side of the card). This parameter is required for SSL operations/

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

ip
required
string (ip) [ 1 .. 39 ] characters ^[ -~]*$

IP address of the Payer

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

fmConversionAttributes (object) or tdsDestinationNumberAttributes (object) or tdsDecoupledAttributes (object) or tdsBrowserAttributes (object) or tdsAdditionalAttributes (object) or tdsApplicationAttributes (object) or loyaltyAttributes (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

threeDSMethodNotificationUrl
string (threeDSMethodNotificationUrl) [ 1 .. 2048 ] characters ^https?:\/\/(.*)$

URL address of the Merchant for receiving the notification about the completion of a 3DS Method call (3DS Method Notification URL)

termUrl
string (termUrl) [ 1 .. 256 ] characters ^https?:\/\/(.*)$

Merchant's URL address for the return after the Payer's 3-D Secure authentication. Mandatory if the payment page is used on the Merchant side and 3DS Server of the Bank

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
  • "ip": "127.0.0.1"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "error": "Обработка запроса прошла без системных ошибок",
  • "info": "Ваш платёж обработан, происходит переадресация",
}

Deactivation of the Payer's binding [unbindCard]

The query is intended to deactivate a previously stored binding.

Request Body schema: application/json
required

Query for deactivation of the Payer binding

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

bindingId
required
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
  • "language": "ru"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Getting bindings by Payer ID [getBindings]

The query is intended to get the list of bindings linked to a specific Payer ID.

Request Body schema: application/json
required

Query for getting bindings by Payer ID

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

clientId
required
string (clientId) [ 1 .. 255 ] characters ^[ -~]+$

Payer’s number (identifier) in the Merchant's system. It is used to implement the Bindings functionality.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

showExpired
boolean (showExpired)

Attribute of the need to display Bindings with the expired Card validity period. The following values are possible:

  • true = true;
  • false = false (by default).
showInactive
boolean (showInactive)

Attribute of the need to display Bindings with the inactive status. The following values are possible:

  • true = true;
  • false = false (by default).

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "clientId": "M79011234567",
  • "language": "ru",
  • "showExpired": true,
  • "showInactive": true
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "bindings": [
    ]
}

Getting bindings by card number or Payer binding identifier [getBindingsByCardOrId]

The query is intended to get the list of bindings linked to a specific Payer ID based on the transmitted binding of this Payer ID or the full card number. Additional account settings are required to work with the full card number.

Request Body schema: application/json
required

Query for bindings by card number or Payer binding identifier

One of
pan
required
string (pan) [ 13 .. 19 ] characters ^\d+$

Payer Card Number

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

showExpired
boolean (showExpired)

Attribute of the need to display Bindings with the expired Card validity period. The following values are possible:

  • true = true;
  • false = false (by default).
showInactive
boolean (showInactive)

Attribute of the need to display Bindings with the inactive status. The following values are possible:

  • true = true;
  • false = false (by default).

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
  • "showExpired": true,
  • "showInactive": true
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "bindings": [
    ]
}

Activate Payer Binding [bindCard]

The query is intended to activate a previously deactivated binding (provided that it is still valid).

Request Body schema: application/json
required

Query to activate the Payer binding

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

bindingId
required
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
  • "language": "ru"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Make recurrent payment [recurrentPayment]

The query is intended for a concurrent registration of the order and its payment using a binding. It combines two actions register and paymentOrderBinding Attention! Sending fiscal receipts when using this service is in development

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for a recurrent payment

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderNumber
required
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

bindingId
required
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

currency
string (currency) = 3 characters ^\d{3}$
Default: "643"

Digital code of the transaction currency ISO 4217

description
string (description) [ 1 .. 512 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Free-form order description on the Merchant’s side. The recommended length is up to 99 characters.

phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

fmConversionAttributes (object) or loyaltyAttributes (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
  • "amount": 19900
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "data": {
    },
  • "orderStatus": {
    }
}

MirPay services

API methods for working with MirPay payments

Make a payment through Merchant’s direct interaction with MirPay [paymentDirect]

Service for making payments using the MirPay application (In-application) with the Merchant's integration according to the aggregator scheme and the decryption of payment data on the Merchant's side. It can be performed either with a pre-registration of the order (logins, amount, order identifier and payment scenario in queries must match) or without it.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for a payment through Merchant’s direct interaction with MirPay

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderNumber
required
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

currencyCode
string (currency) = 3 characters ^\d{3}$
Default: "643"

Digital code of the transaction currency ISO 4217

description
string (description) [ 1 .. 512 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Free-form order description on the Merchant’s side. The recommended length is up to 99 characters.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

preAuth
boolean (preAuth)

Pre-authorization attribute. The following values are possible:

  • true = true, this is a two-stage payment process;
  • false = false (by default), this is a one-stage payment process.
fmConversionAttributes (object) or threedsDestinationNumberAttributes (object) or dataEntryModeAttributes (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

clientId
string (clientId) [ 1 .. 255 ] characters ^[ -~]+$

Payer’s number (identifier) in the Merchant's system. It is used to implement the Bindings functionality.

paymentToken
required
string <base64url> (paymentTokenDecrypted) [ 1 .. 8192 ] characters ^[ -~]*$

JSON object encoded in base64url with payment data received and decrypted on the Merchant's side from MirPay JWT Payload (Claim). JSON composition:

Object Type Required Description
tan string yes Token number (TAN)
cav string yes/no Authentication Value (NPCK-InApp cryptogram). May not be available for transactions with stored details
tey integer yes Last two digits of the token expiration year. Possible values: 18-99
tem integer yes Month sequence number of the token expiration year. Possible values: 1-12
transId string yes/no Unique In-App transaction identifier in UUID format. May not be available for transactions with stored details
mId string yes/no Merchant ID. May not be present for transactions with stored details
mx5c string yes/no X.509 certificate in Base64 of the merchant public key. May not be available for transactions with stored details
orderId string yes/no Unique order/transaction identifier on the merchant side. May not be available for transactions wit hstored details.
sum integer yes/no Payment amount minor units of currency. It must be equal to the order amount. May not be available for transactions with stored details
cur integer yes/no Digital currency code acc. to ISO 4217 ISO 4217. May not be available for transactions with stored details
media string yes/no Source type used to initiate the In-App transaction. ISDK = In-Application SDK, DL = Deep link, UL = Universal link, TR = In-Application Mir HCE SDK
merchant
string (merchantLogin) [ 1 .. 30 ] characters ^[A-Za-z0-9-_.-]+$

Subsidiary Merchant's login (if used)

features
string (featuresVerify) [ 1 .. 255 ] characters ^[ -~]*$

Additional parameters of scenario management when using payment details:

  • VERIFY = The Payer is verified with no funds debited from their account, so the zero amount can be transferred in the query. Even if the payment amount is transferred in the query, it will not be debited from the buyer's account. After the successful verification, the order is immediately transferred to the REVERSED status (cancelled);
object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "amount": 10000,
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "paymentToken": "eyJ0YW4iOiIyMjAwMTIqKioqKioqKiozNDg2IiwiY2F2IjoiM0Q2RkM4MjZBMDhDODJCODk3ODAwMjlGNjk2NzBGRERDRjI5OUIiLCJ0ZXkiOjI5LCJ0ZW0iOjMsInRyYW5zSWQiOiI1YWI1MjQ4Ny0xNzdmLTQ2NGItYjY5NS0yOTU0ZmZjNDRhMTMiLCJtSWQiOiIwMDAwMDAwMDAwMDAwMDEiLCJteDVjIjoiTUlJRWpEQ0NBM1NnQXdJQkFnSURFaUVETUEwR0NTcUdTSWIzRFFFQkN3VUFNSUdGTVFzd0NRWURWUVFHRXdKU1ZURVpNQmNHQTFVRUNBd1FVMkZwYm5RdFVHVjBaWEp6WW5WeVp6RVhNQlVHQTFVRUNnd09WbTlrYTJFZ1FtRnVheUJLVTBNeER6QU5CZ05WQkFzTUJrSXdNREF3TVRFUE1BMEdBMVVFQXd3R1FqQXdNREF4TVNBd0hnWUpLb1pJaHZjTkFRa0JGaEY2YjNKeWIwQmxhMkZ6YzJseUxtTnZiVEFlRncweU1qRXhNRGt4TXpNMU5UTmFGdzB5TXpFeE1Ua3hNek0xTlROYU1JRzNNUXN3Q1FZRFZRUUdFd0pTVlRFWk1CY0dBMVVFQ0F3UVUyRnBiblF0VUdWMFpYSnpZblZ5WnpFWk1CY0dBMVVFQnd3UVUyRnBiblF0VUdWMFpYSnpZblZ5WnpFYU1CZ0dBMVVFQ2d3UlVHRnlZWE5sYm1ObElFeHBiV2wwWldReEdUQVhCZ05WQkFzTUVFMHdNREF3TURBd01EQXdNREF3TURFeEdUQVhCZ05WQkFNTUVFMHdNREF3TURBd01EQXdNREF3TURFeElEQWVCZ2txaGtpRzl3MEJDUUVXRVhwdmNuSnZRR1ZyWVhOemFYSXVZMjl0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1TzFteGU2Mk5kVzdLTTUwRlZ3Y29qNDVRSjNYVms4QWg2UkN4Q1IzdHZydXM3bm9OV2FLajljM2VEeDQ3V3N3MFZROUpiUVRPdFRqaSsrRFkwOEJ2WGtWK1J1SXNlekdnVzR4S1RJK3lwSGN4OHZJSU5oS0JLMmZZdTVJRFZkejRaYml1R3IySW13eHVPL3VYRW5iNXhDTS9wK01tTDBwZmpjaE9LWkZMVW1Xdm44clMxUGc5NzRRSjJiODl0TDlKSmR3K3NhMDlXWkpoQWZGYVNaRk9LM0dwQkc5azVmZEhvTXNKY2RJRmxOMzFIMFF2OFMvOEZVbGdqVVFCdW9TbmdneXJ6aUR6RXFWM1BIcXcwZURjOTc5WE1hYTZvWFJLYk1UaXFrR01qN0h4N2dVanFzRStPZ29EcFdDSlpWVGMzNWkrajJGTEVpRDZ4NHpBR2FjZndJREFRQUJvNEhRTUlITk1Ba0dBMVVkRXdRQ01BQXdFUVlKWUlaSUFZYjRRZ0VCQkFRREFnV2dNRE1HQ1dDR1NBR0crRUlCRFFRbUZpUlBjR1Z1VTFOTUlFZGxibVZ5WVhSbFpDQkRiR2xsYm5RZ1EyVnlkR2xtYVdOaGRHVXdIUVlEVlIwT0JCWUVGQnRrWDUvemNnSlpSYitHZUpKYUVZZytWVE9UTUI4R0ExVWRJd1FZTUJhQUZMWE9JclFpZHNuZ0J4cXhBQ3FtbURmajJTM0tNQTRHQTFVZER3RUIvd1FFQXdJRThEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBZ1lJS3dZQkJRVUhBd1F3Q1FZRFZSMFNCQUl3QURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQU1EN3FITEVKakdEcyt2ZEQwTklKWnhzVVpITjBXVTdPMm83TUxkVE96bkRqQ0RaV0thNzBHQlRsUm5vNTU2ejQ0a2VxajVWWnRIOVhWZ1A0U3pwOEMyZnppT0F1alNyS1Z3MGxoN2lEUmNiMU9ESEx5U0IzMDRHOXpnZE0rRFBLeW9za3pxcC9KNGl5VWFGLzZyNVlqLzVxVmZ0d0xSQlRJbld0OGgycFdxU29aaE5xaFY1SmRVK1dtQ0Nzd0RLZzQzSTJTSC9sUHZVaXFkRFFYK2xscDZYVHVJNm83aUdQRmRQZ2tOWFVOVUVIL3NNTUNOU2xOQmNQUFhGeSs1SHhFYkFmS242WmJZN2xYTDZSbzJuSzRERFJSbENYMGJmT1BKWFBMK290dncrVXZuSXIyOGNpc0VTdzB5OWxYbTlOWmhhQnhEVEZWREFSTWZUT1lxdFJDdz09Iiwib3JkZXJJZCI6IjEyMzQ1NiIsInN1bSI6MTAwMDAsImN1ciI6NjQzLCJtZWRpYSI6IklTREsifQ"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "data": {
    },
  • "orderStatus": {
    }
}

3-D Secure services

API methods for completing the 3-D Secure authentications conducted on the Merchant's side

Finish 3DS Method [finish3dsMethod]

The query is intended to complete the Payer's 3DS authentication during the payment transaction. Query processing sequence:

  • create an order through register or registerPreAuth services, depending on the payment scenario;
  • make the payment through the services specified in paymentOrder or paymentOrderBinding and obtain the requirements for 3DS Method (threeDSMethodURL) in the response. The value threeDSMethodData is returned if threeDSMethodNotificationUrl was sent in the query, otherwise the Merchant generates the object threeDSMethodData= base64url({"threeDSServerTransID":"value","threeDSMethodNotificationURL":"value"}) independently;
  • visualize the hidden iframe in the Payer’s browser and send an HTML form with threeDSMethodData via HTTP POST to threeDSMethodURL;
  • receive a callback to threeDSMethodNotificationURL upon the processing of the 3DS Method query and receive threeDSMethodData = base64url({"threeDSServerTransID":"value"} within a 10-second timeout;
  • call the finish3dsMethod 3DS authentication completion service.
header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for finishing the 3DS Method

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

mdOrder
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

threeDSServerTransId
required
string (threeDSServerTransId) [ 1 .. 36 ] characters ^[ -~]*$

3DS Server Transaction ID

threeDSCompInd
required
string (threeDSCompInd) <= 1 characters
Enum: "Y" "N"

Completion status of the 3DS Method call:

  • Y = completed successfully (3DS Method Notification received)
  • N = not completed successfully (3DS Method Notification not received within a 10-second timeout)

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "threeDSServerTransId": "93045e61-d783-40f1-8934-33fd59387ca6",
  • "threeDSCompInd": "Y"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "info": "Ваш платёж обработан, происходит переадресация",
}

Complete 3-D Secure authentication [finish3dsPayment]

The query is intended to transmit the result of Payer's 3DS authentication during the direct interaction with the ACS server. Query processing sequence:

  • create an order through the services specified in register or registerPreAuth, depending on the payment scenario;
  • make a payment through the services specified in paymentOrder, paymentOrderBinding or finish3dsMethod with receipt of 3-D Secure authentication requirements in the response (paReq or cReq);
  • redirect the Payer to ACS at the address specified in the acsUrl parameter;
  • receive the Payer’s reverse redirect to the store from ACS with a PARes or CRes message to the termUrl address;
  • call the finish3dsPayment 3DS authentication completion service.
header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for completing 3-D Secure authentication

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

mdOrder
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

paRes
string (paRes) [ 1 .. 8192 ] characters ^[ -~]*$

Payer Authentication Response message received in the response to the Payer authentication query. Mandatory when 3-D Secure version 1.0.2 is used.

cRes
string (cRes) [ 1 .. 4096 ] characters ^[ -~]*$

Challenge Response message received in the response to the Payer Challenge query. Mandatory when 3-D Secure version 2.х.х is used.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "cRes": "eyJhY3NUcmFuc0lEIjogIjllNWUxMWViLTY1OTYtNDMyMi04NjU4LTJkNDY0MDUwMGYyZSIsICJ0cmFuc1N0YXR1cyI6ICJZIiwgIm1lc3NhZ2VWZXJzaW9uIjogIjIuMS4wIiwgIm1lc3NhZ2VUeXBlIjogIkNSZXMiLCAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiOTMwNDVlNjEtZDc4My00MGYxLTg5MzQtMzNmZDU5Mzg3Y2E2In0="
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "info": "Ваш платёж обработан, происходит переадресация",
}

Callback notifications

API methods for sending notifications on transactions and events by bindings

Payment notification [callback]

The functionality is intended for sending a callback notification when the order status changes. The callback notification is a POST query sent from the payment gateway to the URL specified in the account settings. Three attempts are made to deliver the notification with a 60-second interval between the attempts.

Request Body schema: application/json
required

Query for a payment notification

mdOrder
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

orderNumber
required
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

operation
required
string (orderOperation) [ 1 .. 20 ] characters ^[A-Za-z0-9]*$

Type of transaction for which the notification is formed. The following values are possible:

  • created = order created;
  • approved = hold amount operation;
  • deposited = completion operation;
  • reversed = cancellation operation;
  • refunded = refund operation;
  • declinedByTimeout = order payment time is expired.
  • subscriptionCreated = subscription was created by the Payer.
status
required
integer (status) [ 0 .. 1 ]

Success indicator of the transaction for which the notificaton is generated The following values are possible:

  • 1 = transaction was successful;
  • 0 = transaction ended with an error;
object (additionalParams)

Additional operation parameters. Used when creating FPS subscription and other.

Responses

Request samples

Content type
application/json
{
  • "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "operation": "deposited",
  • "status": 1,
  • "additionalParams": { }
}

Event notification with a binding [bindingCallback]

The functionality is intended for sending a callback notification when the binding status changes. The callback notification is a POST query sent from the payment gateway to the URL specified in the account settings. Currently, the notification service is available only for the bindings created when making payments via the mobile Sberbank Online app. Three attempts are made to deliver the notification with a 60-second interval between the attempts.

Request Body schema: application/json
required

Query for an event notification with a binding

bindingId
required
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

clientId
required
string (clientId) [ 1 .. 255 ] characters ^[ -~]+$

Payer’s number (identifier) in the Merchant's system. It is used to implement the Bindings functionality.

operation
required
string (bindingOperation) [ 1 .. 20 ] characters ^[A-Za-z0-9]*$

Type of operation for which notification is formed The following values are possible:

  • bindingCreated = binding data have been changed by the Payer.
  • bindingDeactivated = the binding has been deactivated by the Payer.

Responses

Request samples

Content type
application/json
{
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
  • "clientId": "M79011234567",
  • "operation": "bindingCreated"
}

Money transfer services

API methods for money transfer to card

Order registration for money transfer [registerP2P]

The query is intended for registration (creation) of the order for money transfer in the Gateway. If the query is processed successfully, the order is assigned a number (identifier), unique within the Gateway. The method is used to register the order with a subsequent payment by performP2P method.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for order registration for money transfer

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderNumber
required
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

amount
required
integer (amount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency

currency
string (currency) = 3 characters ^\d{3}$
Default: "643"

Digital code of the transaction currency ISO 4217

returnUrl
required
string (returnUrl) [ 12 .. 2048 ] characters ^(http://|https://).*$

The address to which the Payer must be redirected in case of successful payment, when the Merchant uses the PG payment page

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
features
required
string (featuresP2P) [ 1 .. 255 ] characters ^[ -~]*$

Transfer type. Available values:

  • ORIGINAL_CREDIT - B2C payment (Money transfer to card/token)

The parameter is required for this service

failUrl
string (failUrl) [ 12 .. 2048 ] characters ^(http://|https://).*$

The address to which the Payer must be redirected in case of unsuccessful payment, when the Merchant uses the PG payment page. If not specified, returnUrl is used.

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"
description
string (description) [ 1 .. 512 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Free-form order description on the Merchant’s side. The recommended length is up to 99 characters.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

merchantLogin
string (merchantLogin) [ 1 .. 30 ] characters ^[A-Za-z0-9-_.-]+$

Subsidiary Merchant's login (if used)

required
object <= 99 properties

Block for transmission of additional parameters by the Merchant. If the parameter values imply availability of personal data of an individual, it is necessary to obtain their consent to the processing of the Payer’s personal data. The Payment Gateway shall be notified of such consent by transferring the pdAgreement parameter with the true value in the jsonParams block.

sessionTimeoutSecs
integer (sessionTimeoutSecs) [ 0 .. 999999999 ]
Default: 1200

The order lifetime in seconds. In case the parameter is not set, the value specified in the Merchant settings or the default time (20 minutes) will be used. If the query has the expirationDate parameter, the value of the sessionTimeoutSecs parameter will be ignored.

expirationDate
string <date-time> (expirationDate)

Date and time of the orderlife end on the PG side in the yyyy-MM-ddTHH:mm:ss format. If this parameter is not transmitted in the query, then sessionTimeoutSecs will be used to find the orderlife end time.

phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
required
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

dynamicCallbackUrl
string (dynamicCallbackUrl) [ 12 .. 512 ] characters ^(https://).*$

The address to which you want to send the callback. If the parameter is missing, the URL specified in the merchant settings is used

Pay attention!

  1. If the domain name contains Cyrillic characters, then it must be converted using the ACE algorithm. I.e. the string "сберпей.рф" will look like "xn--90aiaq2afe.xn--p1ai"
  2. If the query parameter contains the % symbol, it is assumed that escaping has already been applied to this parameter and no conversion is performed (the parameter remains "as is")
  3. If the query parameter contains characters other than the set [a-zA-Z0-9.-*_ ], these characters are escaped through the % symbol. A string of the type "сберпей.рф" will look like "%D1%81%D0%B1%D0%B5%D1%80%D0%BF%D0%B5%D0%B9%2E%D1%80%D1%84"

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "amount": 19900,
  • "features": "ORIGINAL_CREDIT"
}

Response samples

Content type
application/json
Example
{}

Making a money transfer [performP2P]

The query is intended for money transfer making to a previously created order for transfer

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Request for a transfer by order

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

object

Block for transmission parameters with details about crediting to the card

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "toCard": {
    }
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "error": "Обработка запроса прошла без системных ошибок",
  • "info": "Ваш платёж обработан, происходит переадресация",
}

Fiscalization Services

API methods for receipt generation

Note the endpoint used for sending a query.

Get information about the receipt processing status [getReceiptStatus]

Service for getting information about the receipt(s) processing status.

Request Body schema: application/json
required

Query for receipt processing status. WhenorderId or orderNumber is transmitted, all the receipts for the Order are shown; whenreceiptId is transmitted, a specific receipt is shown. The search by receipt status is also available. We recommend to request the query status no earlier than 6 minutes after the transaction.

One of
receiptId
required
string <uuid> (receiptId) = 36 characters ^[a-f0-9\-]+$

Receipt identifier assigned by the cash register service (uuid)

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

receiptStatus
integer (receiptStatus) [ 0 .. 6 ]

Receipt status

  • 0 - not defined;
  • 1 - receipt is expected to be sent or re-sent
  • 2 - receipt has been sent, waiting for the result of processing
  • 3 - receipt has been successfully processed
  • 4 - receipt processing error
  • 5 - receipt sending error (sending attempts exceeded)
  • 6 - incorrect data for sending the receipt

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}

Response samples

Content type
application/json
Example
{
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
  • "receipts": [
    ]
}

Resend the receipt with the Cart unchanged [retryReceipt]

The service generates a repeated query to create a receipt with the Cart identical to the first receipt. The service is used only for resending unsuccessful receipts. Query processing sequence:

  • Request the receipt status through getReceiptStatus.
  • Get one of the two statuses that allow the resending: Receipt processing error (receiptStatus=4) or Receipt sending error (sending attempts are over) (receiptStatus=5).
  • Use retryReceipt including the receiptId/externalId of the receipt to be resent. The receiptId/externalId array can be sent if several receipts need to be resent. Attention! If the response to the receipt processing status does not contain a receiptId/externalId, the retryReceipt service may not be used. Contact the technical support for recommendations.
  • At the stage of obtaining the registration status, if error code 1 with the error type “timeout” is received, several automatic attempts will be made to re-register the receipt. In this case it is recommended to use the retryReceipt service after all registration attempts have been used, not earlier than 15 hours after the initial receipt has been created.
  • When using the service, please pay attention to the deadline for providing a receipt in accordance with 54-FZ.
Request Body schema: application/json
required

Query for resending the receipt.

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

receiptIds
Array of strings <uuid> (receiptId) <= 100 items [ items <uuid > = 36 characters ^[a-f0-9\-]+$ ]
externalIds
Array of strings (externalId) <= 100 items [ items <= 60 characters ^[a-f0-9_\\-]+$ ]

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "receiptIds": [
    ],
  • "externalIds": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Успешно",
  • "retryResult": [
    ]
}

Receipt creation [doReceipt]

The service generates a new receipt or change the Cart in an unsuccessful receipt using a new Cart for resending. The service will create a new receipt only if there was a successful receipt within the order or an error occurred at the time of receipt generation. If the receipt creation was not initiated, it is not possible to create the receipt.

Creating a new receipt

The doReceipt service is used to create a full settlement receipt, a refund receipt for prepayment or advance holding payment separately from the financial transaction. To create a receipt, it is necessary to submit the Buyer's contact email/phone and the Cart__orderBundle__. If a receipt for Prepayment or Advance Payment was created earlier, it is recommended to ensure that the Prepayment receipt was successfully created through getReceiptStatus before generating a full settlement receipt.

Resending unsuccessful receipt with new Cart

In some cases, the cash service cannot register the receipt due to incorrect data in the Cart, errors in the operation of the cash register or for other reasons. The getReceiptStatus status request service will report this in the error block, providing the error code and description. The recommendation field indicates whether it is necessary to adjust the cart and resend the receipt. To try to resend the receipt with a new cart, it is necessary to:

  • Request the receipt status through getReceiptStatus;
  • Get the Receipt Proccessing Error status (receiptStatus=4) or Receipt Sending Attempts are Over (receiptStatus=5) with the value of recommendation 2 or 3;
  • Read the error text and make changes to the query;
  • Send the doReceipt query specifying the receiptid of the receipt to be corrected and the Buyer's contacts email/phone.
Request Body schema: application/json
required

Query for receipt creation

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

orderNumber
string (orderNumber) [ 1 .. 36 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_№]*$

Unique number (identifier) of the order in the Merchant’s system. Mandatory if the query does not contain an orderId.

receiptId
string <uuid> (receiptId) = 36 characters ^[a-f0-9\-]+$

Receipt identifier assigned by the cash register service (uuid)

phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

required
object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "email": "customer@testmail.ru",
  • "orderBundle": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Успешно",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}

Correction receipt [doCorrection]

The service allows you to form correction checks. General rules for working with the service: You need to transfer the basket with the receiptType of the desired correction check to the service. For example, to correct a receipt of type ReceiptType, pass "receiptType": "sell_correction"," ReceiptType ":" sell_refund_correction". Due to the peculiarity of adjusting checks in FFD 1.05, the types of checks created will be automatically defined as "sell" and "sell_refund"; If there is a receiptId in the request, the system will automatically find and generate a check, including the FP (fiscal characteristic) of the incorrect check in tag 1192, and, if necessary, the correctionInfo block; Always include correctionInfo in the request, except for correcting an existing check when working with FPD 1.05.

There are 2 modes for creating correction checks:

  • to correct an error in an existing check (successfully registered in the cash desk service),
  • to create a correction check in cases when the fiscal check was not formed for some reason (cash desk settings, errors in the request format, mass failure, etc.)

Create a new correction check:

  1. In the doCorrection service, transfer a basket with the receiptType of the desired correction check, and a correctionInfo block.
  2. A correction check will be created based on the doCorrection request with the receiptType specified in it.
  3. If the receipt has a receiptId, but it fails, you do not need to pass the receiptId to fix it.

Fix successfully registered check:

  1. In the doCorrection service, transfer the basket, receiptId of the corrected check, correctionInfo block. The unit does not need to be transferred to the FPD 1.05.
  2. Only a successful check is expected to receiveId. To correct an unregistered check, you do not need to transfer the receiptId to the doReceipt service.
  3. To cancel an incorrect check, a return check will be automatically generated with the inclusion of the PD of the incorrect check.
  4. The correction check will be created based on the receiptType passed to doCorrection.
Request Body schema: application/json
required

Query for correction receipt creation

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

receiptId
string <uuid> (receiptId) = 36 characters ^[a-f0-9\-]+$

Receipt identifier assigned by the cash register service (uuid)

phone
string (phone) [ 1 .. 16 ] characters ^(\+?)\d{7,15}$

Payer’s phone number. If the country code is enabled in the phone, the number must begin with a plus sign ("+"). If the phone number is transmitted without the plus sign (“+”), the country code should not be specified. In case of fiscalization, it is mandatory to transfer it in the +79998887700 format; and if there is no phone number, an email is mandatory.

email
string (email) [ 3 .. 128 ] characters ^[ -~]+$

Payer's email address. Mandatory in case of fiscalization, if there is no phone.

required
object (correctionInfo)

Correction information. Not transmitted in case of correction of existing receipt in the FFD 1.05

required
object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
Example
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "correctionInfo": {
    },
  • "email": "customer@testmail.ru",
  • "orderBundle": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Успешно",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}

SberSpasibo loyalty program services

Attention! Functionality is under development.

API methods for working with the SberSpasibo loyalty program

Getting the SberSpasibo bonus balance [getLoyaltyBalance]

Query for a bonus balance through the Payer’s binding

Request Body schema: application/json
required

Query for a bonus balance with the Payer’s binding identifier. Additional account settings are required to use this service.

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

bindingId
required
string <uuid> (bindingId) = 36 characters ^[a-f0-9\-]+$

Identifier of the previously created Binding. It can be used only if the merchant is authorized to use bindings.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce"
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок",
  • "loyaltyOperations": [
    ]
}

Completion of the two-stage scenario [autoCompletion]

The query is intended for an additional confirmation of the two-stage payment. If the processing is successful, the debiting of funds from the Payer’s account will be confirmed.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for completion of the two-stage scenario

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

compositeAmount
required
integer (compositeAmount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency, consisting of the monetary amount and the amount of bonuses. It may be less than or equal to the remainder of the order.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "compositeAmount": 14900,
  • "orderBundle": {
    }
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Payer's Refund [autoRefund]

The query is intended to refund the Payer partially or fully, upon the participating banks completing mutual settlements under the payment transaction.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for the Payer’s refund

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

compositeAmount
required
integer (compositeAmount) [ 0 .. 999999999999 ]

Transaction amount in minor units of currency, consisting of the monetary amount and the amount of bonuses. It may be less than or equal to the remainder of the order.

language
string (language) = 2 characters ^[a-z]+$
Default: "ru"

Language encoded in ISO 639-1 (ru). If not specified, the default value of the Merchant settings will be used.

externalRefundId (object) or keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

object (orderBundle)

The block needed to generate fiscal receipts. It contains fiscalization data and order cart. Mandatory if POS lending order registration queries are sent.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "compositeAmount": 9900,
  • "orderBundle": {
    }
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Services for working with EC

API methods for interaction during payment with electronic certificates

Transfer of receipt data [externalReceipt]

The query is intended to transfer the data of the fiscal receipt of purchase or refund for the completion of the transaction involving electronic certificate tools.

header Parameters
x-idempotencyKey
string [ 1 .. 255 ] characters ^[0-9a-zA-Z-_#]*$
Example: 779165e0-1905-4edd-89fa-be46497b5044

The idempotency key processing functionality is under development

Query idempotency key. A repeated call with the same key will return the result of the previous query and will not result in the execution of the new one. The keys remain in storage for 24 hours.

Request Body schema: application/json
required

Query for the transfer of fiscal receipt data

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

orderId
required
string <uuid> (orderId) = 36 characters ^[a-f0-9\-]+$

Unique order number in the Payment Gateway.

eCertificateBasketId
required
string (eCertificateBasketId) = 24 characters ^[ -~]*$

Basket ID of the purchase or return to NPCS FEC

cashboxId
required
string (cashboxId) = 18 characters ^[ -~]*$

Cash register identifier in NPCS FEC

required
object

Information block with fiscal receipt parameters

keyValue (object) <= 99 properties

Block for transmission of additional parameters by the Merchant.

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
  • "eCertificateBasketId": "422100010001100000000108",
  • "cashboxId": "200000000000000011",
  • "receipt": {
    }
}

Response samples

Content type
application/json
Example
{
  • "errorCode": "0",
  • "errorMessage": "Обработка запроса прошла без системных ошибок"
}

Services for working with the account

Methods for setting a permanent password and generating an apikey

Note the endpoint used for sending a query.

Set the permanent password [setPermanentPassword]

Service for changing the temporary password for a permanent one

Request Body schema: application/json
required

The query is intended to change the temporary password issued when the Merchant was registered at PG for a permanent password on the Merchant's side.

login
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

tmpPassword
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

password
string [ 18 .. 30 ] characters ^[A-Za-z0-9]+$

Merchant's permanent password If not to transmit, the password will be generated automatically. Password requirements: 1 digit, 1 capital Latin letter, minimum length of 18 characters

Responses

Request samples

Content type
application/json
{
  • "login": "testUserName",
  • "tmpPassword": "testPassword",
  • "password": "NewPassword"
}

Response samples

Content type
application/json
Example
{
  • "login:": "testUserName",
  • "password": "NewPassword"
}

Generate the Merchant key to work with payment gateway services through SDK [generateApiKey]

Service for generating the Merchant key to work with payment gateway services through SDK. Up to five active keys can be created.

Request Body schema: application/json
required

The query is intended to generate the Merchant key to work with payment gateway services through SDK.

userName
required
string (userName) [ 1 .. 30 ] characters ^[A-Za-z0-9-_-]+$

Merchant's login received at the time of connection to PG

password
required
string (password) [ 1 .. 36 ] characters ^[ -~]+$

Merchant's password received at the time of connection to PG

description
string [ 0 .. 1000 ] characters ^[ -~А-Яа-яЁёA-Za-z0-9-_]*$

Brief rationale for creating api-key

merchantLogin
string [ 1 .. 30 ] characters ^[A-Za-z0-9-_. ]+$

Subsidiary Merchant's login (if used)

Responses

Request samples

Content type
application/json
{
  • "userName": "testUserName",
  • "password": "testPassword",
  • "description": "testDescription",
  • "merchantLogin": "merchantLogin"
}

Response samples

Content type
application/json
Example
{
  • "id": "2f852119-0rhfdd-сe7a-b421-22be01a44311",
  • "apikey": "AC+FIRkBJk56sCFSvgGkQzMAAAAAAbqrr3ybcZc/7i33plZ0IWbgQ/MaADTsnGBy+TsRUImIs0EaJyQe1ObbTLgsbOQ63TWysFwWduamtmO ",
  • "message": "Api-key успешно создан"
}