Перейти к содержанию

Система Быстрых Платежей (SBP)

Вариант интеграции PX

Система Быстрых Платежей по платежным данным (SBP Data)

Процесс проведения оплаты

  1. Покупатель нажимает Оплатить на сайте торговца.
  2. Торговец отображает покупателю страницу с суммой транзакции, реквизитами банка и номером телефона, на который нужно осуществить платеж.
  3. Покупатель копирует номер телефона и другие данные и осуществляет оплату удобным для себя способом в течение 15 минут.
  4. Для ускорения платежа, торговец может реализовать у себя на сайте кнопку подтверждения оплаты, при нажатии на которую после оплаты будет отправлен запрос подтверждения транзакции. Этот шаг не обязателен.
  5. Торговец получает автоматическое уведомление о результатe транзакции.
  6. В случае успешной транзакции (статус successful), сумма транзакции начисляется в личном кабинете покупателя.
  7. Если покупатель осуществляет оплату по истечении отведенного 15-минутного интервала, возвращается статус failed.
  8. Если покупатель совершил оплату, но в личном кабинете на сайте торговца баланс не изменился, покупатель может связаться с торговцем с просьбой о начислении средств в личном кабинете, приложив документы об оплате.
  9. Торговец отправляет в Demo PSP запрос на доказательство оплаты, приложив файл с документами об оплате. При этом каждый документ размещается на отдельной странице файла. Запросы доказательства оплаты с "payment_status": "pending" или "payment_status": "successful" будут отклонены.
  10. Далее возможны следующие сценарии:
Статусы в ответе на запрос статуса Описание
"payment_status": "successful"

"proof_status": "successful"
Доказательство оплаты подтверждено. Торговцу будет выслано автоматическое уведомление с обновленным статусом и суммой оплаты.
"payment_status": "failed"

"proof_status": "failed"
Доказательство оплаты отклонено. Торговцу будет выслано автоматическое уведомление со статусом failed для двух объектов.
"payment_status": "pending" или "payment_status": "failed"

"proof_status": "successful"
Доказательство оплаты на рассмотрении. Торговцу следует дождаться статуса successful по транзакции оплаты (в ответе на запрос статуса или в автоматическом уведомлении) прежде чем финализировать транзакцию.

Note

Торговец не должен отправлять повторный запрос на доказательство оплаты, если он еще не получил повторное автоматическое уведомление по платежу после предыдущего запроса. Как правило, запрос на доказательство оплаты рассматривается от 1 часа до 2 рабочих дней. Максимальное количество таких запросов по одной транзакции: 3.

Оплата

Запрос

Отправьте запрос оплаты со следующими дополнительными параметрами:

Параметр Тип данных Описание
method object Секция параметров способа оплаты.
type
обязательный

string sbp_data
channel
обязательный

string Укажите SBP. Обратите внимание, что значение этого параметра должно быть указано прописными буквами.

Note

Сумма в поле amount должна быть округленной целой суммой, указанной в минимальных денежных единицах. Например, 50000 (500 рублей).

Note

Допустимый диапазон значений поля amount 50000—15000000 (500—150000 RUB).

Пример запроса
{
  "request": {
    "amount": 50000,
    "currency": "RUB",
    "description": "description",
    "test": true,
    "tracking_id": "11111111",
    "ip": "127.0.0.1",
    "language": "en",
    "notification_url": "https://merchant.ltd/notification",      
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "middle_name": "Mid",
      "country": "RU",
      "city": "Moscow",
      "zip": "101000",
      "address": "1st Street",
      "phone": "17777777777",
      "device_id": "12312312321fff67"
    },
  "method": {
      "type": "sbp_data",
      "channel": "SBP"
    }
  }
}
Ответ

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

Параметр Тип данных Описание
sbp_data object
mark
обязательный

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

string Номер телефона, на который следует осуществить платеж.
expired_at
обязательный

string Время в формате ISO-8601, до которого следует осуществить платеж. Формат: YYYY-MM-DDThh:mm:ssTZD, где YYYY – год (например, 2019), MM – месяц (например, 02), DD – день (например, 09), hh – часы (например, 18), mm – минуты (например, 20), ss – секунды (например, 45), TZD – часовой пояс (+hh:mm или –hh:mm относительно UTC).
Пример ответа
{
  "transaction": {
    "uid": "cdca105e-3813-45f8-82b4-e38d3cbdfc48",
    "type": "payment",
    "status": "pending",
    "amount": 50000,
    "currency": "RUB",
    "description": "description",
    "created_at": "2023-06-22T12:18:12Z",
    "updated_at": "2023-06-22T12:18:13Z",
    "method_type": "sbp_data",
    "receipt_url": "https://url.com",
    "payment": {
      "status": "pending",
      "gateway_id": 2904,
      "ref_id": "8879364e-afbc-412c-ba94-1edc39985d32",
      "message": "Transaction was initialized."
    },
    "sbp_data": {
      "type": "sbp_data",
      "mark": "15FEBB7",
      "target_card": "+1111",
      "expired_at": "2023-06-22T12:33:13Z",
      "bank_type": "SBP"
    },
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "middle_name": "Mid",
      "country": "RU",
      "city": "Moscow",
      "zip": "101000",
      "address": "1st Street",
      "phone": "17777777777",
      "device_id": "12312312321fff67",
      "email": null,
      "ip": "127.0.0.1"
    },
    "message": "Transaction was initialized.",
    "tracking_id": "11111111",
    "test": true,
    "language": "en",
    "billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "middle_name": "Mid",
      "country": "RU",
      "city": "Moscow",
      "zip": "101000",
      "address": "1st Street",
      "phone": "17777777777",
      "device_id": "12312312321fff67"
    },
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    }
  }
}
Ответы на запрос статуса

После отправки запроса на доказательство транзакции, ответ на запрос получения статуса транзакции будет содержать объект proof с одним из трех статусов: pending, failed или successful.

После обработки запроса доказательства оплаты, торговец получит автоматическое уведомление или со статусом failed в объектах payment и proof или со статусом successful в обоих объектах.

Пример ответа на запрос статуса со статусом pending по доказательству оплаты
{
    "transaction": {
        "uid": "d17a3b46-1a49-4d0d-b814-b20f414d82ab",
        "type": "payment",
        "status": "failed",
        "amount": 100000,
        "currency": "RUB",
        "description": "tesdhgfljkdfhg;dfh",
        "created_at": "2023-08-16T05:59:40Z",
        "updated_at": "2023-08-16T07:35:09Z",
        "method_type": "card_transfer",
        "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/d17a3b46-1a49-4d0d-b814-b20f414d82ab/12f6a5a5677022c46745076308bf5c97557c6c75557666e8f690ce084936bd34?language=ru",
        "payment": {
            "status": "failed",
            "gateway_id": 2976,
            "ref_id": "c909f8ad-5b3e-4903-b08f-e209ced37950",
            "message": "Transaction was declined."
        },
        "sbp_data": {
            "mark": "160385A",
            "type": "sbp_data",
            "expired_at": "2023-08-16T06:14:41Z",
            "bank_type": "SBP",
            "target_card": "9999999999999999"
        },
        "customer": {
            "email": "test@example.com",
            "phone": "56356464674",
            "country": "BY",
            "device_id": "f02ee44965442d87de97cf54bffb906f",
            "ip": null
        },
        "message": "Transaction was declined.",
        "tracking_id": "3e32451b-cb3a-4094-b40c-3e83883e2f4c",
        "test": false,
        "language": "ru",
        "paid_at": "2023-08-16T06:01:08Z",
      ...
        "proof": {
            "ref_id": "97be822d-6c34-4ead-9579-21a8f42a92e1",
            "gateway_id": 2976,
            "status": "pending",
            "message": "Proof was initialized."
        }
    }
}
Пример ответа на запрос статуса со статусом successful по доказательству оплаты
{
    "transaction": {
        "uid": "d17a3b46-1a49-4d0d-b814-b20f414d82ab",
        "type": "payment",
        "status": "successful",
        "amount": 100000,
        "currency": "RUB",
        "description": "tesdhgfljkdfhg;dfh",
        "created_at": "2023-08-16T05:59:40Z",
        "updated_at": "2023-08-16T07:35:09Z",
        "method_type": "card_transfer",
        "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/d17a3b46-1a49-4d0d-b814-b20f414d82ab/12f6a5a5677022c46745076308bf5c97557c6c75557666e8f690ce084936bd34?language=ru",
        "payment": {
            "status": "failed",
            "gateway_id": 2976,
            "ref_id": "c909f8ad-5b3e-4903-b08f-e209ced37950",
            "message": "Transaction was successfully processed."
        },
        "sbp_data": {
            "mark": "160385A",
            "type": "sbp_data",
            "expired_at": "2023-08-16T06:14:41Z",
            "bank_type": "SBP",
            "target_card": "9999999999999999"
        },
        "customer": {
            "email": "test@example.com",
            "phone": "56356464674",
            "country": "BY",
            "device_id": "f02ee44965442d87de97cf54bffb906f",
            "ip": null
        },
        "message": "Transaction was successfully processed.",
        "tracking_id": "3e32451b-cb3a-4094-b40c-3e83883e2f4c",
        "test": false,
        "language": "ru",
        "paid_at": "2023-08-16T06:01:08Z",
      ...
        "proof": {
          "ref_id": "f8casdf56-1e85-r456-9842-fasdfasdf",
          "gateways_id": 2985,
          "status": "successful",
          "message": "Proof was successfully processed."
        }
    }
}
Пример ответа на запрос статуса со статусом failed по доказательству оплаты
{
    "transaction": {
        "uid": "d17a3b46-1a49-4d0d-b814-b20f414d82ab",
        "type": "payment",
        "status": "failed",
        "amount": 100000,
        "currency": "RUB",
        "description": "tesdhgfljkdfhg;dfh",
        "created_at": "2023-08-16T05:59:40Z",
        "updated_at": "2023-08-16T07:35:09Z",
        "method_type": "card_transfer",
        "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/d17a3b46-1a49-4d0d-b814-b20f414d82ab/12f6a5a5677022c46745076308bf5c97557c6c75557666e8f690ce084936bd34?language=ru",
        "payment": {
            "status": "failed",
            "gateway_id": 2976,
            "ref_id": "c909f8ad-5b3e-4903-b08f-e209ced37950",
            "message": "Transaction was declined."
        },
        "sbp_data": {
            "mark": "160385A",
            "type": "sbp_data",
            "expired_at": "2023-08-16T06:14:41Z",
            "bank_type": "SBP",
            "target_card": "9999999999999999"
        },
        "customer": {
            "email": "test@example.com",
            "phone": "56356464674",
            "country": "BY",
            "device_id": "f02ee44965442d87de97cf54bffb906f",
            "ip": null
        },
        "message": "Transaction was declined.",
        "tracking_id": "3e32451b-cb3a-4094-b40c-3e83883e2f4c",
        "test": false,
        "language": "ru",
        "paid_at": "2023-08-16T06:01:08Z",
      ...
        "proof": {
            "ref_id": "f8casdf56-1e85-r456-9842-fasdfasdf",
            "gateways_id": 2985,
            "status": "failed",
            "message": "Proof was declined."
        }
    }
}