Setting up payments via Sberbank's mobile app

Attention. This is an old version of the API. Switch to the Yandex.Checkout API.
This instruction is for stores implementing payments via Sberbank's mobile app (the scenario only works for mobile apps). In the course of payment, you need to create the deep link to forward the user to Sberbank's app. See description of the scenario

Step 1. Requesting order identifier

To get order identifier (RQUID), you need to evoke the createInvoice method.

Request example
POST /webservice/mws/api/createInvoice HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: length
Example of the response
<createInvoiceResponse status="1" error="0" processedDT="2017-07-14T11:46:41.103+03:00" orderId="2000734125092" externalPaymentUrl="" externalTransactionNumber="625d499cfe51f4e286f4896a989e41e7"/>

Step 2. Creating deep linking

For iOS

Deep link format
Deep link parameters
Parameter Description


Name of the merchant's app


Order identifier (RQUID) received when sending the createInvoice request.


Callback link

Payment statuses on return in the app

Successful payment


Payment error


For Android

To create deep linking, you need to use 'Intent'.

orderUUID — order identifier (RQUID) received when sending the createInvoice request.

public class MainActivity extends AppCompatActivity {
                private static final String SBERBANK_ONLINE_PACKAGE_NAME = "ru.sberbankmobile";
                private static final String SBERBANK_ONLINE_INVOICING_ACTIVITY_NAME = "";
                private static final String ORDER_UUID_KEY = "";
                private static final String RESULT_KEY = "";
                private static final String CALLBACK_INTENT_KEY = "";
    protected void onCreate(Bundle savedInstanceState) {
        mBuyButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                String orderUUID = mEribUid.getText().toString();
                                                               Intent invoicingIntent = new Intent();
                                                               invoicingIntent.setComponent(new ComponentName(SBERBANK_ONLINE_PACKAGE_NAME, SBERBANK_ONLINE_INVOICING_ACTIVITY_NAME));
                                                               invoicingIntent.putExtra(ORDER_UUID_KEY, orderUUID);
                startActivityForResult(invoicingIntent, REQUEST_CODE);
                * data on RESULT_KEY will contain the result and some additional information
                protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//                           "SUCCESS" or "FAILURE"
                               String result = intent.getStringExtra(RESULT_KEY);