REST API v1 · JSON · HTTPS

Платежи через API —
за один вечер

СБП, карты МИР, Visa и Mastercard, USDT в пяти сетях и подписки с автосписаниями — одним API. Тестовый ключ выдаётся сразу, без заявки.

ПринимаемTRC20TONBEP20ERC20Solana

Пример: запрос на создание платежа, ответ API со ссылкой на оплату и вебхук payment.succeeded на сервер магазина.

Быстрый старт

Первый платёж в три шага

  1. 1

    Получите тестовый ключ

    Без регистрации: временный магазин на 24 часа в песочнице.

    POST /v1/sandbox/keys
    → "secret_key": "sk_test_…"
    Открыть песочницу
  2. 2

    Создайте платёж

    Сумма в копейках, метод или выбор покупателя. В ответе — ссылка на оплату.

    POST /v1/payments
    { "amount": 499000, "method": "sbp" }
    Параметры платежа
  3. 3

    Примите вебхук

    Проверьте подпись и отметьте заказ оплаченным — даже если покупатель закрыл вкладку.

    NordPay-Signature: t=…,v1=…
    → payment.succeeded
    Проверка подписи
Разделы

Что есть в API

Как устроен API

Все запросы идут на https://api.nordpay.pro/v1 по HTTPS. Тело запроса и ответа — JSON в кодировке UTF-8. Ответы с ошибкой имеют единый формат и HTTP-код, описанные в разделе «Коды ошибок».

Суммы
Целые копейки: 499000 — это 4 990 ₽. Валюта — RUB.
Даты
ISO 8601 в UTC: 2026-11-08T12:00:00Z.
Идентификаторы
С префиксом типа: pay_ платёж, pl_ ссылка, re_ возврат, evt_ событие.
Списки
Курсорная выборка: has_more и next_cursor.
Трассировка
Каждый ответ содержит заголовок X-Request-Id — укажите его, если пишете в поддержку.

Тестовый и боевой режим

Режим определяется ключом. Тестовые ключи начинаются с sk_test_: платежи проходят через песочницу, а исход задаёте вы — тестовой картой, кнопкой на странице оплаты или запросом симуляции. Боевые ключи sk_live_ проводят реальные деньги.

Объекты двух режимов не пересекаются: платёж, созданный тестовым ключом, не найдётся по боевому, и наоборот. Поле livemode показывает режим объекта.

Боевые ключи — после подключения.
Менеджер заводит магазин, проверка документов проходит на стороне платёжного партнёра, после подписания договора боевой режим включается в кабинете. Тестовый ключ можно получить сразу в песочнице.
Ключи
sk_test_…   тестовый режим: песочница, деньги не списываются
sk_live_…   боевой режим: реальные платежи
Поле в каждом объекте
{
  "id": "pay_2Kq8sD1fVxJ7mN4p",
  "livemode": false
}

Схема оплаты

Типичная интеграция укладывается в четыре шага: вы создаёте платёж на своём сервере, отправляете покупателя по ссылке из ответа, покупатель платит удобным методом, а ваш сервер получает уведомление и выдаёт заказ.

1. Ваш серверPOST /v1/payments2. NordPayconfirmation.url3. Покупательоплачивает4. Ваш серверpayment.succeededДеньги зачисляются в баланс, затем выплачиваются на ваши реквизиты по графику договора
  • Страница оплаты уже поддерживает СБП, карты и USDT — верстать платёжную форму не нужно.
  • Статус заказа меняйте по вебхуку, а не по возврату покупателя на сайт: он может закрыть вкладку.
  • Повторные запросы безопасны с заголовком Idempotency-Key.
Создание платежа
curl -X POST https://api.nordpay.pro/v1/payments \
  -H "Authorization: Bearer $NORDPAY_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 499000,
    "currency": "RUB",
    "method": "sbp",
    "description": "Заказ №1042",
    "order_id": "1042",
    "customer": {
      "email": "buyer@example.com"
    },
    "return_url": "https://shop.example/orders/1042",
    "metadata": {
      "cart_id": "c_77"
    }
  }'

Версии API

Версия указана в пути: /v1. В рамках версии мы добавляем новые эндпоинты, необязательные параметры и поля ответа, но не удаляем и не переименовываем существующие. Разбирайте ответы так, чтобы незнакомые поля не ломали интеграцию.

Список изменений — в разделе «Изменения API».

Заголовки ответа
HTTP/1.1 201 Created
Content-Type: application/json
X-Request-Id: req_9f2c41d07a
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 19
X-RateLimit-Reset: 1762603201