Перейти к содержимому

Статусы платежей

Метод позволяет получить актуальный статус платежа СБП по идентификатору из ответа при инициации (order_id) или по вашему user_data, если order_id не сохранён. Используйте запрос для опроса состояния после создания платежа по форме или через GATE, а также при сбоях доставки колбека.

Принцип работы

  1. Идентификация — в запросе указываете order_id (из ответа init_form / init_payment) или user_data (ID заказа на вашей стороне).
  2. Запрос — сервер отправляет подписанный запрос на эндпоинт status_payment.
  3. Ответ — API возвращает JSON с текущим status, суммами, временными метками и при необходимости redirect_url или token.

Расшифровка кодов status и status_description — в разделе Статусы транзакций.

Техническая информация

Эндпоинтhttps://api.1payment.com/status_payment
МетодыGET, POST
Формат ответаJSON
Тип платежа в ответеДля СБП поле payment_type равно sbp

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

Обязательные

ПараметрТипОписание
partner_idIntegerВаш уникальный ID в системе 1Payment.
project_idIntegerИдентификатор вашего проекта.
signStringКонтрольная подпись запроса (см. раздел «Подпись»).

Идентификация платежа

Нужно передать один из параметров:

ПараметрТипОписание
order_idStringID платежа в 1Payment (из ответа при инициации).
user_dataStringВаш ID заказа; используется, если order_id не указан.

Формирование подписи (sign)

Подпись: MD5, lowercase (hex). Общие правила — Формат запроса к API.

Формула:

MD5(status_payment + <параметры_без_sign_в_алфавитном_порядке_через_&> + <API_KEY>)

Пример строки до хеширования (поиск по order_id):

status_paymentorder_id=8p3brmb19gfg0sg8gcwhws8kgc748s87&partner_id=1234&project_id=5678secret_key

Проверка подписи в документации

Проверка подписи {{method}}

Вставьте параметры запроса (JSON), API key и подпись. Виджет автоматически проверит корректность.

Строка параметров: order_id=8p3brmb19gfg0sg8gcwhws8kgc748s87&partner_id=1234&project_id=5678
Строка для MD5: status_paymentorder_id=8p3brmb19gfg0sg8gcwhws8kgc748s87&partner_id=1234&project_id=5678
Ожидаемая подпись: a33a3e5a9bd5dedd4a397513abd74094
Подпись не совпадает

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

const crypto = require('crypto');
const axios = require('axios');

async function getSbpPaymentStatus(apiKey, params) {
  // 1. Сортируем параметры по алфавиту
  const sortedKeys = Object.keys(params).sort();
  const queryString = sortedKeys.map((key) => `${key}=${params[key]}`).join('&');

  // 2. Подпись с префиксом status_payment
  const baseString = `status_payment${queryString}${apiKey}`;
  params.sign = crypto.createHash('md5').update(baseString).digest('hex');

  // 3. GET-запрос
  const response = await axios.get('https://api.1payment.com/status_payment', { params });
  return response.data;
}

const apiKey = process.env.ONEPAYMENT_API_KEY;
const data = {
  partner_id: 1234,
  project_id: 5678,
  order_id: '8p3brmb19gfg0sg8gcwhws8kgc748s87',
};

getSbpPaymentStatus(apiKey, data).then(console.log);

Ответ API

Успешный ответ (200):

{
  "payment_type": "sbp",
  "project_id": 5678,
  "order_id": "8p3brmb19gfg0sg8gcwhws8kgc748s87",
  "user_data": "inv_12345",
  "status": 3,
  "status_description": "SUCCESS",
  "init_time": "2026-05-05T18:23:11Z",
  "status_time": "2026-05-05T18:23:42Z",
  "merchant_price": 50,
  "user_price": 48.5,
  "currency": "RUB",
  "account": "sbp"
}
ПолеОписание
payment_typeТип платежа; для СБП — sbp.
project_idID вашего проекта.
order_idID платежа в системе 1Payment.
user_dataИдентификатор, переданный при создании платежа.
statusЧисловой код: 2 — ожидание, 3 — успех, 4 — отказ.
status_descriptionPENDING, SUCCESS или FAILURE.
init_timeВремя создания платежа (UTC).
status_timeВремя получения текущего статуса (UTC).
merchant_priceСумма платежа.
user_priceОтчисления партнёра.
currencyВалюта платежа (ISO 4217).
accountРеквизит СБП (значение sbp).
status_codeКод причины отказа (при status = 4).
tokenТокен подписки для рекуррентов (если подключено).
redirect_urlСсылка на оплату в СБП, если платёж ещё в ожидании и нужна страница/QR.
test1 для тестовых транзакций.

Ошибка запроса (400):

{
  "error_code": 2
}

Связанные разделы

Статья была полезна?