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.
| 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 |
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/...
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.
General algorithm for making payments using binding.
The scenario is divided into two stages:
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.
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.
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.
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.
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.
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 |
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 |
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. |
| 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) |
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.
SberPay supports the APP channel payment feature set. Two implementations of the payment feature set are used:
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
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.
SberPay supports its own payment feature set on desktop and mobile WEB sites.
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
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.
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
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
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
For a cash receipt to be registered successfully, the following conditions must be met:
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:
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 |
To connect the Evotor cash register, it is necessary to:
To connect the ATOL cash register, it is necessary to:
To connect the OFD.RU cash register, it is necessary to:
To connect the Business.ru cash register, it is necessary to:
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.
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.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:
positionId and itemCodeproduct item identifiers within the Cart.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.
Example:
This technique is applicable when implementing its own solution for fiscalization.
If the fiscalization by the gate functionality is used (functional is under development):
doReceipt.getOrderStatusExtended.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.
In order to enable the acceptance of payments with electronic certificates, the Merchant shall do the following:
To carry out settlements on transactions using an EC, it is required to conclude a supplementary agreement to the IE contract.
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.
It is necessary to log in the State Information System of Electronic Certificates GIS ES.
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.
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.
Having the API KEY, the Merchant must receive a cash register ID (cashboxId) and a cash register key (MAC KEY) in NPCS FEC.
The merchant must transfer the API KEY, cashboxId, MAC KEY to the Acquiring Bank and perform a test transaction.
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.
itemPrice and the quantity of items quantity.value shall be exactly equal to the final value of the item itemAmountitemAmount shall be equal to the total receipt amount total and the transaction amount amount in the query.positionId, itemCode, itemPrice, truCode.register) may be returned.getOrderStatusExtended.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.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.
API methods for creating an order, cancelling an order, obtaining an order status, performing a refund on the order.
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:
| 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. |
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!
|
| 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!
|
| 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 ";"):
|
| 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. |
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!
|
{- "userName": "testUserName",
- "password": "testPassword",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "amount": 19900,
- "features": "FORCE_SSL"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "externalParams": {
- "sbolDeepLink": "sberpay://invoicing/v2?bankInvoiceId=a67b0cedc9a44cfbbce3b9595afaafc1&operationType=Web2App&option=Connect"
}
}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.
| 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. |
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!
|
| 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!
|
| 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 ";"):
|
| 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. |
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!
|
| 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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "amount": 19900,
- "features": "FORCE_SSL"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "externalParams": {
- "sbolDeepLink": "sberpay://invoicing/v2?bankInvoiceId=a67b0cedc9a44cfbbce3b9595afaafc1&operationType=Web2App&option=Connect",
- "sbolBankInvoiceId": "a67b0cedc9a44cfbbce3b9595afaafc1"
}
}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
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "amount": 14900
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}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.
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}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.
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "amount": 14900
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}The query is intended to obtain the complete data on the previously registered order regardless of its status.
Request for obtaining order information
| 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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}{- "errorCode": "0",
- "merchantOrderParams": [
- {
- "name": "parameter1",
- "value": "test1"
}, - {
- "name": "parameter2",
- "value": "test2"
}
], - "cardAuthInfo": {
- "secureAuthInfo": {
- "threeDSInfo": {
- "cavv": "AAABCUKCEQAAAAADIIIRAbpUtuo=",
- "xid": "82dfc393-af33-4d8f-819e-e286d565d8a9"
}, - "eci": 2
}, - "maskedPan": "220138*******0047",
- "expiration": "202512",
- "cardHolderName": "PETR IVANOV",
- "approvalCode": "433187",
- "paymentSystem": "MIR",
- "paymentWay": "CARD"
}, - "bindingInfo": {
- "clientId": "M79011234567",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce"
}, - "paymentAmountInfo": {
- "approvedAmount": 19900,
- "depositedAmount": 19900,
- "refundedAmount": 0,
- "paymentState": "DEPOSITED"
}, - "bankInfo": { },
- "payerData": {
- "email": "test@test.com"
}, - "transactionAttributes": [
- {
- "name": "SbolBankInvoiceId",
- "value": "a67b0cedc9a44cfbbce3b9595afaafc1"
}
], - "attributes": [
- {
- "name": "mdOrder",
- "value": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}
], - "operations": [
- {
- "date": 1675169010957,
- "type": "AUTHORIZATION",
- "amount": 19900,
- "referenceNumber": "303112098637",
- "approvalCode": "433187",
- "actionCode": 0
}
], - "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"
}The query is intended for cancelling the order before the Payer starts the payment (before they enter card details).
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}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.
| 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. |
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 |
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.
|
{- "userName": "testUserName",
- "password": "testPassword",
- "MDORDER": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "$PAN": "2201382000000047",
- "$CVC": "123",
- "YYYY": "2025",
- "MM": "12"
}{- "errorCode": "0",
- "error": "Обработка запроса прошла без системных ошибок",
- "info": "Ваш платёж обработан, происходит переадресация",
}The query is intended to make a payment through the SberPay functionality available in the mobile Sberbank Online app.
| 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. |
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) |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "phone": "79011234567"
}{- "errorCode": "0"
}The query is intended to make a payment by FPS subscription.
| 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. |
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 |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "subscriptionId": "c9403ef2f9254736a5af837238ce05b1",
- "memberId": "100000000111"
}{- "errorCode": "0"
}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.
The query is intended for making a payment (blocking the funds) according to a previously saved binding.
| 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. |
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 |
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 |
{- "userName": "testUserName",
- "password": "testPassword",
- "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "ip": "127.0.0.1"
}{- "errorCode": "0",
- "error": "Обработка запроса прошла без системных ошибок",
- "info": "Ваш платёж обработан, происходит переадресация",
}The query is intended to deactivate a previously stored binding.
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "language": "ru"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}The query is intended to get the list of bindings linked to a specific Payer ID.
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:
|
| showInactive | boolean (showInactive) Attribute of the need to display Bindings with the inactive status. The following values are possible:
|
{- "userName": "testUserName",
- "password": "testPassword",
- "clientId": "M79011234567",
- "language": "ru",
- "showExpired": true,
- "showInactive": true
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "bindings": [
- {
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "maskedPan": "220138******0047",
- "expiryDate": "202512",
- "bindingStatus": "0",
- "paymentWay": "CARD",
- "paymentSystem": "MIR"
}
]
}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.
Query for bindings by card number or Payer binding identifier
| 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:
|
| showInactive | boolean (showInactive) Attribute of the need to display Bindings with the inactive status. The following values are possible:
|
{- "userName": "testUserName",
- "password": "testPassword",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "showExpired": true,
- "showInactive": true
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "bindings": [
- {
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "maskedPan": "220138******0047",
- "expiryDate": "202512",
- "clientId": "M79011234567",
- "bindingStatus": "0",
- "paymentWay": "CARD",
- "paymentSystem": "MIR"
}
]
}The query is intended to activate a previously deactivated binding (provided that it is still valid).
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "language": "ru"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}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
| 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. |
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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "amount": 19900
}{- "success": true,
- "data": {
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd"
}, - "orderStatus": {
- "actionCode": 0,
- "amount": 19900,
- "approvalCode": "433187",
- "authDateTime": 1675169010957,
- "authRefNum": "303112098637",
- "bankInfo": { },
- "cardAuthInfo": {
- "expiration": "202512",
- "pan": "220138******0047",
- "paymentSystem": "MIR"
}, - "currency": "643",
- "date": 1675169008805,
- "orderStatus": 2,
- "paymentAmountInfo": {
- "approvedAmount": 19900,
- "depositedAmount": 19900,
- "paymentState": "DEPOSITED",
- "refundedAmount": 0
}, - "terminalId": "20184020"
}
}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.
| 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. |
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:
| ||||||||||||||||||||||||||||||||||||||||||||||||
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:
| ||||||||||||||||||||||||||||||||||||||||||||||||
| 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:
| ||||||||||||||||||||||||||||||||||||||||||||||||
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. | ||||||||||||||||||||||||||||||||||||||||||||||||
string (email) [ 3 .. 128 ] characters ^[ -~]+$ Payer's email address. Mandatory in case of fiscalization, if there is no phone. |
{- "userName": "testUserName",
- "password": "testPassword",
- "amount": 10000,
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "paymentToken": "eyJ0YW4iOiIyMjAwMTIqKioqKioqKiozNDg2IiwiY2F2IjoiM0Q2RkM4MjZBMDhDODJCODk3ODAwMjlGNjk2NzBGRERDRjI5OUIiLCJ0ZXkiOjI5LCJ0ZW0iOjMsInRyYW5zSWQiOiI1YWI1MjQ4Ny0xNzdmLTQ2NGItYjY5NS0yOTU0ZmZjNDRhMTMiLCJtSWQiOiIwMDAwMDAwMDAwMDAwMDEiLCJteDVjIjoiTUlJRWpEQ0NBM1NnQXdJQkFnSURFaUVETUEwR0NTcUdTSWIzRFFFQkN3VUFNSUdGTVFzd0NRWURWUVFHRXdKU1ZURVpNQmNHQTFVRUNBd1FVMkZwYm5RdFVHVjBaWEp6WW5WeVp6RVhNQlVHQTFVRUNnd09WbTlrYTJFZ1FtRnVheUJLVTBNeER6QU5CZ05WQkFzTUJrSXdNREF3TVRFUE1BMEdBMVVFQXd3R1FqQXdNREF4TVNBd0hnWUpLb1pJaHZjTkFRa0JGaEY2YjNKeWIwQmxhMkZ6YzJseUxtTnZiVEFlRncweU1qRXhNRGt4TXpNMU5UTmFGdzB5TXpFeE1Ua3hNek0xTlROYU1JRzNNUXN3Q1FZRFZRUUdFd0pTVlRFWk1CY0dBMVVFQ0F3UVUyRnBiblF0VUdWMFpYSnpZblZ5WnpFWk1CY0dBMVVFQnd3UVUyRnBiblF0VUdWMFpYSnpZblZ5WnpFYU1CZ0dBMVVFQ2d3UlVHRnlZWE5sYm1ObElFeHBiV2wwWldReEdUQVhCZ05WQkFzTUVFMHdNREF3TURBd01EQXdNREF3TURFeEdUQVhCZ05WQkFNTUVFMHdNREF3TURBd01EQXdNREF3TURFeElEQWVCZ2txaGtpRzl3MEJDUUVXRVhwdmNuSnZRR1ZyWVhOemFYSXVZMjl0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1TzFteGU2Mk5kVzdLTTUwRlZ3Y29qNDVRSjNYVms4QWg2UkN4Q1IzdHZydXM3bm9OV2FLajljM2VEeDQ3V3N3MFZROUpiUVRPdFRqaSsrRFkwOEJ2WGtWK1J1SXNlekdnVzR4S1RJK3lwSGN4OHZJSU5oS0JLMmZZdTVJRFZkejRaYml1R3IySW13eHVPL3VYRW5iNXhDTS9wK01tTDBwZmpjaE9LWkZMVW1Xdm44clMxUGc5NzRRSjJiODl0TDlKSmR3K3NhMDlXWkpoQWZGYVNaRk9LM0dwQkc5azVmZEhvTXNKY2RJRmxOMzFIMFF2OFMvOEZVbGdqVVFCdW9TbmdneXJ6aUR6RXFWM1BIcXcwZURjOTc5WE1hYTZvWFJLYk1UaXFrR01qN0h4N2dVanFzRStPZ29EcFdDSlpWVGMzNWkrajJGTEVpRDZ4NHpBR2FjZndJREFRQUJvNEhRTUlITk1Ba0dBMVVkRXdRQ01BQXdFUVlKWUlaSUFZYjRRZ0VCQkFRREFnV2dNRE1HQ1dDR1NBR0crRUlCRFFRbUZpUlBjR1Z1VTFOTUlFZGxibVZ5WVhSbFpDQkRiR2xsYm5RZ1EyVnlkR2xtYVdOaGRHVXdIUVlEVlIwT0JCWUVGQnRrWDUvemNnSlpSYitHZUpKYUVZZytWVE9UTUI4R0ExVWRJd1FZTUJhQUZMWE9JclFpZHNuZ0J4cXhBQ3FtbURmajJTM0tNQTRHQTFVZER3RUIvd1FFQXdJRThEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBZ1lJS3dZQkJRVUhBd1F3Q1FZRFZSMFNCQUl3QURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQU1EN3FITEVKakdEcyt2ZEQwTklKWnhzVVpITjBXVTdPMm83TUxkVE96bkRqQ0RaV0thNzBHQlRsUm5vNTU2ejQ0a2VxajVWWnRIOVhWZ1A0U3pwOEMyZnppT0F1alNyS1Z3MGxoN2lEUmNiMU9ESEx5U0IzMDRHOXpnZE0rRFBLeW9za3pxcC9KNGl5VWFGLzZyNVlqLzVxVmZ0d0xSQlRJbld0OGgycFdxU29aaE5xaFY1SmRVK1dtQ0Nzd0RLZzQzSTJTSC9sUHZVaXFkRFFYK2xscDZYVHVJNm83aUdQRmRQZ2tOWFVOVUVIL3NNTUNOU2xOQmNQUFhGeSs1SHhFYkFmS242WmJZN2xYTDZSbzJuSzRERFJSbENYMGJmT1BKWFBMK290dncrVXZuSXIyOGNpc0VTdzB5OWxYbTlOWmhhQnhEVEZWREFSTWZUT1lxdFJDdz09Iiwib3JkZXJJZCI6IjEyMzQ1NiIsInN1bSI6MTAwMDAsImN1ciI6NjQzLCJtZWRpYSI6IklTREsifQ"
}{- "success": true,
- "data": {
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd"
}, - "orderStatus": {
- "actionCode": 0,
- "amount": 10000,
- "approvalCode": "433187",
- "authDateTime": 1675169010957,
- "authRefNum": "303112098637",
- "bankInfo": { },
- "cardAuthInfo": {
- "expiration": "202903",
- "pan": "220012*********3486",
- "paymentSystem": "MIR"
}, - "currency": "643",
- "date": 1675169008805,
- "orderStatus": 2,
- "paymentAmountInfo": {
- "approvedAmount": 10000,
- "depositedAmount": 10000,
- "paymentState": "DEPOSITED",
- "refundedAmount": 0
}, - "terminalId": "20184020"
}
}API methods for completing the 3-D Secure authentications conducted on the Merchant's side
The query is intended to complete the Payer's 3DS authentication during the payment transaction. Query processing sequence:
register or registerPreAuth services, depending on the payment scenario;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;finish3dsMethod 3DS authentication completion service.| 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. |
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:
|
{- "userName": "testUserName",
- "password": "testPassword",
- "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "threeDSServerTransId": "93045e61-d783-40f1-8934-33fd59387ca6",
- "threeDSCompInd": "Y"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "info": "Ваш платёж обработан, происходит переадресация",
}The query is intended to transmit the result of Payer's 3DS authentication during the direct interaction with the ACS server. Query processing sequence:
register or registerPreAuth, depending on the payment scenario;paymentOrder, paymentOrderBinding or finish3dsMethod with receipt of 3-D Secure authentication requirements in the response (paReq or cReq);finish3dsPayment 3DS authentication completion service.| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "cRes": "eyJhY3NUcmFuc0lEIjogIjllNWUxMWViLTY1OTYtNDMyMi04NjU4LTJkNDY0MDUwMGYyZSIsICJ0cmFuc1N0YXR1cyI6ICJZIiwgIm1lc3NhZ2VWZXJzaW9uIjogIjIuMS4wIiwgIm1lc3NhZ2VUeXBlIjogIkNSZXMiLCAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiOTMwNDVlNjEtZDc4My00MGYxLTg5MzQtMzNmZDU5Mzg3Y2E2In0="
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "info": "Ваш платёж обработан, происходит переадресация",
}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.
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:
|
| status required | integer (status) [ 0 .. 1 ] Success indicator of the transaction for which the notificaton is generated The following values are possible:
|
object (additionalParams) Additional operation parameters. Used when creating FPS subscription and other. |
{- "mdOrder": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "operation": "deposited",
- "status": 1,
- "additionalParams": { }
}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.
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:
|
{- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce",
- "clientId": "M79011234567",
- "operation": "bindingCreated"
}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.
| 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. |
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!
|
| features required | string (featuresP2P) [ 1 .. 255 ] characters ^[ -~]*$ Transfer type. Available values:
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!
|
| 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!
|
{- "userName": "testUserName",
- "password": "testPassword",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "amount": 19900,
- "features": "ORIGINAL_CREDIT"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
}The query is intended for money transfer making to a previously created order for transfer
| 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 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. | |
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 |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "toCard": {
- "pan": "2201382000000047",
- "expirationYear": "2025",
- "expirationMonth": "12"
}
}{- "errorCode": "0",
- "error": "Обработка запроса прошла без системных ошибок",
- "info": "Ваш платёж обработан, происходит переадресация",
}API methods for receipt generation
Note the endpoint used for sending a query.
Service for getting information about the receipt(s) processing status.
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.
| 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
|
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}{- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "orderNumber": "e2574f1785324f1592d9029cb05adbbd",
- "receipts": [
- {
- "receiptId": "822c6862-634c-11ee-8c99-0242ac120002",
- "externalId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1_ded07d1b",
- "operationId": "0ad563f9-c7ec-49ba-9062-a04de55b6f3f",
- "operationType": "AUTHORIZATION",
- "receiptType": "sell",
- "receiptStatus": 3,
- "origReceiptId": "23d72f20-a770-4548-9bcc-1d1a8567e071",
- "timestamp": "11.10.2023 13:24:59",
- "groupCode": "group_code_4612",
- "daemonCode": "quasar",
- "deviceCode": "KKT068508",
- "payload": {
- "fiscalReceiptNumber": 10,
- "shiftNumber": 188,
- "receiptDatetime": "09.10.2023 15:08:00",
- "total": 24600,
- "fnNumber": "9999078902013948",
- "ecrRegistrationNumber": "0000000005035122",
- "fiscalDocumentNumber": 783,
- "fiscalDocumentAttribute": 1837776948,
- "fnsSite": "www.nalog.ru",
- "ofdInn": "7709364346",
}
}
]
}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:
getReceiptStatus.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.retryReceipt service after all registration attempts have been used, not earlier than 15 hours after the initial receipt has been created.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_\\-]+$ ] |
{- "userName": "testUserName",
- "password": "testPassword",
- "receiptIds": [
- "822c6862-634c-11ee-8c99-0242ac120002"
], - "externalIds": [
- "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1_ded07d1b"
]
}{- "message": "Успешно",
- "retryResult": [
- {
- "receiptId": "822c6862-634c-11ee-8c99-0242ac120002",
- "externalId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1_ded07d1b",
- "result": "Успешно"
}
]
}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:
getReceiptStatus;doReceipt query specifying the receiptid of the receipt to be corrected and the Buyer's contacts email/phone.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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "email": "customer@testmail.ru",
- "orderBundle": {
- "ffdVersion": "1.2",
- "company": {
- "email": "email@testshop.ru",
- "sno": "osn",
- "inn": "5027119066",
}, - "payments": [
- {
- "type": 1,
- "sum": 24600
}
], - "total": 24600,
- "cartItems": {
- "items": [
- {
- "positionId": "1",
- "itemCode": "51",
- "name": "Сырок творожный со сгущенкой",
- "quantity": {
- "value": 1,
- "measure": "0"
}, - "markCode": {
- "gs1m": "MDEwNDYwNTg2NTQ4NzE2MjIxbj1ZR3lJbUhVOmlNWh05MUVFMDYdOTJYNE1sVzk2R1o2ZmV2RGhnUjJhaHNKNUltTmtVZUsyMkdGeEpVMmxjREpRPQ=="
}, - "itemPrice": 4700,
- "itemAmount": 4700,
- "paymentMethod": "full_payment",
- "paymentObject": "33",
- "tax": {
- "taxType": 2
}
}, - {
- "positionId": "2",
- "itemCode": "124",
- "name": "Виноград без косточек",
- "quantity": {
- "value": 0.4,
- "measure": "11"
}, - "itemPrice": 25000,
- "itemAmount": 10000,
- "paymentMethod": "full_payment",
- "paymentObject": "1",
- "tax": {
- "taxType": 4
}
}, - {
- "positionId": "3",
- "itemCode": "341",
- "name": "Услуга доставки",
- "quantity": {
- "value": 1,
- "measure": "0"
}, - "itemPrice": 9900,
- "itemAmount": 9900,
- "paymentMethod": "full_payment",
- "paymentObject": "4",
- "tax": {
- "taxType": 4
}
}
]
}
}
}{- "message": "Успешно",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}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:
Create a new correction check:
Fix successfully registered check:
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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "correctionInfo": {
- "type": "self",
- "baseDate": "29.07.2025",
- "baseNumber": "123"
}, - "email": "customer@testmail.ru",
- "orderBundle": {
- "cartItems": {
- "items": [
- {
- "positionId": "1",
- "itemCode": "001",
- "name": "Услуга 1",
- "measurementUnit": "шт",
- "quantity": {
- "value": 2
}, - "itemPrice": 500,
- "itemAmount": 1000,
- "paymentMethod": "full_payment",
- "paymentObject": "service",
- "tax": {
- "taxType": 0
}
}
]
}, - "ffdVersion": "1.05",
- "receiptType": "sell_correction",
- "company": {
- "email": "email@testshop.ru",
- "sno": "osn",
- "inn": "5027119066",
}, - "payments": [
- {
- "type": 1,
- "sum": 1000
}
], - "total": 1000
}
}{- "message": "Успешно",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1"
}Attention! Functionality is under development.
API methods for working with the SberSpasibo loyalty program
Query for a bonus balance through the Payer’s binding
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "bindingId": "fdbbc879-c171-4cff-b636-ceab16fd6fce"
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок",
- "loyaltyOperations": [
- {
- "serviceName": "sbrf_spasibo",
- "bonusBalance": 77700
}
]
}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.
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "compositeAmount": 14900,
- "orderBundle": {
- "cartItems": {
- "items": [
- {
- "positionId": "2",
- "itemCode": "654321",
- "name": "Товар 2",
- "quantity": {
- "value": 1
}, - "itemPrice": 9900,
- "itemAmount": 9900
}, - {
- "positionId": "3",
- "itemCode": "111111",
- "name": "Товар 3",
- "quantity": {
- "value": 1
}, - "itemPrice": 5000,
- "itemAmount": 5000
}
]
}
}
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}The query is intended to refund the Payer partially or fully, upon the participating banks completing mutual settlements under the payment transaction.
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "compositeAmount": 9900,
- "orderBundle": {
- "cartItems": {
- "items": [
- {
- "positionId": "2",
- "itemCode": "654321",
- "name": "Товар 2",
- "quantity": {
- "value": 1
}, - "itemPrice": 9900,
- "itemAmount": 9900
}
]
}
}
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}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.
| 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. |
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. |
{- "userName": "testUserName",
- "password": "testPassword",
- "orderId": "a67b0ced-c9a4-4cfb-bce3-b9595afaafc1",
- "eCertificateBasketId": "422100010001100000000108",
- "cashboxId": "200000000000000011",
- "receipt": {
- "fnNumber": "9960440300133475",
- "fiscalDocumentNumber": "3304",
- "fiscalDocumentAttribute": "723840104",
- "total": 199,
- "receiptDateTime": "17.09.2024 09:59:59",
- "receiptType": "sell",
}
}{- "errorCode": "0",
- "errorMessage": "Обработка запроса прошла без системных ошибок"
}Methods for setting a permanent password and generating an apikey
Note the endpoint used for sending a query.
Service for changing the temporary password for a permanent one
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 |
{- "login": "testUserName",
- "tmpPassword": "testPassword",
- "password": "NewPassword"
}{- "login:": "testUserName",
- "password": "NewPassword"
}Service for generating the Merchant key to work with payment gateway services through SDK. Up to five active keys can be created.
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) |
{- "userName": "testUserName",
- "password": "testPassword",
- "description": "testDescription",
- "merchantLogin": "merchantLogin"
}{- "id": "2f852119-0rhfdd-сe7a-b421-22be01a44311",
- "apikey": "AC+FIRkBJk56sCFSvgGkQzMAAAAAAbqrr3ybcZc/7i33plZ0IWbgQ/MaADTsnGBy+TsRUImIs0EaJyQe1ObbTLgsbOQ63TWysFwWduamtmO ",
- "message": "Api-key успешно создан"
}