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

Статус выплаты

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

Формат запросов и подписи — в разделе Формат запроса к API.

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

  1. Идентификация — в запросе указываете order_id (из ответа при создании выплаты) или user_data (ID выплаты на вашей стороне).
  2. Запрос — сервер отправляет подписанный запрос на эндпоинт status_payout.
  3. Ответ — API возвращает JSON с текущим status, суммами, реквизитом получателя и при необходимости дополнительными полями paid_amount или init_amount.

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

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

Эндпоинтhttps://api.1payment.com/status_payout
МетодыGET, POST
Формат ответаJSON
Тип в ответеПоле payout_type — см. Типы выплат

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

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

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

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

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

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

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

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

Формула:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответ API

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

{
  "payout_type": "card",
  "project_id": 5678,
  "order_id": "8p3brmb19gfg0sg8gcwhws8kgc748s87",
  "user_data": "12345",
  "status": 3,
  "status_description": "SUCCESS",
  "init_time": "2019-04-01 18:01:55",
  "status_time": "2019-04-01 18:02:59",
  "amount": "100",
  "balance_amount": "102.5",
  "destination": "411111******1111",
  "status_code": 0
}
ПолеОписание
payout_typeТип выплаты (см. Типы выплат).
project_idID вашего проекта.
order_idID выплаты в системе 1Payment.
user_dataИдентификатор, переданный при создании выплаты.
statusЧисловой код: 2 — ожидание, 3 — успех, 4 — отказ.
status_descriptionPENDING, SUCCESS или FAILURE.
init_timeВремя создания выплаты.
status_timeВремя получения текущего статуса.
amountСумма выплаты.
balance_amountСумма списания с баланса.
currencyВалюта выплаты (ISO 4217).
destinationПолучатель; для выплат на карту — маска номера карты.
status_codeКод причины отказа (при status = 4).
paid_amountТолько при status = 2 (PENDING) и частичной выплате: сумма частичных выплат на текущий момент.
init_amountТолько при status = 3 (SUCCESS), если сумма инициации отличается от суммы выплаты: сумма инициации; в amount и balance_amount — фактические суммы проведённой выплаты.

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

{
  "error_code": 2
}

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

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