По любому вопросу мы в одном клике

Задать вопрос

Общее описание

Вы можете использовать наш API продавца, чтобы создать нужный вам сценарий оплаты. Например, вы можете создать собственную полностью настроенную платежную страницу и подключить ее к нашему платежному шлюзу.

Вы можете скачать коллекцию API-запросов для Postman, чтобы протестировать основные возможности API. Обязательно отправляйте запросы как POST с атрибутами в теле запроса.

Скачать коллекцию Postman

Обязательность параметров

Обязательность присутствия параметра в запросе/ответе может принимать следующие значения:

Обязательность передачи параметра в описании запроса/ответа указывается в одноименном столбце "Обязательность".

Аутентификация

Для аутентификации мерчанта в платежном шлюзе можно использовать два метода.

Обязательность Название Тип Описание
Условие

userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Обязательность Название Тип Описание
Условие

token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.

URL для API-вызовов

TEST: https://dev.bpsprocessing.ru/payment/rest/
PROD: https://dev.bpsprocessing.ru/payment/rest/

Ошибки

Коды состояния HTTP:

Если запрос, связанный с оплатой заказа, обработан успешно, это еще не означает, что сам платеж прошел успешно.

Чтобы определить, был ли платеж успешным или нет, вы можете обратиться к описанию использованного запроса. Также для выяснения статуса платежа всегда можно использовать алгоритм, описанный ниже

  1. Сделать вызов getOrderStatusExtended.do;
  2. Проверить поле orderStatus в ответе: заказ считается оплаченным, только если значение orderStatus равно 1 или 2.

Подпись запроса API

В некоторых случаях для обеспечения безопасного обмена данными может потребоваться реализовать асимметричную подпись запроса. Обычно это требование применяется, только если вы выполняете запросы P2P/AFT/OCT.

Чтобы иметь возможность подписывать запросы, вам необходимо выполнить следующие шаги:

  1. Создайте и загрузите сертификат.
  2. Рассчитайте хеш и подпись, используя свой закрытый ключ, и передайте сгенерированный хеш (X-Hash) и значение подписи (X-Signature) в заголовке запроса.

Эти шаги подробно описаны ниже.

Создание и загрузка сертификата

  1. Создайте 2048-битный закрытый ключ RSA. Способ генерации зависит от политики конфиденциальности в вашей компании. Например, вы можете сделать это с помощью OpenSSL:

    openssl genrsa -des3 -out private.key 2048

  2. Создайте общедоступный CSR (запрос на подпись сертификата), используя сгенерированный закрытый ключ:

    openssl req -key private.key -new -out public.csr

  3. Создайте сертификат, используя сгенерированный закрытый ключ и CSR. Пример формирования сертификата на 5 лет:

    openssl x509 -signkey private.key -in public.csr -req -days 1825 -out public.cer

  4. Загрузите сгенерированный сертификат в Личный кабинет. Для этого перейдите в Сертификаты кошельков > Merchant API, нажмите Добавить сертификат и загрузите сгенерированный общедоступный сертификат.
    JCC installments final page

Вычисление хеша и подписи

  1. Рассчитайте хеш SHA256 тела запроса следующим образом:

    1. Используйте тело запроса в виде строки (в нашем примере это amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api).
    2. Вычислите хэш SHA256 из этой строки в необработанных байтах.
    3. Преобразуйте необработанные байты в кодировку base64.
  2. Сгенерируйте подпись для вычисленного хеша SHA256 с помощью алгоритма RSA, используя закрытый ключ.

В нашем примере мы используем следующий закрытый ключ с паролем 12345:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C502560EDE8F82B7
O4+bY1Q1ZcXFLDGVE8s9G2iVISHR/c/IMZKZEjkBED/TbuOCUGVjcav2ZaZO2dO0 lm771N6JNB01uhJbTHScVQ6R0UnGezHFTcsJlAlBa9RQyOwujs4Pk6riOGnLliIs urnTXD0oskBR1wLRA2kp8+V0UPOAMXQaoLxFGE/o8taDGSrkyIcYTBoh9o7ZBxvO SqUWAt2vPbGVyc6XspyuVtgHgEctaJO+E26QTweqdpN5JITF+fDFPNwUrFHoho4N pxpKRWbiCJSpbvbsvhdizkmfgvRw+qYJvTirF3JTfGr14DttudFwjm7sNrr0JILR XPKDUhRyWjkthZM+oDjF2HwISAGkbxcpn4PU7Tywq0uax+5KCQQn2uz4jLM2P6+9 000cvVLwhMnoUdOxuISRXeOcOWVyTO1mPfKiWnHaoO4yS3Y36OCIOe9RHGP8TTmq acb3LUIF30eQyk3KxH/tUB0ScPDKEKMiww13/Kcfr0JkdIe/BWCvV+hSQm38TLQe bTFy+wnD9kHACCwTSVVSOO+rHgJGVIyLgnpClZKWQyyJ4clH7/cORA7mTmp85Ckx IjV5Egu0bPPUMudOB5BnQ4u85RnqXavasgrLRA3JZM4+Jzl8MNy/fsFXnVBQLJJC Wlz/B7S7W8sabRogFuiqkkPmXE/QcpdKQoY3yh748QqMSl8vkA6WgndyYv1EnDDl jA5j7vSf0wKI8BHgdHBEWuEjn3X/s0S/BiPPI6puboYY90tYVJTWSQCR83QrMF3N BIcMu4+RIYu6GWnPx9npZpt0858c670ZII56np24iMse3qgHCOZxsGOenK2x7ta6 163gvaD8bu8xoeQcGVfd6IMbXWVb0+z1hvWR5HWHSalof4lMzZrDsQDKc2UA0ygh hA1+VAl1MAEHVLNCCmyG1SwRwg1PI7FfftW7YARngCZRWkJ1haj1fgy7rtYolrdv lEz/vjFD6diABx67omGgfiJhWdiKIlzsYlX1SW7yaik/Uxf1j8gTFwY34y8ekVd9 6pQTzV2V/4a48ELZl4LvelLWyt1AB3AR+/fM7YG6LYIqlo+qnLtro7Bqu8RNTNRP wcWCd04r/20ulFWMIH8pVa60C98pSdOXriWEI1KDLc0E/fCdhjW2kL+FTPLC7ORe cuzmfI27+06P/BvLZq/FAVBrDAmkioKwe6XYzTjpK1p5jZ3IrNwjAiasY1MNxCRy 5ufhQwkW//d+VUdU5m8Sm30/kXe9UkxMaetXgzPxbB7+5QFFr0bi7D1MjIrJNtTx 5g5E+UfOhqrp8ztBht9csQeFYSYabyyGX4Lh7ymVWrKCVdHlJib3M36nvOjpV/lA zf35sxFz9kaQqNK7xJdQ9Bx6TBUzLjpYhNry37vKk+SIB6Weo+LJ99mALMeX79CB osRqZqX5yrZhaQ8bbpo981nvLy5xFnpRqCuSWVZrVMBq3LQLaOvaCeyGC0V+ZN0C CU6lHlR6XQqd/IjoEN8+8aiVp6Ubw8FuD28TDaEvCltrX3ARL0xFpABsa42LgV1F 09Vi+ju7SSNDvbezN8q0EILq9xp/zNCVhMpyRCIXBq9fzHkyCZ5qMw==
-----END RSA PRIVATE KEY-----

Получаем подпись: pJ/gM4PR1/mKGuIxMvTl5pYDDjJslb0BcXFnIxijFn5qKdPd7W+2ueoctziU7omnkYp01/BlracukH1GOPWMSO+9zKuTDdFueFm1utsS0zaPFU+dmc1niGDRWE0CbCXcti/rGSTDPsnR58mwqgVkbCWxKyCDtuo5LxiKPK9mzgWTUuJ8LX6f6u42MURi5tRG6a9dc8l/+J94g0YOk911R6Lqv2jcluEvZ9ZeMMt8hyxowb0eDaCHlussu2CAyqpE9V+EUAc81Jkwv96MMSsA6UnFwEaCV/k+kwYd0jHCx94m2yWX734p9cWsBW7Fr5F0zox9Yck4GOjqe9nJMMB9jQ== 3. Теперь вам следует передать сгенерированный хэш (X-Hash) и значение подписи (X-Signature) в заголовке запроса. Запрос будет выглядеть так:

curl --request POST \
  --url https://dev.bpsprocessing.ru/payment/rest/register.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --header 'X-Hash: eYkMUF+xaYJhsETTIGsctl6DBNZha1ITN8muCcWQtZk=' \
  --header 'X-Signature: pJ/gM4PR1/mKGuIxMvTl5pYDDjJslb0BcXFnIxijFn5qKdPd7W+2ueoctziU7omnkYp01/BlracukH1GOPWMSO+9zKuTDdFueFm1utsS0zaPFU+dmc1niGDRWE0CbCXcti/rGSTDPsnR58mwqgVkbCWxKyCDtuo5LxiKPK9mzgWTUuJ8LX6f6u42MURi5tRG6a9dc8l/+J94g0YOk911R6Lqv2jcluEvZ9ZeMMt8hyxowb0eDaCHlussu2CAyqpE9V+EUAc81Jkwv96MMSsA6UnFwEaCV/k+kwYd0jHCx94m2yWX734p9cWsBW7Fr5F0zox9Yck4GOjqe9nJMMB9jQ==' \
  --data 'amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api'

Запрос должен соответствовать следующим требованиям:

Пример кода Java

Ниже приведен пример кода Java, который загружает закрытый ключ, вычисляет хэш SHA256, подписывает его с помощью закрытого ключа с паролем 12345, а затем отправляет правильный запрос register.do:

import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.PrivateKey;
import java.security.Signature;
import java.util.Base64;

import static java.net.HttpURLConnection.HTTP_OK;

public class SimpleSignatureExample {

    // This example is not production ready. It just shows how to use signatures in API.
    public static void main(String[] args) throws Exception {
        // load private key from jks
        KeyStore ks = KeyStore.getInstance("JKS");
        char[] pwd = "123456".toCharArray();
        ks.load(Files.newInputStream(Paths.get("/path/to/certificates.jks")), pwd);
        PrivateKey privateKey = (PrivateKey) ks.getKey("111111", pwd);

        // Sign
        String httpBody = "amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api";

        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initSign(privateKey);

        byte[] sha256 = digest.digest(httpBody.getBytes());
        signature.update(sha256);
        byte[] sign = signature.sign();

        // Send
        Base64.Encoder encoder = Base64.getEncoder();
        HttpsURLConnection connection = (HttpsURLConnection) new URL("https://<YOUR_DOMAIN>/payment/rest/register.do").openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.addRequestProperty("content-type", "application/x-www-form-urlencoded");
        connection.addRequestProperty("X-Hash", encoder.encodeToString(sha256));
        connection.addRequestProperty("X-Signature", encoder.encodeToString(sign));
        connection.addRequestProperty("Content-Length", String.valueOf(httpBody.getBytes().length));
        try (final DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
            outputStream.write(httpBody.getBytes());
            outputStream.flush();
        }
        connection.connect();

        InputStream inputStream = connection.getResponseCode() == HTTP_OK ? connection.getInputStream() : connection.getErrorStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
}

Пример кода Python

Ниже приведен пример кода Python, который генерирует подпись:

import OpenSSL
from OpenSSL import crypto
import base64
from hashlib import sha256
key_file = open("./priv.pem", "r")
key = key_file.read()
key_file.close()

if key.startswith('-----BEGIN '):
    pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, key)
else:
    pkey = crypto.load_pkcs12(key, password).get_privatekey()

data = “amount=2000&currency=978&userName=test_user&password=test_user_password&returnUrl=https%3A%2F%2Fmybestmerchantreturnurl.com&description=my_first_order&language=en”

sha256_hash = sha256(data.encode()).digest()
base64_hash = base64.b64encode(sha256_hash)
print(base64_hash)

sign = OpenSSL.crypto.sign(pkey, sha256_hash, "sha256")

signed_base64 = base64.b64encode(sign)
print(signed_base64)

Файл закрытого ключа для примера Python должен иметь формат:

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDdpOwhY/p9x0WmBd3HaDfCD+KYung3M8Cxrw0ozF+h//GltRdnkJD7ejsBDB6/YeIVXZeU3AyqWvsi/IfeHwnokGxVg2IMw8OPacY6o1x7W0EQtfRoZa2Cn2PMCpZhEHlIVraXZDDeg4HY26YP0FZxRbpNnpXhGbiop+Bq0wHeE3JIk53cRmwYhxdxMmvFpgNd6C3dYhmnQqLv6WSpVNDFbQxBVU+JDNyR9FQwB1dU2MadgYwFJnEssbhUkM+sXAC4Wv3qhcZek6MWeWsbFIIlyTPa1T3yrWSXIb4qFJEro4pRMmwQ72qG02p8EPx1tlveQo22TojV9WbTPtaVwQtxAgMBAAECggEBANheTGkYOYsZwgMdzPAB7BSU/0bLGdoBuoV6dqUyRdVWjqaOTwe519625uzR0R5RRqxGzlfyLKcM5Aa2cUhEEp8mhatA87G0Va8lue66VOjTH4RZq/tR7v0J7hlc6Ipe05brl5nYo+BEjriNS+I6Jnizcfid7IBvZJW4NFr0G+mWTxl2BhUK/Mk895n8hg9QtgSRoMNO4jK2f0vJrH4hBHehTYpjHx+QhbUyIvsp60bEnNOXzl054TuWBVCYAQHcHTTZowWMY0s1Z0kGNxwsqQm4amW/v+1EqCF4fjRDrU6v/kjDKxGFx9GJUktKZAe2T8e2LySjgGpJO5g4AdxIVpUCgYEA8x9te+i2ijxoS3kIUSwXaPq5EdKGWGl5mW8KZHzmt9LB/CqTKvSOiDkMGoAx/76t5QmKOYojP+Vsc2XdfQfhT6d00MGTdiPBd+8//MmQQ07/D1/PV58Jd1O8bQFU4fZCMpQl/8Azp9ix/NEx0sHDv2KigLfFMBVGeJxwSoU2JzMCgYEA6WJC0BDTA9vx+i+p9i/41f7ozpQuYey5sxdZa2emOSYen6ptxUFLAYXMxVDaBJ89PMUa8GzWoXHhgXzbuRJk74IzUhWgPpneS4HTr5KDStJh2TqWWVLwEIgLwxvtuw0i9uSEU64D/Czzm801lrOhVgmZsWwNpFtP8ujz0v84MssCgYEA1P4YhbB3kx2e5VfwgGSXUcIttr5wMi6deF0+hpCh9DNw/QEzkzNTV2ZbAzCCHSKo5/n2nbg2b3kIDQUWCL6JlqYHAghErwBeMztoHIddmoovjAGM/Z93xJGYhwremWOL1RHTRH7XAlomfG2tL43PdvDrmsbkut44sdujyLVxnt8CgYBirK3tBMADKLJVgmOM+FlwORe7iAFYW9tj8iJXe/pWvVxDS66fsOyCl0ytvHKBc8ZTdE7gilPw7JJYyi6oQDO25EjIkuYusaXALQMQf5TNRMgkLVY2LA/eHXdDpgJMjNBUrOeZ7cA3ldXl8MyQjCBRnTuDPVlDPWw/GulEM65SIwKBgQDIEv8XK2YBkZrr+0fZSFTQAeK4R7Ve3z4hbpHhJi41YanCNaEWoeYAuQd6/b/QLwABllvfJBDYCNnF8heUxqISpyWd+FZ8nhZtxBoKj5l80czTcutIz/M+ETcvl8FqnMBsoCdp1wodqaLkOx6DIldgKLze6AqKXl5lHUsU4mvVqg==
-----END PRIVATE KEY-----

Регистрация заказа

Регистрация заказа

 

Для регистрации заказа используется запрос https://dev.bpsprocessing.ru/payment/rest/register.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

Параметры запроса

Обязательность Название Тип Описание
Условие

userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Обязательно

returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

dynamicCallbackUrl String [1..512] Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

cardholderName String [1..150] Имя держателя карты латинскими буквами. При передаче данного параметра имя держателя карты будет отображено на платежной странице.
Необязательно

jsonParams Object Набор дополнительных атрибутов произвольной формы, структура:
jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
Некоторые предопределенные атрибуты jsonParams:
  • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
  • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
  • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
  • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
  • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
  • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
Необязательно

sessionTimeoutSecs Integer [1..9] Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта, или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
Необязательно

expirationDate String [19] Дата и время истечения срока действия заказа. Формат: yyyy-MM-ddTHH:mm:ss.
Если этот параметр не передается в запросе, то для определения времени истечения срока действия заказа используется параметр sessionTimeoutSecs.
Необязательно

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
Необязательно

features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
  • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
  • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
  • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
  • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
  • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
Необязательно

postAddress String [1..255] Адрес доставки.
Необязательно

orderBundle Object Объект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.
Необязательно

additionalOfdParams Object Некоторые параметры additionalOfdParams дублируются в cartItems.items.itemAttributes. additionalOfdParams применяется ко всем идентификаторам позиций, а cartItems.items.itemAttributes применяется к каждой отдельной позиции. Если значения additionalOfdParams и cartItems.items.itemAttributes не совпадают, тогда cartItems.items.itemAttributes (то есть, параметры отдельной позиции) будут иметь приоритет.
Описание вложенных элементов приведено ниже.
Необязательно

taxSystem Integer Система налогообложения, доступны следующие значения::
  • 0 - общая;
  • 1 - упрощенная, доход;
  • 2 - упрощенная, доходы минус расходы;
  • 3 - единый налог на вмененный доход;
  • 4 - единый сельскохозяйственный налог;
  • 5 - патентная система налогообложения.
Необязательно

feeInput Integer [0..8] Размер комиссии в минимальных единицах валюты. Функциональность должна быть включена на уровне продавца в шлюзе.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Адрес электронной почты не проверяется при регистрации, он будет проверен позже при оплате.
Необязательно

merchantInn String [1..16] ИНН дочернего мерчанта, от имени которого будет создан заказ.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Описание параметров в объекте orderBundle:

Обязательность Название Тип Описание
Необязательно

orderCreationDate String [19] Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
Необязательно

customerDetails Object Блок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
Обязательно

cartItems Object Объект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.
Необязательно

agent Object Объект с информацией об агенте. Описание вложенных элементов приведено ниже.
Необязательно

supplierPhones Array of strings [1..19] Массив телефонных номеров поставщика в формате +N.

Ниже перечислены параметры блока agent (данные об агенте).

Обязательность Название Тип Описание
Необязательно

agentType Integer [1..2] Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

payingOperation String [1..24] Название транзакции платежного агента.
Необязательно

payingPhones Array of strings [1..19] Массив телефонных номеров платежного агента в формате +N.
Необязательно

paymentsOperatorPhones Array of strings [1..19] Массив телефонных номеров оператора по приему платежей в формате +N.
Необязательно

MTOperatorPhones Array of strings [1..19] Массив телефонных номеров оператора перевода в формате +N.
Необязательно

MTOperatorName String [1..64] Наименование оператора перевода.
Необязательно

MTOperatorAddress String [1..256] Адрес оператора перевода.
Необязательно

MTOperatorInn String [10..12] ИНН оператора перевода.

Описание параметров в объекте customerDetails:

Обязательность Название Тип Описание
Условие

email String [1..40] Электронный адрес клиента. Можно указать несколько адресов электронной почты через запятую и без пробелов.
Обязательно следует передать один из двух параметров: email или phone.
Условие

phone String [7..15] Номер телефона владельца карты.
Предпочтительно передавать номер телефона в параметре orderPayerData.mobilePhone (но если вы передадите его в этом блоке, к нему применятся те же правила).
Необязательно

contact String [0..40] Предпочитаемый клиентом способ связи.
Необязательно fullName String [1..100] ФИО плательщика.
Указывать ФИО плательщика рекомендуем только, если это требуется ФНС. В остальных случаях передавать этот параметр не нужно, т.к. это может привести к ошибке из-за проверки данных плательщика (см. Проверка данных плательщика при передаче корзины).
Необязательно

passport String [1..100] Серия и номер паспорта плательщика в следующем формате: 2222888888
Необязательно

deliveryInfo Object Объект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
Необязательно

inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.

Проверка данных плательщика при передаче корзины

Согласно требованиям ФНС, при передаче ФИО плательщика должно быть передано либо ИНН плательщика, либо его паспортные данные.

В связи с этим, если в запросе с продуктовой корзиной передается какой-либо из параметров (в блоках orderBundle или additionalOfdParams):

то выполняется проверка на обязательное наличие ИНН плательщика ИЛИ набора параметров Дата рождения, Код документа, Данные документа. Если это условие не выполняется, запрос будет обработан с ошибкой.

Описание параметров в объекте deliveryInfo:

Обязательность Название Тип Описание
Необязательно

deliveryType String [1..20] Способ доставки.
Обязательно

country String [2] Двухбуквенный код страны доставки.
Обязательно

city String [0..40] Город назначения.
Обязательно

postAddress String [1..255] Адрес доставки.

Описание параметров в объекте cartItems:

Обязательность Название Тип Описание
Обязательно

items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте items:

Обязательность Название Тип Описание
Обязательно

positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
Обязательно

name String [1..255] Наименование или описание товарной позиции в свободной форме.
Необязательно

itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
Обязательно

quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
Необязательно

itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
Необязательно

itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
Необязательно

depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
Необязательно

itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
Обязательно

itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
Необязательно

tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
Необязательно

itemAttributes Object Объект, содержащий атрибуты товарной позиции.

Описание параметров в объекте quantity:

Обязательность Название Тип Описание
Обязательно

value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
Обязательно

measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

Возможные значения параметра measure:

Значение Описание
0 Применяется к позициям, которые могут быть реализованы индивидуально или отдельными единицами, а также если объект платежа является предметом, подлежащим обязательной идентификационной маркировке.
10 Грамм
11 Килограмм
12 Тонна
20 Сантиметр
21 Дециметр
22 Метр
30 Квадратный сантиметр
31 Квадратный дециметр
32 Квадратный метр
40 Миллилитр
41 Литр
42 Кубический метр
50 Киловатт час
51 Гигакалория
70 День
71 Час
72 Минута
73 Секунда
80 Килобайт
81 Мегабайт
82 Гигабайт
83 Терабайт
255 Применяется к другим единицам измерения

Описание параметров в объекте itemDetails:

Обязательность Название Тип Описание
Необязательно

itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте itemDetailsParams:

Обязательность Название Тип Описание
Обязательно

value String [1..2000] Дополнительная информация по товарной позиции.
Обязательно

name String [1..255] Наименование параметра описания детализации товарной позиции

Описание параметров объекта tax:

Обязательность Название Тип Описание
Обязательно

taxType Integer Ставка НДС, доступны следующие значения:
  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС по ставке 10%;
  • 4 – НДС по расчетной ставке 10/110;
  • 6 – НДС по ставке 20%;
  • 7 – НДС по расчетной ставке 20/120;
  • 10 – НДС по ставке 5%;
  • 11 – НДС по расчетной ставке 5/105;
  • 12 – НДС по ставке 7%;
  • 13 – НДС по расчетной ставке 7/107;
  • 14 - НДС по ставке 22%:
  • 15 - НДС по расчетной ставке 22/122.
Обязательно

taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

Описание параметров в объекте itemAttributes:

Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
Обязательность Название Тип Описание
Обязательно

paymentMethod Integer [1..2] Тип платежа, доступные значения:
  • 1 - полная предоплата;
  • 2 - частичная предоплата;
  • 3 - аванс;
  • 4 - полная оплата;
  • 5 - частичная оплата с последующей оплатой в кредит;
  • 6 - без оплаты с последующей оплатой в кредит;
  • 7 - оплата с последующей оплатой в кредит.
Обязательно

paymentObject Integer Объект платежа, доступные значения:
  • 1 - товар (значение по умолчанию);
  • 2 - подакцизный товар;
  • 3 - работа;
  • 4 - услуга;
  • 5 - ставка азартной игры;
  • 6 - выигрыш азартной игры;
  • 7 - лотерейный билет;
  • 8 - выигрыш лотереи;
  • 9 - предоставление РИД;
  • 10 - платеж;
  • 11 - агентское вознаграждение;
  • 12 - составной предмет расчета;
  • 13 - иной предмет расчета;
  • 14 - имущественное право;
  • 15 - внереализационный доход;
  • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
  • 17 - торговый сбор: о суммах уплаченного торгового сбора;
  • 18 - курортный сбор.

Указанные выше значения доступны для ФФД 1.05.
Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
  • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
  • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
  • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
  • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
Условие

nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
Необязательно

markQuantity Object Дробное количество маркируемого товара. См. вложенные параметры.
Необязательно

userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
Необязательно

agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
Необязательно

supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте agent_info:

Обязательность Название Тип Описание
Обязательно

type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
Необязательно

paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
Необязательно

MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

Описание параметров в объекте paying:

Обязательность Название Тип Описание
Необязательно

operation String [1..24] Название транзакции платежного агента.
Необязательно

phones Array of strings Массив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте paymentsOperator:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте MTOperator:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

name String [1..256] Наименование оператора перевода.
Необязательно

address String [1..256] Адрес оператора перевода.
Необязательно

inn String [10..12] ИНН оператора перевода.

Описание параметров в объекте supplier_info:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

name String [1..256] Наименование поставщика.
Необязательно

inn Integer [10..12] ИНН поставщика
Необязательно

documentId String Уникальный идентификатор платежного документа в системе поставщика.
Необязательно

payerName String ФИО плательщика.
Необязательно

payerLs String Лицевой счет плательщика в системе поставщика.
Необязательно

ls String Единый лицевой счет поставщика.
Необязательно

bankBic String БИК банка получателя, поставщика.
Необязательно

bankName String Название банка получателя, поставщика.
Необязательно

kpp String Код причины постановки на учет (КПП) получателя платежа, поставщика.
Необязательно

rs String Банковский счет получателя платежа, поставщика.
Необязательно

commission String Размер комиссии в минимальных денежных единицах на стороне поставщика.

Описание параметров объекта markQuantity.

Обязательность Название Тип Описание
Обязательно

numerator Integer [1..12] Числитель дробной части объекта платежа.
Обязательно

denominator Integer [1..12] Знаменатель дробной части объекта платежа.

Описание параметров в объекте additionalOfdParams:

Обязательность Название Тип Описание
Необязательно

agent_info.type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

agent_info.paying.operation String [1..24] Название транзакции платежного агента.
Необязательно

agent_info.paying.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
Необязательно

agent_info.paymentsOperator.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
Необязательно

agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
Необязательно

agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
Необязательно

agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
Необязательно

agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

cashier String [1..256] Имя кассира.
Необязательно

additional_check_props String [1..16] Дополнительные свойства чека.
Необязательно

additional_user_props.name String [1..24] Название дополнительного свойства пользователя
Необязательно

additional_user_props.value String [1..24] Значение дополнительного свойства пользователя
Необязательно

cashier_inn String [10..12] ИНН кассира.
Необязательно

client.address String [1..256] Адрес клиента.
Необязательно

client.birth_date String [10] Дата рождения клиента в формате дд.мм.гггг.
Необязательно

client.citizenship String [3] Цифровой код страны, гражданином которой является покупатель (клиент).
Необязательно

client.document_code String [2] Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
Необязательно

client.passport_number String [11] Серия и номер паспорта плательщика.
Необязательно

client.email String [1..64] Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.phone String [19] Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.inn String [12] ИНН клиента.
Необязательно

client.name String [1..256] Имя клиента.
Необязательно

operatingcheckprops.name String Идентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
Необязательно

operatingcheckprops.timestamp String [1..19] Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
Необязательно

operatingcheckprops.value String [1..64] Данные транзакции.
Необязательно

sectoralcheckprops.date String [10] Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
Необязательно

sectoralcheckprops.federalid String Идентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
Необязательно

sectoralcheckprops.number String [32] Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
Необязательно

sectoralcheckprops.value String [1..256] Состав значений, определенных нормативным актом федерального органа исполнительной власти
Условие

company.automat_number String Номер автомата.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга и транспорта;
  • Формат фискальных документов 1.2 – для вендинга и транспорта.
Условие

company.location String Адрес для выставления счета.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Условие

company.payment_address String Адрес для получения счетов.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Необязательно

use_legacy_vat boolean Параметр используется в случае, если необходимо передать устаревшее значение НДС. Возможные значения:
  • true- если необходимо передать устаревшее значение НДС
  • false - нет необходимости

Параметры ответа

Обязательность Название Тип Описание
Необязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

formUrl String [1..512] URL платежной формы, на которую будет перенаправлен покупатель. URL не возвращается, если регистрация заказа не прошла из-за ошибки, указанной в errorCode.
Необязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

Примеры

Пример запроса

curl --request POST \
  --url https://dev.bpsprocessing.ru/payment/rest/register.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=123456 \
  --data userName=test_user \
  --data password=test_user_password \
  --data orderNumber=1234567890ABCDEF \
  --data returnUrl=https://mybestmerchantreturnurl.com \
  --data failUrl=https://mybestmerchantfailurl.com \
  --data email=test@test.com \
  --data clientId=259753456 \
  --data features=FORCE_SSL \
  --data features=FORCE_TDS \
  --data language=en \
  --data 'jsonParams={"param_1_name":"param_1_value","param_2_name":"param_2_value"}'

Пример ответа - успех

{
  "orderId": "01491d0b-c848-7dd6-a20d-e96900a7d8c0",
  "formUrl": "https://dev.bpsprocessing.ru/payment/payment/merchants/ecom/payment_en.html?mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0"
}

Пример ответа - ошибка

{
  "errorCode": "1",
  "errorMessage": "Order number is duplicated, order with given order number is processed already"
}

Регистрация заказа с предавторизацией

Для запроса регистрации заказа с предавторизацией используется метод https://dev.bpsprocessing.ru/payment/rest/registerPreAuth.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

Параметры запроса

Обязательность Название Тип Описание
Условие

userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Обязательно

returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

dynamicCallbackUrl String [1..512] Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

cardholderName String [1..150] Имя держателя карты латинскими буквами. При передаче данного параметра имя держателя карты будет отображено на платежной странице.
Необязательно

jsonParams Object Набор дополнительных атрибутов произвольной формы, структура:
jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
Некоторые предопределенные атрибуты jsonParams:
  • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
  • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
  • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
  • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
  • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
  • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
Необязательно

sessionTimeoutSecs Integer [1..9] Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта, или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
Необязательно

expirationDate String [19] Дата и время истечения срока действия заказа. Формат: yyyy-MM-ddTHH:mm:ss.
Если этот параметр не передается в запросе, то для определения времени истечения срока действия заказа используется параметр sessionTimeoutSecs.
Необязательно

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
Необязательно

features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
  • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
  • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
  • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
  • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
  • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

postAddress String [1..255] Адрес доставки.
Необязательно

orderBundle Object Объект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.
Необязательно

additionalOfdParams Object Некоторые параметры additionalOfdParams дублируются в cartItems.items.itemAttributes. additionalOfdParams применяется ко всем идентификаторам позиций, а cartItems.items.itemAttributes применяется к каждой отдельной позиции. Если значения additionalOfdParams и cartItems.items.itemAttributes не совпадают, тогда cartItems.items.itemAttributes (то есть, параметры отдельной позиции) будут иметь приоритет.
Описание вложенных элементов приведено ниже.
Необязательно

taxSystem Integer Система налогообложения, доступны следующие значения::
  • 0 - общая;
  • 1 - упрощенная, доход;
  • 2 - упрощенная, доходы минус расходы;
  • 3 - единый налог на вмененный доход;
  • 4 - единый сельскохозяйственный налог;
  • 5 - патентная система налогообложения.
Необязательно

feeInput Integer [0..8] Размер комиссии в минимальных единицах валюты. Функциональность должна быть включена на уровне продавца в шлюзе.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Адрес электронной почты не проверяется при регистрации, он будет проверен позже при оплате.
Необязательно

merchantInn String [1..16] ИНН дочернего мерчанта, от имени которого будет создан заказ.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Описание параметров в объекте orderBundle:

Обязательность Название Тип Описание
Необязательно

orderCreationDate String [19] Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
Необязательно

customerDetails Object Блок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
Обязательно

cartItems Object Объект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.
Необязательно

agent Object Объект с информацией об агенте. Описание вложенных элементов приведено ниже.
Необязательно

supplierPhones Array of strings [1..19] Массив телефонных номеров поставщика в формате +N.

Описание параметров в объекте customerDetails:

Обязательность Название Тип Описание
Условие

email String [1..40] Электронный адрес клиента. Можно указать несколько адресов электронной почты через запятую и без пробелов.
Обязательно следует передать один из двух параметров: email или phone.
Условие

phone String [7..15] Номер телефона владельца карты.
Предпочтительно передавать номер телефона в параметре orderPayerData.mobilePhone (но если вы передадите его в этом блоке, к нему применятся те же правила).
Необязательно

contact String [0..40] Предпочитаемый клиентом способ связи.
Необязательно fullName String [1..100] ФИО плательщика.
Указывать ФИО плательщика рекомендуем только, если это требуется ФНС. В остальных случаях передавать этот параметр не нужно, т.к. это может привести к ошибке из-за проверки данных плательщика (см. Проверка данных плательщика при передаче корзины).
Необязательно

passport String [1..100] Серия и номер паспорта плательщика в следующем формате: 2222888888
Необязательно

deliveryInfo Object Объект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
Необязательно

inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.

Проверка данных плательщика при передаче корзины

Согласно требованиям ФНС, при передаче ФИО плательщика должно быть передано либо ИНН плательщика, либо его паспортные данные.

В связи с этим, если в запросе с продуктовой корзиной передается какой-либо из параметров (в блоках orderBundle или additionalOfdParams):

то выполняется проверка на обязательное наличие ИНН плательщика ИЛИ набора параметров Дата рождения, Код документа, Данные документа. Если это условие не выполняется, запрос будет обработан с ошибкой.

Описание параметров в объекте deliveryInfo:

Обязательность Название Тип Описание
Необязательно

deliveryType String [1..20] Способ доставки.
Обязательно

country String [2] Двухбуквенный код страны доставки.
Обязательно

city String [0..40] Город назначения.
Обязательно

postAddress String [1..255] Адрес доставки.

Описание параметров в объекте cartItems:

Обязательность Название Тип Описание
Обязательно

items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте items:

Обязательность Название Тип Описание
Обязательно

positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
Обязательно

name String [1..255] Наименование или описание товарной позиции в свободной форме.
Необязательно

itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
Обязательно

quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
Необязательно

itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
Необязательно

itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
Необязательно

depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
Необязательно

itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
Обязательно

itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
Необязательно

tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
Необязательно

itemAttributes Object Объект, содержащий атрибуты товарной позиции.

Описание параметров в объекте quantity:

Обязательность Название Тип Описание
Обязательно

value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
Обязательно

measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

Описание параметров в объекте itemDetails:

Обязательность Название Тип Описание
Необязательно

itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте itemDetailsParams:

Обязательность Название Тип Описание
Обязательно

value String [1..2000] Дополнительная информация по товарной позиции.
Обязательно

name String [1..255] Наименование параметра описания детализации товарной позиции

Описание параметров объекта tax:

Обязательность Название Тип Описание
Обязательно

taxType Integer Ставка НДС, доступны следующие значения:
  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС по ставке 10%;
  • 4 – НДС по расчетной ставке 10/110;
  • 6 – НДС по ставке 20%;
  • 7 – НДС по расчетной ставке 20/120;
  • 10 – НДС по ставке 5%;
  • 11 – НДС по расчетной ставке 5/105;
  • 12 – НДС по ставке 7%;
  • 13 – НДС по расчетной ставке 7/107;
  • 14 - НДС по ставке 22%:
  • 15 - НДС по расчетной ставке 22/122.
Обязательно

taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

Описание параметров в объекте itemAttributes:

Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
Обязательность Название Тип Описание
Обязательно

paymentMethod Integer [1..2] Тип платежа, доступные значения:
  • 1 - полная предоплата;
  • 2 - частичная предоплата;
  • 3 - аванс;
  • 4 - полная оплата;
  • 5 - частичная оплата с последующей оплатой в кредит;
  • 6 - без оплаты с последующей оплатой в кредит;
  • 7 - оплата с последующей оплатой в кредит.
Обязательно

paymentObject Integer Объект платежа, доступные значения:
  • 1 - товар (значение по умолчанию);
  • 2 - подакцизный товар;
  • 3 - работа;
  • 4 - услуга;
  • 5 - ставка азартной игры;
  • 6 - выигрыш азартной игры;
  • 7 - лотерейный билет;
  • 8 - выигрыш лотереи;
  • 9 - предоставление РИД;
  • 10 - платеж;
  • 11 - агентское вознаграждение;
  • 12 - составной предмет расчета;
  • 13 - иной предмет расчета;
  • 14 - имущественное право;
  • 15 - внереализационный доход;
  • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
  • 17 - торговый сбор: о суммах уплаченного торгового сбора;
  • 18 - курортный сбор.

Указанные выше значения доступны для ФФД 1.05.
Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
  • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
  • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
  • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
  • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
Условие

nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
Необязательно

markQuantity Object Дробное количество маркируемого товара. См. вложенные параметры.
Необязательно

userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
Необязательно

agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
Необязательно

supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте agent_info:

Обязательность Название Тип Описание
Обязательно

type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
Необязательно

paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
Необязательно

MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

Описание параметров в объекте paying:

Обязательность Название Тип Описание
Необязательно

operation String [1..24] Название транзакции платежного агента.
Необязательно

phones Array of strings Массив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте paymentsOperator:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте MTOperator:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

name String [1..256] Наименование оператора перевода.
Необязательно

address String [1..256] Адрес оператора перевода.
Необязательно

inn String [10..12] ИНН оператора перевода.

Описание параметров в объекте supplier_info:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

name String [1..256] Наименование поставщика.
Необязательно

inn Integer [10..12] ИНН поставщика
Необязательно

documentId String Уникальный идентификатор платежного документа в системе поставщика.
Необязательно

payerName String ФИО плательщика.
Необязательно

payerLs String Лицевой счет плательщика в системе поставщика.
Необязательно

ls String Единый лицевой счет поставщика.
Необязательно

bankBic String БИК банка получателя, поставщика.
Необязательно

bankName String Название банка получателя, поставщика.
Необязательно

kpp String Код причины постановки на учет (КПП) получателя платежа, поставщика.
Необязательно

rs String Банковский счет получателя платежа, поставщика.
Необязательно

commission String Размер комиссии в минимальных денежных единицах на стороне поставщика.

Возможные значения параметра measure:

Значение Описание
0 Применяется к позициям, которые могут быть реализованы индивидуально или отдельными единицами, а также если объект платежа является предметом, подлежащим обязательной идентификационной маркировке.
10 Грамм
11 Килограмм
12 Тонна
20 Сантиметр
21 Дециметр
22 Метр
30 Квадратный сантиметр
31 Квадратный дециметр
32 Квадратный метр
40 Миллилитр
41 Литр
42 Кубический метр
50 Киловатт час
51 Гигакалория
70 День
71 Час
72 Минута
73 Секунда
80 Килобайт
81 Мегабайт
82 Гигабайт
83 Терабайт
255 Применяется к другим единицам измерения

Описание параметров объекта markQuantity.

Обязательность Название Тип Описание
Обязательно

numerator Integer [1..12] Числитель дробной части объекта платежа.
Обязательно

denominator Integer [1..12] Знаменатель дробной части объекта платежа.

Описание параметров в объекте additionalOfdParams:

Обязательность Название Тип Описание
Необязательно

agent_info.type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

agent_info.paying.operation String [1..24] Название транзакции платежного агента.
Необязательно

agent_info.paying.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
Необязательно

agent_info.paymentsOperator.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
Необязательно

agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
Необязательно

agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
Необязательно

agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
Необязательно

agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

cashier String [1..256] Имя кассира.
Необязательно

additional_check_props String [1..16] Дополнительные свойства чека.
Необязательно

additional_user_props.name String [1..24] Название дополнительного свойства пользователя
Необязательно

additional_user_props.value String [1..24] Значение дополнительного свойства пользователя
Необязательно

cashier_inn String [10..12] ИНН кассира.
Необязательно

client.address String [1..256] Адрес клиента.
Необязательно

client.birth_date String [10] Дата рождения клиента в формате дд.мм.гггг.
Необязательно

client.citizenship String [3] Цифровой код страны, гражданином которой является покупатель (клиент).
Необязательно

client.document_code String [2] Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
Необязательно

client.passport_number String [11] Серия и номер паспорта плательщика.
Необязательно

client.email String [1..64] Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.phone String [19] Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.inn String [12] ИНН клиента.
Необязательно

client.name String [1..256] Имя клиента.
Необязательно

operatingcheckprops.name String Идентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
Необязательно

operatingcheckprops.timestamp String [1..19] Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
Необязательно

operatingcheckprops.value String [1..64] Данные транзакции.
Необязательно

sectoralcheckprops.date String [10] Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
Необязательно

sectoralcheckprops.federalid String Идентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
Необязательно

sectoralcheckprops.number String [32] Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
Необязательно

sectoralcheckprops.value String [1..256] Состав значений, определенных нормативным актом федерального органа исполнительной власти
Условие

company.automat_number String Номер автомата.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга и транспорта;
  • Формат фискальных документов 1.2 – для вендинга и транспорта.
Условие

company.location String Адрес для выставления счета.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Условие

company.payment_address String Адрес для получения счетов.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Необязательно

use_legacy_vat boolean Параметр используется в случае, если необходимо передать устаревшее значение НДС. Возможные значения:
  • true- если необходимо передать устаревшее значение НДС
  • false - нет необходимости

Параметры ответа

Обязательность Название Тип Описание
Необязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Необязательно

formUrl String [1..512] URL платежной формы, на которую будет перенаправлен покупатель. URL не возвращается, если регистрация заказа не прошла из-за ошибки, указанной в errorCode.

Примеры

Пример запроса

curl --request POST \
  --url https://dev.bpsprocessing.ru/payment/rest/registerPreAuth.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=https://mybestmerchantreturnurl.com \
  --data orderNumber=1255555555555 \
  --data clientId=259753456 \
  --data language=en

Пример ответа

{
  "orderId": "01492437-d2fb-77fa-8db7-9e2900a7d8c0",
  "formUrl": "https://dev.bpsprocessing.ru/payment/merchants/pay/payment_en.html?mdOrder=01492437-d2fb-77fa-8db7-9e2900a7d8c0"
}

Прямые платежи

Оплата заказа

Для оплаты ранее зарегистрированного заказа используется запрос https://dev.bpsprocessing.ru/payment/rest/paymentorder.do.
Запрос используется в режиме внутренний MPI/3DS Server, для этого не требуется наличие дополнительных разрешений и/или сертификаций.
Запрос используется в режиме внешнего MPI/3DS Server если у вас есть договор с международной платежной системой или сертификат, который позволяет самостоятельно проводить аутентификацию 3DS. Это означает, что вы можете использовать собственный MPI/3DS Server для аутентификации клиента с использованием технологии 3D Secure. Дополнительная информация об оплате с собственным MPI/3DS Server доступна здесь.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

Оплата заказа (внутренний MPI/3DS Server)

Оплата заказа происходит с передачей карточных платежных данных, а так же с использованием технологии аутентификации 3DS (применение аутентификации регулируется настройками, регулируемых службой поддержки).

Параметры запроса

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Обязательно

MDORDER String [1..36] Номер заказа в платежном шлюзе.
Обязательно

$PAN Integer [1..19] Номер платежной карты. Обязательный, если не передан seToken.
Обязательно

$CVC String [3] Код CVC/CVV2 на обратной стороне карты. Обязательный, если не передан seToken.
Допускаются только цифры.
Обязательно

YYYY Integer [4] Год окончания действия платежной карты. Если seToken не передан, обязательно необходимо передать либо $EXPIRY, либо YYYY и MM.
Обязательно

MM Integer [2] Месяц окончания действия платежной карты. Если seToken не передан, обязательно необходимо передать либо $EXPIRY, либо YYYY и MM.
Условие

$EXPIRY Integer [6] Срок действия карты в следующем формате: YYYYMM. Переопределяет параметры YYYY и MM. Если seToken не передан, обязательно необходимо передать либо $EXPIRY, либо YYYY и MM.
Условие

seToken String Зашифрованные данные карты, которые заменяют параметры $PAN, $CVC и $EXPIRY (или YYYY,MM). Обязательно, если используется вместо данных карты.
Обязательные параметры для строки seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Подробнее о генерации seToken см. здесь.
Если seToken содержит шифрованные данные о связке (bindingId), для оплаты следует использовать запрос paymentOrderBinding.do.
Обязательно

TEXT String [1..512] Имя держателя карты.
Обязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

bindingNotNeeded Boolean Допустимые значения:
  • true- создание связки после совершения платежа отключено (связка – это идентификатор клиента, переданный в запросе на регистрацию заказа, который после запроса оплаты будет удален из деталей заказа);
  • false – в случае успешной оплаты может быть создана связка (при соблюдении необходимых условий). Это значение по умолчанию.
Необязательно

jsonParams Object Поля дополнительной информации для последующего хранения, передаются в следующем виде: jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.
Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
Если вы используете внешний MPI/3DS Server, платежный шлюз ожидает, что каждый запрос paymentOrder будет включать ряд дополнительных параметров, таких как eci, xid, cavv и пр. Более подробная информация здесь.
Чтобы инициировать 3RI аутентификацию, вам может быть необходимо передать ряд дополнительных параметров (см. 3RI аутентификация).
Некоторые предопределенные атрибуты jsonParams:
  • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
  • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
  • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
  • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
  • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
  • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
Необязательно

threeDSSDK Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
Необязательно

clientBrowserInfo Object Блок данных о браузере клиента, который отправляется на ACS во время 3DS аутентификации. Этот блок можно передавать, только если включена специальная настройка (обратитесь в команду поддержки). См. вложенные параметры.
Условие

originalPaymentNetRefNum String Идентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
Условие

originalPaymentDate String Дата инициирующей транзакции. Значение в формате Unix timestamp в миллисекундах. Передается, если значение параметра tii = R,U или F.
Необязательно

acsInIFrame Boolean Флаг, показывающий, что для финишного URL будет возвращаться iFrame версия. Возможные значения true или false. Для подключения данной функциональности обратитесь в службу поддержки.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
F Внеплановый платеж (CIT) Последующая Покупатель Клиент выбирает карту вместо ручного ввода Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку.
U Внеплановый платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку. Используется только для одностадийных платежей.
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
R Рекуррентный платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Рекуррентная операция, использующая сохраненную связку. Используется только для одностадийных платежей.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
I Платеж по рассрочке (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Операция рассрочки, использующая сохраненную связку. Используется только для одностадийных платежей.

Ниже приведены параметры блока clientBrowserInfo (данные о браузере клиента).

Обязательность Название Тип Описание
Необязательно userAgent String [1..2048] Агент браузера.
Необязательно OS String Операционная система.
Необязательно OSVersion String Версия операционной системы.
Необязательно browserAcceptHeader String [1..2048] Заголовок Accept, который сообщает серверу, какие форматы (или MIME-типы) поддерживает браузер.
Необязательно browserIpAddress String [1..45] IP-адрес браузера.
Необязательно browserLanguage String [1..8] Язык браузера.
Необязательно browserTimeZone String Часовой пояс браузера.
Необязательно browserTimeZoneOffset String [1..5] Смещение часового пояса в минутах между локальным временем пользователя и UTC.
Необязательно colorDepth String [1..2] Глубина цвета экрана, в битах.
Необязательно fingerprint String Отпечаток браузера - уникальный цифровой идентификатор браузера.
Необязательно isMobile Boolean Возможные значения: true или false. Флаг, указывающий на то, что используется мобильное устройство.
Необязательно javaEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка java.
Необязательно javascriptEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка javascript.
Необязательно plugins String Список плагинов, используемых в браузере, через запятую.
Необязательно screenHeight Integer [1..6] Высота экрана в пикселях.
Необязательно screenWidth Integer [1..6] Ширина экрана в пикселях.
Необязательно screenPrint String Данные о параметрах печати браузера, включая разрешение, глубину цвета, плотность пикселей.

Пример блока clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

При аутентификации по протоколу 3DS2 также передаются следующие параметры:

Обязательность Название Тип Описание
Необязательно

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSVer2FinishUrl String [1..512] URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
Необязательно

threeDSMethodNotificationUrl String [1..512] URL-адрес для отправки уведомления о прохождении проверки на ACS.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

info String В случае успешного ответа. Результат попытки оплаты. Ниже приведены возможные значения.
  • Ваш платеж обработан, происходит переадресация...
  • Операция отклонена. Проверьте введенные данные, достаточность средств на карте и повторите операцию. Происходит переадресация...
  • Извините, платеж не может быть совершен. Происходит переадресация...
  • Операция отклонена. Обратитесь в магазин. Происходит переадресация...
  • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...
  • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...
  • Нет связи с банком. Повторите позже. Происходит переадресация...
  • Истек срок ожидания ввода данных. Происходит переадресация...
  • Не получен ответ от банка. Повторите позже. Происходит переадресация...
Необязательно

redirect String [1..512] Этот параметр возвращается, если платеж прошел успешно и для платежа не проводилась проверка карты на вовлеченность в 3-D Secure. Продавцы могут использовать его, если хотят перенаправить пользователя на страницу платежного шлюза. Если продавец использует собственную страницу, это значение можно игнорировать.
Необязательно

termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
Необязательно

acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
Необязательно

paReq String [1..255] PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.

При аутентификации по протоколу 3DS2 в ответ на первый запрос приходят следующие параметры:

Обязательность Название Тип Описание
Обязательно

is3DSVer2 Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
Обязательно

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSMethodUrl String [1..512] URL-адрес сервера ACS для сбора данных браузера.
Обязательно

threeDSMethodUrlServer String [1..512] URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
Необязательно

threeDSMethodDataPacked String [1..1024] Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
Необязательно

threeDSMethodURLServerDirect String [1..512] URL-адрес 3dsmethod.do для выполнения метода 3DS на сервере 3DS через платежный шлюз (при наличии соответствующего разрешения на уровне продавца).

Ниже приведены параметры, которые должны присутствовать в ответе, после повторного запроса платежа и необходимости перенаправления клиента в ACS при аутентификации по протоколу 3DS2:

Обязательность Название Тип Описание
Условие

acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
Условие

packedCReq String Запакованные данные challenge request. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS. Подробнее см. Редирект на ACS.

Примеры

Пример запроса

Пример первого запроса:

curl --request POST \
  --url https://dev.bpsprocessing.ru/payment/rest/paymentorder.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data MDORDER=64d3b8c2-5d87-7d92-bd20-d8db011b4f5b \
  --data '$PAN=4000001111111118' \
  --data '$CVC=123' \
  --data YYYY=2030 \
  --data MM=12 \
  --data 'TEXT=TEST CARDHOLDER' \
  --data language=en
  --data 'jsonParams={"param_1_name":"param_1_value","param_2_name":"param_2_value"}'

Пример второго запроса:

curl --request POST \
  --url https://dev.bpsprocessing.ru/payment/rest/paymentorder.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data MDORDER=64d3b8c2-5d87-7d92-bd20-d8db011b4f5b \
  --data '$PAN=4000001111111118' \
  --data '$CVC=123' \
  --data YYYY=2030 \
  --data MM=12 \
  --data 'TEXT=TEST CARDHOLDER' \
  --data language=en \
  --data threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6

Примеры ответа

Пример ответа на первый запрос:

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "5802746e-3393-40c3-929a-dc966ebf08c6",
  "threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
  "threeDSMethodURLServer": "example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6",
  "threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
}

Пример ответа на второй запрос:

{
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0,
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU4MDI3NDZlLTMzOTMtNDBjMy05MjlhLWRjOTY2ZWJmMDhjNiIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiODFmZTU1ODUtZmZhOS00Y2NkLTljMjAtY2QzYWFiZDQwNTllIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

Оплата заказа (в режиме внешнего MPI/3DS Server)

Для использования запроса paymenOrder.do в режиме внешний MPI/3DS Server вам необходимо выполнить аутентификацию 3DS с использованием вашего собственного сервера MPI/3DS.
Также вам необходимо дополнительное разрешение, назначаемое службой поддержки.

Параметры запроса

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..30] Пароль учетной записи API продавца.
Обязательно

MDORDER String [1..36] Номер заказа в платежном шлюзе.
Условие

$PAN Integer [1..19] Номер платежной карты. Обязательный, если не передан seToken.
Условие

$CVC String [3] Код CVC/CVV2 на обратной стороне карты. Обязательный, если не передан seToken.
Допускаются только цифры.
Условие

YYYY Integer [4] Год окончания действия платежной карты. Если seToken не передан, обязательно необходимо передать либо $EXPIRY, либо YYYY и MM.
Условие

MM Integer [2] Месяц окончания действия платежной карты. Если seToken не передан, обязательно необходимо передать либо $EXPIRY, либо YYYY и MM.
Условие

$EXPIRY Integer [6] Срок действия карты в следующем формате: YYYYMM. Переопределяет параметры YYYY и MM. Если seToken не передан, обязательно необходимо передать либо $EXPIRY, либо YYYY и MM.
Условие

seToken String Зашифрованные данные карты, которые заменяют параметры $PAN, $CVC и $EXPIRY (или YYYY,MM). Обязательно, если используется вместо данных карты.
Обязательные параметры для строки seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Подробнее о генерации seToken см. здесь.
Если seToken содержит шифрованные данные о связке (bindingId), для оплаты следует использовать запрос paymentOrderBinding.do.
Обязательно

TEXT String [1..512] Имя держателя карты.
Обязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

bindingNotNeeded Boolean Допустимые значения:
  • true- создание связки после совершения платежа отключено (связка – это идентификатор клиента, переданный в запросе на регистрацию заказа, который после запроса оплаты будет удален из деталей заказа);
  • false – в случае успешной оплаты может быть создана связка (при соблюдении необходимых условий). Это значение по умолчанию.
Необязательно

jsonParams Object Поля дополнительной информации для последующего хранения, передаются в следующем виде: jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.
Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
Если вы используете внешний MPI/3DS Server, платежный шлюз ожидает, что каждый запрос paymentOrder будет включать ряд дополнительных параметров, таких как eci, xid, cavv и пр. Более подробная информация здесь.
Чтобы инициировать 3RI аутентификацию, вам может быть необходимо передать ряд дополнительных параметров (см. 3RI аутентификация).
Некоторые предопределенные атрибуты jsonParams:
  • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
  • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
  • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
  • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
  • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
  • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.
Необязательно

clientBrowserInfo Object Блок данных о браузере клиента, который отправляется на ACS во время 3DS аутентификации. Этот блок можно передавать, только если включена специальная настройка (обратитесь в команду поддержки). См. вложенные параметры.
Необязательно

acsInIFrame Boolean Флаг, показывающий, что для финишного URL будет возвращаться iFrame версия. Возможные значения true или false. Для подключения данной функциональности обратитесь в службу поддержки.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
F Внеплановый платеж (CIT) Последующая Покупатель Клиент выбирает карту вместо ручного ввода Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку.
U Внеплановый платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку. Используется только для одностадийных платежей.
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
R Рекуррентный платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Рекуррентная операция, использующая сохраненную связку. Используется только для одностадийных платежей.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
I Платеж по рассрочке (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Операция рассрочки, использующая сохраненную связку. Используется только для одностадийных платежей.

Ниже приведены параметры блока clientBrowserInfo (данные о браузере клиента).

Обязательность Название Тип Описание
Необязательно userAgent String [1..2048] Агент браузера.
Необязательно OS String Операционная система.
Необязательно OSVersion String Версия операционной системы.
Необязательно browserAcceptHeader String [1..2048] Заголовок Accept, который сообщает серверу, какие форматы (или MIME-типы) поддерживает браузер.
Необязательно browserIpAddress String [1..45] IP-адрес браузера.
Необязательно browserLanguage String [1..8] Язык браузера.
Необязательно browserTimeZone String Часовой пояс браузера.
Необязательно browserTimeZoneOffset String [1..5] Смещение часового пояса в минутах между локальным временем пользователя и UTC.
Необязательно colorDepth String [1..2] Глубина цвета экрана, в битах.
Необязательно fingerprint String Отпечаток браузера - уникальный цифровой идентификатор браузера.
Необязательно isMobile Boolean Возможные значения: true или false. Флаг, указывающий на то, что используется мобильное устройство.
Необязательно javaEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка java.
Необязательно javascriptEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка javascript.
Необязательно plugins String Список плагинов, используемых в браузере, через запятую.
Необязательно screenHeight Integer [1..6] Высота экрана в пикселях.
Необязательно screenWidth Integer [1..6] Ширина экрана в пикселях.
Необязательно screenPrint String Данные о параметрах печати браузера, включая разрешение, глубину цвета, плотность пикселей.

Пример блока clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Параметры ответа

Обязательность Название Тип Описание
Обязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

info String В случае успешного ответа. Результат попытки оплаты. Ниже приведены возможные значения.
  • Ваш платеж обработан, происходит переадресация...
  • Операция отклонена. Проверьте введенные данные, достаточность средств на карте и повторите операцию. Происходит переадресация...
  • Извините, платеж не может быть совершен. Происходит переадресация...
  • Операция отклонена. Обратитесь в магазин. Происходит переадресация...
  • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...
  • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...
  • Нет связи с банком. Повторите позже. Происходит переадресация...
  • Истек срок ожидания ввода данных. Происходит переадресация...
  • Не получен ответ от банка. Повторите позже. Происходит переадресация...

Примеры

Пример запроса

curl --request POST \\
  --url https://dev.bpsprocessing.ru/payment/rest/paymentorder.do \\
  --header 'content-type: application/x-www-form-urlencoded' \\
  --data userName=test_user \\
  --data password=test_user_password \\
  --data MDORDER=0140dda0-71ed-7706-a61f-36bd00a7d8c0 \\
  --data '$PAN=4000001111111118' \\
  --data '$CVC=123' \\
  --data YYYY=2030 \\
  --data MM=12 \\
  --data 'TEXT=TEST CARDHOLDER' \\
  --data language=en \\
  --data 'jsonParams={"eci": "02", "cavv": "AkZO5XQAA0rhBxoaufa+MAABAAA=", "xid": "5010857f-8d3f-74e1-9c5a-54a000cc4110", "threeDSProtocolVersion": "2.2.0", "threeDsType": "5"}'

Пример ответа

{
  "redirect": "https://dev.bpsprocessing.ru/payment/merchants/temp/finish.html?orderId=01493844-d4d3-703f-9f7e-a73900a7d8c0",
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0
}

Мгновенная оплата

Запрос, используемый для регистрации заказа и одновременной оплаты за него – https://dev.bpsprocessing.ru/payment/rest/instantPayment.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

Параметры запроса

Обязательность Название Тип Описание
Условие

userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

bindingNotNeeded Boolean Допустимые значения:
  • true- создание связки после совершения платежа отключено (связка – это идентификатор клиента, переданный в запросе на регистрацию заказа, который после запроса instantPayment.do будет удален из деталей заказа);
  • false – в случае успешной оплаты может быть создана связка (при соблюдении необходимых условий). Это значение по умолчанию.
Условие

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта, должен быть уникальным для каждого мерчанта, зарегистрированного в платежном шлюзе. Если номер заказа генерируется на стороне платежного шлюза, этот параметр передавать необязательно.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

pan String [1..19] Номер платежной карты (обязательно, если если bindinId не передается). Значение pan заменяет собой значение bindingId.
Необязательно

cvc String [3] Передача параметра определяется типом платежа:
  • передача cvc не предусмотрена для MIT платежей;
  • передача cvc обязательна по умолчанию для всех других типов платежей; но если для мерчанта выбрано разрешение Может проводить оплату без подтверждения CVC, то в таком случае передача cvc становится необязательной.
    Допускаются только цифры.
Необязательно

cardHolderName String [1..26] Имя держателя карты латинскими буквами. Этот параметр передается только после оплаты заказа.
Необязательно

merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

sessionTimeoutSecs Integer [1..9] Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта, или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

expirationDate String [19] Дата и время истечения срока действия заказа. Формат: yyyy-MM-ddTHH:mm:ss.
Если этот параметр не передается в запросе, то для определения времени истечения срока действия заказа используется параметр sessionTimeoutSecs.
Условие

seToken String [1..8192] Зашифрованные данные карты, которые заменяют параметры $PAN, $CVC и $EXPIRY (или YYYY,MM). Обязательно, если используется вместо данных карты.
Обязательные параметры для строки seToken: timestamp, UUID, bindingId(или PAN,EXPDATE). Подробнее о генерации seToken см. здесь.
Обязательно

backUrl String [1..512] URL-адрес, на который будет перенаправлен пользователь в случае успешной оплаты.
Используйте полный путь с указанием протокола, например https://test.com (а не test.com).
В противном случае пользователь будет перенаправлен на URL-адрес следующего вида: http://paymentGatewayURL/merchantURL
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

jsonParams Object Поля дополнительной информации для последующего хранения, передаются в следующем виде: jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.
Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
Если вы используете внешний MPI/3DS Server, платежный шлюз ожидает, что каждый запрос paymentOrder будет включать ряд дополнительных параметров, таких как eci, xid, cavv и пр. Более подробная информация здесь.
Чтобы инициировать 3RI аутентификацию, вам может быть необходимо передать ряд дополнительных параметров (см. 3RI аутентификация).
Некоторые предопределенные атрибуты jsonParams:
  • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
  • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
  • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
  • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
  • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
  • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
Необязательно

features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
  • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
  • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
  • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
  • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
  • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
Необязательно

orderBundle Object Объект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.
Необязательно

additionalOfdParams Object Некоторые параметры additionalOfdParams дублируются в cartItems.items.itemAttributes. additionalOfdParams применяется ко всем идентификаторам позиций, а cartItems.items.itemAttributes применяется к каждой отдельной позиции. Если значения additionalOfdParams и cartItems.items.itemAttributes не совпадают, тогда cartItems.items.itemAttributes (то есть, параметры отдельной позиции) будут иметь приоритет.
Описание вложенных элементов приведено ниже.
Необязательно

dynamicCallbackUrl String [1..512] Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
Необязательно

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSVer2FinishUrl String [1..512] URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
Необязательно

threeDSMethodNotificationUrl String [1..512] URL-адрес для отправки уведомления о прохождении проверки на ACS.
Условие

threeDSVer2MdOrder String [1..36] Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS2 операции. Обязателен для аутентификации 3DS.
Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.
Необязательно

threeDSSDK Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Необязательно

expiry Integer [6] Срок действия карты в следующем формате: YYYYMM. Обязательно, если не переданы ни seToken, ни bindingId.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения
Условие

originalPaymentNetRefNum String Идентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
Условие

originalPaymentDate String Дата инициирующей транзакции. Значение в формате Unix timestamp в миллисекундах. Передается, если значение параметра tii = R,U или F.
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.

Описание параметров в объекте orderBundle:

Обязательность Название Тип Описание
Необязательно

orderCreationDate String [19] Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
Необязательно

customerDetails Object Блок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
Обязательно

cartItems Object Объект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.
Необязательно

agent Object Объект с информацией об агенте. Описание вложенных элементов приведено ниже.
Необязательно

supplierPhones Array of strings [1..19] Массив телефонных номеров поставщика в формате +N.

Описание параметров в объекте customerDetails:

Обязательность Название Тип Описание
Условие

email String [1..40] Электронный адрес клиента. Можно указать несколько адресов электронной почты через запятую и без пробелов.
Обязательно следует передать один из двух параметров: email или phone.
Условие

phone String [7..15] Номер телефона владельца карты.
Предпочтительно передавать номер телефона в параметре orderPayerData.mobilePhone (но если вы передадите его в этом блоке, к нему применятся те же правила).
Необязательно

contact String [0..40] Предпочитаемый клиентом способ связи.
Необязательно fullName String [1..100] ФИО плательщика.
Указывать ФИО плательщика рекомендуем только, если это требуется ФНС. В остальных случаях передавать этот параметр не нужно, т.к. это может привести к ошибке из-за проверки данных плательщика (см. Проверка данных плательщика при передаче корзины).
Необязательно

passport String [1..100] Серия и номер паспорта плательщика в следующем формате: 2222888888
Необязательно

deliveryInfo Object Объект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
Необязательно

inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.

Проверка данных плательщика при передаче корзины

Согласно требованиям ФНС, при передаче ФИО плательщика должно быть передано либо ИНН плательщика, либо его паспортные данные.

В связи с этим, если в запросе с продуктовой корзиной передается какой-либо из параметров (в блоках orderBundle или additionalOfdParams):

то выполняется проверка на обязательное наличие ИНН плательщика ИЛИ набора параметров Дата рождения, Код документа, Данные документа. Если это условие не выполняется, запрос будет обработан с ошибкой.

Описание параметров в объекте deliveryInfo:

Обязательность Название Тип Описание
Необязательно

deliveryType String [1..20] Способ доставки.
Обязательно

country String [2] Двухбуквенный код страны доставки.
Обязательно

city String [0..40] Город назначения.
Обязательно

postAddress String [1..255] Адрес доставки.

Описание параметров в объекте cartItems:

Обязательность Название Тип Описание
Обязательно

items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте items:

Обязательность Название Тип Описание
Обязательно

positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
Обязательно

name String [1..255] Наименование или описание товарной позиции в свободной форме.
Необязательно

itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
Обязательно

quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
Необязательно

itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
Необязательно

itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
Необязательно

depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
Необязательно

itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
Обязательно

itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
Необязательно

tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
Необязательно

itemAttributes Object Объект, содержащий атрибуты товарной позиции.

Описание параметров в объекте itemDetails:

Обязательность Название Тип Описание
Необязательно

itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте itemDetailsParams:

Обязательность Название Тип Описание
Обязательно

value String [1..2000] Дополнительная информация по товарной позиции.
Обязательно

name String [1..255] Наименование параметра описания детализации товарной позиции

Описание параметров в объекте quantity:

Обязательность Название Тип Описание
Обязательно

value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
Обязательно

measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

Описание параметров объекта tax:

Обязательность Название Тип Описание
Обязательно

taxType Integer Ставка НДС, доступны следующие значения:
  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС по ставке 10%;
  • 4 – НДС по расчетной ставке 10/110;
  • 6 – НДС по ставке 20%;
  • 7 – НДС по расчетной ставке 20/120;
  • 10 – НДС по ставке 5%;
  • 11 – НДС по расчетной ставке 5/105;
  • 12 – НДС по ставке 7%;
  • 13 – НДС по расчетной ставке 7/107;
  • 14 - НДС по ставке 22%:
  • 15 - НДС по расчетной ставке 22/122.
Обязательно

taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

Описание параметров в объекте itemAttributes:

Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
Обязательность Название Тип Описание
Обязательно

paymentMethod Integer [1..2] Тип платежа, доступные значения:
  • 1 - полная предоплата;
  • 2 - частичная предоплата;
  • 3 - аванс;
  • 4 - полная оплата;
  • 5 - частичная оплата с последующей оплатой в кредит;
  • 6 - без оплаты с последующей оплатой в кредит;
  • 7 - оплата с последующей оплатой в кредит.
Обязательно

paymentObject Integer Объект платежа, доступные значения:
  • 1 - товар (значение по умолчанию);
  • 2 - подакцизный товар;
  • 3 - работа;
  • 4 - услуга;
  • 5 - ставка азартной игры;
  • 6 - выигрыш азартной игры;
  • 7 - лотерейный билет;
  • 8 - выигрыш лотереи;
  • 9 - предоставление РИД;
  • 10 - платеж;
  • 11 - агентское вознаграждение;
  • 12 - составной предмет расчета;
  • 13 - иной предмет расчета;
  • 14 - имущественное право;
  • 15 - внереализационный доход;
  • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
  • 17 - торговый сбор: о суммах уплаченного торгового сбора;
  • 18 - курортный сбор.

Указанные выше значения доступны для ФФД 1.05.
Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
  • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
  • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
  • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
  • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
Условие

nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
Необязательно

markQuantity Object Дробное количество маркируемого товара.
Необязательно

userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
Необязательно

agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
Необязательно

supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте agent_info:

Обязательность Название Тип Описание
Обязательно

type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
Необязательно

paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
Необязательно

MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

Описание параметров в объекте paying:

Обязательность Название Тип Описание
Необязательно

operation String [1..24] Название транзакции платежного агента.
Необязательно

phones Array of strings Массив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте paymentsOperator:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте MTOperator:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

name String [1..256] Наименование оператора перевода.
Необязательно

address String [1..256] Адрес оператора перевода.
Необязательно

inn String [10..12] ИНН оператора перевода.

Описание параметров в объекте supplier_info:

Обязательность Название Тип Описание
Необязательно

phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

name String [1..256] Наименование поставщика.
Необязательно

inn Integer [10..12] ИНН поставщика

Описание параметров в объекте additionalOfdParams:

Обязательность Название Тип Описание
Необязательно

agent_info.type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

agent_info.paying.operation String [1..24] Название транзакции платежного агента.
Необязательно

agent_info.paying.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
Необязательно

agent_info.paymentsOperator.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
Необязательно

agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
Необязательно

agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
Необязательно

agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
Необязательно

agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

cashier String [1..256] Имя кассира.
Необязательно

additional_check_props String [1..16] Дополнительные свойства чека.
Необязательно

additional_user_props.name String [1..24] Название дополнительного свойства пользователя
Необязательно

additional_user_props.value String [1..24] Значение дополнительного свойства пользователя
Необязательно

cashier_inn String [10..12] ИНН кассира.
Необязательно

client.address String [1..256] Адрес клиента.
Необязательно

client.birth_date String [10] Дата рождения клиента в формате дд.мм.гггг.
Необязательно

client.citizenship String [3] Цифровой код страны, гражданином которой является покупатель (клиент).
Необязательно

client.document_code String [2] Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
Необязательно

client.passport_number String [11] Серия и номер паспорта плательщика.
Необязательно

client.email String [1..64] Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.phone String [19] Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.inn String [12] ИНН клиента.
Необязательно

client.name String [1..256] Имя клиента.
Необязательно

operatingcheckprops.name String Идентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
Необязательно

operatingcheckprops.timestamp String [1..19] Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
Необязательно

operatingcheckprops.value String [1..64] Данные транзакции.
Необязательно

sectoralcheckprops.date String [10] Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
Необязательно

sectoralcheckprops.federalid String Идентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
Необязательно

sectoralcheckprops.number String [32] Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
Необязательно

sectoralcheckprops.value String [1..256] Состав значений, определенных нормативным актом федерального органа исполнительной власти
Условие

company.automat_number String Номер автомата.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга и транспорта;
  • Формат фискальных документов 1.2 – для вендинга и транспорта.
Условие

company.location String Адрес для выставления счета.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Условие

company.payment_address String Адрес для получения счетов.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Необязательно

use_legacy_vat boolean Параметр используется в случае, если необходимо передать устаревшее значение НДС. Возможные значения:
  • true- если необходимо передать устаревшее значение НДС
  • false - нет необходимости

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
F Внеплановый платеж (CIT) Последующая Покупатель Клиент выбирает карту вместо ручного ввода Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку.
U Внеплановый платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку. Используется только для одностадийных платежей.
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
R Рекуррентный платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Рекуррентная операция, использующая сохраненную связку. Используется только для одностадийных платежей.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
I Платеж по рассрочке (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Операция рассрочки, использующая сохраненную связку. Используется только для одностадийных платежей.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Ниже приведены параметры блока clientBrowserInfo (данные о браузере клиента).

Обязательность Название Тип Описание
Необязательно userAgent String [1..2048] Агент браузера.
Необязательно OS String Операционная система.
Необязательно OSVersion String Версия операционной системы.
Необязательно browserAcceptHeader String [1..2048] Заголовок Accept, который сообщает серверу, какие форматы (или MIME-типы) поддерживает браузер.
Необязательно browserIpAddress String [1..45] IP-адрес браузера.
Необязательно browserLanguage String [1..8] Язык браузера.
Необязательно browserTimeZone String Часовой пояс браузера.
Необязательно browserTimeZoneOffset String [1..5] Смещение часового пояса в минутах между локальным временем пользователя и UTC.
Необязательно colorDepth String [1..2] Глубина цвета экрана, в битах.
Необязательно fingerprint String Отпечаток браузера - уникальный цифровой идентификатор браузера.
Необязательно isMobile Boolean Возможные значения: true или false. Флаг, указывающий на то, что используется мобильное устройство.
Необязательно javaEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка java.
Необязательно javascriptEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка javascript.
Необязательно plugins String Список плагинов, используемых в браузере, через запятую.
Необязательно screenHeight Integer [1..6] Высота экрана в пикселях.
Необязательно screenWidth Integer [1..6] Ширина экрана в пикселях.
Необязательно screenPrint String Данные о параметрах печати браузера, включая разрешение, глубину цвета, плотность пикселей.

Пример блока clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Параметры ответа

Обязательность Название Тип Описание
Обязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки;
  • другое положительное числовое значение - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр error.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

error String [1..512] Сообщение об ошибке (если в ответе вернулась ошибка) на языке, переданном в запросе.
Необязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Необязательно

info String В случае успешного ответа. Результат попытки оплаты. Ниже приведены возможные значения.
  • Ваш платеж обработан, происходит переадресация...
  • Операция отклонена. Проверьте введенные данные, достаточность средств на карте и повторите операцию. Происходит переадресация...
  • Извините, платеж не может быть совершен. Происходит переадресация...
  • Операция отклонена. Обратитесь в магазин. Происходит переадресация...
  • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...
  • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...
  • Нет связи с банком. Повторите позже. Происходит переадресация...
  • Истек срок ожидания ввода данных. Происходит переадресация...
  • Не получен ответ от банка. Повторите позже. Происходит переадресация...
Необязательно

redirect String [1..512] Этот параметр возвращается, если платеж прошел успешно и для платежа не проводилась проверка карты на вовлеченность в 3-D Secure. Продавцы могут использовать его, если хотят перенаправить пользователя на страницу платежного шлюза. Если продавец использует собственную страницу, это значение можно игнорировать.
Необязательно

termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
Необязательно

acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
Необязательно

paReq String [1..255] PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.
Условие orderStatus Object Содержит параметры статуса заказа и возвращается только в том случае, если платежный шлюз распознал все параметры запроса как правильные. См. описание ниже.

Когда необходима аутентификация с использованием протокола 3DS v2.0, следующие параметры будут получены в ответ на запрос:

Обязательность Название Тип Описание
Обязательно

is3DSVer2 Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
Обязательно

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSMethodUrl String [1..512] URL-адрес сервера ACS для сбора данных браузера.
Обязательно

threeDSMethodUrlServer String [1..512] URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
Необязательно

threeDSMethodDataPacked String [1..1024] Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
Необязательно

threeDSMethodURLServerDirect String [1..512] URL-адрес 3dsmethod.do для выполнения метода 3DS на сервере 3DS через платежный шлюз (при наличии соответствующего разрешения на уровне продавца).

Блок orderStatus содержит следующие элементы.

Обязательность Название Тип Описание
Необязательно

ErrorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр ErrorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

ErrorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение ErrorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

OrderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

OrderStatus Integer Значение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 1 - Предавторизованная сумма захолдирована (для двухстадийных платежей);
  • 2 - проведена полная авторизация суммы заказа;
  • 3 - авторизация отменена;
  • 4 - по транзакции была проведена операция возврата;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
  • 7 - ожидание оплаты заказы;
  • 8 - промежуточное завершение для многократного частичного завершения.
Необязательно

expiration Integer [6] Срок действия карты в следующем формате: YYYYMM.
Необязательно

cardholderName String [1..26] Имя держателя карты (при наличии).
Необязательно

approvedAmount Integer [0..12] Сумма в минимальных единицах валюты (например, в центах), которая была заблокирована на счете покупателя. Используется только в двухстадийных платежах.
Необязательно

depositAmount Integer [1..12] Сумма списания в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Необязательно

approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
Необязательно

authCode Integer [6] Устаревший параметр (не используется). Его значение всегда 2 независимо от статуса заказа и кода авторизации процессинговой системы.
Необязательно

Pan String [1..19] Маскированный номер карты, которая использовалась для оплаты. Указывается только после оплаты заказа. При оплате Apple Pay используется DPAN. Это номер, привязанный к мобильному устройству покупателя и выполняющий функции номера платежной карты в системе Apple Pay.
Необязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

Ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

originalActionCode String [1..15] Код ответа, полученный от процессинга. Чтобы включить получение этого поля, обратитесь в службу технической поддержки.
Необязательно

rrn Integer [1..12] Reference Retrieval Number - идентификатор транзакции, присвоенный банком-эквайером.

Примеры

Пример запроса

curl --request POST \
--url  https://dev.bpsprocessing.ru/payment/rest/instantPayment.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data amount=100 \
--data currency=978 \
--data description=my_first_order \
--data orderNumber=1218637308 \
--data pan=4000001111111118  \
--data cvc=123 \
--data expiry=203012 \
--data cardHolderName="TEST CARDHOLDER" \
--data email="demo@example.com" \
--data phone="+449998887766" \
--data language=en \
--data returnUrl=https://mybestmerchantreturnurl.com \
--data failUrl=https://mybestmerchantreturnurl.com

Пример ответа

{
    "errorCode": "0",
    "orderId": "eee72f6e-b980-79c5-92e8-6f4200b1eae0",
    "info": "Your order is proceeded, redirecting...",
    "redirect": "https://www.test.com/payment/merchants/gateway/finish.html?orderId=eee72f6e-b980-79c5-92e8-6f4200b1eae0&lang=en",
    "orderStatus": {
        "expiration": "202412",
        "cardholderName": "TEST CARDHOLDER",
        "depositAmount": 100,
        "currency": "978",
        "approvalCode": "123456",
        "authCode": 2,
        "originalActionCode": "S1",
        "rrn": "311489272111",
        "ErrorCode": "0",
        "ErrorMessage": "Success",
        "OrderStatus": 2,
        "OrderNumber": "2011",
        "Pan": "500000**1115",
        "Amount": 100,
        "Ip": "x.x.x.x"
    }
}

MOTO-платеж

Для осуществления MOTO-платежей используется метод https://dev.bpsprocessing.ru/payment/rest/motoPayment.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

Параметры запроса

Обязательность Название Тип Описание
Необязательно

userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Необязательно

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Необязательно

token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
Необязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Обязательно

returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

merchantLogin String [1..255] Для проведения МОТО-платежа от имени другого мерчанта укажите в этом параметре логин API-аккаунта продавца.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

postAddress String [1..255] Адрес доставки.
Необязательно

jsonParams Object Набор дополнительных атрибутов произвольной формы, структура:
jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
Некоторые предопределенные атрибуты jsonParams:
  • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
  • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
  • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
  • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
  • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
  • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
Необязательно

features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
  • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
  • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
  • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
  • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
  • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
Необязательно

dynamicCallbackUrl String [1..512] Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Обязательно

pan String [1..19] Маскированный номер карты, которая использовалась для оплаты. Этот параметр указывается только после оплаты заказа. При оплате через Apple Pay в качестве номера карты используется DPAN - это номер, привязанный к мобильному устройству клиента, который функционирует как номер платежной карты в системе Apple Pay.
Обязательно

expiry Integer [6] Срок действия карты в следующем формате: YYYYMM. Обязательно, если не переданы ни seToken, ни bindingId.
Обязательно

cardholder String [1..26] Имя держателя карты латинскими буквами. Этот параметр передается только после оплаты заказа.
Необязательно

cvc String [3] Передача параметра определяется типом платежа:
  • передача cvc не предусмотрена для MIT платежей;
  • передача cvc обязательна по умолчанию для всех других типов платежей; но если для мерчанта выбрано разрешение Может проводить оплату без подтверждения CVC, то в таком случае передача cvc становится необязательной.
    Допускаются только цифры.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Обязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Обязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Обязательно

mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

userMessage String [1..512] Сообщению пользователю с описанием кода результата.

Примеры

Пример запроса

curl --request POST \
--url https://dev.bpsprocessing.ru/payment/rest/motoPayment.do \
--header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data currency=978 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=https://mybestmerchantreturnurl.com \
  --data description=my_first_order \
  --data pan=4000001111111118 \
  --data expiry=203012 \
  --data cvc=123 \
  --data cardholder="TEST CARDHOLDER" \
  --data language=en

Пример ответа - успешный платеж

{
   "errorCode":"0",
   "success":true,
   "mdOrder":"088433e9-e34d-769e-9366-696200a7d8c0",
   "orderNumber":"62001"
}

Редирект на ACS (упрощенный)

Если требуется 3-D Secure, то после получения ответа на запрос оплаты клиент должен быть перенаправлен на ACS. В этом случае ответ на запрос оплаты содержит параметр acsUrl, который будет использоваться для перенаправления.

Запрос https://dev.bpsprocessing.ru/payment/acsRedirect.do?orderId={orderId} позволяет перенаправить клиента на страницу аутентификации ACS упрощенным способом - просто используя параметр orderId, полученный после регистрации заказа.

Также возможно перенаправление клиента на ACS с помощью POST-запроса (обычный редирект). Описание этого метода доступно здесь.

Без каких-либо других действий, требуемых от клиента, платежный шлюз перенаправляет его на страницу ACS, где клиент аутентифицируется.

Затем, в зависимости от результата аутентификации, клиент перенаправляется на следующий URL-адрес:

Чтобы перенаправить клиента на ACS, используйте следующий URL-адрес:

https://dev.bpsprocessing.ru/payment/acsRedirect.do?orderId={Номер заказа в платежном шлюзе}

Параметры запроса

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

Параметры ответа

Пример

Пример запроса

curl -X GET https://dev.bpsprocessing.ru/payment/acsRedirect.do?orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1

Пример URL редиректа

https://mybestmerchantreturnurl.com/?orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1

Кошельки

Регистрация заказа Apple Pay

Для регистрации и оплаты заказа используется метод https://dev.bpsprocessing.ru/payment/applepay/payment.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Параметры запроса

Обязательность Название Тип Описание
Обязательно

merchant String [1..255] Чтобы зарегистрировать и оплатить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. список параметров.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Обязательно

paymentToken String [1..8192] Параметр paymentToken должен содержать расшифрованное и закодированное в Base64 значение свойства paymentData, полученного из объекта PKPaymentToken Object от системы Apple Pay (подробнее см. документацию Apple Pay). Таким образом, чтобы сделать запрос на оплату в платежный шлюз, продавец должен:
  1. получить PKPaymentToken Object, содержащий paymentData от Apple Pay;
  2. извлечь значение paymentData и закодировать его в Base64;
  3. включить закодированное значение свойства paymentData в качестве значения параметра paymentToken в запросе на оплату, который продавец направит в платежный шлюз.
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения.
Условие

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Условие

phone String [7..15] Номер телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.

Дополнительные параметры, определяющие тип создаваемой связки и передаваемые в additionalParameters:

Обязательность Название Тип Описание
Условие

installments Integer [3] Максимальное количество разрешенных авторизаций для платежей в рассрочку.
Указывается в случае создания связки для выполнения платежей в рассрочку.
Условие

recurringFrequency Integer [2] Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.
Условие

recurringExpiry String [8] Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки. Это значение возможно передать только при наличии разрешения "Разрешено создание vendor pays common связок".
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Условие data Object Этот параметр возвращается только в случае успешной обработки платежа. См. описание ниже.
Условие error Object Этот параметр возвращается только в случае ошибки платежа. См. описание ниже.
Условие orderStatus Object Содержит параметры статуса заказа и возвращается только в том случае, если платежный шлюз распознал все параметры запроса как правильные. См. описание ниже.

Блок data содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

Блок error содержит следующие элементы.

Обязательность Название Тип Описание

code String [1..3] Код как информационный параметр, сообщающий об ошибке.

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.

Блок orderStatus содержит следующие элементы.

Обязательность Название Тип Описание
Необязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

orderStatus Integer Значение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 1 - заказ только авторизован и еще не завершен (для двухстадийных платежей);
  • 2 - заказ авторизован и завершен;
  • 3 - авторизация отменена;
  • 4 - по транзакции была проведена операция возврата;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
  • 7 - ожидание оплаты заказы;
  • 8 - промежуточное завершение для многократного частичного завершения.
Необязательно

actionCode String Код ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
Необязательно

actionCodeDescription String [1..512] Описание actionCode, возвращаемое процессингом банка.
Необязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Необязательно

date Integer Дата регистрации заказа как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Условие merchantOrderParams Object Объект с атрибутами, в которых передаются дополнительные параметры мерчанта. См. описание ниже.
Условие attributes Object Атрибуты заказа в платежной системе (номер заказа). См. описание ниже.
Условие cardAuthInfo Object Информация о платежной карте покупателя. См. описание ниже.
Необязательно

authDateTime Integer Дата и время авторизации, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
Необязательно

terminalId String [1..10] Идентификатор терминала в системе, обрабатывающей платеж.
Необязательно

authRefNum String [1..24] Номер авторизации платежа, присвоенный ему при регистрации платежа.
Условие paymentAmountInfo Object Параметр, содержащий вложенные параметры с информацией о суммах подтверждения, списания и возврата. См. описание ниже.
Условие bankInfo Object Содержит вложенный параметр bankCountryName. См. описание ниже.

Блок merchantOrderParams содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

name String [1..255] Название дополнительного параметра мерчанта.
Обязательно

value String [1..1024] Значение дополнительного параметра продавца - до 1024 символов.

Блок attributes содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

name String [1..255] Название дополнительного параметра.
Обязательно

value String [1..1024] Значение дополнительного параметра - до 1024 символов.

Блок cardAuthInfo содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

expiration Integer [6] Срок действия карты в следующем формате: YYYYMM.
Обязательно

cardholderName String [1..26] Имя держателя карты латинскими буквами. Допустимые символы: латинские буквы, точка, пробел.
Обязательно

approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
Обязательно

pan String [1..19] Маскированный DPAN: номер, привязанный к мобильному устройству покупателя и выполняющий функции номера платежной карты в системе Apple Pay.

Блок paymentAmountInfo содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

paymentState String Состояние заказа, параметр может принимать следующие значения:
  • CREATED - заказ создан (но не оплачен);
  • APPROVED - заказ одобрен (средства на счету покупателя заблокированы);
  • DEPOSITED - заказ завершен (деньги списаны со счета покупателя);
  • DECLINED - заказ отклонен;
  • REVERSED - заказ отклонен;
  • REFUNDED - возврат средств.
Обязательно

approvedAmount Integer [0..12] Сумма в минимальных единицах валюты (например, в центах), которая была заблокирована на счете покупателя. Используется только в двухстадийных платежах.
Обязательно

depositedAmount Integer [1..12] Сумма списания в минимальных единицах валюты (например, в копейках).
Обязательно

refundedAmount Integer [1..12] Сумма возврата в минимальных единицах валюты.

Блок bankInfo содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

bankCountryName String [1..160] Страна банка-эмитента.

Примеры

Пример запроса

curl --request POST \
--url https://dev.bpsprocessing.ru/payment/applepay/payment.do \
--header 'Content-Type: application/json' \
--data-raw '{
  "additionalParameters" : {
    "phone" : "9521235847",
    "order-pain" : "111",
    "email" : "apple@pay.com"
  },
  "language" : "en",
  "clientId" : "259753456",
  "orderNumber" : "281477871",
  "paymentToken" : "eyJkYXRhIjoiYPhK3M1bEtm...YjM2NWMzZWNmYjE5fIkVDX3YxIn0=",
  "preAuth" : false
}'

Ответ в случае успешной оплаты

{
    "success": true,
    "data": {
        "orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
    },
    "orderStatus": {
        "errorCode": "0",
        "orderNumber": "229",
        "orderStatus": 1,
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 960000,
        "currency": "978",
        "date": 1478682458102,
        "ip": "x.x.x.x",
        "merchantOrderParams": [
            {
                "name": "param2",
                "value": "param2"
            },
            {
                "name": "param1",
                "value": "param1"
            }
        ],
        "attributes": [
            {
                "name": "mdOrder",
                "value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
            }
        ],
        "cardAuthInfo": {
            "expiration": "203012",
            "cardholderName": "TEST CARDHOLDER",
            "approvalCode": "123456",
            "pan": "500000**1115"
        },
        "authDateTime": 1478682459082,
        "terminalId": "12345678",
        "authRefNum": "111111111111",
        "paymentAmountInfo": {
            "paymentState": "APPROVED",
            "approvedAmount": 960000,
            "depositedAmount": 0,
            "refundedAmount": 0
        },
        "bankInfo": {
            "bankCountryName": "<UNKNOWN>"
        }
    }
}

Ответ в случае неудачной оплаты

{
  "error": {
    "code": 10,
    "description": "Processing Error",
    "message": "Auth is invalid"
  },
  "success": false
}

Apple Pay Direct

Запрос, используемый для осуществления прямого платежа через Apple Pay - https://dev.bpsprocessing.ru/payment/applepay/paymentDirect.do. Он используется для регистрации и оплаты заказа.

Этот запрос можно использовать для интеграций, предполагающих расшифровку платежных данных на стороне продавца.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Параметры запроса

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..30] Пароль учетной записи API продавца.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

feeInput Integer [0..8] Размер комиссии в минимальных единицах валюты. Функциональность должна быть включена на уровне продавца в шлюзе.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. список параметров.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Обязательно

paymentToken String [1..8192] Платежные данные, полученные от Apple Pay и расшифрованные продавцом. Последовательность действий:
  1. Получите PKPaymentToken Object от Apple Pay (Payment Token Format Reference) с зашифрованными платежными данными;
  2. Расшифруйте (ECC/RSA) paymentData, чтобы получить текстовое представление объекта: {"applicationPrimaryAccountNumber":"4111111111111111","deviceManufacturerIdentifier":"050110030273","currencyCode":"840","applicationExpirationDate" :"220430","paymentData":{"onlinePaymentCryptogram":"AM32yL0vuOOmAAGG0iQUAoABFA=="}," paymentDataType":"3DSecure","transactionAmount":1010};
  3. Закодируйте в BASE64 открытый текст объекта paymentData и отправьте его как paymentToken.
Необязательно

merchant String [1..255] Чтобы зарегистрировать и оплатить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

features String В этом параметре можно передать значение VERIFY. Тогда оплата производиться не будет, вместо этого будет создана связка (будет сохранена карта клиента).
Если передается features, paymentToken.transactionAmount должно быть 0. В противном случае будет возвращена ошибка.
Условие

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения.
Условие

originalPaymentNetRefNum String Идентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
Условие

originalPaymentDate String Дата инициирующей транзакции. Значение в формате Unix timestamp в миллисекундах. Передается, если значение параметра tii = R,U или F.
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки. Это значение возможно передать только при наличии разрешения "Разрешено создание vendor pays common связок".
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.

Дополнительные параметры, определяющие тип создаваемой связки и передаваемые в additionalParameters:

Обязательность Название Тип Описание
Условие

installments Integer [3] Максимальное количество разрешенных авторизаций для платежей в рассрочку.
Указывается в случае создания связки для выполнения платежей в рассрочку.
Условие

recurringFrequency Integer [2] Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.
Условие

recurringExpiry String [8] Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Обязательно

data Object Возвращается только в случае успешной оплаты.
Обязательно

error Object Этот параметр возвращается только в случае ошибки платежа.
Необязательно

orderStatus Integer Значение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 1 - заказ только авторизован и еще не завершен (для двухстадийных платежей);
  • 2 - заказ авторизован и завершен;
  • 3 - авторизация отменена;
  • 4 - по транзакции была проведена операция возврата;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
  • 7 - ожидание оплаты заказы;
  • 8 - промежуточное завершение для многократного частичного завершения.

Параметры в блоке data:

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

Параметры в блоке error:

Обязательность Название Тип Описание
Обязательно

code String [1..3] Код как информационный параметр, сообщающий об ошибке.
Обязательно

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Обязательно

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

Параметры в блоке orderStatus:

Обязательность Название Тип Описание
Необязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

orderStatus Integer Значение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 1 - Предавторизованная сумма захолдирована (для двухстадийных платежей);
  • 2 - проведена полная авторизация суммы заказа;
  • 3 - авторизация отменена;
  • 4 - по транзакции была проведена операция возврата;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена.
Необязательно

actionCode String Код ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
Необязательно

actionCodeDescription String [1..512] Описание actionCode, возвращаемое процессингом банка.
Необязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
Необязательно

date Integer Дата регистрации заказа как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

merchantOrderParams Object Раздел с атрибутами, в котором передаются дополнительные параметры мерчанта.
Необязательно

cardAuthInfo Object Блок с данными о карте плательщика см вложенные параметры.
Необязательно

authDateTime Integer Дата и время авторизации, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
Необязательно

terminalId String [1..10] Идентификатор терминала в системе, обрабатывающей платеж.
Необязательно

authRefNum String [1..24] Номер авторизации платежа, присвоенный ему при регистрации платежа.
Необязательно

paymentAmountInfo Object Объект с информацией о суммах подтверждения, списания, возврата. Список вложенных параметров см. ниже.
Необязательно

bankInfo Object Объект, содержащий вложенный параметр bankCountryName, в котором передается наименование страны банка-эмитента (при наличии). Используемый язык совпадает с языком, переданным в параметре запроса language. Если язык не передан, будет использоваться язык пользователя, вызывающего метод.

Параметры в блоке cardAuthInfo:

Обязательность Название Тип Описание
Необязательно

expiration Integer Год и месяц окончания действия карты.
Необязательно

cardholderName String [1..26] Имя держателя карты (при наличии).
Необязательно

approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
Необязательно

pan String [1..19] Маскированный DPAN: номер, привязанный к мобильному устройству покупателя и выполняющий функции номера платежной карты в системе Apple Pay.

Параметры в блоке paymentAmountInfo:

Обязательность Название Тип Описание
Необязательно

paymentState String Состояние заказа, параметр может принимать следующие значения:
  • CREATED - заказ создан (но не оплачен);
  • APPROVED - заказ одобрен (средства на счету покупателя заблокированы);
  • DEPOSITED - заказ завершен (деньги списаны со счета покупателя);
  • DECLINED - заказ отклонен;
  • REVERSED - заказ отклонен;
  • REFUNDED - возврат средств.
Необязательно

approvedAmount Integer [0..12] Сумма в минимальных единицах валюты (например, в центах), которая была заблокирована на счете покупателя. Используется только в двухстадийных платежах.
Необязательно

depositedAmount Integer [1..12] Сумма списания в минимальных единицах валюты (например, в копейках).
Необязательно

refundedAmount Integer [1..12] Сумма возврата в минимальных единицах валюты.
Необязательно

totalAmount Integer [1..20] Сумма заказа плюс комиссия, если таковая имеется.

Примеры

Пример запроса

curl --location --request POST 'https://dev.bpsprocessing.ru/payment/applepay/paymentDirect.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderNumber": "947664b3-4a42-4cdf-9f8c-2e9679bad9e4",
    "description": "description of the order",
    "language": "en",
    "paymentToken": "eyJhcHBsaWNhPT...0ifX0="
}'

Примеры ответа - успешный платеж

{
    "success": true,
    "data": {
        "orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
    },
    "orderStatus": {
        "errorCode": "0",
        "orderNumber": "229",
        "orderStatus": 1,
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 960000,
        "currency": "978",
        "date": 1478682458102,
        "ip": "x.x.x.x",
        "merchantOrderParams": [
            {
                "name": "param2",
                "value": "param2"
            },
            {
                "name": "param1",
                "value": "param1"
            }
        ],
        "attributes": [
            {
                "name": "mdOrder",
                "value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
            }
        ],
        "cardAuthInfo": {
            "expiration": "203012",
            "cardholderName": "TEST CARDHOLDER",
            "approvalCode": "123456",
            "pan": "500000**1115"
        },
        "authDateTime": 1478682459082,
        "terminalId": "12345678",
        "authRefNum": "111111111111",
        "paymentAmountInfo": {
            "paymentState": "APPROVED",
            "approvedAmount": 960000,
            "depositedAmount": 0,
            "refundedAmount": 0
        },
        "bankInfo": {
            "bankCountryName": "<UNKNOWN>"
        }
    }
}

Пример ответа - ошибка платежа

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Insufficient amount on card"
  },
  "success": false
}

Регистрация заказа Google Pay

Для регистрации и оплаты заказа используется запрос https://dev.bpsprocessing.ru/payment/google/payment.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Параметры запроса

Обязательность Название Тип Описание
Обязательно

merchant String [1..255] Чтобы зарегистрировать и оплатить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. список параметров.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Обязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения.
Обязательно

paymentToken String [1..8192] Токен, полученный от Google Pay и закодированный в Base64.
Обязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currencyCode String [3] Цифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль).
Обязательно

returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

dynamicCallbackUrl String [1..512] Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.
Необязательно

clientBrowserInfo Object Блок данных о браузере клиента, который отправляется на ACS во время 3DS аутентификации. Этот блок можно передавать, только если включена специальная настройка (обратитесь в команду поддержки). См. вложенные параметры.

При аутентификации по протоколу 3DS2 также передаются следующие параметры:

Обязательность Название Тип Описание
Условие

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSVer2FinishUrl String [1..512] URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
Необязательно

threeDSMethodNotificationUrl String [1..512] URL-адрес для отправки уведомления о прохождении проверки на ACS.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки. Это значение возможно передать только при наличии разрешения "Разрешено создание vendor pays common связок".
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.

Дополнительные параметры, определяющие тип создаваемой связки и передаваемые в additionalParameters:

Обязательность Название Тип Описание
Условие

installments Integer [3] Максимальное количество разрешенных авторизаций для платежей в рассрочку.
Указывается в случае создания связки для выполнения платежей в рассрочку.
Условие

recurringFrequency Integer [2] Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.
Условие

recurringExpiry String [8] Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Ниже приведены параметры блока clientBrowserInfo (данные о браузере клиента).

Обязательность Название Тип Описание
Необязательно userAgent String [1..2048] Агент браузера.
Необязательно OS String Операционная система.
Необязательно OSVersion String Версия операционной системы.
Необязательно browserAcceptHeader String [1..2048] Заголовок Accept, который сообщает серверу, какие форматы (или MIME-типы) поддерживает браузер.
Необязательно browserIpAddress String [1..45] IP-адрес браузера.
Необязательно browserLanguage String [1..8] Язык браузера.
Необязательно browserTimeZone String Часовой пояс браузера.
Необязательно browserTimeZoneOffset String [1..5] Смещение часового пояса в минутах между локальным временем пользователя и UTC.
Необязательно colorDepth String [1..2] Глубина цвета экрана, в битах.
Необязательно fingerprint String Отпечаток браузера - уникальный цифровой идентификатор браузера.
Необязательно isMobile Boolean Возможные значения: true или false. Флаг, указывающий на то, что используется мобильное устройство.
Необязательно javaEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка java.
Необязательно javascriptEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка javascript.
Необязательно plugins String Список плагинов, используемых в браузере, через запятую.
Необязательно screenHeight Integer [1..6] Высота экрана в пикселях.
Необязательно screenWidth Integer [1..6] Ширина экрана в пикселях.
Необязательно screenPrint String Данные о параметрах печати браузера, включая разрешение, глубину цвета, плотность пикселей.

Пример блока clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Условие data Object Этот параметр возвращается только в случае успешной обработки платежа. См. описание ниже.
Условие error Object Этот параметр возвращается только в случае ошибки платежа. См. описание ниже.

Блок data содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Необязательно

termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
Необязательно

acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
Необязательно

paReq String [1..255] PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.
Необязательно

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.

Если используется протокол 3DS2, ответ на запрос также включает следующие параметры в блоке data:

Обязательность Название Тип Описание
Обязательно

is3DSVer2 Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
Обязательно

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSMethodUrl String [1..512] URL-адрес сервера ACS для сбора данных браузера.
Обязательно

threeDSMethodUrlServer String [1..512] URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
Необязательно

threeDSMethodDataPacked String [1..1024] Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
Необязательно

threeDSMethodURLServerDirect String [1..512] URL-адрес 3dsmethod.do для выполнения метода 3DS на сервере 3DS через платежный шлюз (при наличии соответствующего разрешения на уровне продавца).

Блок error содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

code String [1..3] Код как информационный параметр, сообщающий об ошибке.
Обязательно

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Обязательно

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

Используйте запрос getOrderStatusExtended.do, чтобы проверить статус транзакции.

Примеры

Пример запроса

curl --request POST \
--url https://dev.bpsprocessing.ru/payment/google/payment.do \
--header 'Content-Type: application/json' \
--data-raw '{
  "merchant": "OurBestMerchantLogin",
  "orderNumber": "UAF-203974-DE",
  "language": "EN",
  "preAuth": true,
  "description" : "Test description",
  "additionalParameters":
  {
      "firstParamName": "firstParamValue",
      "secondParamName": "secondParamValue"
  },
  "paymentToken": "eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=",
  "ip" : "127.0.0.1",
  "amount" : "230000",
  "currencyCode" : 643,
  "failUrl" : "https://mybestmerchantfailurl.com"
  "returnUrl" : "https://mybestmerchantreturnurl.com"
}'

Пример ответа

{
"success":true,
"data": {
 "orderId": "12312312123"
 "is3DSVer2": true,
 "threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
 "threeDSMethodURLServer": "https://test.com/3dsserver/gatherClientInfo?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134"
 }
}

Google Pay Direct

Запрос, используемый для прямого платежа через Google Pay -https://dev.bpsprocessing.ru/payment/google/paymentDirect.do. Он используется для регистрации и оплаты заказа.

Этот запрос можно использовать для интеграций, предполагающих расшифровку платежных данных на стороне продавца.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Параметры запроса

Обязательность Название Тип Описание
Обязательно

username String [1..30] Логин учетной записи API продавца.
Обязательно

password String [1..30] Пароль учетной записи API продавца.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. список параметров.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

protocolVersion String Версия протокола, определенная Google для платежного токена: ECv1 (по умолчанию) или ECv2
Обязательно

paymentToken String [1..8192] Платежные данные, полученные от Google Pay и расшифрованные продавцом. Последовательность действий:
  1. Получите PKPaymentToken Object от Google Pay (Payment Token Format Reference) с зашифрованными платежными данными;
  2. Расшифруйте (ECC/RSA) paymentData, чтобы получить текстовое представление объекта: {"paymentMethod": "CARD","paymentMethodDetails": {"pan": "5555555555555599","expirationMonth": 12,"expirationYear": 2024},"gatewayMerchantId": "GPay-decrypted","messageId": "AH2EjtcHYs1Ye9Baqr4FAM735VNThPiP","messageExpiration": "1577862000000"};
  3. Закодируйте в BASE64 открытый текст объекта paymentData и отправьте его как paymentToken.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currencyCode String [3] Цифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль).
Обязательно

returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
Необязательно

merchant String [1..255] Чтобы зарегистрировать и оплатить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
  • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
  • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
  • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
  • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
  • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения.
Условие

originalPaymentNetRefNum String Идентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
Условие

originalPaymentDate String Дата инициирующей транзакции. Значение в формате Unix timestamp в миллисекундах. Передается, если значение параметра tii = R,U или F.
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
Условие

email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.
Необязательно

clientBrowserInfo Object Блок данных о браузере клиента, который отправляется на ACS во время 3DS аутентификации. Этот блок можно передавать, только если включена специальная настройка (обратитесь в команду поддержки). См. вложенные параметры.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки. Это значение возможно передать только при наличии разрешения "Разрешено создание vendor pays common связок".
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.

Дополнительные параметры, определяющие тип создаваемой связки и передаваемые в additionalParameters:

Обязательность Название Тип Описание
Условие

installments Integer [3] Максимальное количество разрешенных авторизаций для платежей в рассрочку.
Указывается в случае создания связки для выполнения платежей в рассрочку.
Условие

recurringFrequency Integer [2] Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.
Условие

recurringExpiry String [8] Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.

Ниже приведены параметры блока clientBrowserInfo (данные о браузере клиента).

Обязательность Название Тип Описание
Необязательно userAgent String [1..2048] Агент браузера.
Необязательно OS String Операционная система.
Необязательно OSVersion String Версия операционной системы.
Необязательно browserAcceptHeader String [1..2048] Заголовок Accept, который сообщает серверу, какие форматы (или MIME-типы) поддерживает браузер.
Необязательно browserIpAddress String [1..45] IP-адрес браузера.
Необязательно browserLanguage String [1..8] Язык браузера.
Необязательно browserTimeZone String Часовой пояс браузера.
Необязательно browserTimeZoneOffset String [1..5] Смещение часового пояса в минутах между локальным временем пользователя и UTC.
Необязательно colorDepth String [1..2] Глубина цвета экрана, в битах.
Необязательно fingerprint String Отпечаток браузера - уникальный цифровой идентификатор браузера.
Необязательно isMobile Boolean Возможные значения: true или false. Флаг, указывающий на то, что используется мобильное устройство.
Необязательно javaEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка java.
Необязательно javascriptEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка javascript.
Необязательно plugins String Список плагинов, используемых в браузере, через запятую.
Необязательно screenHeight Integer [1..6] Высота экрана в пикселях.
Необязательно screenWidth Integer [1..6] Ширина экрана в пикселях.
Необязательно screenPrint String Данные о параметрах печати браузера, включая разрешение, глубину цвета, плотность пикселей.

Пример блока clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Если используется 3DS2, необходимо также передать следующие параметры:

Обязательность Название Тип Описание
Условие

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSVer2FinishUrl String [1..512] URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
Необязательно

threeDSSDK Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
Необязательно

threeDSMethodNotificationUrl String [1..512] URL-адрес для отправки уведомления о прохождении проверки на ACS.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Обязательно*

data Object Возвращается только в случае успешной оплаты.
Обязательно*

error Object Этот параметр возвращается только в случае ошибки платежа.

Блок data содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Только если используется дополнительная аутентификация на ACS банка-эмитента

termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
Только если используется дополнительная аутентификация на ACS банка-эмитента

acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
Только если используется дополнительная аутентификация на ACS банка-эмитента

paReq String [1..255] PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.
Параметр возвращается, если используются связки

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.

Если используется протокол 3DS2, ответ на запрос также включает следующие параметры в блоке data:

Обязательность Название Тип Описание
Обязательно

is3DSVer2 Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
Обязательно

threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Необязательно

threeDSMethodUrl String [1..512] URL-адрес сервера ACS для сбора данных браузера.
Необязательно

threeDSMethodUrlServer String [1..512] URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
Необязательно

threeDSMethodDataPacked String [1..1024] Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
Необязательно

threeDSMethodURLServerDirect String [1..512] URL-адрес 3dsmethod.do для выполнения метода 3DS на сервере 3DS через платежный шлюз (при наличии соответствующего разрешения на уровне продавца).

Параметры в блоке error:

Обязательность Название Тип Описание
Обязательно

code String [1..3] Код как информационный параметр, сообщающий об ошибке.
Обязательно

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Обязательно

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

Примеры

Пример запроса

curl --request POST \
--url https://dev.bpsprocessing.ru/payment/google/paymentDirect.do \
--header 'Content-Type: application/json' \
--data-raw '{
  "amount": "1000",
  "orderNumber": "350467565",
  "features": [""],
  "language": "EN",
  "password": "test_user_password",
  "paymentToken": "eyJnYXRldTWVY2hRJ...b25ZZWFyyMD0fX0=",
  "preAuth": true,
  "returnUrl": "https://mybestmerchantreturnurl.com",
  "username": "test_user"
}'

Пример ответа

{
  "success": true,
  "data": {
    "orderId": "12312312123"
  }
}

Регистрация заказа Samsung Pay

Для регистрации и оплаты заказа Samsung Pay используется запрос https://dev.bpsprocessing.ru/payment/samsung/payment.do. См. "Координаты подключения". Этот запрос используется только при оплате из мобильного приложения.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Ниже представлен пример запроса на оплату через Samsung Pay.

Параметры запроса

Обязательность Название Тип Описание
Обязательно

merchant String [1..255] Чтобы зарегистрировать и оплатить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. список параметров.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения.
Обязательно

paymentToken String [1..8192] Содержимое параметра 3ds.data из ответа, полученного от Samsung Pay.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

currencyCode String [3] Цифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль).
Необязательно

features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
  • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
  • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
  • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
  • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
  • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки. Это значение возможно передать только при наличии разрешения "Разрешено создание vendor pays common связок".
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.

Дополнительные параметры, определяющие тип создаваемой связки и передаваемые в additionalParameters:

Обязательность Название Тип Описание
Условие

installments Integer [3] Максимальное количество разрешенных авторизаций для платежей в рассрочку.
Указывается в случае создания связки для выполнения платежей в рассрочку.
Условие

recurringFrequency Integer [2] Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.
Условие

recurringExpiry String [8] Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Условие data Object Этот параметр возвращается только в случае успешной обработки платежа. См. описание ниже.
Условие error Object Этот параметр возвращается только в случае ошибки платежа. См. описание ниже.

Блок data содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

Блок error содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

code String [1..3] Код как информационный параметр, сообщающий об ошибке.
Обязательно

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Обязательно

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

Примеры

Пример запроса

curl --location --request POST 'https://dev.bpsprocessing.ru/payment/samsung/payment.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "merchant": "sandbox_merchant_test",
    "orderNumber": "1218637308",
    "language": "en",
    "preAuth": true,
    "description": "Test description",
    "additionalParameters": {
        "firstParamName": "firstParamValue",
        "secondParamName": "secondParamValue"
    },
    "paymentToken": "ew0KICB7DQoJICA...0KICB9DQp9",
    "ip": "x.x.x.x"
}'

Ответ в случае успешной оплаты

{
"success":true,
"data": {
    "orderId": "12312312123"
  }
}

Ответ в случае неудачной оплаты

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Not enough money"
  },
  "success": false
}

Samsung Pay Direct

Запрос, используемый для осуществления прямого платежа через Samsung Pay - https://dev.bpsprocessing.ru/payment/samsung/paymentDirect.do. Он используется для регистрации и оплаты заказа.

Этот запрос можно использовать для интеграций, предполагающих расшифровку платежных данных на стороне продавца.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Параметры запроса

Обязательность Название Тип Описание
Обязательно

merchant String [1..255] Чтобы зарегистрировать и оплатить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Обязательно

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

feeInput Integer [0..8] Размер комиссии в минимальных единицах валюты. Функциональность должна быть включена на уровне продавца в шлюзе.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. список параметров.
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
Необязательно

clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
Обязательно

paymentToken String [1..8192] Токен, полученный от Samsung Pay и закодированный в Base64. Example:
{"amount": "100", "currency_code": "USD", "utc": "1490687350988", "eci_indicator": "07", "tokenPAN": "5599014702854883", "tokenPanExpiration": "0420", "cryptogram": "ACF9prZs2wsTAAGysReaAoACFA=="}
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения.
Условие

originalPaymentNetRefNum String Идентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
Условие

originalPaymentDate String Дата инициирующей транзакции. Значение в формате Unix timestamp в миллисекундах. Передается, если значение параметра tii = R,U или F.
Необязательно

threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
Необязательно

externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
Необязательно

billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров объекта shippingPayerData:

Обязательность Название Тип Описание
Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
Необязательно shippingCountry String [1..50] Страна заказчика
Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

Описание параметров объекта preOrderPayerData:

Обязательность Название Тип Описание
Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

Описание параметров объекта orderPayerData.

Обязательность Название Тип Описание
Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки. Это значение возможно передать только при наличии разрешения "Разрешено создание vendor pays common связок".
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.

Дополнительные параметры, определяющие тип создаваемой связки и передаваемые в additionalParameters:

Обязательность Название Тип Описание
Условие

installments Integer [3] Максимальное количество разрешенных авторизаций для платежей в рассрочку.
Указывается в случае создания связки для выполнения платежей в рассрочку.
Условие

recurringFrequency Integer [2] Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.
Условие

recurringExpiry String [8] Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD.
Указывается в случае создания связки для выполнения рекуррентных платежей.
Обязательно к передаче в случае создания связки для выполнения платежей в рассрочку при включенном 3DS2.

Параметры ответа

Обязательность Название Тип Описание
Обязательно

success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
Обязательно*

data Object Возвращается только в случае успешной оплаты.
Обязательно*

error Object Этот параметр возвращается только в случае ошибки платежа.

Блок data содержит следующие элементы.

Обязательность Название Тип Описание
Обязательно

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Параметр возвращается, если используются связки

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.

Параметры в блоке error:

Обязательность Название Тип Описание
Обязательно

code String [1..3] Код как информационный параметр, сообщающий об ошибке.
Обязательно

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Обязательно

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

Примеры

Пример запроса

curl --request POST \
--url https://dev.bpsprocessing.ru/payment/samsung/paymentDirect.do \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant": "OurBestMerchantLogin",
"orderNumber": "UAF-203974-DE",
"language": "EN",
"preAuth": true,
"description" : "Test description",
"additionalParameters":
{
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "ew0KICB7DQoJICA...0KICB9DQp9",
"ip" : "127.0.0.1"
}'

Примеры ответа - успешный платеж

{
  "success": true,
  "data": {
    "orderId": "12312312123"
  }
}

Пример ответа - ошибка платежа

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Insufficint amount on card"
  },
  "success": false
}

Статус платежа

Самый простой способ узнать статус платежа — использовать специальный вызов API:

  1. Сделать вызов getOrderStatusExtended.do;
  2. Проверить поле orderStatus в ответе: заказ считается оплаченным, только если значение orderStatus равно 1 или 2.

Еще один способ проверить, прошел ли платеж успешно или нет, – это посмотреть уведомление обратного вызова.

Статус заказа

Для получения статуса заказа используется метод https://dev.bpsprocessing.ru/payment/rest/getOrderStatusExtended.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

Дополнительная информация о причинах отказа доступна здесь.

Параметры запроса

Обязательность Название Тип Описание
Условие

userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
Условие

token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
Условие

orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

Условие

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого мерчанта.
Необязательно

language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru, en.
Необязательно

merchantLogin String [1..255] Чтобы вместо текущего пользователя получить статус заказа определенного мерчанта, укажите логин мерчанта (для API-аккаунта).
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.

Параметры ответа

Существует несколько наборов параметров ответа. Какой набор параметров возвращается в ответе, зависит от версии getOrderStatusExtended, указанной в настройках мерчанта в платежном шлюзе.

Описание версий

Версия Добавленные параметры
1 orderBundle
2
  • authDateTime
  • terminalId
  • authRefNum
3
  • paymentAmountInfo->approvedAmount, depositedAmount, paymentState, refundedAmount
  • bankInfo->bankCountryCode, bankCountryName, bankName
4 Нет изменений
5 refunds
6 chargeback
7 cardAuthInfo->secureAuthInfo->paResStatus, veResStatus, paResCheckStatus
8 cardAuthInfo->paymentSystem, product
9 paymentWay
10 depositedDate
11 Нет изменений
12
  • refundedDate
  • reversedDate
13 payerData->email,phone,postAddress
14 transactionAttributes
15
  • prepaymentMdOrder
  • partpaymentMdOrders
16 feUtrnno
17 cardAuthInfo->productCategory
18 totalAmount
19 avsCode
20 bindingInfo->externalCreated
21 refunds->externalRefundId
22 Нет изменений
23 efectyOrderInfo
24 ofdOrderBundle
25 Нет изменений
26 refunds->approvalCode
27 authRefNum
28 pluginInfo
29 Нет изменений
30 cardAuthInfo->secureAuthInfo->aResTransStatus, rReqTransStatus, threeDsProtocolVersion
31 Нет изменений
32 Нет изменений
33 displayErrorMessage
34 orderBundle->cartItems->items->depostedItemAmount,itemPrice
35 cardAuthInfo->corporateCard
36 Нет изменений
37
  • tii
  • usedPsdIndicatorValue
38 Нет изменений
39 Нет изменений
40 Нет изменений
41 Нет изменений
42 Нет изменений
43 Нет изменений
44 Нет изменений
45 Нет изменений
46 Нет изменений
Версия Обязательность Название Тип Описание
Все Необязательно

errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Все Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Все Условие

orderNumber String [1..36] Номер заказа (ID) в системе мерчанта, должен быть уникальным для каждого мерчанта, зарегистрированного в платежном шлюзе. Если номер заказа генерируется на стороне платежного шлюза, этот параметр передавать необязательно.
Все Необязательно

orderStatus Integer Значение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 1 - заказ только авторизован и еще не завершен (для двухстадийных платежей);
  • 2 - заказ авторизован и завершен;
  • 3 - авторизация отменена;
  • 4 - по транзакции была проведена операция возврата;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
  • 7 - ожидание оплаты заказы;
  • 8 - промежуточное завершение для многократного частичного завершения.
Все Обязательно

actionCode String Код ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
Все Обязательно

actionCodeDescription String [1..512] Описание actionCode, возвращаемое процессингом банка.
Все Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Все Необязательно

currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию.
Все Обязательно

date Integer Дата регистрации заказа как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
10+ Необязательно

depositedDate Integer Дата оплаты заказа как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
Все Необязательно

orderDescription String [1..600] Описание заказа передаваемое платежному шлюзу при регистрации.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Все Обязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
27+ Необязательно

authRefNum String [1..24] Номер авторизации платежа, присвоенный ему при регистрации платежа.
12+, обязательно с 27 Необязательно

refundedDate Integer Дата и время возврата, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
12+ Необязательно

reversedDate Integer Дата и время отмены платежа, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
09+ Обязательно

paymentWay String Способ совершения платежа (платеж с вводом карточных данных, оплата по связке и т.п.). Дополнительные возможные значения параметра приведены ниже
19+ Необязательно

avsCode String Код ответа верификации AVS (проверка адреса и почтового индекса держателя карты). Возможные значения:
  • A – почтовый индекс и адрес совпадают.
  • B – адрес совпадает, почтовый индекс не совпадает.
  • C - почтовый индекс совпадает, адрес не совпадает.
  • D - почтовый индекс и адрес не совпадают.
  • E - запрошена проверка данных, но результат неуспешен.
  • F - некорректный формат запроса AVS/AVV проверки.
06+ Необязательно

chargeback Boolean Были ли средства принудительно возвращены покупателю банком. Возможные значения:
  • true - средства были возвращены;
  • false - средства не были возвращены.
02+ Необязательно

authDateTime Integer Дата и время авторизации, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
02+ Необязательно

terminalId String [1..10] Идентификатор терминала в системе, обрабатывающей платеж.
01+ Необязательно

orderBundle Object Объект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.
03+ Необязательно

paymentAmountInfo Object Объект с информацией о суммах подтверждения, списания, возврата. Список вложенных параметров см. ниже.
05+ Необязательно

refunds Object Объект, содержащий информацию о возврате средств. Присутствует только при наличии возвратов в заказе. Описание вложенных элементов приведено ниже.
Все Необязательно

cardAuthInfo Object Блок с данными о карте плательщика. Описание вложенных элементов приведено ниже.
14+ Необязательно

transactionAttributes Object Набор дополнительных атрибутов транзакции. Список вложенных параметров см. ниже.
15+ Необязательно

prepaymentMdOrder String Номер предшествующего заказа на предоплату в платежном шлюзе.
15+ Необязательно

partpaymentMdOrders Array of String Массив последующих заказов на частичную оплату.
16+ Необязательно

feUtrnno Integer [1..18] Номер транзакции FE.
Все Необязательно

bindingInfo Object Объект, содержащий информацию о связке, по которой осуществляется платеж. См. таблицу с описанием bindingInfo.
23+ Необязательно

efectyOrderInfo Object Блок параметров, связанных с платежным способом EFECTY. Описание вложенных элементов приведено ниже.
28+ Необязательно

pluginInfo Object Присутствует в ответе, если оплата была произведена через платежный плагин. См. вложенные параметры ниже.
33+ Необязательно

displayErrorMessage String Отображаемое сообщение об ошибке.
37+ Необязательно

tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Описание вложенных элементов приведено ниже.
37+ Необязательно

usedPsdIndicatorValue String Тип исключения SCA (Strong Customer Authentication). Содержит значение, переданное при оплате заказа в параметре externalScaExemptionIndicator.
Допустимые значения:
  • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
  • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.
24+ Необязательно

ofdOrderBundle Object Пересчитанная для ОФД остаточная корзина (с учетом возвратов). См. вложенные параметры ниже.

Значения параметра paymentWay:

Описание параметров в объекте массива ofdOrderBundle:

Обязательность Название Тип Описание
Обязательно name String [1..100] Наименование или описание товарной позиции. Если при отправке запроса в ОФД длина наименования больше 128 символов, то запрос отклоняется.
Для таких ОФД как Orange Data и OFD.RU при передаче признака предмета расчета paymentObject=15 и paymentObject=16 поле name валидируется и должно принимать определенные значения.
Возможные значения см. ниже.
Обязательно itemAmount Integer [1..18] Сумма стоимости всех товарных позиций одного positionId в деньгах в минимальных единицах валюты
Необязательно itemAttributes Array of objects Набор дополнительных атрибутов, структура объекта:
{"param_1_name":"param_1_value"}. См. описание ниже.
Обязательно itemPrice Integer [1..2] Стоимость одной товарной позиции в минимальных единицах валюты.
Необязательно

taxType Integer Ставка НДС, доступны следующие значения:
  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС по ставке 10%;
  • 4 – НДС по расчетной ставке 10/110;
  • 6 – НДС по ставке 20%;
  • 7 – НДС по расчетной ставке 20/120;
  • 10 – НДС по ставке 5%;
  • 11 – НДС по расчетной ставке 5/105;
  • 12 – НДС по ставке 7%;
  • 13 – НДС по расчетной ставке 7/107;
  • 14 - НДС по ставке 22%:
  • 15 - НДС по расчетной ставке 22/122.
Необязательно

quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.

Массив itemAttributes состоит из объектов:

Описание параметров в объекте quantity:

Обязательность Название Тип Описание
Обязательно

value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
Обязательно

measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

Возможные значения параметра name:

Значение Описание
1 Доход от долевого участия в других организациях
2 Доход в виде курсовой разницы, образующейся вследствие отклонения курса продажи (покупки) иностранной валюты от официального курса
3 Доход в виде подлежащих уплате должником штрафов, пеней и (или) иных санкций за нарушение договорных обязательств
4 Доход от сдачи имущества (включая земельные участки) в аренду (субаренду)
5 Доход от предоставления в пользование прав на результаты интеллектуальной деятельности
6 Доход в виде процентов, полученных по договорам займа и другим долговым обязательствам
7 Доход в виде сумм восстановленных резервов
8 Доход в виде безвозмездно полученного имущества (работ, услуг) или имущественных прав
9 Доход в виде дохода, распределяемого в пользу налогоплательщика при его участии в простом товариществе
10 Доход в виде дохода прошлых лет, выявленного в отчетном (налоговом) периоде
11 Доход в виде положительной курсовой разницы
12 Доход в виде основных средств и нематериальных активов, безвозмездно полученных атомными станциями
13 Доход в виде стоимости полученных материалов при ликвидации выводимых из эксплуатации основных средств
14 Доход в виде использованных не по целевому назначению имущества, работ, услуг
15 Доход в виде использованных не по целевому назначению средств, предназначенных для формирования резервов по обеспечению безопасности производств
16 Доход в виде сумм, на которые уменьшен уставной (складочный) капитал (фонд) организации
17 Доход в виде сумм возврата от некоммерческой организации ранее уплаченных взносов (вкладов)
18 Доход в виде сумм кредиторской задолженности, списанной в связи с истечением срока исковой давности или по другим основаниям
19 Доход в виде доходов, полученных от операций с производными финансовыми инструментами
20 Доход в виде стоимости излишков материально-производственных запасов и прочего имущества, которые выявлены в результате инвентаризации
21 Доход в виде стоимости продукции СМИ и книжной продукции, подлежащей замене при возврате либо при списании
22 Доход в виде сумм корректировки прибыли налогоплательщика
23 Доход в виде возвращенного денежного эквивалента недвижимого имущества и (или) ценных бумаг, переданных на пополнение целевого капитала некоммерческой организации
24 Доход в виде разницы между суммой налоговых вычетов из сумм акциза и указанных сумм акциза
25 Доход в виде прибыли контролируемой иностранной компании
26 Взносы на ОПС (обязательное пенсионное страхование)
27 Взносы на ОСС (обязательное социальное страхование) в связи с нетрудоспособностью
28 Взносы на ОМС (обязательное медицинское страхование)
29 Взносы на ОСС (обязательное социальное страхование) от несчастных случаев
30 Пособие по временной нетрудоспособности
31 Платежи по добровольному личному страхованию

Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
F Внеплановый платеж (CIT) Последующая Покупатель Клиент выбирает карту вместо ручного ввода Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку.
U Внеплановый платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку. Используется только для одностадийных платежей.
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
R Рекуррентный платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Рекуррентная операция, использующая сохраненную связку. Используется только для одностадийных платежей.
II Инициирующий - Рассрочка (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
I Платеж по рассрочке (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Операция рассрочки, использующая сохраненную связку. Используется только для одностадийных платежей.

Блок refunds содержит следующие параметры.

Версия Обязательность Название Тип Описание
05+ Необязательно

date String Дата возврата заказа
21+ Необязательно

externalRefundId String [1..32] Идентификатор возврата. При попытке возврата проверяется externalRefundId: если он существует, возвращается успешный ответ с данными о возврате, если нет — осуществляется возврат.
26+ для всех платежных методов Необязательно

approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
05+ Необязательно

actionCode String Код ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
05+ Необязательно

referenceNumber String [12] Уникальный идентификационный номер, который присваивается операции по ее завершению.
05+ Необязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).

Блок attributes cодержит информацию о номере заказа в платежном шлюзе. Параметр name всегда принимает значение mdOrder, а параметр value - номер заказа в платежной системе.

Версия Обязательность Название Тип Описание
Все Необязательно

name String [1..255] Название дополнительного параметра.
Все Необязательно

value String [1..1024] Значение дополнительного параметра - до 1024 символов.

Блок transactionAttributes содержит набор дополнительных атрибутов транзакции. Используется для версии 14 и выше. Ниже приведен список включенных параметров.

Версия Обязательность Название Тип Описание
14+ Необязательно

name String [1..255] Название дополнительного параметра.
14+ Необязательно

value String [1..1024] Значение дополнительного параметра - до 1024 символов.
блок merchantOrderParams передается в ответе, если в заказе есть дополнительные параметры мерчанта. Каждый дополнительный параметр передается в отдельном элементе merchantOrderParams.
Версия Обязательность Название Тип Описание
Все Необязательно

name String [1..255] Название дополнительного параметра.
Все Необязательно

value String [1..1024] Значение дополнительного параметра - до 1024 символов.

Некоторые предопределенные параметры в merchantOrderParams:

В элементе cardAuthInfo лежит структура, состоящая из списка элемента secureAuthInfo и следующих параметров.

Версия Обязательность Название Тип Описание
01+ Необязательно

maskedPan String [1..19] Маскированный номер карты, использованной для платежа. Cодержит реальные первые 6 и последние 4 цифры номера карты в формате XXXXXX**XXXX.
01+ Необязательно

expiration Integer [6] Срок действия карты в следующем формате: YYYYMM.
01+ Необязательно

cardholderName String [1..26] Имя держателя карты латинскими буквами. Допустимые символы: латинские буквы, точка, пробел.
01+ Необязательно

approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
08+ Обязательно

paymentSystem String Наименование платежной системы. Возможны следующие значения:
  • VISA
  • MASTERCARD
  • AMEX
  • JCB
  • CUP
  • MIR
    08+ Обязательно

    product String [1..255] Дополнительные сведения о корпоративных картах. Эти сведения заполняются службой технической поддержки. Если такие сведения отсутствуют, возвращается пустое значение.
    17+ Обязательно

    productCategory String Дополнительные сведения о категории корпоративных карт. Эти сведения заполняются службой технической поддержки. Если такие сведения отсутствуют, возвращается пустое значение. Возможные значения: DEBIT, CREDIT, PREPAID, NON_MASTERCARD, CHARGE, DIFFERED_DEBIT.
    35+ Необязательно

    corporateCard String [1..5] Указывает, является ли данная карта корпоративной. Возможные значения: false - не является корпоративной картой, true - является корпоративной картой. Может возвращать пустое значение, означает, что значение не найдено.

    Элемент secureAuthInfo состоит из следующих элементов (параметры cavv и xid включены в элемент threeDSInfo).

    Версия Обязательность Название Тип Описание
    01+ Необязательно

    eci Integer [1..4] Электронный коммерческий индикатор. Указан только после оплаты заказа и в случае наличия соответствующего разрешения. Ниже приводится расшифровка ECI-кодов.
    • ECI=01 или ECI=06 - мерчант поддерживает 3-D Secure, платежная карта не поддерживает 3-D Secure, платеж обрабатывается на основе кода CVV2/CVC.
    • ECI=02 или ECI=05 - и мерчант, и платежная карта поддерживают 3-D Secure;
    • ECI=07 - мерчант не поддерживает 3-D Secure, платеж обрабатывается на основе кода CVV2/CVC.
    01+ Необязательно

    authTypeIndicator String Тип аутентификации 3DS (доступен до версии 42). Этот параметр обязателен для оплаты через ваш 3DS сервер с 3DS 2. Для SSL платежей этот параметр необязателен и определяется в зависимости от значения ECI. Допустимые значения:
    • 0 - SSL-аутентификация
    • 1 - Аутентификация 3DS 1
    • 2 - Попытка аутентификации 3DS 1
    • 3 - Строгая аутентификация клиентов (SCA) с 3DS 2
    • 4 - Аутентификация на основе риска (RBA) с 3DS 2
    • 5 - Попытка аутентификации 3DS 2
    01+ Необязательно

    cavv String [0..200] Значение проверки аутентификации владельца карты. Указан только после оплаты заказа и в случае наличия соответствующего разрешения.
    01+ Необязательно

    xid String [1..80] Электронный коммерческий идентификатор транзакции. Указан только после оплаты заказа и в случае наличия соответствующего разрешения.
    30+ Необязательно

    threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
    Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
    30+ Необязательно

    rreqTransStatus String [1] Статус транзакции из запроса на передачу результатов аутентификации пользователя от ACS (RReq). Передается при использовании 3DS2.
    30+ Необязательно

    aresTransStatus String Состояние транзакции из ответа ACS на запрос аутентификации (ARes). Передается при использовании 3DS2.
    07+ Необязательно

    paResStatus String Параметр указывает, квалифицируется ли транзакция как аутентифицированная транзакция.
    07+ Необязательно

    veResStatus String Параметр указывает, может ли быть аутентифицирован идентификатор учетной записи.
    07+ Необязательно

    paResCheckStatus String Результат проверки PaRes.

    Элемент bindingInfo содержит следующие параметры.

    Версия Обязательно Название Тип Описание
    Все Необязательно

    clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
    Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
    Все Необязательно

    bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
    • Этот заказ можно оплатить только с помощью связки;
    • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
    02+ Необязательно

    authDateTime Integer Дата и время авторизации, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
    02+ Необязательно

    authRefNum String [1..24] Номер авторизации платежа, присвоенный ему при регистрации платежа.
    02+ Необязательно

    terminalId String [1..10] Идентификатор терминала в системе, обрабатывающей платеж.
    20+ Необязательно

    externalCreated Boolean Признак, показывающий, создана ли связка во внешнем сервисе.

    Элемент paymentAmountInfo содержит следующие параметры.

    Версия Обязательно Название Тип Описание
    03+ Необязательно

    approvedAmount Integer [0..12] Сумма в минимальных единицах валюты (например, в центах), которая была заблокирована на счете покупателя. Используется только в двухстадийных платежах.
    03+ Необязательно

    depositedAmount Integer [1..12] Сумма списания в минимальных единицах валюты (например, в копейках).
    03+ Необязательно

    refundedAmount Integer [1..12] Сумма возврата в минимальных единицах валюты.
    03+ Необязательно

    paymentState String Состояние заказа, параметр может принимать следующие значения:
    • CREATED - заказ создан (но не оплачен);
    • APPROVED - заказ одобрен (средства на счету покупателя заблокированы);
    • DEPOSITED - заказ завершен (деньги списаны со счета покупателя);
    • DECLINED - заказ отклонен;
    • REVERSED - заказ отклонен;
    • REFUNDED - возврат средств.
    18+ Необязательно

    totalAmount Integer [1..20] Сумма заказа плюс комиссия, если таковая имеется.

    Элемент bankInfo содержит следующие параметры.

    Версия Обязательность Название Тип Описание
    03+ Необязательно

    bankName String [1..50] Название банка-эмитента.
    03+ Необязательно

    bankCountryCode String [1..4] Код страны банка-эмитента.
    03+ Необязательно

    bankCountryName String [1..160] Страна банка-эмитента.

    Элемент payerData содержит следующие параметры.

    Версия Обязательность Название Тип Описание
    13+ Необязательно

    email String [1..40] Электронная почта плательщика.
    13+ Необязательно

    phone String [7..15] Номер телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
    • +35799988877;
    • 0035799988877;
    • 35799988877.

    Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
    13+ Необязательно

    postAddress String [1..255] Адрес доставки.

    Блок efectyOrderInfo содержит следующие параметры.

    Версия Обязательность Название Тип Описание
    23+ Необязательно referenceNumber Integer Номер ссылки Efecty заказа, генерируемый на стороне Efecty
    23+ Необязательно referenceDate Integer Дата/время создания ссылки
    23+ Необязательно referenceStatus String Состояние Efecty заказа
    23+ Необязательно referenceTerm Integer Время жизни Efecty заказа (в часах)
    23+ Необязательно networkID Integer Идентификатор сети приема наличной оплаты (для Efecty постоянное значение - 1)
    23+ Необязательно networkName String Наименование сети приема наличной оплаты (для Efecty постоянное значение - efecty)

    Элемент pluginInfo (объект JSON) присутствует в ответе, если оплата была произведена через платежный плагин. Содержит следующие параметры.

    Версия Обязательность Название Тип Описание
    28+ Необязательно

    name String [1..32] Уникальное наименование платежного плагина.
    28+ Необязательно

    params Object Параметры для конкретного способа оплаты должны передаваться следующим образом {"param":"value","param2":"value2"}.

    Описание параметров в объекте orderBundle:

    Обязательность Название Тип Описание
    Необязательно

    orderCreationDate String [19] Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
    Необязательно

    customerDetails Object Блок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
    Обязательно

    cartItems Object Объект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.
    Необязательно

    agent Object Объект с информацией об агенте. Описание вложенных элементов приведено ниже.
    Необязательно

    supplierPhones Array of strings [1..19] Массив телефонных номеров поставщика в формате +N.

    Описание параметров в объекте loyalties:

    Обязательность Название Тип Описание
    Необязательно

    bonusAmountForCredit String [0..18] Общая сумма бонусов по всем товарам данного positionId для зачисления на бонусный счет клиента в минимальных единицах валюты.
    Необязательно

    bonusAmountForDebit String [0..18] Общая сумма бонусов по всем товарам данного positionId для списания с бонусного счета клиента в минимальных единицах валюты.
    Обязательно

    bonusAmountRefunded String [0..18] Общая сумма возвращенных бонусов для данного positionId в минимальных единицах валюты.
    Необязательно

    loyaltyProgramName String Название программы лояльности, примененное к товару в корзине
    Необязательно

    positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.

    Описание параметров в объекте customerDetails:

    Обязательность Название Тип Описание
    Условие

    email String [1..40] Электронный адрес клиента. Можно указать несколько адресов электронной почты через запятую и без пробелов.
    Обязательно следует передать один из двух параметров: email или phone.
    Условие

    phone String [7..15] Номер телефона владельца карты.
    Предпочтительно передавать номер телефона в параметре orderPayerData.mobilePhone (но если вы передадите его в этом блоке, к нему применятся те же правила).
    Необязательно

    contact String [0..40] Предпочитаемый клиентом способ связи.
    Необязательно fullName String [1..100] ФИО плательщика.
    Указывать ФИО плательщика рекомендуем только, если это требуется ФНС. В остальных случаях передавать этот параметр не нужно, т.к. это может привести к ошибке из-за проверки данных плательщика (см. Проверка данных плательщика при передаче корзины).
    Необязательно

    passport String [1..100] Серия и номер паспорта плательщика в следующем формате: 2222888888
    Необязательно

    deliveryInfo Object Объект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
    Необязательно

    inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.

    Проверка данных плательщика при передаче корзины

    Согласно требованиям ФНС, при передаче ФИО плательщика должно быть передано либо ИНН плательщика, либо его паспортные данные.

    В связи с этим, если в запросе с продуктовой корзиной передается какой-либо из параметров (в блоках orderBundle или additionalOfdParams):

    то выполняется проверка на обязательное наличие ИНН плательщика ИЛИ набора параметров Дата рождения, Код документа, Данные документа. Если это условие не выполняется, запрос будет обработан с ошибкой.

    Описание параметров в объекте deliveryInfo:

    Обязательность Название Тип Описание
    Необязательно

    deliveryType String [1..20] Способ доставки.
    Обязательно

    country String [2] Двухбуквенный код страны доставки.
    Обязательно

    city String [0..40] Город назначения.
    Обязательно

    postAddress String [1..255] Адрес доставки.

    Описание параметров в объекте cartItems:

    Обязательность Название Тип Описание
    Обязательно

    items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте items:

    Обязательность Название Тип Описание
    Обязательно

    positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
    Обязательно

    name String [1..255] Наименование или описание товарной позиции в свободной форме.
    Необязательно

    itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
    Обязательно

    quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
    Необязательно

    itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
    Необязательно

    itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
    Необязательно

    depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
    Необязательно

    itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
    Обязательно

    itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
    Необязательно

    tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
    Необязательно

    itemAttributes Object Объект, содержащий атрибуты товарной позиции.

    Описание параметров в объекте quantity:

    Обязательность Название Тип Описание
    Обязательно

    value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
    Обязательно

    measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

    Описание параметров в объекте itemDetails:

    Обязательность Название Тип Описание
    Необязательно

    itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров объекта tax:

    Обязательность Название Тип Описание
    Обязательно

    taxType Integer Ставка НДС, доступны следующие значения:
    • 0 – без НДС;
    • 1 – НДС по ставке 0%;
    • 2 – НДС по ставке 10%;
    • 4 – НДС по расчетной ставке 10/110;
    • 6 – НДС по ставке 20%;
    • 7 – НДС по расчетной ставке 20/120;
    • 10 – НДС по ставке 5%;
    • 11 – НДС по расчетной ставке 5/105;
    • 12 – НДС по ставке 7%;
    • 13 – НДС по расчетной ставке 7/107;
    • 14 - НДС по ставке 22%:
    • 15 - НДС по расчетной ставке 22/122.
    Обязательно

    taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

    Описание параметров в объекте itemAttributes:

    Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

    "itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
    Обязательность Название Тип Описание
    Обязательно

    paymentMethod Integer [1..2] Тип платежа, доступные значения:
    • 1 - полная предоплата;
    • 2 - частичная предоплата;
    • 3 - аванс;
    • 4 - полная оплата;
    • 5 - частичная оплата с последующей оплатой в кредит;
    • 6 - без оплаты с последующей оплатой в кредит;
    • 7 - оплата с последующей оплатой в кредит.
    Обязательно

    paymentObject Integer Объект платежа, доступные значения:
    • 1 - товар (значение по умолчанию);
    • 2 - подакцизный товар;
    • 3 - работа;
    • 4 - услуга;
    • 5 - ставка азартной игры;
    • 6 - выигрыш азартной игры;
    • 7 - лотерейный билет;
    • 8 - выигрыш лотереи;
    • 9 - предоставление РИД;
    • 10 - платеж;
    • 11 - агентское вознаграждение;
    • 12 - составной предмет расчета;
    • 13 - иной предмет расчета;
    • 14 - имущественное право;
    • 15 - внереализационный доход;
    • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
    • 17 - торговый сбор: о суммах уплаченного торгового сбора;
    • 18 - курортный сбор.

    Указанные выше значения доступны для ФФД 1.05.
    Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
    • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
    • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
    • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
    • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

    Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
    Условие

    nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
    Необязательно

    markQuantity Object Дробное количество маркируемого товара.
    Необязательно

    userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
    Необязательно

    agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
    Необязательно

    supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте agent_info:

    Обязательность Название Тип Описание
    Обязательно

    type Integer Тип агента, доступные значения:
    • 1 - банковский платежный агент;
    • 2 - банковский платежный субагент;
    • 3 - платежный агент;
    • 4 - платежный субагент;
    • 5 - поверенный;
    • 6 - комиссионер;
    • 7 - иной агент.
    Необязательно

    paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
    Необязательно

    paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
    Необязательно

    MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте paying:

    Обязательность Название Тип Описание
    Необязательно

    operation String [1..24] Название транзакции платежного агента.
    Необязательно

    phones Array of strings Массив телефонных номеров платежного агента в формате +N.

    Описание параметров в объекте paymentsOperator:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров платежного агента в формате +N.

    Описание параметров в объекте MTOperator:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
    Необязательно

    name String [1..256] Наименование оператора перевода.
    Необязательно

    address String [1..256] Адрес оператора перевода.
    Необязательно

    inn String [10..12] ИНН оператора перевода.

    Описание параметров в объекте supplier_info:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров поставщика в формате +N.
    Необязательно

    name String [1..256] Наименование поставщика.
    Необязательно

    inn Integer [10..12] ИНН поставщика

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/getOrderStatusExtended.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data language=en

    Пример ответа

    {
      "errorCode": "0",
      "errorMessage": "Success",
      "orderNumber": "7005",
      "orderStatus": 2,
      "actionCode": 0,
      "actionCodeDescription": "",
      "amount": 2000,
      "currency": "978",
      "date": 1617972915659,
      "orderDescription": "",
      "merchantOrderParams": [],
      "transactionAttributes": [],
      "attributes": [
        {
          "name": "mdOrder",
          "value": "01491d0b-c848-7dd6-a20d-e96900a7d8c0"
        }
      ],
      "cardAuthInfo": {
        "maskedPan": "411111**1111",
        "expiration": "203412",
        "cardholderName": "TEST CARDHOLDER",
        "approvalCode": "12345678",
        "pan": "411111**1111"
      },
      "bindingInfo": {
        "clientId": "259753456",
        "bindingId": "01491394-63a6-7d45-a88f-7bce00a7d8c0"
      },
      "authDateTime": 1617973059029,
      "terminalId": "123456",
      "authRefNum": "714105591198",
      "paymentAmountInfo": {
        "paymentState": "DEPOSITED",
        "approvedAmount": 2000,
        "depositedAmount": 2000,
        "refundedAmount": 0
      },
      "bankInfo": {
        "bankCountryCode": "UNKNOWN",
        "bankCountryName": "Unknown"
      }
    }

    Управление заказом

    Завершение заказа

    Для завершения предварительно авторизованного заказа используется запрос https://dev.bpsprocessing.ru/payment/rest/deposit.do.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    userName String [1..100] Логин учетной записи API продавца.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца.
    Обязательно

    orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
    Обязательно

    amount String [0..12] Сумма завершения в минимальных единицах валюты (например, в копейках). Сумма завершения должна соответствовать общей сумме всех товаров по которым идет завершение. Если в запросе указать amount=0, будет сформировано завершение на всю сумму заказа.
    Необязательно

    depositItems Object Объект, содержащий атрибуты товаров в корзине. Ниже приведено описание включенных атрибутов.
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Необязательно

    currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
    Необязательно

    jsonParams Object Набор дополнительных атрибутов произвольной формы, структура:
    jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
    Могут быть переданы в Процесинговый Центр, для последующей обработки (требуется дополнительная настройка - обратитесь в поддержку).
    Некоторые предопределенные атрибуты jsonParams:
    • backToShopUrl - добавляет на страницу оплаты кнопку, которая вернет держателя карты на URL-адрес переданный в этом параметре
    • backToShopName - настраивает текстовую метку кнопки Вернуться в магазин по умолчанию, если она используется вместе с backToShopUrl
    • installments - максимальное количество разрешенных авторизаций для платежей в рассрочку. Требуется для создания связки рассрочки
    • totalInstallmentAmount - итоговая сумма всех платежей в рассрочку. Значение необходимо для сохранения платежных данных для проведения рассрочки
    • recurringFrequency - минимальное количество дней между авторизациями. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).
    • recurringExpiry - дата, после которой авторизации не разрешены, в формате ГГГГММДД. Требуется для создания рекуррентной связки, рекомендуется для создания связки рассрочки (если используется 3DS2, параметр обязателен).

    Описание параметров в объекте deposititems:

    Обязательность Название Тип Описание
    Обязательно

    items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте items:

    Обязательность Название Тип Описание
    Обязательно

    positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
    Обязательно

    name String [1..255] Наименование или описание товарной позиции в свободной форме.
    Необязательно

    itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
    Обязательно

    quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
    Необязательно

    itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
    Необязательно

    itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
    Необязательно

    depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
    Необязательно

    itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
    Обязательно

    itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
    Необязательно

    tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
    Необязательно

    itemAttributes Object Объект, содержащий атрибуты товарной позиции.

    Описание параметров в объекте itemDetails:

    Обязательность Название Тип Описание
    Необязательно

    itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте itemDetailsParams:

    Обязательность Название Тип Описание
    Обязательно

    value String [1..2000] Дополнительная информация по товарной позиции.
    Обязательно

    name String [1..255] Наименование параметра описания детализации товарной позиции

    Описание параметров в объекте quantity:

    Обязательность Название Тип Описание
    Обязательно

    value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
    Обязательно

    measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

    Описание параметров объекта tax:

    Обязательность Название Тип Описание
    Обязательно

    taxType Integer Ставка НДС, доступны следующие значения:
    • 0 – без НДС;
    • 1 – НДС по ставке 0%;
    • 2 – НДС по ставке 10%;
    • 4 – НДС по расчетной ставке 10/110;
    • 6 – НДС по ставке 20%;
    • 7 – НДС по расчетной ставке 20/120;
    • 10 – НДС по ставке 5%;
    • 11 – НДС по расчетной ставке 5/105;
    • 12 – НДС по ставке 7%;
    • 13 – НДС по расчетной ставке 7/107;
    • 14 - НДС по ставке 22%:
    • 15 - НДС по расчетной ставке 22/122.
    Обязательно

    taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

    Описание параметров в объекте itemAttributes:

    Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

    "itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
    Обязательность Название Тип Описание
    Обязательно

    paymentMethod Integer [1..2] Тип платежа, доступные значения:
    • 1 - полная предоплата;
    • 2 - частичная предоплата;
    • 3 - аванс;
    • 4 - полная оплата;
    • 5 - частичная оплата с последующей оплатой в кредит;
    • 6 - без оплаты с последующей оплатой в кредит;
    • 7 - оплата с последующей оплатой в кредит.
    Обязательно

    paymentObject Integer Объект платежа, доступные значения:
    • 1 - товар (значение по умолчанию);
    • 2 - подакцизный товар;
    • 3 - работа;
    • 4 - услуга;
    • 5 - ставка азартной игры;
    • 6 - выигрыш азартной игры;
    • 7 - лотерейный билет;
    • 8 - выигрыш лотереи;
    • 9 - предоставление РИД;
    • 10 - платеж;
    • 11 - агентское вознаграждение;
    • 12 - составной предмет расчета;
    • 13 - иной предмет расчета;
    • 14 - имущественное право;
    • 15 - внереализационный доход;
    • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
    • 17 - торговый сбор: о суммах уплаченного торгового сбора;
    • 18 - курортный сбор.

    Указанные выше значения доступны для ФФД 1.05.
    Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
    • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
    • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
    • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
    • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

    Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
    Условие

    nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
    Необязательно

    markQuantity Object Дробное количество маркируемого товара.
    Необязательно

    userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
    Необязательно

    agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
    Необязательно

    supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте agent_info:

    Обязательность Название Тип Описание
    Обязательно

    type Integer Тип агента, доступные значения:
    • 1 - банковский платежный агент;
    • 2 - банковский платежный субагент;
    • 3 - платежный агент;
    • 4 - платежный субагент;
    • 5 - поверенный;
    • 6 - комиссионер;
    • 7 - иной агент.
    Необязательно

    paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
    Необязательно

    paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
    Необязательно

    MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте paying:

    Обязательность Название Тип Описание
    Необязательно

    operation String [1..24] Название транзакции платежного агента.
    Необязательно

    phones Array of strings Массив телефонных номеров платежного агента в формате +N.

    Описание параметров в объекте paymentsOperator:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров платежного агента в формате +N.

    Описание параметров в объекте MTOperator:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
    Необязательно

    name String [1..256] Наименование оператора перевода.
    Необязательно

    address String [1..256] Адрес оператора перевода.
    Необязательно

    inn String [10..12] ИНН оператора перевода.

    Описание параметров в объекте supplier_info:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров поставщика в формате +N.
    Необязательно

    name String [1..256] Наименование поставщика.
    Необязательно

    inn Integer [10..12] ИНН поставщика

    Описание параметров объекта markQuantity.

    Обязательность Название Тип Описание
    Обязательно

    numerator Integer [1..12] Числитель дробной части объекта платежа.
    Обязательно

    denominator Integer [1..12] Знаменатель дробной части объекта платежа.

    Параметры ответа

    Обязательность Название Тип Описание
    Необязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/deposit.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data currency=978\
      --data amount=2000 \
      --data orderId=01492437-d2fb-77fa-8db7-9e2900a7d8c0 \
      --data language=en

    Пример ответа

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Отмена платежа

    Для отмены платежа используется запрос https://dev.bpsprocessing.ru/payment/rest/reverse.do. Отмена возможна только в течение определенного периода времени после оплаты. Свяжитесь с Поддержкой, чтобы узнать точный период, так как он варьируется.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Платеж можно отменить только один раз. Если он завершится ошибкой, то последующие операции по отмене платежа работать не будут.

    Наличие данной функции возможно по согласованию с банком. Отмена может выполняться только пользователями, которым были предоставлены соответствующие системные разрешения.

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца.
    Обязательно

    orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
    Необязательно

    orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
    Необязательно

    merchantLogin String [1..255] Чтобы отменить заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
    Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Необязательно

    jsonParams String Поля для хранения дополнительных данных необходимо передавать следующим образом: {"param":"value","param2":"value2"}.Можно передать штраф за возврат в параметре penalty: {"penalty":"1300"}. Параметр penalty игнорируется для возвратов заказов с лояльностью, возвращается ошибка: {"errorCode":"5","errorMessage":"Штрафы не поддерживаются для заказов с лояльностью"}.
    Необязательно

    amount String [0..12] Сумма отмены в минимальных единицах валюты (например, в копейках). Сумма отмены должна быть меньше или равна авторизованной сумме заказа (для двухстадийных заказов - общей предварительно авторизованной сумме заказа).
    Необязательно

    currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.

    Параметры ответа

    Обязательность Название Тип Описание
    Необязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/reverse.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data currency=978\
      --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data language=en

    Пример ответа

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Возврат средств

    Используйте https://dev.bpsprocessing.ru/payment/rest/refund.do` для отправки запросов на возврат средств.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Нельзя осуществлять возврат средств по заказам, которые инициируют регулярные платежи, так как в этом случае не происходит списания средств.

    По этому запросу средства по указанному заказу будут возвращены плательщику. Запрос закончится ошибкой, если средства по этому заказу не были списаны. Система позволяет возвращать средства более одного раза, но в общей сложности не более первоначальной суммы списания.

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    userName String [1..100] Логин учетной записи API продавца.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца.
    Обязательно

    orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
    Обязательно

    amount String [0..12] Сумма возврата в минимальных единицах валюты (например, в копейках). Сумма возврата должна быть меньше или равна сумме заказа (для двухстадийных заказов - общей сумме завершения по заказу). Если в запросе указать amount=0, то будет возвращена вся сумма заказа.
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Необязательно

    jsonParams String Поля для хранения дополнительных данных необходимо передавать следующим образом: {"param":"value","param2":"value2"}.Можно передать штраф за возврат в параметре penalty: {"penalty":"1300"}. Параметр penalty игнорируется для возвратов заказов с лояльностью, возвращается ошибка: {"errorCode":"5","errorMessage":"Штрафы не поддерживаются для заказов с лояльностью"}.
    Необязательно

    expectedDepositedAmount Integer [1..12] Параметр служит для определения того, что запрос является повторным. Если параметр передан, его значение сравнивается с текущим значением depositedAmount в заказе. Операция будет выполнена только в том случае, если значения совпадают. Если два возврата приходят с одинаковым expectedDepositedAmount, будет выполнен только один возврат. Этот возврат изменит значение depositedAmount, а затем второй возврат будет отклонен.
    Необязательно

    externalRefundId String [1..32] Идентификатор возврата. При попытке возврата проверяется externalRefundId: если он существует, возвращается успешный ответ с данными о возврате, если нет — осуществляется возврат.
    Необязательно

    currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
    Необязательно

    refundItems Object Объект для передачи информации о возвращаемых товарах - номер позиции товара в запросе, название, детали, единица измерения, количество, валюта, код товара, прибыль агента.
    Необязательно

    additionalOfdParams Object Если блок additionalOfdParams был передан при регистрации заказа, его можно передать при возврате средств. При этом значения некоторых параметров, переданных при регистрации, можно изменить (см. описание блока ниже).

    Параметр refundItems включает в себя:

    Обязательность Название Тип Описание
    Необязательно

    items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте items:

    Обязательность Название Тип Описание
    Обязательно

    positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
    Обязательно

    name String [1..255] Наименование или описание товарной позиции в свободной форме.
    Необязательно

    itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
    Обязательно

    quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
    Необязательно

    itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
    Необязательно

    itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
    Необязательно

    depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
    Необязательно

    itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
    Обязательно

    itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
    Необязательно

    tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
    Необязательно

    itemAttributes Object Объект, содержащий атрибуты товарной позиции.

    Описание параметров в объекте itemAttributes:

    Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

    "itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
    Обязательность Название Тип Описание
    Обязательно

    paymentMethod Integer [1..2] Тип платежа, доступные значения:
    • 1 - полная предоплата;
    • 2 - частичная предоплата;
    • 3 - аванс;
    • 4 - полная оплата;
    • 5 - частичная оплата с последующей оплатой в кредит;
    • 6 - без оплаты с последующей оплатой в кредит;
    • 7 - оплата с последующей оплатой в кредит.
    Обязательно

    paymentObject Integer Объект платежа, доступные значения:
    • 1 - товар (значение по умолчанию);
    • 2 - подакцизный товар;
    • 3 - работа;
    • 4 - услуга;
    • 5 - ставка азартной игры;
    • 6 - выигрыш азартной игры;
    • 7 - лотерейный билет;
    • 8 - выигрыш лотереи;
    • 9 - предоставление РИД;
    • 10 - платеж;
    • 11 - агентское вознаграждение;
    • 12 - составной предмет расчета;
    • 13 - иной предмет расчета;
    • 14 - имущественное право;
    • 15 - внереализационный доход;
    • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
    • 17 - торговый сбор: о суммах уплаченного торгового сбора;
    • 18 - курортный сбор.

    Указанные выше значения доступны для ФФД 1.05.
    Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
    • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
    • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
    • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
    • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

    Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
    Условие

    nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
    Необязательно

    markQuantity Object Дробное количество маркируемого товара.
    Необязательно

    userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
    Необязательно

    agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
    Необязательно

    supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте agent_info:

    Обязательность Название Тип Описание
    Обязательно

    type Integer Тип агента, доступные значения:
    • 1 - банковский платежный агент;
    • 2 - банковский платежный субагент;
    • 3 - платежный агент;
    • 4 - платежный субагент;
    • 5 - поверенный;
    • 6 - комиссионер;
    • 7 - иной агент.
    Необязательно

    paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
    Необязательно

    paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
    Необязательно

    MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте paying:

    Обязательность Название Тип Описание
    Необязательно

    operation String [1..24] Название транзакции платежного агента.
    Необязательно

    phones Array of strings Массив телефонных номеров платежного агента в формате +N.

    Описание параметров в объекте paymentsOperator:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров платежного агента в формате +N.

    Описание параметров в объекте MTOperator:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
    Необязательно

    name String [1..256] Наименование оператора перевода.
    Необязательно

    address String [1..256] Адрес оператора перевода.
    Необязательно

    inn String [10..12] ИНН оператора перевода.

    Описание параметров в объекте supplier_info:

    Обязательность Название Тип Описание
    Необязательно

    phones Array of strings Массив телефонных номеров поставщика в формате +N.
    Необязательно

    name String [1..256] Наименование поставщика.
    Необязательно

    inn Integer [10..12] ИНН поставщика

    Описание параметров объекта markQuantity.

    Обязательность Название Тип Описание
    Обязательно

    numerator Integer [1..12] Числитель дробной части объекта платежа.
    Обязательно

    denominator Integer [1..12] Знаменатель дробной части объекта платежа.

    Описание параметров в объекте quantity:

    Обязательность Название Тип Описание
    Обязательно

    value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
    Обязательно

    measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

    Возможные значения параметра measure:

    Значение Описание
    0 Применяется к позициям, которые могут быть реализованы индивидуально или отдельными единицами, а также если объект платежа является предметом, подлежащим обязательной идентификационной маркировке.
    10 Грамм
    11 Килограмм
    12 Тонна
    20 Сантиметр
    21 Дециметр
    22 Метр
    30 Квадратный сантиметр
    31 Квадратный дециметр
    32 Квадратный метр
    40 Миллилитр
    41 Литр
    42 Кубический метр
    50 Киловатт час
    51 Гигакалория
    70 День
    71 Час
    72 Минута
    73 Секунда
    80 Килобайт
    81 Мегабайт
    82 Гигабайт
    83 Терабайт
    255 Применяется к другим единицам измерения

    Описание параметров в объекте itemDetails:

    Обязательность Название Тип Описание
    Необязательно

    itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

    Описание параметров в объекте itemDetailsParams:

    Обязательность Название Тип Описание
    Обязательно

    value String [1..2000] Дополнительная информация по товарной позиции.
    Обязательно

    name String [1..255] Наименование параметра описания детализации товарной позиции

    Описание параметров объекта tax:

    Обязательность Название Тип Описание
    Обязательно

    taxType Integer Ставка НДС, доступны следующие значения:
    • 0 – без НДС;
    • 1 – НДС по ставке 0%;
    • 2 – НДС по ставке 10%;
    • 4 – НДС по расчетной ставке 10/110;
    • 6 – НДС по ставке 20%;
    • 7 – НДС по расчетной ставке 20/120;
    • 10 – НДС по ставке 5%;
    • 11 – НДС по расчетной ставке 5/105;
    • 12 – НДС по ставке 7%;
    • 13 – НДС по расчетной ставке 7/107;
    • 14 - НДС по ставке 22%:
    • 15 - НДС по расчетной ставке 22/122.
    Обязательно

    taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

    Описание параметров в объекте additionalOfdParams:

    Обязательность Название Тип Описание
    Необязательно

    agent_info.type Integer Тип агента, доступные значения:
    • 1 - банковский платежный агент;
    • 2 - банковский платежный субагент;
    • 3 - платежный агент;
    • 4 - платежный субагент;
    • 5 - поверенный;
    • 6 - комиссионер;
    • 7 - иной агент.
    Необязательно

    agent_info.paying.operation String [1..24] Название транзакции платежного агента.
    Необязательно

    agent_info.paying.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
    Необязательно

    agent_info.paymentsOperator.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
    Необязательно

    agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
    Необязательно

    agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
    Необязательно

    agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
    Необязательно

    agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
    Необязательно

    supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
    Необязательно

    cashier String [1..256] Имя кассира.
    Необязательно

    additional_check_props String [1..16] Дополнительные свойства чека.
    Необязательно

    additional_user_props.name String [1..24] Название дополнительного свойства пользователя
    Необязательно

    additional_user_props.value String [1..24] Значение дополнительного свойства пользователя
    Необязательно

    cashier_inn String [10..12] ИНН кассира.
    Необязательно

    client.address String [1..256] Адрес клиента.
    Необязательно

    client.birth_date String [10] Дата рождения клиента в формате дд.мм.гггг.
    Необязательно

    client.citizenship String [3] Цифровой код страны, гражданином которой является покупатель (клиент).
    Необязательно

    client.document_code String [2] Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
    Необязательно

    client.passport_number String [11] Серия и номер паспорта плательщика.
    Необязательно

    client.email String [1..64] Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
    Необязательно

    client.phone String [19] Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
    Необязательно

    client.inn String [12] ИНН клиента.
    Необязательно

    client.name String [1..256] Имя клиента.
    Необязательно

    operatingcheckprops.name String Идентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
    Необязательно

    operatingcheckprops.timestamp String [1..19] Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
    Необязательно

    operatingcheckprops.value String [1..64] Данные транзакции.
    Необязательно

    sectoralcheckprops.date String [10] Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
    Необязательно

    sectoralcheckprops.federalid String Идентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
    Необязательно

    sectoralcheckprops.number String [32] Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
    Необязательно

    sectoralcheckprops.value String [1..256] Состав значений, определенных нормативным актом федерального органа исполнительной власти
    Условие

    company.automat_number String Номер автомата.
    Условия обязательной передачи параметров:
    • Формат фискальных документов 1.05 – для вендинга и транспорта;
    • Формат фискальных документов 1.2 – для вендинга и транспорта.
    Условие

    company.location String Адрес для выставления счета.
    Условия обязательной передачи параметров:
    • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
    • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
    Условие

    company.payment_address String Адрес для получения счетов.
    Условия обязательной передачи параметров:
    • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
    • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
    Необязательно

    use_legacy_vat boolean Параметр используется в случае, если необходимо передать устаревшее значение НДС. Возможные значения:
    • true- если необходимо передать устаревшее значение НДС
    • false - нет необходимости

    Параметры ответа

    Обязательность Название Тип Описание
    Необязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/refund.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data currency=978\
      --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data amount=2000 \
      --data language=en

    Пример ответа

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Мгновенный возврат

    Используйте запрос https://dev.bpsprocessing.ru/payment/rest/instantRefund.do для возврата средств за заказ. По этому запросу средства по заказу будут возвращены плательщику.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    userName String [1..100] Логин учетной записи API продавца.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца.
    Обязательно

    amount Integer [0..12] Сумма возврата в минимальных единицах валюты (например, в копейках).
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Необязательно

    currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
    Условие

    orderNumber String [1..36] Номер заказа (ID) в системе продавца должен быть уникальным для каждого продавца, зарегистрированного в Платежном шлюзе.
    Если номер заказа формируется на стороне мерчанта, этот параметр необязателен.
    Необязательно

    bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
    • Этот заказ можно оплатить только с помощью связки;
    • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
    Условие

    seToken String [1..8192] Зашифрованные данные карты, вводимые клиентом на стороне мерчанта. Должны быть переданы, если используются вместо данных карты: pan, cvc, expiry и cardHolderName.
    Допустимые комбинации seToken:
    • timestamp/uuid/PAN/CVV/EXPDATE
    • timestamp/uuid/PAN//EXPDATE
    • timestamp/uuid//CVV///bindingId
    • timestamp/uuid/////bindingId

    MdOrder не должен присутствовать в seToken. Если указан bindingId, то вместо mdOrder указывается пустое значение //bindingId.
    Подробнее о генерации seToken см. здесь.
    Условие

    pan String [1..19] Маскированный номер карты. Обязательно, если не переданы ни seToken, ни bindingId.
    Условие

    cvc String [3] Код CVC/CVV2 на обратной стороне карты. Является обязательным, если у мерчанта нет разрешения на оплату без CVC. Обязательно, если не переданы ни seToken, ни bindingId.
    Допускаются только цифры.
    Условие

    expiry Integer [6] Срок действия карты в следующем формате: YYYYMM. Обязательно, если не переданы ни seToken, ни bindingId.
    Условие

    cardHolderName String [1..26] Имя держателя карты латинскими буквами. Обязательно, если не переданы ни seToken, ни bindingId.
    Необязательно

    jsonParams String Поля для хранения дополнительных данных необходимо передавать следующим образом: {"param":"value","param2":"value2"}.Можно передать штраф за возврат в параметре penalty: {"penalty":"1300"}. Параметр penalty игнорируется для возвратов заказов с лояльностью, возвращается ошибка: {"errorCode":"5","errorMessage":"Штрафы не поддерживаются для заказов с лояльностью"}.

    Параметры ответа

    Обязательность Название Тип Описание
    Необязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.
    Необязательно

    orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
    Необязательно

    orderStatus Object Блок с информацией о статусе заказа. См. вложенные параметры.

    Ниже приведены параметры блока orderStatus.

    Обязательность Название Тип Описание
    Необязательно

    approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
    Необязательно

    rrn Integer [1..12] Reference Retrieval Number - идентификатор транзакции, присвоенный банком-эквайером.
    Необязательно

    ErrorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    ErrorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/instantRefund.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data amount=2000 \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderNumber=1218637308 \
      --data pan=4000001111111118 \
      --data cvc=123 \
      --data expiry=203012 \
      --data cardHolderName=TEST CARDHOLDER \
      --data language=en

    Пример ответа - Успешный мгновенный возврат средств и успешное получение статуса заказа

    {
      "errorCode": "0",
      "errorMessage": "Success",
      "orderId": "04899a8a-3bfd-7ceb-ac10-9e6909017350",
      "orderStatus": {
        "ErrorCode": "7",
        "ErrorMessage": "System error",
      }
    }

    Пример ответа - Успешный мгновенный возврат средств и НЕуспешное получение статуса заказа

    {
      "errorCode": "0",
      "errorMessage": "Success",
      "orderId": "04899a8a-3bfd-7ceb-ac10-9e6909017350",
      "orderStatus": {
        "ErrorCode": "7",
        "ErrorMessage": "System error",
      }
    }

    Пример ответа - Неуспешный мгновенный возврат средств (например, ошибка валидации)

    {
      "errorCode": "5",
      "errorMessage": "Access denied"
    }

    Отмена заказа

    Чтобы отменить еще не оплаченный заказ, используйте запрос https://dev.bpsprocessing.ru/payment/rest/decline.do. Отклонить можно только заказ, который не был завершен. После успешного выполнения данного запроса заказ переходит в статус DECLINED.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    userName String [1..100] Логин учетной записи API продавца.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца.
    Необязательно

    merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
    Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Обязательно

    orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
    Обязательно

    orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.

    Параметры ответа

    Обязательность Название Тип Описание
    Обязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Обязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/decline.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderId=8cf0409e-857e-7f95-8ab1-b6810009d884 \
      --data orderNumber=12345678 \
      --data merchantLogin=merch_test418 \
      --data language=en

    Пример ответа

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Связки

    Приведенные ниже запросы API позволяют управлять транзакциями по связкам. Транзакция по связке используется, когда держатель карты разрешает продавцу хранить платежные данные для дальнейших платежей. Узнайте больше о связках здесь.

    Оплата по связке

    Для оплаты заказа по связке используется запрос https://dev.bpsprocessing.ru/payment/rest/paymentOrderBinding.do.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    userName String [1..100] Логин учетной записи API продавца.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца.
    Обязательно

    mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
    Обязательно

    bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
    • Этот заказ можно оплатить только с помощью связки;
    • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Необязательно

    ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
    Необязательно

    cvc String [3] Передача параметра определяется типом платежа:
    • передача cvc не предусмотрена для MIT платежей;
    • передача cvc обязательна по умолчанию для всех других типов платежей; но если для мерчанта выбрано разрешение Может проводить оплату без подтверждения CVC, то в таком случае передача cvc становится необязательной.
      Допускаются только цифры.
    Необязательно

    threeDSSDK Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
    Обязательно

    tii String Идентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант). Возможные значения: F, U. См. описание значений.
    Условие

    email String [1..40] Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
    Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
    Необязательно

    threeDSProtocolVersion String Версия протокола 3DS. Возможные значения: "1.0.2" для 3DS1; "2.1.0", "2.2.0" для 3DS2.
    Если в запросе не передается threeDSProtocolVersion, то для авторизации 3D Secure будет использоваться значение по умолчанию (1.0.2 - для 3DS 1 или 2.1.0 - для 3DS 2).
    Необязательно

    externalScaExemptionIndicator String Тип исключения SCA (Strong Customer Authentication). Если указан этот параметр, транзакция будет обработана в зависимости от ваших настроек в платежном шлюзе: либо будет выполнена принудительная операция SSL, либо банк-эмитент получит информацию об исключении SCA и примет решение о проведении операции с 3DS-аутентификацией или без нее (для получения подробной информации свяжитесь с нашей службой поддержки). Допустимые значения:
    • LVP – транзакция типа Low Value Payments. Транзакция может быть отнесена к транзакциям с низким уровнем риска на основе суммы транзакции, количества транзакций клиента в день или общей дневной суммы платежей клиента.
    • TRA – транзакция типа Transaction Risk Analysis, т.е. транзакция, прошедшая успешную антифрод-проверку.

    Для передачи этого параметра у вас должны быть достаточные права в платежном шлюзе.
    Условие

    seToken String [1..8192] Зашифрованные данные карты. Обязательно, если используется вместо данных карты.
    Обязательные параметры для строки seToken: timestamp, UUID, bindingId, MDORDER. Подробнее о генерации seToken см. здесь.

    Необходимо передать один из следующих наборов параметров: pan+expirationYear+expirationMonth или seToken.

    |

    Возможные значения tii (Подробнее о типах связок, поддерживаемых платежным шлюзом, читайте здесь).

    Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
    F Внеплановый платеж (CIT) Последующая Покупатель Клиент выбирает карту вместо ручного ввода Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку.
    U Внеплановый платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку. Используется только для одностадийных платежей.

    Ниже приведены параметры блока clientBrowserInfo (данные о браузере клиента).

    Обязательность Название Тип Описание
    Необязательно userAgent String [1..2048] Агент браузера.
    Необязательно OS String Операционная система.
    Необязательно OSVersion String Версия операционной системы.
    Необязательно browserAcceptHeader String [1..2048] Заголовок Accept, который сообщает серверу, какие форматы (или MIME-типы) поддерживает браузер.
    Необязательно browserIpAddress String [1..45] IP-адрес браузера.
    Необязательно browserLanguage String [1..8] Язык браузера.
    Необязательно browserTimeZone String Часовой пояс браузера.
    Необязательно browserTimeZoneOffset String [1..5] Смещение часового пояса в минутах между локальным временем пользователя и UTC.
    Необязательно colorDepth String [1..2] Глубина цвета экрана, в битах.
    Необязательно fingerprint String Отпечаток браузера - уникальный цифровой идентификатор браузера.
    Необязательно isMobile Boolean Возможные значения: true или false. Флаг, указывающий на то, что используется мобильное устройство.
    Необязательно javaEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка java.
    Необязательно javascriptEnabled Boolean Возможные значения: true или false. Флаг, указывающий на то, что в браузере включена поддержка javascript.
    Необязательно plugins String Список плагинов, используемых в браузере, через запятую.
    Необязательно screenHeight Integer [1..6] Высота экрана в пикселях.
    Необязательно screenWidth Integer [1..6] Ширина экрана в пикселях.
    Необязательно screenPrint String Данные о параметрах печати браузера, включая разрешение, глубину цвета, плотность пикселей.

    Пример блока clientBrowserInfo:

    "clientBrowserInfo":
        {
            "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
            "fingerprint":850891523,
            "OS":"Windows",
            "OSVersion":"10",
            "isMobile":false,
            "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
            "colorDepth":24,
            "screenHeight":"864",
            "screenWidth":"1536",
            "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
            "javaEnabled":false,
            "javascriptEnabled":true,
            "browserLanguage":"it-IT",
            "browserTimeZone":"Europe/Rome",
            "browserTimeZoneOffset":-120,
            "browserAcceptHeader":"gzip",
            "browserIpAddress":"x.x.x.x"
        }

    Параметры ответа

    Обязательность Название Тип Описание
    Обязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.
    Необязательно

    redirect String [1..512] Этот параметр возвращается, если платеж прошел успешно и для платежа не проводилась проверка карты на вовлеченность в 3-D Secure. Продавцы могут использовать его, если хотят перенаправить пользователя на страницу платежного шлюза. Если продавец использует собственную страницу, это значение можно игнорировать.
    Необязательно

    info String В случае успешного ответа. Результат попытки оплаты. Ниже приведены возможные значения.
    • Ваш платеж обработан, происходит переадресация...
    • Операция отклонена. Проверьте введенные данные, достаточность средств на карте и повторите операцию. Происходит переадресация...
    • Извините, платеж не может быть совершен. Происходит переадресация...
    • Операция отклонена. Обратитесь в магазин. Происходит переадресация...
    • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...
    • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...
    • Нет связи с банком. Повторите позже. Происходит переадресация...
    • Истек срок ожидания ввода данных. Происходит переадресация...
    • Не получен ответ от банка. Повторите позже. Происходит переадресация...
    Необязательно

    error String [1..512] Сообщение об ошибке (если в ответе вернулась ошибка) на языке, переданном в запросе.
    Необязательно

    processingErrorType String Тип ошибки процессинга. Передается, если ошибка возникает на стороне процессинга, а не в платежном шлюзе, при этом число попыток оплаты не превышено и еще не было перенаправления на финальную страницу.
    Необязательно

    displayErrorMessage String Отображаемое сообщение об ошибке.
    Необязательно*

    errorTypeName String Параметр, необходимый фронтенд странице для определения типа ошибки. Обязательно для неудачных платежей.
    Необязательно

    acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
    Необязательно

    paReq String [1..255] PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.
    Необязательно

    termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
    Необязательно

    bindingId String [1..255] Идентификатор связки, созданной ранее или использованной для оплаты. Присутствует, только если у мерчанта есть разрешение на работу со связками.

    Примеры

    Пример запроса

    curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/rest/paymentOrderBinding.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data bindingId=01491394-63a6-7d45-a88f-7bce00a7d8c0 \
      --data cvc=123 \
      --data tii=F \
      --data language=en

    Пример успешного ответа для SSL-платежа (без 3-D Secure)

    {
      "redirect": "https://dev.bpsprocessing.ru/payment/merchants/temp/finish.html?orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0&lang=en",
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0
    }

    Пример успешного ответа на для платежа 3D-Secure

    {
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0,
      "acsUrl": "https://theacsserver.com/acs/auth/start.do",
      "paReq": "eJxVUu9vgjAQ/...4BaHYvAI=",
      "termUrl": "https://dev.bpsprocessing.ru/payment/rest/finish3ds.do?lang=en"
    }

    Пример ответа с ошибкой

    {
      "error": "[clientId] is empty",
      "errorCode": 5,
      "is3DSVer2": false,
      "errorMessage": "[clientId] is empty"
    }

    Получение связок

    Для получения списка клиентских привязок используется запрос https://dev.bpsprocessing.ru/payment/rest/getBindings.do.


    При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

    Параметры запроса

    Обязательность Название Тип Описание
    Обязательно

    clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
    Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
    Необязательно

    language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
    Поддерживаемые языки: ru, en.
    Обязательно

    userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
    Обязательно

    password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
    Необязательно

    bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
    • Этот заказ можно оплатить только с помощью связки;
    • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
    Необязательно

    bindingType String Тип связки, который ожидается в ответе (если он не указан, возвращаются все типы). Возможные значения:
    • C – обычная связка.
    • R – рекуррентная связка.
    • I - связка для рассрочки.
    Необязательно

    showExpired Boolean true/false параметр, определяющий, показывать ли связки с просроченными картами. Значение по умолчанию: false.
    Необязательно

    merchantLogin String [1..255] Чтобы получить список сохраненных клиентом учетных данных другого мерчанта, укажите в этом параметре логин мерчанта (для API-аккаунта).
    Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом. И вы, и указанный продавец должны иметь разрешение на работу с сохраненными учетными данными (связками).

    Параметры ответа

    Обязательность Название Тип Описание
    Обязательно

    errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
    • значение 0 - указывает на успех обработки запроса;
    • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
    Может отсутствовать, если результат не вызвал ошибки.
    Необязательно

    errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
    Язык описания задается в параметре language запроса.
    Необязательно

    bindings Object Элемент с блоками, содержащими параметры связок. См. описание ниже.

    Элемент bindings содержит следующие параметры.

    Обязательность Название Тип Описание
    Необязательно

    maskedPan String [1..19] Маскированный номер карты, использованной для платежа. Cодержит реальные первые 6 и последние 4 цифры номера карты в формате XXXXXX**XXXX.
    Необязательно

    paymentWay String Способ совершения платежа (платеж с вводом карточных данных, оплата по связке и т.п.). Дополнительные возможные значения параметра приведены ниже
    Обязательно

    bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
    • Этот заказ можно оплатить только с помощью связки;
    • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
    Обязательно

    expiryDate String [6] Срок действия карты в следующем формате: YYYYMM.
    Необязательно

    bindingCategory String Назначение связки, ожидаемой в ответе. Возможные значения: COMMON, INSTALLMENT, RECURRENT.
    Необязательно

    clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
    Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
    Необязательно

    displayLabel String [1..16] Последние 4 цифры исходного PAN перед токенизацией.
    Необязательно

    paymentSystem String Наименование платежной системы. Возможны следующие значения:
    • VISA
    • MASTERCARD
    • AMEX
    • JCB
    • CUP
    • MIR

      Примеры

      Пример запроса

      curl --request POST \
        --url https://dev.bpsprocessing.ru/payment/rest/getBindings.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data clientId=dos-clientos \
        --data bindingType=C

      Пример успешного ответа

      {
      "errorCode":"0",
      "errorMessage":"Success",
      "bindings": [
          {
                  "bindingId": "44779116-41a5-7798-b072-c0a30760e2b0",
                  "maskedPan": "411111**1111",
                  "expiryDate": "203412",
                  "paymentWay": "TOKEN_PAY",
                  "paymentSystem": "CARD",
                  "displayLabel": "XXXXXXXXXXXX1111",
                  "bindingCategory": "COMMON"
              }
          ]
       }

      Получение связок по номеру карты

      Для получения списка всех связок банковской карты используется запрос https://dev.bpsprocessing.ru/payment/rest/getBindingsByCardOrId.do.


      При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

      Параметры запроса

      Обязательность Название Тип Описание
      Обязательно

      userName String [1..100] Логин учетной записи API продавца.
      Обязательно

      password String [1..30] Пароль учетной записи API продавца.
      Условие

      pan String [1..19] Номер платежной карты (обязательно, если если bindinId не передается). Значение pan заменяет собой значение bindingId.
      Условие

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
      Необязательно

      showExpired Boolean true/false параметр, определяющий, показывать ли связки с просроченными картами. Значение по умолчанию: false.

      Параметры ответа

      Обязательность Название Тип Описание
      Обязательно

      errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
      • значение 0 - указывает на успех обработки запроса;
      • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
      Может отсутствовать, если результат не вызвал ошибки.
      Необязательно

      errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
      Язык описания задается в параметре language запроса.
      Необязательно

      bindings Object Элемент с блоками, содержащими параметры связок: bindingId, maskedPan, expiryDate, clientId
      Необязательно

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
      Необязательно

      maskedPan String [1..19] Маскированный номер карты, использованной для платежа. Cодержит реальные первые 6 и последние 4 цифры номера карты в формате XXXXXX**XXXX.
      Необязательно

      expiryDate String [6] Срок действия карты в следующем формате: YYYYMM.
      Необязательно

      clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
      Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.

      Примеры

      Пример запроса

      curl --request POST \
        --url https://dev.bpsprocessing.ru/payment/rest/getBindingsByCardOrId.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data pan=4000001111111118

      Пример успешного запроса

      {
      "errorCode":"0",
      "errorMessage":"Success",
      "bindings": [
          {
              "bindingId":"69d6a793-afb5-79be-8ce7-63ff00a8656a",
              "maskedPan":"400000**1118",
              "expiryDate":"203012",
              "clientId":"12"
              }
          {
              "bindingId":"6a8c0738-cc88-4200-acf6-afc264d66cb0",
              "maskedPan":"400000**1118",
              "expiryDate":"203012",
              "clientId":"13"
              }
          ]
       }

      Деактивация связки

      Для деактивации существующей связки используется запрос https://dev.bpsprocessing.ru/payment/rest/unBindCard.do.


      При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

      Параметры запроса

      Обязательность Название Тип Описание
      Обязательно

      userName String [1..100] Логин учетной записи API продавца.
      Обязательно

      password String [1..30] Пароль учетной записи API продавца.
      Обязательно

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.

      Параметры ответа

      Обязательность Название Тип Описание
      Необязательно

      errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
      • значение 0 - указывает на успех обработки запроса;
      • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
      Может отсутствовать, если результат не вызвал ошибки.
      Необязательно

      errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
      Язык описания задается в параметре language запроса.

      Примеры

      Пример запроса

      curl --request POST \
        --url https://dev.bpsprocessing.ru/payment/rest/unBindCard.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

      Пример ответа (ошибка)

      {
      "errorCode":"2",
      "errorMessage":"Связка не активна",
      }

      Активация связки

      Запрос, используемый для активации существующей связки, которая была деактивирована, называется https://dev.bpsprocessing.ru/payment/rest/bindCard.do.


      При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

      Параметры запроса

      Обязательность Название Тип Описание
      Обязательно

      userName String [1..100] Логин учетной записи API продавца.
      Обязательно

      password String [1..30] Пароль учетной записи API продавца.
      Обязательно

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.

      Параметры ответа

      Обязательность Название Тип Описание
      Необязательно

      errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
      • значение 0 - указывает на успех обработки запроса;
      • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
      Может отсутствовать, если результат не вызвал ошибки.
      Необязательно

      errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
      Язык описания задается в параметре language запроса.

      Примеры

      Пример запроса

      curl --request POST \
        --url https://dev.bpsprocessing.ru/payment/rest/bindCard.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

      Пример ответа (ошибка)

      {
        "errorCode":"2",
        "errorMessage":"Binging is active",
      }

      Продление срока действия связки

      Запрос, используемый для продления срока действия существующей привязки, называется https://dev.bpsprocessing.ru/payment/rest/extendBinding.do.


      При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

      Параметры запроса

      Обязательность Название Тип Описание
      Обязательно

      userName String [1..100] Логин учетной записи API продавца.
      Обязательно

      password String [1..30] Пароль учетной записи API продавца.
      Обязательно

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
      Обязательно

      newExpiry Integer [6] Новая дата (год и месяц) окончания срока действия в формате YYYYMM.
      Обязательно

      language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
      Поддерживаемые языки: ru, en.

      Параметры ответа

      Обязательность Название Тип Описание
      Необязательно

      errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
      • значение 0 - указывает на успех обработки запроса;
      • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
      Может отсутствовать, если результат не вызвал ошибки.
      Необязательно

      errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
      Язык описания задается в параметре language запроса.

      Примеры

      Пример запроса

      curl --request POST \
        --url https://dev.bpsprocessing.ru/payment/rest/extendBinding.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc
        --data newExpiry=202212
        --data language=en

      Пример ответа

      {
      "errorCode":"0",
      "errorMessage":"Success",
      }

      Рекуррентный платеж

      Для проведения рекуррентного платежа используется запрос https://dev.bpsprocessing.ru/payment/recurrentPayment.do. Запрос используется для регистрации и оплаты заказа.


      При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

      Параметры запроса

      Обязательность Название Тип Описание
      Обязательно

      userName String [1..100] Логин учетной записи API продавца.
      Обязательно

      password String [1..30] Пароль учетной записи API продавца.
      Обязательно

      orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
      Необязательно

      language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
      Поддерживаемые языки: ru, en.
      Необязательно

      feeInput Integer [0..8] Размер комиссии в минимальных единицах валюты. Функциональность должна быть включена на уровне продавца в шлюзе.
      Обязательно

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
      Обязательно

      amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
      Необязательно

      currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
      Необязательно

      description String [1..598] Описание заказа в любом формате.
      Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
      В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
      Необязательно

      preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
      • true - включена двухстадийная оплата;
      • false - включена одностадийная оплата (деньги списываются сразу).
      Если параметр отсутствует, производится одностадийная оплата.
      Необязательно

      autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
      Необязательно

      autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
      Необязательно

      features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
      • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
      • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
      • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
      • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
      • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
      Необязательно

      additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
      { "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
      Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
      Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
      Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
      Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
      Необязательно

      billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
      Возможные значения:
      • Y - совпадение платежного адреса держателя карты и адреса доставки;
      • N - платежный адрес владельца карты и адрес доставки не совпадают.

      Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

      Обязательность Название Тип Описание
      Необязательно

      billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
      Необязательно

      billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
      Необязательно

      billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
      Необязательно

      billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
      Необязательно

      billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
      Необязательно

      billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
      Необязательно

      billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

      Описание параметров объекта shippingPayerData:

      Обязательность Название Тип Описание
      Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
      Необязательно shippingCountry String [1..50] Страна заказчика
      Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
      Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
      Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
      Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
      Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
      Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
      Возможные значения:
      • 01 - доставка на платежный адрес держателя карты.
      • 02 - доставка на другой адрес, проверенный Мерчантом.
      • 03 - доставка по адресу, отличному от основного адреса держателя карты.
      • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
      • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
      • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
      • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
      Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
      Возможные значения:
      • 01 - цифровая дистрибуция
      • 02 - доставка в тот же день
      • 03 - доставка на следующий день
      • 04 - доставка в течение 2-х дней после оплаты и позже.
      Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

      Описание параметров объекта preOrderPayerData:

      Обязательность Название Тип Описание
      Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
      Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
      Возможные значения:
      • 01 - возможна доставка;
      • 02 - будущая доставка
      Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
      Возможные значения:
      • 01 - заказ размещается впервые;
      • 02 - повторный заказ

      Описание параметров объекта orderPayerData.

      Обязательность Название Тип Описание
      Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
      • +35799988877;
      • 0035799988877;
      • 35799988877.

      Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

      Параметры ответа

      Обязательность Название Тип Описание
      Обязательно

      success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
      • true - запрос успешно обработан;
      • false - запрос не прошел.

      Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
      Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
      Условие data N/A Этот параметр возвращается только в случае успешной обработки платежа. См. описание ниже.
      Условие error N/A Этот параметр возвращается только в случае ошибки платежа. См. описание ниже.

      Блок data содержит следующие элементы.

      Обязательность Название Тип Описание
      Обязательно

      orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

      Блок error содержит следующие элементы.

      Обязательность Название Тип Описание
      Обязательно

      code String [1..3] Код как информационный параметр, сообщающий об ошибке.
      Обязательно

      description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.
      Обязательно

      message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.

      Примеры

      Пример запроса

      curl --request POST \
      --url https://dev.bpsprocessing.ru/payment/recurrentPayment.do \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "userName" : "test_user",
        "password" : "test_user_password",
        "orderNumber" : "UAF-203974-DE-12",
        "language" : "EN",
        "bindingId": "bindingId",
        "amount" : 1200,
        "currency" : "978",
        "description" : "Test description",
        "additionalParameters" : {
          "firstParamName" : "firstParamValue",
          "secondParamName" : "secondParamValue"
          "email" : "email@email.com"
        }
      }'

      Пример ответа - Успешно

      {
          "success": true,
          "data": {
              "orderId": "f7beebe4-7c9a-43cf-8e26-67ab741f9b9e"
          },
          "orderStatus": {
              "errorCode": "0",
              "orderNumber": "UAF-203974-DE-12",
              "orderStatus": 2,
              "actionCode": 0,
              "actionCodeDescription": "",
              "amount": 12300,
              "currency": "978",
              "date": 1491333938243,
              "orderDescription": "Test description",
              "merchantOrderParams": [
                  {
                      "name": "firstParamName",
                      "value": "firstParamValue"
                  },
                  {
                      "name": "secondParamName",
                      "value": "secondParamValue"
                  }
              ],
              "attributes": [],
              "cardAuthInfo": {
                  "expiration": "203012",
                  "cardholderName": "TEST CARDHOLDER",
                  "approvalCode": "12345678",
                  "paymentSystem": "VISA",
                  "pan": "6777770000**0006"
              },
              "authDateTime": 1491333939454,
              "terminalId": "11111",
              "authRefNum": "111111111111",
              "paymentAmountInfo": {
                  "paymentState": "DEPOSITED",
                  "approvedAmount": 12300,
                  "depositedAmount": 12300,
                  "refundedAmount": 0
              },
              "bankInfo": {
                  "bankCountryName": "<unknown>"
              },
              "chargeback": false,
              "operations": [
                  {
                      "amount": 12300,
                      "cardHolder": "TEST CARDHOLDER",
                      "authCode": "123456"
                  }
              ]
          }
      }

      Ошибка

      {
        "error": {
          "code": "10",
          "description": "Order with this number is already registered in the system.",
          "message": "Order with this number is already registered in the system."
        },
        "success": false
      }

      Платеж по рассрочке

      Для проведения платежа по рассрочке используется запрос https://dev.bpsprocessing.ru/payment/installmentPayment.do.


      При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

      Параметры запроса

      Обязательность Название Тип Описание
      Условие

      userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
      Условие

      password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
      Обязательно

      orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
      Необязательно

      language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
      Поддерживаемые языки: ru, en.
      Обязательно

      bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
      • Этот заказ можно оплатить только с помощью связки;
      • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
      Обязательно

      amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
      Необязательно

      currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
      Необязательно

      description String [1..598] Описание заказа в любом формате.
      Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
      В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
      Необязательно

      additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
      { "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
      Обязательно

      preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
      • true - включена двухстадийная оплата;
      • false - включена одностадийная оплата (деньги списываются сразу).
      Если параметр отсутствует, производится одностадийная оплата.
      Необязательно

      autocompletionDate String [19] Дата и время автоматического завершения двухстадийного платежа в следующем формате: 2025-12-29T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
      Необязательно

      autoReverseDate String [19] Дата и время автоматического отмены двухстадийного платежа в следующем формате: 2025-06-23T13:02:51. Используемый часовой пояс: UTC+0. Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
      Необязательно

      features String Функции заказа. Чтобы указать несколько функций, используйте этот параметр несколько раз в одном запросе. Ниже приведены возможные значения.
      • VERIFY - если передать это значение в запросе на оформление заказа, владелец карты будет верифицирован, однако никакого списания средств не произойдет, так что в этом случае параметр amount может иметь значение 0. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей. Даже если сумма платежа будет передана в запросе, она не будет списана со счета клиента при передаче значения VERIFY. Это значение также можно использовать для создания cвязки — в этом случае параметр clientId также должен быть передан. Подробнее читайте здесь.
      • FORCE_TDS - Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдет.
      • FORCE_SSL - Принудительное проведение платежа через SSL (без использования 3-D Secure).
      • FORCE_FULL_TDS - После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдет.
      • FORCE_CREATE_BINDING - передача этого значения в запросе на оформление заказа принудительно создает связку. Эта функциональность должна быть включена на уровне продавца в шлюзе. Это значение нельзя передать в запросе с существующим bindingId или же bindingNotNeeded = true (вызовет ошибку проверки). Когда эта функция передается, параметр clientId также должен быть передан. Если в блоке features переданы оба значения FORCE_CREATE_BINDING и VERIFY, то заказ будет создан ТОЛЬКО для создания связки (без оплаты).
      Условие

      token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
      Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
      Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
      Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
      Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
      Необязательно

      billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
      Возможные значения:
      • Y - совпадение платежного адреса держателя карты и адреса доставки;
      • N - платежный адрес владельца карты и адрес доставки не совпадают.

      Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

      Обязательность Название Тип Описание
      Необязательно

      billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
      Необязательно

      billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
      Необязательно

      billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
      Необязательно

      billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
      Необязательно

      billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
      Необязательно

      billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
      Необязательно

      billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

      Описание параметров объекта shippingPayerData:

      Обязательность Название Тип Описание
      Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
      Необязательно shippingCountry String [1..50] Страна заказчика
      Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
      Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
      Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
      Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
      Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
      Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
      Возможные значения:
      • 01 - доставка на платежный адрес держателя карты.
      • 02 - доставка на другой адрес, проверенный Мерчантом.
      • 03 - доставка по адресу, отличному от основного адреса держателя карты.
      • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
      • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
      • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
      • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
      Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
      Возможные значения:
      • 01 - цифровая дистрибуция
      • 02 - доставка в тот же день
      • 03 - доставка на следующий день
      • 04 - доставка в течение 2-х дней после оплаты и позже.
      Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

      Описание параметров объекта preOrderPayerData:

      Обязательность Название Тип Описание
      Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
      Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
      Возможные значения:
      • 01 - возможна доставка;
      • 02 - будущая доставка
      Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
      Возможные значения:
      • 01 - заказ размещается впервые;
      • 02 - повторный заказ

      Описание параметров объекта orderPayerData.

      Обязательность Название Тип Описание
      Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
      • +35799988877;
      • 0035799988877;
      • 35799988877.

      Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

      Параметры ответа

      Обязательность Название Тип Описание
      Необязательно

      orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
      Обязательно

      errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
      • значение 0 - указывает на успех обработки запроса;
      • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
      Может отсутствовать, если результат не вызвал ошибки.
      Обязательно

      errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
      Язык описания задается в параметре language запроса.
      Условие orderStatus Object Содержит параметры статуса заказа и возвращается только в том случае, если платежный шлюз распознал все параметры запроса как правильные. См. описание ниже.

      Блок orderStatus содержит следующие элементы.

      Обязательность Название Тип Описание
      Необязательно

      errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
      • значение 0 - указывает на успех обработки запроса;
      • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
      Может отсутствовать, если результат не вызвал ошибки.
      Необязательно

      errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
      Язык описания задается в параметре language запроса.
      Необязательно

      orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
      Необязательно

      orderStatus Integer Значение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
      • 0 - заказ зарегистрирован, но не оплачен;
      • 1 - заказ только авторизован и еще не завершен (для двухстадийных платежей);
      • 2 - заказ авторизован и завершен;
      • 3 - авторизация отменена;
      • 4 - по транзакции была проведена операция возврата;
      • 5 - инициирована авторизация через ACS банка-эмитента;
      • 6 - авторизация отклонена;
      • 7 - ожидание оплаты заказы;
      • 8 - промежуточное завершение для многократного частичного завершения.
      Необязательно

      actionCode String Код ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
      Необязательно

      actionCodeDescription String [1..512] Описание actionCode, возвращаемое процессингом банка.
      Необязательно

      amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
      Необязательно

      currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
      Необязательно

      date Integer Дата регистрации заказа как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
      Необязательно

      ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
      Необязательно

      chargeback Boolean Были ли средства принудительно возвращены покупателю банком. Возможные значения: true, false.
      Необязательно merchantOrderParams N/A Раздел с атрибутами, в котором передаются дополнительные параметры мерчанта. См. описание ниже.
      Необязательно attributes Object Атрибуты заказа в платежной системе (номер заказа). См. описание ниже.
      Необязательно cardAuthInfo Object Информация о платежной карте покупателя. См. описание ниже.
      Необязательно

      authDateTime Integer Дата и время авторизации, показанные как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
      Необязательно

      terminalId String [1..10] Идентификатор терминала в системе, обрабатывающей платеж.
      Необязательно

      authRefNum String [1..24] Номер авторизации платежа, присвоенный ему при регистрации платежа.
      Необязательно paymentAmountInfo Object Параметр, содержащий вложенные параметры с информацией о суммах подтверждения, списания и возврата. См. описание ниже.
      Необязательно bankInfo Object Содержит вложенный параметр bankCountryName. См. описание ниже.
      Необязательно bindingInfo Object Объект, содержащий информацию о связке, по которой осуществляется платеж. См. описание ниже.
      Необязательно operations Object Объект, содержащий информацию об операциях. См. описание ниже.

      Блок merchantOrderParams содержит следующие элементы.

      Обязательность Название Тип Описание
      Обязательно

      name String [1..255] Название дополнительного параметра мерчанта.
      Обязательно

      value String [1..1024] Значение дополнительного параметра продавца - до 1024 символов.

      Блок attributes содержит следующие элементы.

      Обязательность Название Тип Описание
      Обязательно

      name String [1..255] Название дополнительного параметра.
      Обязательно

      value String [1..1024] Значение дополнительного параметра - до 1024 символов.

      Блок cardAuthInfo содержит следующие элементы.

      Обязательность Название Тип Описание
      Обязательно

      expiration Integer [6] Срок действия карты в следующем формате: YYYYMM.
      Обязательно

      cardholderName String [1..26] Имя держателя карты латинскими буквами. Допустимые символы: латинские буквы, точка, пробел.
      Обязательно

      approvalCode String [6] Код авторизации МПС. Это поле имеет фиксированную длину (шесть символов) и может содержать цифры и латинские буквы.
      Обязательно

      pan String [1..19] Маскированный DPAN: номер, привязанный к мобильному устройству покупателя и выполняющий функции номера платежной карты в системе Apple Pay.
      Обязательно

      maskedPan String [1..19] Маскированный номер карты, использованной для платежа. Cодержит реальные первые 6 и последние 4 цифры номера карты в формате XXXXXX**XXXX.
      Обязательно

      paymentSystem String Наименование платежной системы. Возможны следующие значения:
      • VISA
      • MASTERCARD
      • AMEX
      • JCB
      • CUP
      • MIR

        Блок paymentAmountInfo содержит следующие элементы.

        Обязательность Название Тип Описание
        Обязательно

        paymentState String Состояние заказа, параметр может принимать следующие значения:
        • CREATED - заказ создан (но не оплачен);
        • APPROVED - заказ одобрен (средства на счету покупателя заблокированы);
        • DEPOSITED - заказ завершен (деньги списаны со счета покупателя);
        • DECLINED - заказ отклонен;
        • REVERSED - заказ отклонен;
        • REFUNDED - возврат средств.
        Обязательно

        approvedAmount Integer [0..12] Сумма в минимальных единицах валюты (например, в центах), которая была заблокирована на счете покупателя. Используется только в двухстадийных платежах.
        Обязательно

        depositedAmount Integer [1..12] Сумма списания в минимальных единицах валюты (например, в копейках).
        Обязательно

        refundedAmount Integer [1..12] Сумма возврата в минимальных единицах валюты.
        Обязательно

        totalAmount Integer [1..20] Сумма заказа плюс комиссия, если таковая имеется.

        Блок bankInfo содержит следующие элементы.

        Обязательность Название Тип Описание
        Обязательно

        bankCountryName String [1..160] Страна банка-эмитента.

        Элемент bindingInfo содержит следующие параметры.

        Название Тип Обязательно Описание
        Необязательно

        clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
        Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
        Необязательно

        bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
        • Этот заказ можно оплатить только с помощью связки;
        • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.

        Элемент operations содержит следующие параметры.

        Название Тип Обязательно Описание
        Необязательно

        amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
        Необязательно

        cardHolder String [1..26] Имя держателя карты латинскими буквами. Этот параметр передается только после оплаты заказа.
        Необязательно

        authCode Integer [6] Устаревший параметр (не используется). Его значение всегда 2 независимо от статуса заказа и кода авторизации процессинговой системы.

        Примеры

        Пример запроса

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/installmentPayment.do \
          --header 'Content-Type: application/json' \
          --data '{
          "userName": "test_user",
          "password": "test_user_password",
          "orderNumber": "UAF-203974-DE-12",
          "language": "EN",
          "bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820",
          "amount": 12300,
          "currency": "978",
          "description" : "Test description",
          "additionalParameters": {
            "firstParamName": "firstParamValue",
            "secondParamName": "secondParamValue"
          }
         }'

        Примеры ответа

        {
          "errorCode": 0,
          "errorMessage": "Success",
          "orderId": "0e441115-f3bc-711c-8827-2fdc00b4f820",
          "orderStatus": {
            "errorCode": "0",
            "orderNumber": "7033",
            "orderStatus": 2,
            "actionCode": 0,
            "actionCodeDescription": "",
            "amount": 12300,
            "currency": "978",
            "date": 1618340470944,
            "orderDescription": "Test description",
            "merchantOrderParams": [
              {
                "name": "firstParamName",
                "value": "firstParamValue"
              },
              {
                "name": "secondParamName",
                "value": "secondParamValue"
              }
            ],
            "transactionAttributes": [],
            "attributes": [
              {
                "name": "mdOrder",
                "value": "0e441115-f3bc-711c-8827-2fdc00b4f820"
              }
            ],
            "cardAuthInfo": {
              "maskedPan": "400000**1118",
              "expiration": "203012",
              "cardholderName": "TEST CARDHOLDER",
              "approvalCode": "123456",
              "paymentSystem": "VISA",
              "product": "visa-product",
              "secureAuthInfo": {
                "eci": 7
              },
              "pan": "400000**1118"
            },
            "bindingInfo": {
              "clientId": "TEST CARDHOLDER",
              "bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820"
            },
            "authDateTime": 1618340471076,
            "authRefNum": "111111111111",
            "paymentAmountInfo": {
              "paymentState": "DEPOSITED",
              "approvedAmount": 12300,
              "depositedAmount": 12300,
              "refundedAmount": 0,
              "totalAmount": 12300
            },
            "bankInfo": {
              "bankName": "ES TEST BANK",
              "bankCountryCode": "ES",
              "bankCountryName": "Spain"
            },
            "chargeback": false,
            "operations": [
              {
                "amount": 12300,
                "cardHolder": "TEST CARDHOLDER",
                "authCode": "123456"
              }
            ]
          },
          "error": false
        }

        Создание связки без оплаты

        Для создания связки без проведения платежа используется запрос https://dev.bpsprocessing.ru/payment/rest/createBindingNoPayment.do.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        Параметры запроса

        Обязательность Название Тип Описание
        Обязательно

        userName String [1..100] Логин учетной записи API продавца.
        Обязательно

        password String [1..30] Пароль учетной записи API продавца.
        Обязательно

        clientId String [0..255] Номер клиента (ID) в системе мерчанта. Используется для реализации функциональности связок.
        Обязательно

        cardholderName String [1..26] Имя держателя карты латинскими буквами. Допустимые символы: латинские буквы, точка, пробел.
        Обязательно

        expiryDate String [6] Срок действия карты в следующем формате: YYYYMM.
        Обязательно

        pan String [1..19] Номер платежной карты
        Необязательно

        additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
        { "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
        Необязательно

        merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
        Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.

        Параметры ответа

        Обязательность Название Тип Описание
        Обязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки запроса;
        • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
        Может отсутствовать, если результат не вызвал ошибки.
        Необязательно

        errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
        Язык описания задается в параметре language запроса.
        Необязательно

        error Boolean Флаг, показывающий, что в ответе вернулась ошибка. Допустимые значения: true или false. Принимает значение true, если errorCode содержит значение, отличное от 0.
        Необязательно

        bindingId String [1..255] Идентификатор связки, созданной ранее или использованной для оплаты. Присутствует, только если у мерчанта есть разрешение на работу со связками.
        Необязательно

        clientId String [0..255] Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
        Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
        Необязательно

        cardholderName String [1..26] Имя держателя карты латинскими буквами. Допустимые символы: латинские буквы, точка, пробел.
        Необязательно

        expiryDate String [6] Срок действия карты в следующем формате: YYYYMM.
        Необязательно

        maskedPan String [1..19] Маскированный номер карты, использованной для платежа. Cодержит реальные первые 6 и последние 4 цифры номера карты в формате XXXXXX**XXXX.

        Примеры

        Пример запроса

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/createBindingNoPayment.do \
          --header 'Content-Type: application/x-www-form-urlencoded' \
          --data userName=test_user \
          --data password=test_user_password \
          --data clientId=159753456
          --data pan=5555555555555599
          --data expiryDate=203412
          --data pan=5555555555555599
          --data cardholderName=TEST CARDHOLDER

        Пример ответа

        {
          "maskedPan": "555555**5599",
          "expiryDate": "203412",
          "cardholderName": "TEST CARDHOLDER",
          "clientId": "159753456",
          "bindingId": "47dbe208-e531-4997-9c36-25a5707d3cb9",
          "errorCode": 0,
          "error": false
        }

        3DS

        Завершение платежа 3DS через API

        Этот метод используется в схеме, где ACS банка-эмитента выполняет аутентификацию держателя карты и перенаправляет его продавцу. PARes от ACS отправляется продавцу. Затем продавец должен отправить эти данные в платежный шлюз методом https://dev.bpsprocessing.ru/payment/rest/finish3dsPayment.do.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        Параметры запроса

        Обязательность Название Тип Описание
        Обязательно

        userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
        Обязательно

        password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
        Обязательно

        mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
        Обязательно

        paRes String Ответ аутентификации плательщика

        Параметры ответа

        Обязательность Название Тип Описание
        Необязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки;
        • другое положительное числовое значение - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр error.
        Может отсутствовать, если результат не вызвал ошибки.
        Необязательно

        error String [1..512] Сообщение об ошибке (если в ответе вернулась ошибка) на языке, переданном в запросе.
        Необязательно

        redirect String [1..512] Этот параметр возвращается, если платеж прошел успешно и для платежа не проводилась проверка карты на вовлеченность в 3-D Secure. Продавцы могут использовать его, если хотят перенаправить пользователя на страницу платежного шлюза. Если продавец использует собственную страницу, это значение можно игнорировать.

        Примеры

        Пример запроса

        curl --location --request POST 'https://dev.bpsprocessing.ru/payment/rest/finish3dsPayment.do' \
        --header 'content-type: application/x-www-form-urlencoded' \
        --data-urlencode 'mdOrder=906bf262-bd53-4ac7-983c-07127954681b' \
        --data-urlencode 'paRes=eJzFV2uTokoS%...%ADPms%0D%0A' \
        --data-urlencode 'userName=test_user' \
        --data-urlencode 'password=test_user_password'

        Пример ответа

        {
            "redirect": "https://mybestmerchantreturnurl.com?orderId=906bf262-bd53-4ac7-983c-07127954681b",
            "errorCode": 0,
        }

        Завершение платежа 3DS2 через API

        Для завершения заказа 3DS2 через API используется метод https://dev.bpsprocessing.ru/payment/rest/finish3dsVer2Payment.do.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        Параметры запроса

        Обязательность Название Тип Описание
        Обязательно

        userName String [1..100] Логин учетной записи API продавца.
        Обязательно

        password String [1..30] Пароль учетной записи API продавца.
        Обязательно

        threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
        Необязательно

        threeDSVer2MdOrder String [1..36] Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS2 операции. Обязателен для аутентификации 3DS.
        Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
        Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.

        Параметры ответа

        Обязательность Название Тип Описание
        Обязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки запроса;
        • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
        Может отсутствовать, если результат не вызвал ошибки.
        Обязательно

        errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
        Язык описания задается в параметре language запроса.
        Необязательно

        redirect String [1..512] Этот параметр возвращается, если платеж прошел успешно и для платежа не проводилась проверка карты на вовлеченность в 3-D Secure. Продавцы могут использовать его, если хотят перенаправить пользователя на страницу платежного шлюза. Если продавец использует собственную страницу, это значение можно игнорировать.
        Необязательно

        is3DSVer2 Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.

        Примеры

        Пример запроса

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/finish3dsVer2Payment.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data threeDSServerTransId=33b17cb5-b4a5-48ac-a3b8-bc8d6d979a46 \
          --data userName=test_user \
          --data password=test_user_password \

        Пример ответа

        {
            "redirect": "http://test.com?orderId=f61e2a41-34b9-7a2d-b4d6-83ac00c305c8&lang=en",
            "errorCode": 0,
            "is3DSVer2": true
        }

        Пример запроса с параметром threeDSVer2MdOrder

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/finish3dsVer2Payment.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data threeDSServerTransId=33b17cb5-b4a5-48ac-a3b8-bc8d6d979a46 \
          --data threeDSVer2MdOrder=fbcb596f-25ba-70e7-a6cf-4fb100c305c8 \
          --data userName=test_user \
          --data password=test_user_password \

        Пример ответа

        {
            "redirect": "http://test.com?orderId=f61e2a41-34b9-7a2d-b4d6-83ac00c305c8&lang=en",
            "errorCode": 0,
            "is3DSVer2": true
        }

        Продолжение оплаты для 3DS2

        Для продолжения оплаты с 3DS2 авторизацией используется запрос https://dev.bpsprocessing.ru/payment/rest/3ds/continue.do.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        Параметры запроса

        Обязательность Название Тип Описание
        Условие

        userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
        Условие

        password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
        Условие

        token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
        Обязательно

        mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.

        Параметры ответа

        Обязательность Название Тип Описание
        Обязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки запроса;
        • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
        Может отсутствовать, если результат не вызвал ошибки.
        Необязательно

        errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
        Язык описания задается в параметре language запроса.
        Необязательно

        info String В случае успешного ответа. Результат попытки оплаты. Ниже приведены возможные значения.
        • Ваш платеж обработан, происходит переадресация...
        • Операция отклонена. Проверьте введенные данные, достаточность средств на карте и повторите операцию. Происходит переадресация...
        • Извините, платеж не может быть совершен. Происходит переадресация...
        • Операция отклонена. Обратитесь в магазин. Происходит переадресация...
        • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...
        • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...
        • Нет связи с банком. Повторите позже. Происходит переадресация...
        • Истек срок ожидания ввода данных. Происходит переадресация...
        • Не получен ответ от банка. Повторите позже. Происходит переадресация...
        Необязательно

        redirect String [1..512] Этот параметр возвращается, если платеж прошел успешно и для платежа не проводилась проверка карты на вовлеченность в 3-D Secure. Продавцы могут использовать его, если хотят перенаправить пользователя на страницу платежного шлюза. Если продавец использует собственную страницу, это значение можно игнорировать.
        Условие

        acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
        Условие

        packedCReq String Запакованные данные challenge request. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS. Подробнее см. Редирект на ACS.

        Примеры

        Пример запроса

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/3ds/continue.do \
          --header 'Content-Type: application/x-www-form-urlencoded' \
          --data mdOrder=eb708f0a-2683-7437-b458-f80400b40dc0 \
          --data userName=test-user \
          --data password=test-password

        Пример ответа (полный 3DS2, успешный запрос)

        {
            "info": "Your order is proceeded, redirecting...",
            "errorCode": 0,
            "acsUrl": "https://bestbank.com/acs2/acs/creq",
            "is3DSVer2": true,
            "packedCReq": "eyJ0aHJlZURTU...6IjA1In0"
        }

        Пример ответа (frictionless 3DS2, успешный запрос)

        {
            "redirect": "https://merchant.com/returnUrl?orderId=9666296c-e4f1-7285-a57c-20eb00b40dc1&lang=en",
            "info": "Your order is proceeded, redirecting...",
            "errorCode": 0,
            "is3DSVer2": true
        }

        Пример ответа (ошибка - неизвестный статус в ARes)

        {
            "redirect": "https://merchant.com/failUrl?orderId=b69ac21f-6cd3-7e06-931d-d90100b40dc1&lang=en",
            "error": "Error 3-D Secure authorization.",
            "errorCode": 0,
            "is3DSVer2": true,
            "errorTypeName": "TDS_UNKNOWN_ARES_STATUS",
            "processingErrorType": "MANDATORY_3DSECURE",
            "errorMessage": "Error 3-D Secure authorization."
        }

        Пример ответа (ошибка авторизации)

        {
            "redirect": "https://merchant.com/failUrl?orderId=de056d10-f91d-7c91-a3de-559800b40dc1&lang=en",
            "error": "Operation declined. Please check the data and available balance of the account.",
            "errorCode": 0,
            "is3DSVer2": true,
            "errorTypeName": "DATA_INPUT_ERROR",
            "processingErrorType": "CLIENT_ERROR",
            "errorMessage": "Operation declined. Please check the data and available balance of the account."
        }

        Разное

        Верификация карты

        Метод https://dev.bpsprocessing.ru/payment/rest/verifyCard.do используется для проверки карты. Оплата не производится, и заказ сразу переходит в статус REVERSED.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        Параметры запроса

        Обязательность Название Тип Описание
        Необязательно

        userName String [1..30] Логин учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
        Необязательно

        password String [1..30] Пароль учетной записи API продавца. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), пароль передавать не нужно.
        Необязательно

        token String [1..256] Значение, используемое для аутентификации продавца при отправке запросов платежному шлюзу. Если вы передаете этот параметр, то не передавайте userName и password.
        Обязательно

        amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
        Необязательно

        currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
        Необязательно

        pan String [1..19] Номер платежной карты
        Необязательно

        cvc String [3] Передача параметра определяется типом платежа:
        • передача cvc не предусмотрена для MIT платежей;
        • передача cvc обязательна по умолчанию для всех других типов платежей; но если для мерчанта выбрано разрешение Может проводить оплату без подтверждения CVC, то в таком случае передача cvc становится необязательной.
          Допускаются только цифры.
        Необязательно

        expiry Integer [6] Срок действия карты в следующем формате: YYYYMM. Обязательно, если не переданы ни seToken, ни bindingId.
        Необязательно

        cardholderName String [1..26] Имя держателя карты латинскими буквами. Допустимые символы: латинские буквы, точка, пробел.
        Необязательно

        backUrl String [1..512] URL-адрес, на который будет перенаправлен пользователь в случае успешной оплаты.
        Используйте полный путь с указанием протокола, например https://test.com (а не test.com).
        В противном случае пользователь будет перенаправлен на URL-адрес следующего вида: http://paymentGatewayURL/merchantURL
        Необязательно

        failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
        Необязательно

        description String [1..598] Описание заказа в любом формате.
        Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
        В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
        Необязательно

        language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
        Поддерживаемые языки: ru, en.
        Необязательно

        returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://dev.bpsprocessing.ru/payment/<merchant_address>.
        Необязательно

        threeDSServerTransId String [1..36] Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
        Необязательно

        threeDSVer2FinishUrl String [1..512] URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
        Условие

        threeDSVer2MdOrder String [1..36] Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS2 операции. Обязателен для аутентификации 3DS.
        Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
        Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.
        Необязательно

        threeDSSDK Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
        Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
        Необязательно shippingPayerData Object Объект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
        Необязательно preOrderPayerData Object Объект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
        Необязательно orderPayerData Object Объект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
        Необязательно

        billingAndShippingAddressMatchIndicator String [1] Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
        Возможные значения:
        • Y - совпадение платежного адреса держателя карты и адреса доставки;
        • N - платежный адрес владельца карты и адрес доставки не совпадают.

        Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

        Обязательность Название Тип Описание
        Необязательно

        billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
        Необязательно

        billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
        Необязательно

        billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
        Необязательно

        billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
        Необязательно

        billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
        Необязательно

        billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
        Необязательно

        billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

        Описание параметров объекта shippingPayerData:

        Обязательность Название Тип Описание
        Необязательно shippingCity String [1..50] Город заказчика (из адреса доставки)
        Необязательно shippingCountry String [1..50] Страна заказчика
        Необязательно shippingAddressLine1 String [1..50] Основной адрес клиента (из адреса доставки)
        Необязательно shippingAddressLine2 String [1..50] Основной адрес клиента (из адреса доставки)
        Необязательно shippingAddressLine3 String [1..50] Основной адрес клиента (из адреса доставки)
        Необязательно shippingPostalCode String [1..16] Почтовый индекс клиента для доставки
        Необязательно shippingState String [1..50] Штат/регион покупателя (из адреса доставки)
        Необязательно shippingMethodIndicator Integer [2] Индикатор способа доставки.
        Возможные значения:
        • 01 - доставка на платежный адрес держателя карты.
        • 02 - доставка на другой адрес, проверенный Мерчантом.
        • 03 - доставка по адресу, отличному от основного адреса держателя карты.
        • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
        • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
        • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
        • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
        Необязательно deliveryTimeframe Integer [2] Срок поставки товара.
        Возможные значения:
        • 01 - цифровая дистрибуция
        • 02 - доставка в тот же день
        • 03 - доставка на следующий день
        • 04 - доставка в течение 2-х дней после оплаты и позже.
        Необязательно deliveryEmail String [1..254] Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

        Описание параметров объекта preOrderPayerData:

        Обязательность Название Тип Описание
        Необязательно preOrderDate String [10] Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
        Необязательно preOrderPurchaseInd Integer [2] Индикатор размещения клиентом заказа на доступную или будущую доставку.
        Возможные значения:
        • 01 - возможна доставка;
        • 02 - будущая доставка
        Необязательно reorderItemsInd Integer [2] Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
        Возможные значения:
        • 01 - заказ размещается впервые;
        • 02 - повторный заказ

        Описание параметров объекта orderPayerData.

        Обязательность Название Тип Описание
        Необязательно homePhone String [7..15] Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
        • +35799988877;
        • 0035799988877;
        • 35799988877.
        Необязательно workPhone String [7..15] Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
        • +35799988877;
        • 0035799988877;
        • 35799988877.
        Необязательно mobilePhone String [7..15] Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
        • +35799988877;
        • 0035799988877;
        • 35799988877.

        Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

        Параметры ответа

        Обязательность Название Тип Описание
        Необязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки запроса;
        • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
        Может отсутствовать, если результат не вызвал ошибки.
        Необязательно

        errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
        Язык описания задается в параметре language запроса.
        Необязательно

        orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
        Необязательно

        orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
        Необязательно

        authCode Integer [6] Устаревший параметр (не используется). Его значение всегда 2 независимо от статуса заказа и кода авторизации процессинговой системы.
        Необязательно

        actionCode String Код ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
        Необязательно

        actionCodeDescription String [1..512] Описание actionCode, возвращаемое процессингом банка.
        Необязательно

        time Integer Время совершения транзакции как количество миллисекунд, прошедших с 00:00 GMT 1 января 1970 года (время Unix). Пример: 1740392720718 (соответствует времени 24 февраля 2025 года, 10:25:20 (UTC)).
        Необязательно

        eci Integer [1..4] Электронный коммерческий индикатор. Указан только после оплаты заказа и в случае наличия соответствующего разрешения. Ниже приводится расшифровка ECI-кодов.
        • ECI=01 или ECI=06 - мерчант поддерживает 3-D Secure, платежная карта не поддерживает 3-D Secure, платеж обрабатывается на основе кода CVV2/CVC.
        • ECI=02 или ECI=05 - и мерчант, и платежная карта поддерживают 3-D Secure;
        • ECI=07 - мерчант не поддерживает 3-D Secure, платеж обрабатывается на основе кода CVV2/CVC.
        Необязательно

        amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
        Необязательно

        currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
        Необязательно

        rrn Integer [1..12] Reference Retrieval Number - идентификатор транзакции, присвоенный банком-эквайером.
        Необязательно

        acsUrl String [1..512] URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
        Необязательно

        termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
        Необязательно

        paReq String [1..255] PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.

        Примеры

        Пример запроса

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/verifyCard.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data userName=test_user \
          --data password=test_user_password \
          --data pan=4000001111111118 \
          --data cvc=123 \
          --data expiry=203012

        Пример ответа

        {
          "errorCode": "0",
          "errorMessage": "Success",
          "orderId": "cfc238ca-68f9-745c-ba7e-eb9100af79e0",
          "orderNumber": "12017",
          "rrn": "111111111115",
          "authCode": "123456",
          "actionCode": 0,
          "actionCodeDescription": "",
          "time": 1595284781180,
          "eci": "07",
          "amount": 0,
          "currency": "978"
        }

        Закрытие чека

        Для закрытия чека используется запрос https://dev.bpsprocessing.ru/payment/rest/closeOfdReceipt.do.

        Закрывающий чек может быть отправлен несколько раз для одного заказа. При этом нет ограничения на сумму, т. е. сумма, указанная в закрывающем чеке, может быть как меньше, так и больше суммы заказа. Исключение составляют заказы, для которых был сделан возврат. Для заказов, по которым был сделан возврат, закрытие чека может быть выполнено, только если сумма всех возвратов меньше подтверждённой суммы заказа (т. е. не было возврата на полную сумму). Подробнее об отправке второго чека читайте здесь.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        В запросе необходимо передать либо mdOrder, либо orderNumber.

        Параметры запроса

        Обязательность Название Тип Описание
        Условие (если не передан orderNumber)

        mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
        Условие (если не передан mdOrder)

        orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
        Обязательно

        userName String [1..100] Логин учетной записи API продавца.
        Обязательно

        password String [1..30] Пароль учетной записи API продавца.
        Обязательно

        amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
        Необязательно

        additionalOfdParams Object Некоторые параметры additionalOfdParams дублируются в cartItems.items.itemAttributes. additionalOfdParams применяется ко всем идентификаторам позиций, а cartItems.items.itemAttributes применяется к каждой отдельной позиции. Если значения additionalOfdParams и cartItems.items.itemAttributes не совпадают, тогда cartItems.items.itemAttributes (то есть, параметры отдельной позиции) будут иметь приоритет.
        Описание вложенных элементов приведено ниже.
        Необязательно

        merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
        Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
        Необязательно

        orderBundle Object Объект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.

        Описание параметров в объекте additionalOfdParams:

        Обязательность Название Тип Описание
        Необязательно

        agent_info.type Integer Тип агента, доступные значения:
        • 1 - банковский платежный агент;
        • 2 - банковский платежный субагент;
        • 3 - платежный агент;
        • 4 - платежный субагент;
        • 5 - поверенный;
        • 6 - комиссионер;
        • 7 - иной агент.
        Необязательно

        agent_info.paying.operation String [1..24] Название транзакции платежного агента.
        Необязательно

        agent_info.paying.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
        Необязательно

        agent_info.paymentsOperator.phones Array of strings Массив телефонных номеров платежного агента в формате +N.
        Необязательно

        agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
        Необязательно

        agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
        Необязательно

        agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
        Необязательно

        agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
        Необязательно

        supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
        Необязательно

        cashier String [1..256] Имя кассира.
        Необязательно

        additional_check_props String [1..16] Дополнительные свойства чека.
        Необязательно

        additional_user_props.name String [1..24] Название дополнительного свойства пользователя
        Необязательно

        additional_user_props.value String [1..24] Значение дополнительного свойства пользователя
        Необязательно

        cashier_inn String [10..12] ИНН кассира.
        Необязательно

        client.address String [1..256] Адрес клиента.
        Необязательно

        client.birth_date String [10] Дата рождения клиента в формате дд.мм.гггг.
        Необязательно

        client.citizenship String [3] Цифровой код страны, гражданином которой является покупатель (клиент).
        Необязательно

        client.document_code String [2] Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
        Необязательно

        client.passport_number String [11] Серия и номер паспорта плательщика.
        Необязательно

        client.email String [1..64] Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
        Необязательно

        client.phone String [19] Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
        Необязательно

        client.inn String [12] ИНН клиента.
        Необязательно

        client.name String [1..256] Имя клиента.
        Необязательно

        operatingcheckprops.name String Идентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
        Необязательно

        operatingcheckprops.timestamp String [1..19] Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
        Необязательно

        operatingcheckprops.value String [1..64] Данные транзакции.
        Необязательно

        sectoralcheckprops.date String [10] Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
        Необязательно

        sectoralcheckprops.federalid String Идентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
        Необязательно

        sectoralcheckprops.number String [32] Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
        Необязательно

        sectoralcheckprops.value String [1..256] Состав значений, определенных нормативным актом федерального органа исполнительной власти
        Условие

        company.automat_number String Номер автомата.
        Условия обязательной передачи параметров:
        • Формат фискальных документов 1.05 – для вендинга и транспорта;
        • Формат фискальных документов 1.2 – для вендинга и транспорта.
        Условие

        company.location String Адрес для выставления счета.
        Условия обязательной передачи параметров:
        • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
        • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
        Условие

        company.payment_address String Адрес для получения счетов.
        Условия обязательной передачи параметров:
        • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
        • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
        Необязательно

        use_legacy_vat boolean Параметр используется в случае, если необходимо передать устаревшее значение НДС. Возможные значения:
        • true- если необходимо передать устаревшее значение НДС
        • false - нет необходимости

        Описание параметров в объекте orderBundle:

        Обязательность Название Тип Описание
        Необязательно

        orderCreationDate String [19] Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
        Необязательно

        customerDetails Object Блок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
        Обязательно

        cartItems Object Объект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.
        Необязательно

        agent Object Объект с информацией об агенте. Описание вложенных элементов приведено ниже.
        Необязательно

        supplierPhones Array of strings [1..19] Массив телефонных номеров поставщика в формате +N.

        Ниже перечислены параметры блока agent (данные об агенте).

        Обязательность Название Тип Описание
        Необязательно

        agentType Integer [1..2] Тип агента, доступные значения:
        • 1 - банковский платежный агент;
        • 2 - банковский платежный субагент;
        • 3 - платежный агент;
        • 4 - платежный субагент;
        • 5 - поверенный;
        • 6 - комиссионер;
        • 7 - иной агент.
        Необязательно

        payingOperation String [1..24] Название транзакции платежного агента.
        Необязательно

        payingPhones Array of strings [1..19] Массив телефонных номеров платежного агента в формате +N.
        Необязательно

        paymentsOperatorPhones Array of strings [1..19] Массив телефонных номеров оператора по приему платежей в формате +N.
        Необязательно

        MTOperatorPhones Array of strings [1..19] Массив телефонных номеров оператора перевода в формате +N.
        Необязательно

        MTOperatorName String [1..64] Наименование оператора перевода.
        Необязательно

        MTOperatorAddress String [1..256] Адрес оператора перевода.
        Необязательно

        MTOperatorInn String [10..12] ИНН оператора перевода.

        Описание параметров в объекте customerDetails:

        Обязательность Название Тип Описание
        Условие email String [1..40] Электронная почта покупателя, на которую будут отправлен кассовый чек.
        В большинстве ОФД отправка чека поддерживается только на один электронный адрес. Некоторые ОФД поддерживают отправку чека на несколько электронных адресов — в этом случае можно указать несколько адресов электронной почты через запятую и без пробелов. О возможности отправки чека на несколько адресов уточняйте у вашего ОФД.
        Обязательно следует передать один из двух параметров: email или phone.
        Условие phone String [1..40] Номер телефона покупателя. Всегда нужно указывать код страны, при этом можно указывать или не указывать знак +. Таким образом, допустимы следующие варианты: +79998887766; 79998887766.
        Обязательно следует передать один из двух параметров: email или phone.
        Необязательно

        contact String [0..40] Предпочитаемый клиентом способ связи.
        Необязательно

        fullName String [1..100] ФИО плательщика.
        Необязательно

        passport String [1..100] Серия и номер паспорта плательщика в следующем формате: 2222888888
        Необязательно

        deliveryInfo Object Объект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
        Необязательно

        inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.

        Описание параметров в объекте deliveryInfo:

        Обязательность Название Тип Описание
        Необязательно

        deliveryType String [1..20] Способ доставки.
        Обязательно

        country String [2] Двухбуквенный код страны доставки.
        Обязательно

        city String [0..40] Город назначения.
        Обязательно

        postAddress String [1..255] Адрес доставки.

        Описание параметров в объекте cartItems:

        Обязательность Название Тип Описание
        Обязательно

        items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

        Описание параметров в объекте items:

        Обязательность Название Тип Описание
        Обязательно

        positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
        Обязательно

        name String [1..255] Наименование или описание товарной позиции в свободной форме.
        Необязательно

        itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
        Обязательно

        quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
        Необязательно

        itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
        Необязательно

        itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
        Необязательно

        depositedItemAmount String [1..18] Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
        Необязательно

        itemCurrency Integer [3] Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
        Обязательно

        itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.
        Необязательно

        tax Object Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
        Необязательно

        itemAttributes Object Объект, содержащий атрибуты товарной позиции.

        Описание параметров в объекте quantity:

        Обязательность Название Тип Описание
        Обязательно

        value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
        Обязательно

        measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

        Возможные значения параметра measure:

        Значение Описание
        0 Применяется к позициям, которые могут быть реализованы индивидуально или отдельными единицами, а также если объект платежа является предметом, подлежащим обязательной идентификационной маркировке.
        10 Грамм
        11 Килограмм
        12 Тонна
        20 Сантиметр
        21 Дециметр
        22 Метр
        30 Квадратный сантиметр
        31 Квадратный дециметр
        32 Квадратный метр
        40 Миллилитр
        41 Литр
        42 Кубический метр
        50 Киловатт час
        51 Гигакалория
        70 День
        71 Час
        72 Минута
        73 Секунда
        80 Килобайт
        81 Мегабайт
        82 Гигабайт
        83 Терабайт
        255 Применяется к другим единицам измерения

        Описание параметров в объекте itemDetails:

        Обязательность Название Тип Описание
        Необязательно

        itemDetailsParams Object Параметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

        Описание параметров в объекте itemDetailsParams:

        Обязательность Название Тип Описание
        Обязательно

        value String [1..2000] Дополнительная информация по товарной позиции.
        Обязательно

        name String [1..255] Наименование параметра описания детализации товарной позиции

        Описание параметров объекта tax:

        Обязательность Название Тип Описание
        Обязательно

        taxType Integer Ставка НДС, доступны следующие значения:
        • 0 – без НДС;
        • 1 – НДС по ставке 0%;
        • 2 – НДС по ставке 10%;
        • 4 – НДС по расчетной ставке 10/110;
        • 6 – НДС по ставке 20%;
        • 7 – НДС по расчетной ставке 20/120;
        • 10 – НДС по ставке 5%;
        • 11 – НДС по расчетной ставке 5/105;
        • 12 – НДС по ставке 7%;
        • 13 – НДС по расчетной ставке 7/107;
        • 14 - НДС по ставке 22%:
        • 15 - НДС по расчетной ставке 22/122.
        Обязательно

        taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

        Описание параметров в объекте itemAttributes:

        Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

        "itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
        Обязательность Название Тип Описание
        Обязательно

        paymentMethod Integer [1..2]] Тип платежа, доступные значения:
        • 1 - полная предоплата;
        • 2 - частичная предоплата;
        • 3 - аванс;
        • 4 - полная оплата;
        • 5 - частичная оплата с последующей оплатой в кредит;
        • 6 - без оплаты с последующей оплатой в кредит;
        • 7 - оплата с последующей оплатой в кредит.

        Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию.
        Значением по умолчанию является 1 (полная предварительная оплата до момента передачи предмета расчета).
        Обязательно

        paymentObject Integer Объект платежа, доступные значения:
        • 1 - товар (значение по умолчанию);
        • 2 - подакцизный товар;
        • 3 - работа;
        • 4 - услуга;
        • 5 - ставка азартной игры;
        • 6 - выигрыш азартной игры;
        • 7 - лотерейный билет;
        • 8 - выигрыш лотереи;
        • 9 - предоставление РИД;
        • 10 - платеж;
        • 11 - агентское вознаграждение;
        • 12 - составной предмет расчета;
        • 13 - иной предмет расчета;
        • 14 - имущественное право;
        • 15 - внереализационный доход;
        • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
        • 17 - торговый сбор: о суммах уплаченного торгового сбора;
        • 18 - курортный сбор.

        Указанные выше значения доступны для ФФД 1.05.
        Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
        • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
        • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
        • 32 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара
        • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

        Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
        Условие

        nomenclature String [1..95] Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
        Необязательно

        markQuantity Object Дробное количество маркируемого товара. См. вложенные параметры.
        Необязательно

        userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
        Необязательно

        agent_info Object Объект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
        Условие*

        type Integer Тип агента, доступные значения:
        • 1 - банковский платежный агент;
        • 2 - банковский платежный субагент;
        • 3 - платежный агент;
        • 4 - платежный субагент;
        • 5 - поверенный;
        • 6 - комиссионер;
        • 7 - иной агент.
        Необязательно

        paying Object Объект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
        Необязательно

        operation String [1..24] Название транзакции платежного агента.
        Необязательно

        phones Array of strings Массив телефонных номеров платежного агента в формате +N.
        Необязательно

        paymentsOperator Object Объект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
        Необязательно

        phones Array of strings Массив телефонных номеров платежного агента в формате +N.
        Необязательно

        MTOperator Object Объект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.
        Необязательно

        phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
        Необязательно

        name String [1..256] Наименование оператора перевода.
        Необязательно

        address String [1..256] Адрес оператора перевода.
        Необязательно

        inn String [10..12] ИНН оператора перевода.
        Необязательно

        supplier_info Object Объект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.
        Необязательно

        phones Array of strings Массив телефонных номеров поставщика в формате +N.
        Необязательно

        name String [1..256] Наименование поставщика.
        Необязательно

        inn Integer [10..12] ИНН поставщика
        Необязательно

        documentId String Уникальный идентификатор платежного документа в системе поставщика.
        Необязательно

        payerName String ФИО плательщика.
        Необязательно

        payerLs String Лицевой счет плательщика в системе поставщика.
        Необязательно

        ls String Единый лицевой счет поставщика.
        Необязательно

        bankBic String БИК банка получателя, поставщика.
        Необязательно

        bankName String Название банка получателя, поставщика.
        Необязательно

        kpp String Код причины постановки на учет (КПП) получателя платежа, поставщика.
        Необязательно

        rs String Банковский счет получателя платежа, поставщика.
        Необязательно

        commission String Размер комиссии в минимальных денежных единицах на стороне поставщика.

        * Обязателен, если передается agent_info.

        Описание параметров объекта markQuantity.

        Обязательность Название Тип Описание
        Обязательно

        numerator Integer [1..12] Числитель дробной части объекта платежа.
        Обязательно

        denominator Integer [1..12] Знаменатель дробной части объекта платежа.

        Параметры ответа

        Обязательность Название Тип Описание
        Необязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки запроса;
        • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
        Может отсутствовать, если результат не вызвал ошибки.
        Необязательно

        errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
        Язык описания задается в параметре language запроса.
        Необязательно

        success Boolean Основной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
        • true - запрос успешно обработан;
        • false - запрос не прошел.

        Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
        Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.

        Примеры

        Пример запроса с корзиной

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/closeOfdReceipt.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data amount=123456 \
          --data userName=test_user \
          --data password=test_user_password \
          --data mdOrder=9766d33c-7c32-7e55-a150-f61e0cc4a648 \
          --data merchantLogin=merch_child \
          --data additionalOfdParams={"additional_check_props":"test"} \
          --data orderBundle={
            "customerDetails": {
                "email": "test@test.com",
                "fullName": "xxxx",
                "inn": "xxxx"
            },
            "cartItems": {
                "items": [
                    {
                        "positionId": "001",
                        "name": "apple",
                        "quantity": {
                            "value": 10,
                            "measure": "kg"
                        },
                        "itemAmount": 100000,
                        "itemCode": "122333",
                        "itemPrice": 10000,
                        "itemAttributes": {
                            "attributes": [
                                {
                                    "name": "paymentMethod",
                                    "value": "4"
                                }
                            ]
                        }
                    }
                ]
            }
        }

        Пример запроса без корзины

        curl --request POST \
          --url https://dev.bpsprocessing.ru/payment/rest/closeOfdReceipt.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data amount=123456 \
          --data userName=test_user \
          --data password=test_user_password \
          --data mdOrder=9766d33c-7c32-7e55-a150-f61e0cc4a648 \
          --data merchantLogin=merch_child \
          --data 'additionalOfdParams={"additional_check_props":"test"}

        Пример ответа

        {
        "success": true
        }

        Получение сведений о чеке

        Для получения сведений о чеках по заказу используется запрос https://dev.bpsprocessing.ru/payment/rest/getReceiptStatus.do. В запросе могут передаваться следующие данные:

        Для выполнения запроса должен быть указан либо идентификатор заказа, либо идентификатор чека в фискализаторе.

        Если передан идентификатор заказа (orderId или orderNumber), ответ возвращает все чеки данного заказа. При передаче только идентификатора чека (uuid) ответ возвращает сведения только о данном чеке. Если указаны и идентификатор заказа, и идентификатор чека, ответ возвращает все чеки заказа.

        Параметры запроса

        Обязательность Название Тип Описание
        Обязательно

        userName String [1..100] Логин учетной записи API продавца.
        Обязательно

        password String [1..30] Пароль учетной записи API продавца.
        Необязательно

        orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
        Необязательно

        orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
        Необязательно

        uuid String [1..32] Идентификатор чека в фискализаторе.
        Необязательно

        language String [2] Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
        Поддерживаемые языки: ru, en.

        Параметры ответа

        Существует несколько наборов параметров ответа. Какие именно наборы параметров будут возвращены, зависит от версии getReceiptStatus, указанной в настройках продавца.

        Версия Обязательность Название Тип Описание
        Все Необязательно

        errorCode String [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
        • значение 0 - указывает на успех обработки;
        • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
        Может отсутствовать, если результат не вызвал ошибки.
        Все Необязательно

        errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
        Язык описания задается в параметре language запроса.
        Все Необязательно

        orderNumber String [1..36] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
        Все Необязательно

        orderId String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
        Все Необязательно

        receipt Object Объект с параметрами чека. См. вложенные параметры ниже.

        Параметры блока receipt представлены в таблице ниже.

        Версия Обязательность Название Тип Описание
        Все Обязательно

        receiptStatus Integer [1..2] По значению этого параметра определяется состояние чека. Доступны следующие значения:
        • 0 - отправлен платеж;
        • 1 - доставлен платеж;
        • 2 - ошибка платежа;
        • 3 - отправлен возврат;
        • 4 - доставлен возврат;
        • 5 - ошибка возврата;
        • 6 - чек коррекции отправлен;
        • 7 - чек коррекции доставлен;
        • 8 - ошибка отправки чека коррекции.
        3 и выше Необязательно

        receiptType Integer [1..2] Признак закрытия чека. Возможные значения:
        • null
        • close
        Все Необязательно

        uuid String [1..32] Идентификатор чека в фискализаторе.
        2 и выше Необязательно

        original_ofd_uuid String [1..255] Идентификатор чека в ОФД системе.
        Все Необязательно

        shift_number Integer Номер смены.
        Все Необязательно

        fiscal_receipt_number Integer Номер чека в смене.
        Все Необязательно

        receipt_datetime String Дата и время чека в фискальном накопителе. Указывается как количество миллисекунд, прошедших с 00:00 1 января 1970 года.
        Все Необязательно

        fn_number String [1..16] Номер фискального накопительного устройства.
        Все Необязательно

        ecr_registration_number String [0..20] Регистрационный номер контрольно-кассовой техники.
        Все Необязательно

        fiscal_document_number Integer Фискальный номер документа.
        Все Необязательно

        fiscal_document_attribute String [1..10] Фискальный атрибут документа.
        Все Необязательно

        amount_total String [0..18] Итоговая сумма чека в формате числа с разделителем. Целая часть не больше 15 символов; дробная часть не больше 2 символов.
        Все Необязательно

        serial_number String [1..20] Серийный номер ККТ.
        Все Необязательно

        ofd_receipt_url String [0..1024] Ссылка на чек. Не все ОФД системы возвращают ссылку на чек, поэтому поле может быть пустым.
        Все Необязательно

        OFD Object Объект с параметрами оператора фискальных данных. См. вложенные параметры ниже.
        4 и выше Необязательно

        ofdReceiptParams Object Объект с параметрами чека. См. вложенные параметры ниже.
        5 и выше Необязательно

        ofdOrderBundle Object Пересчитанная для ОФД остаточная корзина (с учетом возвратов). См. вложенные параметры ниже.

        Описание параметров в объекте OFD:

        Обязательность Название Тип Описание
        Необязательно

        inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.
        Необязательно

        name String [1..255] Название оператора фискальных данных. Используйте \\ - для передачи \, используйте \" - для передачи "
        Необязательно

        website String [1..58] Сайт фискального оператора.

        Описание параметров в объекте OfdReceiptParams:

        Обязательность Название Тип Описание
        Необязательно

        ofdReceiptStatus Object Объект с параметрами статуса чека. См. вложенные параметры ниже.
        Необязательно

        vatAmount Integer Величина НДС в валюте тарификации.

        Описание параметров в объекте ofdReceiptStatus:

        Обязательность Название Тип Описание
        Необязательно queuedDoc Integer Количество документов в очереди
        Необязательно queuedFirstDocNum Integer Номер первого документа в очереди
        Необязательно queuedFirstDocDate String Дата первого документа в очереди
        Необязательно ffdVersion String Версия FFD
        Необязательно internetSign Boolean Признак расчетов только в Интернете.

        Описание параметров в объекте массива ofdOrderBundle:

        Обязательность Название Тип Описание
        Обязательно name String [1..100] Наименование или описание товарной позиции. Если при отправке запроса в ОФД длина наименования больше 128 символов, то запрос отклоняется.
        Для таких ОФД как Orange Data и OFD.RU при передаче признака предмета расчета paymentObject=15 и paymentObject=16 поле name валидируется и должно принимать определенные значения.
        Возможные значения см. ниже.
        Обязательно itemAmount Integer [1..18] Сумма стоимости всех товарных позиций одного positionId в деньгах в минимальных единицах валюты
        Необязательно itemAttributes Array of objects Набор дополнительных атрибутов, структура объекта:
        {"param_1_name":"param_1_value"}. См. описание ниже.
        Обязательно itemPrice Integer [1..2] Стоимость одной товарной позиции в минимальных единицах валюты.
        Необязательно

        taxType Integer Ставка НДС, доступны следующие значения:
        • 0 – без НДС;
        • 1 – НДС по ставке 0%;
        • 2 – НДС по ставке 10%;
        • 4 – НДС по расчетной ставке 10/110;
        • 6 – НДС по ставке 20%;
        • 7 – НДС по расчетной ставке 20/120;
        • 10 – НДС по ставке 5%;
        • 11 – НДС по расчетной ставке 5/105;
        • 12 – НДС по ставке 7%;
        • 13 – НДС по расчетной ставке 7/107;
        • 14 - НДС по ставке 22%:
        • 15 - НДС по расчетной ставке 22/122.
        Необязательно

        quantity Object Элемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.

        Массив itemAttributes состоит из объектов:

        Описание параметров в объекте quantity:

        Обязательность Название Тип Описание
        Обязательно

        value Number [1..18] Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
        Обязательно

        measure String [1..20] Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

        Возможные значения параметра name:

        Значение Описание
        1 Доход от долевого участия в других организациях
        2 Доход в виде курсовой разницы, образующейся вследствие отклонения курса продажи (покупки) иностранной валюты от официального курса
        3 Доход в виде подлежащих уплате должником штрафов, пеней и (или) иных санкций за нарушение договорных обязательств
        4 Доход от сдачи имущества (включая земельные участки) в аренду (субаренду)
        5 Доход от предоставления в пользование прав на результаты интеллектуальной деятельности
        6 Доход в виде процентов, полученных по договорам займа и другим долговым обязательствам
        7 Доход в виде сумм восстановленных резервов
        8 Доход в виде безвозмездно полученного имущества (работ, услуг) или имущественных прав
        9 Доход в виде дохода, распределяемого в пользу налогоплательщика при его участии в простом товариществе
        10 Доход в виде дохода прошлых лет, выявленного в отчетном (налоговом) периоде
        11 Доход в виде положительной курсовой разницы
        12 Доход в виде основных средств и нематериальных активов, безвозмездно полученных атомными станциями
        13 Доход в виде стоимости полученных материалов при ликвидации выводимых из эксплуатации основных средств
        14 Доход в виде использованных не по целевому назначению имущества, работ, услуг
        15 Доход в виде использованных не по целевому назначению средств, предназначенных для формирования резервов по обеспечению безопасности производств
        16 Доход в виде сумм, на которые уменьшен уставной (складочный) капитал (фонд) организации
        17 Доход в виде сумм возврата от некоммерческой организации ранее уплаченных взносов (вкладов)
        18 Доход в виде сумм кредиторской задолженности, списанной в связи с истечением срока исковой давности или по другим основаниям
        19 Доход в виде доходов, полученных от операций с производными финансовыми инструментами
        20 Доход в виде стоимости излишков материально-производственных запасов и прочего имущества, которые выявлены в результате инвентаризации
        21 Доход в виде стоимости продукции СМИ и книжной продукции, подлежащей замене при возврате либо при списании
        22 Доход в виде сумм корректировки прибыли налогоплательщика
        23 Доход в виде возвращенного денежного эквивалента недвижимого имущества и (или) ценных бумаг, переданных на пополнение целевого капитала некоммерческой организации
        24 Доход в виде разницы между суммой налоговых вычетов из сумм акциза и указанных сумм акциза
        25 Доход в виде прибыли контролируемой иностранной компании
        26 Взносы на ОПС (обязательное пенсионное страхование)
        27 Взносы на ОСС (обязательное социальное страхование) в связи с нетрудоспособностью
        28 Взносы на ОМС (обязательное медицинское страхование)
        29 Взносы на ОСС (обязательное социальное страхование) от несчастных случаев
        30 Пособие по временной нетрудоспособности
        31 Платежи по добровольному личному страхованию

        Примеры

        Пример запроса

        userName=login-api&password=password&orderId=abd60d0c-e096-42c3-8b17-6081c67db214

        Пример ответа

        {
            "errorCode": "0",
            "orderNumber": "220170606034051002_177",
            "orderId": "abd60d0c-e096-42c3-8b17-6081c67db214",
            "receipt": [
                {
                    "receiptStatus": 1,
                    "uuid": "790925e5-739c-430c-9e92-79d9f14481a4",
                    "shift_number": "27",
                    "fiscal_receipt_number": "21",
                    "receipt_date_time": 1499256900000,
                    "fn_number": "9999078900006364",
                    "ecr_registration_number": "1234567890023481",
                    "fiscal_document_number": "21",
                    "fiscal_document_attribute": "3713381819",
                    "amount_total": 10000
                    "ofdOrderBundle": [
                        {
                            "taxType": "VAT_0",
                            "name": "water",
                            "itemAmount": 111165,
                            "itemPrice": 7411,
                            "quantity": {
                                "value" : "15",
                                "measure": "0"
                            },
                            "itemAttributes": [
                                {
                                   "name": "paymentMethod",
                                   "value": "1"
                                },
                                {
                                    "name": "paymentObject",
                                    "value": "1"
                                }
                            ]
                        },
                        {
                            "taxType": "VAT_0",
                            "name": "chocolate",
                            "itemAmount": 22191,
                            "itemPrice": 7397,           
                            "quantity": {
                                "value" : "15",
                                "measure": "0"
                            }       
                        },
                        {
                            "taxType": "VAT_0",
                            "name": "potato",
                            "itemAmount": 18005,
                            "itemPrice": 8259,           
                            "quantity": {
                                "value" : "15",
                                "measure": "0"
                            }       
                        },
                        {
                            "taxType": "VAT_0",
                            "name": "water",
                            "itemAmount": 333540,
                            "itemPrice": 7412,           
                            "quantity": {
                                "value" : "15",
                                "measure": "0"
                            },           
                            "itemAttributes": [
                                {
                                    "name": "paymentMethod",
                                    "value": "1"
                                },
                                {
                                    "name": "paymentObject",
                                    "value": "1"
                                }
                            ]
                        }
                    ]
                }
            ]
        }

        API платежных ссылок

        Эти методы API позволяют управлять шаблонами платежных ссылок, которые перенаправляют клиента на страницу оплаты.

        Для создания шаблона платежной ссылки используется запрос https://dev.bpsprocessing.ru/payment/rest/templates/create.do.


        При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

        Параметры запроса

        Обязательность Название Тип Описание
        Обязательно

        userName String [1..100] Логин учетной записи API продавца.
        Обязательно

        password String [1..30] Пароль учетной записи API продавца.
        Обязательно template Object Объект, содержащий набор параметров создаваемого шаблона. См. вложенные параметры.

        Параметры блока template (набор параметров создаваемого шаблона).

        Обязательность Название Тип Описание
        Обязательно type String [4] Тип шаблона. Возможные значения параметра: ECOM.
        Обязательно name String [1..140] Название шаблона.
        Необязательно preAuth Boolean Признак шаблона, указывающий, что заказ должен быть зарегистрирован по шаблону как двухстадийный. Возможные значения:
        • true - заказ регистрируется как двухстадийный;
        • false - заказ регистрируется как одностадийный.
        Если параметр отсутствует, то по умолчанию заказ регистрируется как одностадийный.
        Необязательно amount Integer [0..10] Сумма в минорных единицах. Если сумма не указана, то шаблон создаётся с опцией "Любая сумма".
        Необязательно

        currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
        Необязательно description String [0..255] Описание шаблона для мерчанта.
        Необязательно startDate String [1..19] Дата начала действия шаблона, начиная с которой по данному шаблону возможно создание заказа и проведение оплаты. Формат: "YYYY-MM-DDThh:mm:ss".
        Необязательно endDate String [1..19] Дата окончания действия шаблона. Формат: "YYYY-MM-DDThh:mm:ss". Если этот параметр не задан, шаблон является бессрочным.
        Обязательно nameForClient String [0..255] Название шаблона, которое клиент видит на предплатежной странице.
        Необязательно descriptionForClient String [0..255] Описание шаблона, которое клиент видит на предплатежной странице.
        Необязательно singlePayment Boolean Признак шаблона, указывающий, что после проведения одной единственной оплаты шаблон перейдет в статус "INACTIVE".
        Необязательно additionalParams Array of objects Массив объектов, описывающих дополнительные параметры шаблона. См. вложенные параметры.
        Необязательно commission Object Объект, содержащий параметры, описывающие комиссию, выставленную на уровне шаблона. См. вложенные параметры.
        Необязательно qrTemplate Object Объект, содержащий параметры шаблона для QR-кода. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. См. вложенные параметры.

        Параметры объекта массива additionalParams:

        Обязательность Название Тип Описание
        Обязательно label String [1..255] Название дополнительного параметра, которое клиент видит на предплатежной странице.
        Обязательно name String [1..255] Наименование параметра в Платежном Шлюзе. Допустимо использование только латинских строчных символов и символа подчеркивания. Например: size, items_count и т.п.
        Необязательно placeholder String [1..255] Подсказка клиенту при заполнении поля {lable} на предплатёжной странице.
        Необязательно regexp String [1..200] Регулярное выражение для проверки поля дополнительного параметра {lable} на предплатёжной странице. Если параметр не указан, проверка параметра не выполняется.
        Обязательно required Boolean Признак, указывающий на обязательность заполнения поля {lable} на предплатёжной странице.
        Необязательно value String [1..255] Предзаполненное значение поля {lable} на предплатёжной странице.
        Необязательно visible Boolean Признак, указывающий, отображать или нет поле {lable} на предплатёжной странице. По умолчанию false.

        Параметры блока commission:

        Обязательность Название Тип Описание
        Условие feeMin Integer [1..10] Минимальный размер комиссии в минорных единицах валюты.
        Условие feeMax Integer [1..10] Максимальный размер комиссии в минорных единицах валюты.
        Условие feePercentage String [1..10] Размер комиссии в процентах от суммы заказа. Процент в виде дробного значения с разделителем-точкой.
        Условие fixedAmount String [1..10] Размер фиксированной части комиссии в минорных единицах валюты.

        *Объект commission должен содержать один или оба набора параметров:

        Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

        Обязательность Название Тип Описание
        Необязательно

        qrHeight String [2..3] Высота QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
        Необязательно

        qrWidth String [2..3] Ширина QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
        Необязательно

        paymentPurpose String [1..140] Дополнительная информация от мерчанта. Если не заполнено, то по умолчанию будет подставлено описание заказа, если оно присутствует.
        Необязательно

        qrcId String [1..32] Идентификатор QR-кода.

        Параметры ответа

        Обязательность Название Тип Описание
        Обязательно status String Статус ответа. Допустимые значения:
        • SUCCESS - успешное выполнение запроса
        • FAIL - неуспешное выполнение запроса
          Условие error Object Объект, содержащий информацию об ошибке. Обязательный, если status имеет значение FAIL. См. вложенные параметры.
          Условие template Object Объект, содержащий информацию о созданном шаблоне. Обязательный, если status имеет значение SUCCESS. См. вложенные параметры.

          Параметры блока error:

          Обязательность Название Тип Описание
          Обязательно code String Код ошибки. Возможные значения:
          • 1 - Некорректный запрос
          • 4 - Не передан обязательный параметр
          • 5 - Доступ запрещён
          Обязательно description String Описание ошибки.
          Обязательно message String Подробное сообщение об ошибке.

          Параметры блока template (набор параметров шаблона):

          Обязательность Название Тип Описание
          Обязательно templateId String [1..32] Идентификатор созданного шаблона.
          Обязательно status String [1..8] Статус шаблона. Возможные значения:
          • ACTIVE - Шаблон активный, доступен к использованию.
          • INACTIVE - Шаблон отключен, использование шаблона недоступно.
          • DELETE - Шаблон помечен как "Удалён". Использование шаблона недоступно.
          Обязательно

          qrTemplate Object Блок с параметрами шаблона для QR-кода. См. вложенные параметры.

          Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

          Обязательность Название Тип Описание
          Обязательно

          payload String [1..999] Содержимое QR-кода платежной ссылки.
          Условие

          renderedQr String [1..255] QR-код в формате PNG, закодированный в Base64. Этот параметр возвращается, если запрос содержит qrHeight и qrWidth и если status = ACTIVE.

          Примеры

          Пример запроса

          curl --location 'https://dev.bpsprocessing.ru/payment/rest/templates/create.do' \
          --header 'Content-Type: application/json' \
          --data '{
              "username": "test_user",
              "password": "test_user_password",
              "language": "en",
              "template": {
                  "type": "ECOM",
                  "name": "template_test",
                  "currency": "EUR",
                  "nameForClient": "Name For Client",
                  "descriptionForClient": "Description For Client",
                  "qrTemplate": {
                      "qrWidth": 150,
                      "qrHeight": 150
                  },
                  "commission": {
                      "feeMin": 14,
                      "feeMax": 14,
                      "fixedAmount": 34,
                      "feePercentage": 3.3
                  },
                  "additionalParams": [
                      {
                          "label": "Test",
                          "name": "phone",
                          "placeholder": "test",
                          "regexp": "\\w+",
                          "required": true,
                          "value": "123",
                          "visible": true
                      }
                  ]
              }
          }'

          Пример ответа

          {
           "status": "SUCCESS",
              "template": {
                  "templateId": "umoPoMUCbGrsKRKT",
                  "status": "ACTIVE",
                  "qrTemplate": {
                      "renderedQr": "IBFEARgEQRBABZBEARgEQQBWARBEErj/8eaPTWORnTBAAAAAElFTkSuQmCC",
                      "payload": "https://someurl.com/sc/umoPoMUCbGrsKRKT"
                  }
              }
          }

          Для получения информации о шаблоне платежной ссылки используется запрос https://dev.bpsprocessing.ru/payment/rest/templates/get.do.


          При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

          Параметры запроса

          Обязательность Название Тип Описание
          Обязательно

          userName String [1..100] Логин учетной записи API продавца.
          Обязательно

          password String [1..30] Пароль учетной записи API продавца.
          Обязательно template Object Объект, содержащий информацию о шаблоне, по которому выполняется запрос. См. вложенные параметры.

          Параметры блока template (набор параметров шаблона, по которому нужно получить информацию).

          Обязательность Название Тип Описание
          Обязательно templateId String [1..32] Идентификатор шаблона.
          Необязательно qrTemplate Object Объект, указывающий размер QR-кода шаблона. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. См. вложенные параметры.

          Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

          Обязательность Название Тип Описание
          Необязательно

          qrHeight String [2..3] Высота QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
          Необязательно

          qrWidth String [2..3] Ширина QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
          Необязательно

          paymentPurpose String [1..140] Дополнительная информация от мерчанта. Если не заполнено, то по умолчанию будет подставлено описание заказа, если оно присутствует.
          Необязательно

          qrcId String [1..32] Идентификатор QR-кода.

          Параметры ответа

          Обязательность Название Тип Описание
          Обязательно status String Статус ответа. Допустимые значения:
          • SUCCESS - успешное выполнение запроса
          • FAIL - неуспешное выполнение запроса
            Условие error Object Объект, содержащий информацию об ошибке. Обязательный, если status имеет значение FAIL. См. вложенные параметры.
            Условие template Object Объект, содержащий информацию о шаблоне. Обязательный, если status имеет значение SUCCESS. См. вложенные параметры.

            Параметры блока error:

            Обязательность Название Тип Описание
            Обязательно code String Код ошибки. Возможные значения:
            • 4 - Не передан обязательный параметр
            • 5 - Доступ запрещён
            • 6 - Неизвестный идентификатор шаблона
            • 7 - Системная ошибка
            Обязательно description String Описание ошибки.
            Обязательно message String Подробное сообщение об ошибке.

            Параметры блока template (набор параметров шаблона):

            Обязательность Название Тип Описание
            Обязательно templateId String [1..32] Идентификатор шаблона.
            Обязательно status String [1..8] Статус шаблона. Возможные значения:
            • ACTIVE - Шаблон активный, доступен к использованию.
            • INACTIVE - Шаблон отключен, использование шаблона недоступно.
            • DELETE - Шаблон помечен как "Удалён". Использование шаблона недоступно.
            Обязательно type String Тип шаблона. Возможные значения параметра: ECOM.
            Обязательно name String [1..140] Название шаблона.
            Необязательно preAuth Boolean Признак шаблона, указывающий, что заказ должен быть зарегистрирован по шаблону как двухстадийный. Возможные значения:
            • true - заказ регистрируется как двухстадийный;
            • false - заказ регистрируется как одностадийный.
            Если параметр отсутствует, то по умолчанию заказ регистрируется как одностадийный.
            Необязательно amount Integer [0..10] Сумма в минорных единицах. Если сумма не указана, то в шаблоне выставлена опция "Любая сумма".
            Необязательно

            currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
            Необязательно description String [0..255] Описание шаблона для мерчанта.
            Необязательно startDate String [1..19] Дата начала действия шаблона, начиная с которой по данному шаблону возможно создание заказа и проведение оплаты. Формат: "YYYY-MM-DDThh:mm:ss".
            Необязательно endDate String [1..19] Дата окончания действия шаблона. Формат: "YYYY-MM-DDThh:mm:ss". Если этот параметр не задан, шаблон является бессрочным.
            Обязательно nameForClient String [0..255] Название шаблона, которое клиент видит на предплатежной странице.
            Необязательно descriptionForClient String [0..255] Описание шаблона, которое клиент видит на предплатежной странице.
            Обязательно singlePayment Boolean Признак шаблона, указывающий, что после проведения одной единственной оплаты шаблон перейдет в статус "INACTIVE".
            Необязательно additionalParams Array of objects Массив объектов, описывающих дополнительные параметры шаблона. См. вложенные параметры.
            Необязательно commission Object Объект, содержащий параметры, описывающие комиссию, выставленную на уровне шаблона. См. вложенные параметры.
            Обязательно qrTemplate Object Объект, содержащий параметры шаблона для QR-кода. См. вложенные параметры.

            Параметры объекта массива additionalParams:

            Обязательность Название Тип Описание
            Обязательно label String [1..255] Название дополнительного параметра, которое клиент видит на предплатежной странице.
            Обязательно name String [1..255] Наименование параметра в Платежном Шлюзе. Допустимо использование только латинских строчных символов и символа подчеркивания. Например: size, items_count и т.п.
            Необязательно placeholder String [1..255] Подсказка клиенту при заполнении поля {lable} на предплатёжной странице.
            Необязательно regexp String [1..200] Регулярное выражение для проверки поля дополнительного параметра {lable} на предплатёжной странице. Если параметр не указан, проверка параметра не выполняется.
            Обязательно required Boolean Признак, указывающий на обязательность заполнения поля {lable} на предплатёжной странице.
            Необязательно value String [1..255] Предзаполненное значение поля {lable} на предплатёжной странице.
            Необязательно visible Boolean Признак, указывающий, отображать или нет поле {lable} на предплатёжной странице. По умолчанию false.

            Параметры блока commission:

            Обязательность Название Тип Описание
            Условие feeMin Integer [1..10] Минимальный размер комиссии в минорных единицах валюты.
            Условие feeMax Integer [1..10] Максимальный размер комиссии в минорных единицах валюты.
            Условие feePercentage String [1..10] Размер комиссии в процентах от суммы заказа. Процент в виде дробного значения с разделителем-точкой.
            Условие fixedAmount String [1..10] Размер фиксированной части комиссии в минорных единицах валюты.

            *Объект commission должен содержать один или оба набора параметров:

            Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

            Обязательность Название Тип Описание
            Обязательно

            payload String [1..999] Содержимое QR-кода платежной ссылки.
            Условие

            renderedQr String [1..255] QR-код в формате PNG, закодированный в Base64. Этот параметр возвращается, если запрос содержит qrHeight и qrWidth и если status = ACTIVE.

            Примеры

            Пример запроса

            curl --location 'https://dev.bpsprocessing.ru/payment/rest/templates/get.do' \
            --header 'Content-Type: application/json' \
            --data '{
                "username": "test_user",
                "password": "test_user_password",
                "template": {
                    "templateId": "umoPoMUCbGrsKRKT"
            
                }
            }

            Пример ответа

            {
                "status": "SUCCESS",
                "template": {
                    "templateId": "umoPoMUCbGrsKRKT",
                    "status": "ACTIVE",
                    "type": "ECOM",
                    "name": "merchapitest",
                    "preAuth": false,
                    "currency": "RUB",
                    "nameForClient": "Name for client",
                    "descriptionForClient": "Description for client",
                    "singlePayment": false,
                    "additionalParams": [
                        {
                            "label": "Test",
                            "name": "+35799988877",
                            "regexp": "\\w+",
                            "value": "123",
                            "placeholder": "test",
                            "required": true,
                            "visible": true
                        }
                    ],
                    "qrTemplate": {
                        "payload": "https://someurl.com/sc/umoPoMUCbGrsKRKT"
                    }
                }
            }

            Для изменения шаблона платежной ссылки используется запрос https://dev.bpsprocessing.ru/payment/rest/templates/update.do.


            При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

            Параметры запроса

            Обязательность Название Тип Описание
            Обязательно

            userName String [1..100] Логин учетной записи API продавца.
            Обязательно

            password String [1..30] Пароль учетной записи API продавца.
            Обязательно template Object Объект, содержащий информацию о шаблоне, по которому выполняется запрос. См. вложенные параметры.

            Параметры блока template (набор параметров шаблона).

            Обязательность Название Тип Описание
            Обязательно templateId String [1..32] Идентификатор шаблона.
            Необязательно name String [1..140] Название шаблона.
            Необязательно preAuth Boolean Признак шаблона, указывающий, что заказ должен быть зарегистрирован по шаблону как двухстадийный. Возможные значения:
            • true - заказ регистрируется как двухстадийный;
            • false - заказ регистрируется как одностадийный.
            Если параметр отсутствует, то по умолчанию заказ регистрируется как одностадийный.
            Необязательно status String [1..8] Статус шаблона. Возможные значения:
            • ACTIVE - Шаблон активный, доступен к использованию.
            • INACTIVE - Шаблон отключен, использование шаблона недоступно.
            • DELETE - Шаблон помечен как "Удалён". Использование шаблона недоступно.
            Необязательно amount Integer [0..10] Сумма в минорных единицах. Если сумма не указана, то в шаблоне выставлена опция "Любая сумма".
            Необязательно isFreeAmount Boolean Признак, указывающий на свободную сумму шаблона. Если признак присутствует в запросе, то значение параметра amount игнорируется.
            Необязательно

            currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
            Необязательно description String [0..255] Описание шаблона для мерчанта.
            Необязательно startDate String [1..19] Дата начала действия шаблона, начиная с которой по данному шаблону возможно создание заказа и проведение оплаты. Формат: "YYYY-MM-DDThh:mm:ss".
            Необязательно endDate String [1..19] Дата окончания действия шаблона. Формат: "YYYY-MM-DDThh:mm:ss". Если этот параметр не задан, шаблон является бессрочным.
            Необязательно isIndefinite Boolean Признак, указывающий на бессрочность шаблона. Если признак присутствует, то значения параметров startDate и endDate игнорируются.
            Необязательно nameForClient String [0..255] Название шаблона, которое клиент видит на предплатежной странице.
            Необязательно descriptionForClient String [0..255] Описание шаблона, которое клиент видит на предплатежной странице.
            Необязательно singlePayment Boolean Признак шаблона, указывающий, что после проведения одной единственной оплаты шаблон перейдет в статус "INACTIVE".
            Необязательно additionalParams Array of objects Массив объектов, описывающих дополнительные параметры шаблона. См. вложенные параметры.
            Необязательно commission Object Объект, содержащий параметры, описывающие комиссию, выставленную на уровне шаблона. См. вложенные параметры.
            Необязательно qrTemplate Object Объект, содержащий параметры шаблона для QR-кода. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. См. вложенные параметры.

            Параметры объекта массива additionalParams:

            Обязательность Название Тип Описание
            Необязательно additionalParams.mode String Указатель на действие, которое требуется совершить с дополнительным параметром. Возможные значения:
            • ADD - дополнительный параметр шаблона будет добавлен в список текущих. Если дополнительный параметр шаблона с указанным additionalParams.name уже существует, то значение дополнительного параметра заменяется на указанное в запросе.
            • REMOVE - дополнительный параметр будет удалён из списка текущих параметров. Для удаления достаточно указать additionalParams.name.
            Если этот параметр не задан или имеет пустое значение, по умолчанию применяется действие ADD.
            Условие additionalParams.label String [1..255] Название дополнительного параметра, которое клиент видит на предплатежной странице. Обязательный параметр, если требуется добавить новый дополнительный параметр.
            Обязательно additionalParams.name String [1..255] Наименование параметра в Платежном Шлюзе. Допустимо использование только латинских строчных символов и символа подчеркивания. Например: size, items_count и т.п. Обязательный параметр, если требуется добавить новый дополнительный параметр.
            Optional additionalParams.placeholder String [1..255] Подсказка клиенту при заполнении поля {lable} на предплатёжной странице.
            Optional additionalParams.regexp String [1..200] Регулярное выражение для проверки поля дополнительного параметра {lable} на предплатёжной странице. Если параметр не указан, проверка параметра не выполняется.
            Conditional additionalParams.required Boolean Признак, указывающий на обязательность заполнения поля {lable} на предплатёжной странице. Обязательный параметр, если требуется добавить новый дополнительный параметр.
            Optional additionalParams.value String [1..255] Предзаполненное значение поля {lable} на предплатёжной странице.
            Optional additionalParams.visible Boolean Признак, указывающий, отображать или нет поле {lable} на предплатёжной странице. По умолчанию false.

            Параметры блока commission:

            Обязательность Название Тип Описание
            Условие feeMin Integer [1..10] Минимальный размер комиссии в минорных единицах валюты.
            Условие feeMax Integer [1..10] Максимальный размер комиссии в минорных единицах валюты.
            Условие feePercentage String [1..10] Размер комиссии в процентах от суммы заказа. Процент в виде дробного значения с разделителем-точкой.
            Условие fixedAmount String [1..10] Размер фиксированной части комиссии в минорных единицах валюты.

            *Объект commission должен содержать один или оба набора параметров:

            Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

            Обязательность Название Тип Описание
            Необязательно

            qrHeight String [2..3] Высота QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
            Необязательно

            qrWidth String [2..3] Ширина QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
            Необязательно

            paymentPurpose String [1..140] Дополнительная информация от мерчанта. Если не заполнено, то по умолчанию будет подставлено описание заказа, если оно присутствует.
            Необязательно

            qrcId String [1..32] Идентификатор QR-кода.

            Параметры ответа

            Обязательность Название Тип Описание
            Обязательно status String Статус ответа. Допустимые значения:
            • SUCCESS - успешное выполнение запроса
            • FAIL - неуспешное выполнение запроса
              Условие error Object Объект, содержащий информацию об ошибке. Обязательный, если status имеет значение FAIL. См. вложенные параметры.

              Параметры блока error:

              Обязательность Название Тип Описание
              Обязательно code String Код ошибки. Возможные значения:
              • 1 - Некорректный запрос
              • 4 - Не передан обязательный параметр
              • 5 - Доступ запрещён
              • 6 - Неизвестный идентификатор шаблона
              • 7 - Системная ошибка
              Обязательно description String Описание ошибки.
              Обязательно message String Подробное сообщение об ошибке.

              Примеры

              Пример запроса

              curl --location 'https://dev.bpsprocessing.ru/payment/rest/templates/create.do' \
              --header 'Content-Type: application/json' \
              --data '{
                  "username": "test_user",
                  "password": "test_user_password",
                  "language": "en",
                  "template": {
                      "templateId" : "umoPoMUCbGrsKRKT",
                      "name": "merchapitest", 
                      "amount": 300444,
                      "nameForClient": "Name for client",
                      "descriptionForClient": "Description for client",
                      "description": "description555",    
                      "commission": {
                          "feeMin": 141,
                          "feeMax": 141,
                          "fixedAmount": 341,
                          "feePercentage": 31.3
                      },
                      "additionalParams": [
                          {
                              "label": "Phone number",
                              "name": "phone",
                              "placeholder": "test",
                              "regexp": "\\w+",
                              "required": true,
                              "value": "+35799988877",
                              "visible": true,
                              "mode": "REMOVE"
                          }
                      ]
                  }
              }'

              Пример ответа

              {
                  "status": "SUCCESS"
              }

              Для получения информации обо всех шаблонах мерчанта используется запрос https://dev.bpsprocessing.ru/payment/rest/templates/getList.do.


              При выполнении запроса необходимо использовать заголовок: Content-Type: application/x-www-form-urlencoded

              Параметры запроса

              Обязательность Название Тип Описание
              Обязательно

              userName String [1..100] Логин учетной записи API продавца.
              Обязательно

              password String [1..30] Пароль учетной записи API продавца.
              Необязательно merchant_login Object Логин мерчанта, по которому выполняется поиск шаблонов. Этот параметр обязателен для работы "родительской" схемы, если вы хотите получить информацию о шаблонах вашего дочернего мерчанта.
              Необязательно status String [1..8] Статус шаблона, ограничивающий вывод списка шаблонов. Допустимые значения:
              • SUCCESS - успешное выполнение запроса
              • FAIL - неуспешное выполнение запроса
                • По умолчанию в ответ включаются только шаблоны со статусом ACTIVE.
                Необязательно qrTemplate Object Объект, указывающий размер QR-кода, возвращаемого для всех шаблонов. Укажите этот параметр, чтобы получить rendered QR-код в формате PNG format. См. вложенные параметры.

                Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

                Обязательность Название Тип Описание
                Необязательно

                qrHeight String [2..3] Высота QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
                Необязательно

                qrWidth String [2..3] Ширина QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
                Необязательно

                paymentPurpose String [1..140] Дополнительная информация от мерчанта. Если не заполнено, то по умолчанию будет подставлено описание заказа, если оно присутствует.
                Необязательно

                qrcId String [1..32] Идентификатор QR-кода.

                Параметры ответа

                Обязательность Название Тип Описание
                Обязательно status String Статус ответа. Допустимые значения:
                • SUCCESS - успешное выполнение запроса
                • FAIL - неуспешное выполнение запроса
                  Условие error Object Объект, содержащий информацию об ошибке. Обязательный, если status имеет значение FAIL. См. вложенные параметры.
                  Условие templates Array of objects Массив объектов, содержащий список всех шаблонов мерчанта. Обязательный, если status имеет значение SUCCESS. Если у мерчанта нет шаблонов, то возвращается пустой массив. См. вложенные параметры.

                  Параметры блока error:

                  Обязательность Название Тип Описание
                  Обязательно code String Код ошибки. Возможные значения:
                  • 4 - Не передан обязательный параметр
                  • 5 - Доступ запрещён
                  • 6 - Неизвестный идентификатор шаблона
                  • 7 - Системная ошибка
                  Обязательно description String Описание ошибки.
                  Обязательно message String Подробное сообщение об ошибке.

                  Параметры блока template (набор параметров шаблона):

                  Обязательность Название Тип Описание
                  Обязательно templateId String [1..32] Идентификатор шаблона.
                  Обязательно status String [1..8] Статус шаблона. Возможные значения:
                  • ACTIVE - Шаблон активный, доступен к использованию.
                  • INACTIVE - Шаблон отключен, использование шаблона недоступно.
                  • DELETE - Шаблон помечен как "Удалён". Использование шаблона недоступно.
                  Обязательно type String Тип шаблона. Возможные значения параметра: ECOM.
                  Обязательно name String [1..140] Название шаблона.
                  Необязательно amount Integer [0..10] Сумма в минорных единицах. Если сумма не указана, то в шаблоне выставлена опция "Любая сумма".
                  Обязательно

                  currency String [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
                  Обязательно qrTemplate Object Объект, содержащий параметры шаблона для QR-кода. См. вложенные параметры.

                  Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

                  Обязательность Название Тип Описание
                  Обязательно

                  payload String [1..999] Содержимое QR-кода платежной ссылки.
                  Условие

                  renderedQr String [1..255] QR-код в формате PNG, закодированный в Base64. Этот параметр возвращается, если запрос содержит qrHeight и qrWidth и если status = ACTIVE.

                  Примеры

                  Пример запроса

                  curl --location 'https://dev.bpsprocessing.ru/payment/rest/templates/getList.do' \
                  --header 'Content-Type: application/json' \
                  --data '{
                      "username": "test_user",
                      "password": "test_user_password",
                      "merchantLogin": "testMerchant"
                  }'

                  Пример ответа

                  {
                      "status": "SUCCESS",
                      "templates": [
                          {
                              "templateId": "umoPoMUCbGrsKRKT",
                              "status": "ACTIVE",
                              "type": "ECOM",
                              "name": "merchapitest",
                              "amount": 300444,
                              "currency": "EUR",
                              "qrTemplate": {
                                  "payload": "https://someurl/sc/umoPoMUCbGrsKRKT"
                              }
                          },
                          {
                              "templateId": "CkSCddIgVfjuVpeG",
                              "status": "ACTIVE",
                              "type": "ECOM",
                              "name": "template_test_2",
                              "currency": "EUR",
                              "qrTemplate": {
                                  "payload": "https://someurl/sc/CkSCddIgVfjuVpeG"
                              }
                          },
                          {
                              "templateId": "ngycAOzNQhCVyeSy",
                              "status": "ACTIVE",
                              "type": "ECOM",
                              "name": "Test link",
                              "amount": 10000,
                              "currency": "EUR",
                              "qrTemplate": {
                                  "payload": "https://someurl/sc/ngycAOzNQhCVyeSy"
                              }
                          }
                      ]
                  }

                  Уведомления обратного вызова

                  API платежного шлюза позволяет получать уведомления обратного вызова (callback-уведомления) об изменении статусов платежей.

                  Общая информация

                  События, о которых могут приходить уведомления

                  Вы можете получать уведомления об изменении статуса оплаты заказа и о других событиях в платежном шлюзе.

                  Наиболее распространенные уведомления описывают изменения статуса заказа, например:

                  Более сложные интеграции могут подразумевать дополнительные триггеры обратного вызова, такие как:

                  Тип триггера передается в параметре operation уведомления обратного вызова (см. подробности ниже). Для удобства уведомления для дополнительных триггеров могут быть направлены на другой URL-адрес с помощью параметра dynamicCallbackUrl в запросах на регистрацию заказа.

                  Интеграция через уведомления обратного вызова (callback)

                  Вместо последнего шага интеграции через редирект вы можете выбрать один из следующих подходов.

                  Использовать returnUrl

                  Когда код вашего сайта, расположенный по адресу returnUrl (например, https://mybestmerchantreturnurl.com/?back&amp;orderId=61c33664-85a0-7d6b-af26-09ee009c4000&amp;lang=en), идентифицирует перенаправляемого из шлюза держателя карты посде попытки оплаты, вы можете проверить статус заказа с помощью API-запроса getOrderStatusExtended.
                  Этот вариант является самым простым, но он не совсем надежен, поскольку перенаправление держателя карты может завершиться ошибкой (например, в результате обрыва соединения или закрытия браузера держателем карты), а returnUrl может не получить триггер для вызова getOrderStatusExtended.

                  getOrderStatusExtended.do

                  curl --request POST \
                    --url https://dev.bpsprocessing.ru/payment/rest/getOrderStatusExtended.do \
                    --header 'content-type: application/x-www-form-urlencoded' \
                    --data userName=test_user \
                    --data password=test_user_password \
                    --data orderId=016b6f47-4628-7ea2-80f5-6c6e00a7d8c0 \
                    --data language=en
                  {
                    "errorCode": "0",
                    "errorMessage": "Success",
                    "orderNumber": "11008",
                    "orderStatus": 2,
                    "actionCode": 0,
                    "actionCodeDescription": "",
                    "amount": 2000,
                    "currency": "978",
                    "date": 1618577250840,
                    "orderDescription": "my_first_order",
                    "merchantOrderParams": [
                      {
                        "name": "browser_language_param",
                        "value": "en"
                      },
                      {
                        "name": "browser_os_param",
                        "value": "UNKNOWN"
                      },
                      {
                        "name": "user_agent",
                        "value": "curl/7.75.0"
                      },
                      {
                        "name": "browser_name_param",
                        "value": "DOWNLOAD"
                      }
                    ],
                    "transactionAttributes": [],
                    "attributes": [
                      {
                        "name": "mdOrder",
                        "value": "016b7747-c4ed-70b3-bc36-fdd400a7d8c0"
                      }
                    ],
                    "cardAuthInfo": {
                      "maskedPan": "555555**5599",
                      "expiration": "202412",
                      "cardholderName": "TEST CARDHOLDER",
                      "approvalCode": "123456",
                      "pan": "555555**5599"
                    },
                    "authDateTime": 1618577288377,
                    "terminalId": "123456",
                    "authRefNum": "931793605827",
                    "paymentAmountInfo": {
                      "paymentState": "DEPOSITED",
                      "approvedAmount": 2000,
                      "depositedAmount": 2000,
                      "refundedAmount": 0
                    },
                    "bankInfo": {
                      "bankCountryCode": "UNKNOWN",
                      "bankCountryName": "&ltUnknown&gt"
                    }
                  }

                  Использовать подписанный callback шлюза

                  Если вы знаете, как обращаться с цифровыми сертификатами и подписями, вы можете использовать callback с цифровой подписью и контрольной суммой (шлюз позволяет настроить отправку таких уведомлений). Контрольная сумма используется для проверки и безопасности. После того, как подпись уведомления была проверена, уже нет необходимости отправлять getOrderStatusExtended, потому что уведомление содержит в себе информацию о статусе заказа.

                  https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=1

                  Типы уведомлений

                  Уведомления без контрольной суммы

                  Эти уведомления содержат только информацию о заказе, поэтому потенциально продавец рискует принять уведомление, отправленное злоумышленником, за подлинное.

                  Уведомления с контрольной суммой

                  Такие уведомления помимо сведений о заказе содержат аутентификационный код. Аутентификационный код представляет собой контрольную сумму сведений о заказе. Эта контрольная сумма позволяет убедиться, что callback-уведомление действительно было отправлено платежным шлюзом.
                  Существует два способа реализации callback-уведомлений с контрольной суммой:


                  Открытый ключ можно выгрузить из личного кабинета платежного шлюза при наличии соответствующих полномочий. Для большей безопасности рекомендуется использовать асимметричную криптографию.
                  Чтобы включить уведомления с контрольными суммами, а также получить соответствующий криптографический ключ, обратитесь в нашу службу технической поддержки.

                  Требования к SSL-сертификатам на сайте продавца

                  Если уведомление о состоянии заказа приходит через HTTPS-соединение, необходимо удостоверить подлинность сайта с помощью SSL-сертификата, выпущенного и подписанного доверенным центром сертификации (см. таблицу ниже). Использование самозаверенных сертификатов не допускается.

                  Требование Описание
                  Алгоритм подписи. Не ниже SHA-256.
                  Поддерживаемые центры сертификации. Ниже приведены примеры организаций, которые регистрируют цифровые сертификаты:

                  Формат URL-адресов уведомлений

                  Поддерживаются запросы POST и GET.

                  Ниже приведен пример GET-запроса по умолчанию, без дополнительных параметров. Параметры получены в запросе.

                  Уведомление без контрольной суммы (GET)

                  https://mybestmerchantreturnurl.com/callback/?mdOrder=
                  1234567890-098776-234-522&orderNumber=0987&operation=deposited&
                  callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

                  Уведомление с контрольной суммы (GET)

                  https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&
                  orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&
                  operation=deposited&callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

                  Для POST-коллбэков вы получите те же параметры в теле HTTP (вместо параметров запроса).

                  Уведомление без контрольной суммы (POST)

                  https://mybestmerchantreturnurl.com/callback/
                  mdOrder=
                  1234567890-098776-234-522&orderNumber=0987&operation=deposited&
                  callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

                  Уведомление с контрольной суммой (POST)

                  https://mybestmerchantreturnurl.com/callback/
                  mdOrder=1234567890-098776-234-522&
                  orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

                  Передаваемые параметры представлены в таблице ниже.

                  В таблице указаны только основные параметры. Вы также можете использовать дополнительные параметры, если они настроены в платежном шлюзе.

                  Параметр Описание
                  mdOrder Уникальный номер заказа, хранящийся в платежном шлюзе.
                  orderNumber Уникальный номер заказа (идентификатор) в системе мерчанта.
                  checksum Аутентификационный код или контрольная сумма, полученная из набора параметров.
                  operation Тип события, вызвавшего уведомление:
                  • approved - холдирование (удержание) средств на счете покупателя;
                  • deposited - операция завершения;
                  • reversed - платеж был отменен;
                  • refunded - деньги за заказ возвращены;
                  • bindingCreated - карта плательщика сохранена (cвязка создана);
                  • bindingActivityChanged - существующая связка была отключена/включена.
                  • declinedByTimeout - платеж был отклонен из-за истечения времени ожидания;
                  • declinedCardPresent - отклоненная транзакция с предъявлением карты (оплата физической картой).
                  status Индикатор успешности операции, указанной в параметре operation:
                  • 1 - успех;
                  • 0 - ошибка.

                  Пользовательские заголовки callback уведомлений

                  Пользовательские заголовки callback уведомлений можно задать, обратившись в службу технической поддержки. Например:

                  'http://mybestmerchantreturnurl.com/callback.php', headers={Authorization=token, Content-type=plain
                  /text}, params={orderNumber=349002, mdOrder=5ffb1899-cd1e-7c1e-8750-e98500093c43, operation=deposited, status=1}

                  где {Authorization=token, Content-type=plain/text} – это настраиваемый заголовок.

                  Примеры

                  Пример URL-адреса уведомления без контрольной суммы

                  https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&operation=deposited&status=0

                  Пример URL-адреса уведомления с контрольной суммой

                  https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=0

                  Алгоритм обработки уведомлений о состоянии заказов

                  В разделах ниже представлен алгоритм обработки уведомлений о состоянии заказов в зависимости от типа таких уведомлений.

                  Уведомление без контрольной суммы

                  1. Платежный шлюз отправляет на сервер продавца следующий запрос.
                    https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&amp;orderNumber=0987&amp;operation=deposited&amp;status=0
                  2. Сервер продавца возвращает HTTP-сообщение 200 OK платежному шлюзу.

                  Уведомление с контрольной суммой

                  1. Платежный шлюз отправляет HTTPS-запрос следующего вида на сервер мерчанта, при этом:

                    • при использовании симметричной криптографии контрольная сумма формируется с помощью ключа, общего для платежного шлюза и продавца;
                    • при использовании асимметричной криптографии контрольная сумма формируется с помощью закрытого ключа, известного только платежному шлюзу.
                      https://mybestmerchantreturnurl.com/path?amount=123456&amp;orderNumber=10747&amp;checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&amp;mdOrder=3ff6962a-7dcc-4283-ab50-a6d7dd3386fe&amp;operation=deposited&amp;status=1
                      Порядок параметров в уведомлении может быть произвольным.
                  2. На стороне продавца из строки параметров уведомления удаляются параметры checksum и sign_alias, а значение параметра checksum (контрольная сумма) сохраняется для проверки подлинности уведомления;

                  3. Оставшиеся параметры и их значения используются для создания следующей строки.
                    имя_параметра1;значение_параметра1;имя_параметра2;значение_параметра2;…;имя_параметраN;значение_параметраN;
                    В этом случае пары имя_параметра;значение_параметра должны быть отсортированы в прямом алфавитном порядке (по возрастанию) по именам параметров.
                    Пример сгенерированной строки параметров:
                    amount;123456;mdOrder;3ff6962a-7dcc-4283-ab50-a6d7dd3386fe;operation;deposited;orderNumber;10747;status;1;

                  4. Контрольная сумма рассчитывается на стороне мерчанта, способ расчета зависит от способа ее формирования:

                    • при использовании симметричной криптографии - с помощью алгоритма HMAC-SHA256 и общего с платежным шлюзом закрытого ключа;
                    • при использовании асимметричной криптографии - с помощью алгоритма хеширования, который зависит от способа создания ключевой пары, и открытого ключа, который связан с закрытым ключом, находящимся на стороне платежного шлюза.
                  5. В получившейся строке контрольной суммы все буквы нижнего регистра заменяются на буквы верхнего регистра.

                  6. Происходит сравнение полученного значения с контрольной суммой, извлеченной ранее из параметра checksum.

                  7. Если контрольные суммы совпадают, сервер отправляет в платежный шлюз HTTP-код 200 OK.

                  Если контрольные суммы совпадают, это уведомление подлинно и было отправлено платежным шлюзом. В противном случае вероятно, что злоумышленник пытается выдать свое уведомление за уведомление платежного шлюза.

                  Уведомление о статусе платежа

                  Для того, чтобы определить, прошел ли платеж успешно или нет, вам необходимо:

                  1. Проверить подпись (параметр checksum в уведомлении);
                  2. Проверять два параметра уведомления обратного вызова: operation и status.

                  Если значение параметра operation отличается от approved или deposited, то уведомление обратного вызова относится к статусу оплаты.

                  Неуспешные уведомления

                  Если в платежный шлюз возвращается ответ, отличный от HTTP-кода 200 OK, отправка уведомления считается неуспешной. В этом случае платежный шлюз повторяет уведомление с интервалом в 30 секунд до тех пор, пока не будет выполнено одно из следующих условий:

                  При достижении одного из указанных выше условий попытки отправки callback-уведомлений об операции прекращаются.

                  Дополнительные параметры уведомлений обратного вызова

                  В уведомлениях обратного вызова вы можете использовать следующие дополнительные параметры, если они настроены в платежном шлюзе. Если вы хотите их использовать, свяжитесь с нашей службой поддержки.

                  Параметр Описание Тип события
                  bindingId UUIID созданных/обновленных сохраненных учетных данных (связки). BINDING_CREATED, BINDING_ACTIVITY_CHANGED
                  email Электронная почта клиента. BINDING_CREATED
                  phone Телефон клиента. BINDING_CREATED
                  panMasked Маскированный PAN карты клиента. BINDING_CREATED
                  panCountryCode Код страны клиента. BINDING_CREATED
                  enabled Активна ли связка (true/false). BINDING_ACTIVITY_CHANGED
                  currentReverseAmountFormatted Форматированная сумма операции отмены. REVERSED
                  currentRefundAmountFormatted Отформатированная сумма операции возврата. REFUNDED
                  operationRefundedAmountFormatted Отформатированная сумма операции возврата. REFUNDED
                  operationRefundedAmount Сумма возврата в минимальных денежных единицах (например, в центах). REFUNDED
                  externalRefundId Внешний идентификатор операции возврата. REFUNDED
                  callbackCreationDate Дата создания уведомления обратного вызова. Требуется специальная настройка продавца. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED, DECLINED_CARDPRESENT
                  status Статус операции: 1 - успех, 0 - неудача DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  operation Тип callback-а Possible values: deposited, approved, reversed, refunded, bindingCreated, bindingActivityChanged, declinedByTimeout, declinedCardpresent DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED
                  finishCheckUrl URL для генерации чека DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  sign_alias Имя ключа, используемого для подписи. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED
                  checksum Контрольная сумма уведомления обратного вызова (используется для уведомлений обратного вызова с контрольной суммой). DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED
                  cardholderName Имя держателя карты. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  amount Сумма зарегистрированного заказа в минимальных денежных единицах. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  paymentAmount Сумма зарегистрированного заказа в минимальных денежных единицах. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  amountFormatted Отформатированная сумма зарегистрированного заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  feeAmount Сумма комиссии в минимальных единицах валюты. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  approvedAmount Предварительно авторизованная сумма в минимальных денежных единицах. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  depositedAmount Сумма завершения в минимальных денежных единицах. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  refundedAmount Сумма возмещения в минимальных единицах валюты. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  approvedAmountFormatted Отформатированная предварительно авторизованная сумма. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  depositedAmountFormatted Отформатированная сумма зачисления. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  refundedAmountFormatted Отформатированная сумма возврата. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  totalAmountFormatted Отформатированная общая сумма заказа (зарегистрированная сумма + комиссия). DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  depositedTotalAmountFormatted Отформатированная общая сумма завершения (все суммы завершения + все суммы возврата + комиссия). DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  approvalCode Код авторизации платежа, полученный от процессинга. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  authCode Код авторизации DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  bankName Наименование банка, выпустившего карту клиента. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  currency Валюта заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  depositFlag Флаг, указывающий тип операции.
                  • 1 - покупка
                  • 2 - преавторизация
                  DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  eci Электронный коммерческий индикатор. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  ip IP адрес плательщика. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  ipCountryCode Код страны банка-эмитента. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  maskedPan Маскированный номер карты клиента. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  mdOrder Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  mdorder Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  merchantFullName ФИО продавца. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  merchantLogin Логин продавца. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  orderDescription Описание заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  orderNumber Номер заказа (ID) в системе мерчанта. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  threeDSType Вид транзакции (3DS). Возможные значения: SSL, THREE_DS1_FULL, THREE_DS1_ATTEMPT, THREE_DS2_FULL, THREE_DS2_FRICTIONLESS, THREE_DS2_ATTEMPT, THREE_DS2_EXEMPTION_GRANTED, THREE_DS2_3RI, THREE_DS2_3RI_ATTEMPT DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  date Дата создания заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  clientId Номер клиента (ID) в системе мерчанта. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT,BINDING_CREATED, BINDING_ACTIVITY_CHANGED
                  actionCode Код результата выполнения операции. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  actionCodeDescription Описание кода результата выполнения операции. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  paymentRefNum Reference Retrieval Number - идентификатор транзакции, присвоенный банком-эквайером. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  paymentState Статус заказа. Possible values: started, payment_approved, payment_declined, payment_void, payment_deposited, refunded, pending, partly_deposited DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  paymentWay Способ оплаты заказа. Дополнительные возможные значения параметра приведены здесь. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  processingId Идентификатор клиента в процессинге. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  refNum Reference Retrieval Number - идентификатор транзакции, присвоенный банком-эквайером. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  refnum Reference Retrieval Number - идентификатор транзакции, присвоенный банком-эквайером. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  terminalId Идентификатор терминала в системе, обрабатывающей платеж. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  paymentSystem Наименование платежной системы. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  currencyName Трехбуквенный ISO-код валюты. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  transactionAttributes Атрибуты заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  paymentDate Дата оплаты заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED
                  depositedDate Дата операции завершения по заказу. DEPOSITED, APPROVED, REVERSED, REFUNDED
                  refundedDate Дата операции возврата по заказу. REFUNDED
                  reversedDate Дата операции отмены заказа. DEPOSITED, REVERSED, REFUNDED
                  declineDate Дата отмены заказа. DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  xid Индикатор электронной коммерции транзакции, определяемый продавцом. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  cavv Значение проверки аутентификации владельца карты. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  authValue Значение проверки аутентификации владельца карты. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  sessionExpiredDate Дата и время истечения срока действия заказа. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  tokenizeCryptogram Токенизированная криптограмма. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  creditBankName Название банка, выпустившего карту для зачисления (в P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  creditPanCountryCode Код страны карты получателя (в P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  isInternationalP2P Является ли P2P-транзакция межстрановой. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  recipientData Информация о получателе P2P. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  transactionTypeIndicator

                  Информация о получателе P2P. Возможные значения:
                  • A - перевод денег без смены владельца денег
                  • B - Business-to-business
                  • D - перевод для целей выплат.
                  DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  operationType Тип операции P2P: AFT/OCT. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  debitBankName Название банка, выпустившего карту для списания (в P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  debitPanCountryCode Код страны карты для списания (в P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  p2pDebitRrn RRN (Reference Retrieval Number) операции списания P2P. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
                  taxSystem Система налогообложения, доступны следующие значения::
                  • 0 - общая;
                  • 1 - упрощенная, доход;
                  • 2 - упрощенная, доходы минус расходы;
                  • 3 - единый налог на вмененный доход;
                  • 4 - единый сельскохозяйственный налог;
                  • 5 - патентная система налогообложения.
                  DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  inn Номер налогоплательщика. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
                  orgName Наименование организации-плательщика. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT

                  Примеры кода

                  Симметричная криптография

                  Java
                  package net.payrdr.test;
                  
                  import javax.crypto.Mac;
                  import javax.crypto.spec.SecretKeySpec;
                  import java.nio.charset.StandardCharsets;
                  import java.util.Comparator;
                  import java.util.Map;
                  import java.util.stream.Collector;
                  
                  public class SymmetricCryptographyExample {
                  
                      private static final String secretToken = "ooc7slpvc61k7sf7ma7p4hrefr";
                      private static final Map<String, String> callbackParams = Map.of(
                              "checksum", "EAF2FB72CAB99FD5067F4BA493DD84F4D79C1589FDE8ED29622F0F07215AA972",
                              "mdOrder", "06cf5599-3f17-7c86-bdbc-bd7d00a8b38b",
                              "operation", "approved",
                              "orderNumber", "2003",
                              "status", "1"
                      );
                  
                      public static void main(String[] args) throws Exception {
                          String signedString = callbackParams.entrySet().stream()
                                  .filter(entry -> !entry.getKey().equals("checksum"))
                                  .sorted(Map.Entry.comparingByKey(Comparator.naturalOrder()))
                                  .collect(Collector.of(
                                          StringBuilder::new,
                                          (accumulator, element) -> accumulator
                                                  .append(element.getKey()).append(";")
                                                  .append(element.getValue()).append(";"),
                                          StringBuilder::append,
                                          StringBuilder::toString
                                  ));
                  
                          byte[] mac = generateHMacSHA256(secretToken.getBytes(), signedString.getBytes());
                          String signature = callbackParams.get("checksum");
                  
                          boolean verified = verifyMac(signature, mac);
                          System.out.println("signature verification result: " + verified);
                      }
                  
                      private static boolean verifyMac(String signature, byte[] mac) {
                          return signature.equals(bytesToHex(mac));
                      }
                  
                      public static byte[] generateHMacSHA256(byte[] hmacKeyBytes, byte[] dataBytes) throws Exception {
                          SecretKeySpec secretKey = new SecretKeySpec(hmacKeyBytes, "HmacSHA256");
                  
                          Mac hMacSHA256 = Mac.getInstance("HmacSHA256");
                          hMacSHA256.init(secretKey);
                  
                          return hMacSHA256.doFinal(dataBytes);
                      }
                  
                      private static String bytesToHex(byte[] bytes) {
                          final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII);
                          byte[] hexChars = new byte[bytes.length * 2];
                          for (int j = 0; j < bytes.length; j++) {
                              int v = bytes[j] & 0xFF;
                              hexChars[j * 2] = HEX_ARRAY[v >>> 4];
                              hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
                          }
                          return new String(hexChars, StandardCharsets.UTF_8);
                      }
                  }

                  Асимметричная криптография

                  Java
                  package net.payrdr.test;
                  
                  import java.io.ByteArrayInputStream;
                  import java.io.InputStream;
                  import java.security.Signature;
                  import java.security.cert.CertificateFactory;
                  import java.security.cert.X509Certificate;
                  import java.util.Base64;
                  import java.util.Comparator;
                  import java.util.Map;
                  import java.util.stream.Collector;
                  
                  public class AsymmetricCryptographyExample {
                  
                      private static final Map<String, String> callbackParams = Map.of(
                              "amount", "35000099",
                              "sign_alias", "SHA-256 with RSA",
                              "checksum", "163BD9FAE437B5DCDAAC4EB5ECEE5E533DAC7BD2C8947B0719F7A8BD17C101EBDBEACDB295C10BF041E903AF3FF1E6101FF7DB9BD024C6272912D86382090D5A7614E174DC034EBBB541435C80869CEED1F1E1710B71D6EE7F52AE354505A83A1E279FBA02572DC4661C1D75ABF5A7130B70306CAFA69DABC2F6200A698198F8",
                              "mdOrder", "12b59da8-f68f-7c8d-12b5-9da8000826ea",
                              "operation", "deposited",
                              "status", "1");
                  
                      private static final String certificate =
                              "MIICcTCCAdqgAwIBAgIGAWAnZt3aMA0GCSqGSIb3DQEBCwUAMHwxIDAeBgkqhkiG9w0BCQEWEWt6" +
                                      "bnRlc3RAeWFuZGV4LnJ1MQswCQYDVQQGEwJSVTESMBAGA1UECBMJVGF0YXJzdGFuMQ4wDAYDVQQH" +
                                      "EwVLYXphbjEMMAoGA1UEChMDUkJTMQswCQYDVQQLEwJRQTEMMAoGA1UEAxMDUkJTMB4XDTE3MTIw" +
                                      "NTE2MDEyMFoXDTE4MTIwNTE2MDExOVowfDEgMB4GCSqGSIb3DQEJARYRa3pudGVzdEB5YW5kZXgu" +
                                      "cnUxCzAJBgNVBAYTAlJVMRIwEAYDVQQIEwlUYXRhcnN0YW4xDjAMBgNVBAcTBUthemFuMQwwCgYD" +
                                      "VQQKEwNSQlMxCzAJBgNVBAsTAlFBMQwwCgYDVQQDEwNSQlMwgZ8wDQYJKoZIhvcNAQEBBQADgY0A" +
                                      "MIGJAoGBAJNgxgtWRFe8zhF6FE1C8s1t/dnnC8qzNN+uuUOQ3hBx1CHKQTEtZFTiCbNLMNkgWtJ/" +
                                      "CRBBiFXQbyza0/Ks7FRgSD52qFYUV05zRjLLoEyzG6LAfihJwTEPddNxBNvCxqdBeVdDThG81zC0" +
                                      "DiAhMeSwvcPCtejaDDSEYcQBLLhDAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAfRP54xwuGLW/Cg08" +
                                      "ar6YqhdFNGq5TgXMBvQGQfRvL7W6oH67PcvzgvzN8XCL56dcpB7S8ek6NGYfPQ4K2zhgxhxpFEDH" +
                                      "PcgU4vswnhhWbGVMoVgmTA0hEkwq86CA5ZXJkJm6f3E/J6lYoPQaKatKF24706T6iH2htG4Bkjre" +
                                      "gUA=";
                  
                      public static void main(String[] args) throws Exception {
                  
                          String signedString = callbackParams.entrySet().stream()
                                  .filter(entry -> !entry.getKey().equals("checksum") && !entry.getKey().equals("sign_alias"))
                                  .sorted(Map.Entry.comparingByKey(Comparator.naturalOrder()))
                                  .collect(Collector.of(
                                          StringBuilder::new,
                                          (accumulator, element) -> accumulator
                                                  .append(element.getKey()).append(";")
                                                  .append(element.getValue()).append(";"),
                                          StringBuilder::append,
                                          StringBuilder::toString
                                  ));
                  
                          InputStream publicCertificate = new ByteArrayInputStream(Base64.getDecoder().decode(certificate));
                          String signature = callbackParams.get("checksum");
                  
                          boolean verified = checkSignature(signedString.getBytes(), signature.getBytes(), publicCertificate);
                          System.out.println("signature verification result: " + verified);
                      }
                  
                      private static boolean checkSignature(byte[] signedString, byte[] signature, InputStream publicCertificate) throws Exception {
                          CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
                          X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(publicCertificate);
                  
                          Signature signatureAlgorithm = Signature.getInstance("SHA512withRSA");
                          signatureAlgorithm.initVerify(x509Cert.getPublicKey());
                          signatureAlgorithm.update(signedString);
                  
                          return signatureAlgorithm.verify(decodeHex(new String(signature)));
                      }
                  
                      private static byte[] decodeHex(String hex) {
                          int l = hex.length();
                          byte[] data = new byte[l / 2];
                          for (int i = 0; i < l; i += 2) {
                              data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
                                      + Character.digit(hex.charAt(i + 1), 16));
                          }
                          return data;
                      }
                  }

                  Симметричная криптография

                  PHP
                  <?php
                  
                  $data = 'amount;123456;mdOrder;3ff6962a-7dcc-4283-ab50-a6d7dd3386fe;operation;deposited;orderNumber;10747;status;1;';
                  $key = 'yourSecretToken';
                  $hmac = hash_hmac ( 'sha256' , $data , $key);
                  
                  echo "[$hmac]\n";
                  ?>
                  1. Присвойте строковое значение переменной data.
                  2. Присвойте значение закрытого ключа переменной key.
                  3. Функция hash_hmac ( 'sha256', $data, $key) вычисляет контрольную сумму от переданной строки, с помощью закрытого ключа по алгоритму SHA-256.
                  4. Сохраните результат работы функции в переменной hmac.
                  5. Выведите результат работы функции командой echo.
                  6. Сравните это значение с тем, что передано в уведомлении о состоянии заказа.

                  Асимметричная криптография

                  PHP
                  <?php
                  // data from response
                  $data = 'amount;35000099;mdOrder;12b59da8-f68f-7c8d-12b5-9da8000826ea;operation;deposited;status;1;';
                  $checksum = '9524FD765FB1BABFB1F42E4BC6EF5A4B07BAA3F9C809098ACBB462618A9327539F975FEDB4CF6EC1556FF88BA74774342AF4F5B51BA63903BE9647C670EBD962467282955BD1D57B16935C956864526810870CD32967845EBABE1C6565C03F94FF66907CEDB54669A1C74AC1AD6E39B67FA7EF6D305A007A474F03B80FD6C965656BEAA74E09BB1189F4B32E622C903DC52843C454B7ACF76D6F76324C27767DE2FF6E7217716C19C530CA7551DB58268CC815638C30F3BCA3270E1FD44F63C14974B108E65C20638ECE2F2D752F32742FFC5077415102706FA5235D310D4948A780B08D1B75C8983F22F211DFCBF14435F262ADDA6A97BFEB6D332C3D51010B';
                  
                  // your public key (e.g. SHA-512 with RSA)
                  // if you have a CERT, please see openssl_get_publickey()
                  $publicKey = <<<EOD
                  -----BEGIN PUBLIC KEY-----
                  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwtuGKbQ4WmfdV1gjWWys
                  5jyHKTWXnxX3zVa5/Cx5aKwJpOsjrXnHh6l8bOPQ6Sgj3iSeKJ9plZ3i7rPjkfmw
                  qUOJ1eLU5NvGkVjOgyi11aUKgEKwS5Iq5HZvXmPLzu+U22EUCTQwjBqnE/Wf0hnI
                  wYABDgc0fJeJJAHYHMBcJXTuxF8DmDf4DpbLrQ2bpGaCPKcX+04POS4zVLVCHF6N
                  6gYtM7U2QXYcTMTGsAvmIqSj1vddGwvNGeeUVoPbo6enMBbvZgjN5p6j3ItTziMb
                  Vba3m/u7bU1dOG2/79UpGAGR10qEFHiOqS6WpO7CuIR2tL9EznXRc7D9JZKwGfoY
                  /QIDAQAB
                  -----END PUBLIC KEY-----
                  EOD;
                  
                  $binarySignature = hex2bin(strtolower($checksum));
                  $isVerify = openssl_verify($data, $binarySignature, $publicKey, OPENSSL_ALGO_SHA512);
                  if ($isVerify == 1) {
                      echo "signature ok\n";
                  } elseif ($isVerify == 0) {
                      echo "bad (there's something wrong)\n";
                  } else {
                      echo "error checking signature\n";
                  }
                  ?>
                  Категории:
                  eCommerce API V1
                  Категории
                  Результаты поиска