Платежи через API —
за один вечер
СБП, карты МИР, Visa и Mastercard, USDT в пяти сетях и подписки с автосписаниями — одним API. Тестовый ключ выдаётся сразу, без заявки.
Пример: запрос на создание платежа, ответ API со ссылкой на оплату и вебхук payment.succeeded на сервер магазина.
Первый платёж в три шага
- 1
Получите тестовый ключ
Без регистрации: временный магазин на 24 часа в песочнице.
POST /v1/sandbox/keys → "secret_key": "sk_test_…"
Открыть песочницу - 2
Создайте платёж
Сумма в копейках, метод или выбор покупателя. В ответе — ссылка на оплату.
POST /v1/payments { "amount": 499000, "method": "sbp" }Параметры платежа - 3
Примите вебхук
Проверьте подпись и отметьте заказ оплаченным — даже если покупатель закрыл вкладку.
NordPay-Signature: t=…,v1=… → payment.succeeded
Проверка подписи
Что есть в API
- ПлатежиСоздание, статусы, выбор метода покупателемPOST/v1/payments
- ВебхукиСобытия и проверка подписи HMAC
- ПодпискиПланы и автосписания
- Ссылки на оплатуБез кода: соцсети, мессенджеры, счета
- ВозвратыПолные и частичные
- ИдемпотентностьБезопасные повторы запросов
- Ошибки и лимитыКоды, 429, Retry-After
- SDK и модулиNode.js, PHP, Python, CMS
- Тестовые данныеКарты, сети USDT и сценарии песочницы
Как устроен 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
}Схема оплаты
Типичная интеграция укладывается в четыре шага: вы создаёте платёж на своём сервере, отправляете покупателя по ссылке из ответа, покупатель платит удобным методом, а ваш сервер получает уведомление и выдаёт заказ.
- Страница оплаты уже поддерживает СБП, карты и 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