Статус и список платежей
Получите актуальное состояние платежа по идентификатору или выберите платежи за период с фильтрами.
curl https://api.nordpay.pro/v1/payments/pay_2Kq8sD1fVxJ7mN4p \
-H "Authorization: Bearer $NORDPAY_SECRET_KEY"Получить платёж
Запрос возвращает объект платежа целиком — тот же, что при создании, с актуальными status, paid_at, amount_refunded и failure.
Если платёж создан другим ключом режима — тестовым вместо боевого или наоборот — вернётся 404 not_found.
{
"id": "pay_2Kq8sD1fVxJ7mN4p",
"object": "payment",
"status": "succeeded",
"amount": 499000,
"amount_refunded": 0,
"currency": "RUB",
"fee": 17465,
"net": 481535,
"method": "sbp",
"description": "Заказ №1042",
"order_id": "1042",
"metadata": {
"cart_id": "c_77"
},
"customer": {
"email": "buyer@example.com"
},
"confirmation": {
"type": "redirect",
"url": "https://api.nordpay.pro/checkout/pay_2Kq8sD1fVxJ7mN4p"
},
"sbp": {
"qr_payload": "https://api.nordpay.pro/checkout/pay_2Kq8sD1fVxJ7mN4p",
"expires_at": "2026-11-08T12:30:00Z"
},
"crypto": null,
"crypto_network": null,
"card": null,
"failure": null,
"livemode": false,
"created_at": "2026-11-08T12:00:00Z",
"paid_at": "2026-11-08T12:03:41Z",
"expires_at": "2026-11-08T12:30:00Z"
}Список платежей
Платежи отдаются от новых к старым. Чтобы получить следующую страницу, передайте next_cursor из ответа в параметре cursor. Когда has_more равно false, данных больше нет.
| Параметр | Тип | Описание |
|---|---|---|
status | string | Фильтр по статусу: pending, succeeded, failed и т. д. |
method | string | Фильтр по методу: sbp, card, crypto. |
network | string | Фильтр по сети USDT: trc20, ton, bep20, erc20, sol. |
limit | integer | Сколько объектов вернуть за один запрос. |
cursor | string | Значение next_cursor из предыдущего ответа — для следующей страницы. |
curl https://api.nordpay.pro/v1/payments?status=succeeded&limit=20 \
-H "Authorization: Bearer $NORDPAY_SECRET_KEY"{
"object": "list",
"data": [
{
"id": "pay_2Kq8sD1fVxJ7mN4p",
"object": "payment",
"status": "succeeded",
"amount": 499000,
"method": "sbp",
"order_id": "1042",
"created_at": "2026-11-08T12:00:00Z"
},
{
"id": "pay_2Kq7zR9cWm3nB1xa",
"object": "payment",
"status": "succeeded",
"amount": 159000,
"method": "card",
"order_id": "1041",
"created_at": "2026-11-08T11:42:10Z"
}
],
"has_more": true,
"next_cursor": "pay_2Kq7zR9cWm3nB1xa"
}Баланс
available— доступно к выплате.pending— оплачено, но ещё не зачислено к выплате по графику.reserved— временно удержано, например под возврат или спорную операцию.
Все суммы — в копейках. Выплаты заказываются и отслеживаются в кабинете.
curl https://api.nordpay.pro/v1/balance \
-H "Authorization: Bearer $NORDPAY_SECRET_KEY"{
"available": 1834500,
"pending": 482300,
"reserved": 0,
"currency": "RUB"
}Вебхуки или опрос
Основной способ узнать об оплате — вебхук: он приходит сразу после смены статуса. Опрос по GET /v1/payments/:id оставьте как подстраховку — например, когда покупатель вернулся на return_url, а уведомление ещё в пути.
async function waitForPayment(id, { timeoutMs = 10 * 60 * 1000 } = {}) {
const started = Date.now();
let delay = 2000;
while (Date.now() - started < timeoutMs) {
const res = await fetch(`https://api.nordpay.pro/v1/payments/${id}`, {
headers: { Authorization: `Bearer ${process.env.NORDPAY_SECRET_KEY}` },
});
const payment = await res.json();
if (['succeeded', 'failed', 'canceled', 'expired'].includes(payment.status)) return payment;
await new Promise((r) => setTimeout(r, delay));
delay = Math.min(delay * 1.5, 30000);
}
return null;
}