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

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

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

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

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

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

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

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

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

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

ПараметрТипОписание
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 getCardPaymentStatus(apiKey, params) {
  const sortedKeys = Object.keys(params).sort();
  const queryString = sortedKeys.map((key) => `${key}=${params[key]}`).join('&');

  const baseString = `status_payment${queryString}${apiKey}`;
  params.sign = crypto.createHash('md5').update(baseString).digest('hex');

  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',
};

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

Ответ API

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

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

Поля 3-D Secure

При статусе ожидания и необходимости прохождения 3-D Secure в ответе могут присутствовать:

ПолеОписание
redirect_urlURL для перенаправления плательщика на ACS банка.
3ds_urlURL ACS банка для прохождения 3-D Secure.
pa_reqПараметр для 3-D Secure v1.x.
creqПараметр для 3-D Secure v2.x.
mdСлужебный параметр 3-D Secure.

Если в ответе есть redirect_url или 3ds_url, перенаправьте плательщика для завершения оплаты (см. также host2host (GATE)).

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

{
  "error_code": 2
}

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

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