Документация API
Обновлено: 16 июня 2026
Публичный API для интеграции приёма платежей. Запросы аутентифицируются по HMAC-подписи с использованием пары ключей (public key + секрет), которую вы создаёте в разделе «API-ключи» личного кабинета.
Базовый URL
https://<ваш-домен>/v1
# в тестовом окружении: http://localhost:3000/v1Аутентификация (HMAC)
К каждому запросу добавьте три заголовка:
- X-Api-Key — публичный ключ (public key).
- X-Timestamp — текущее unix-время в миллисекундах. Допустимое расхождение с сервером — 5 минут (защита от повторов).
- X-Signature — hex(HMAC_SHA256(secret, timestamp + "." + rawBody)), где rawBody — точное тело запроса (та же строка, что отправляется).
Создать счёт
POST /v1/invoices — тело как у формы счёта: для фиатной цены priceMode="FIAT" и priceCurrency = USD или RUB; для цены прямо в крипте — priceMode="CRYPTO" и priceCurrency = актив (например USDT_TRC20). Рублёвая сумма пересчитывается в криптоэквивалент по курсу ЦБ РФ.
const crypto = require('crypto');
const BASE = "https://api.smplpay.me"; // в тестовом окружении: http://localhost:3000
const PUBLIC_KEY = '<ваш X-Api-Key>';
const SECRET = '<ваш секрет>'; // показывается один раз при создании ключа
async function createInvoice() {
const ts = Date.now().toString(); // unix-время в миллисекундах
const body = JSON.stringify({
priceMode: 'FIAT',
priceCurrency: 'RUB', // или 'USD', или актив для CRYPTO
priceAmount: '1000', // 1000 ₽ → эквивалент в крипте по курсу ЦБ РФ
});
// Подпись: hex(HMAC_SHA256(secret, `${timestamp}.${rawBody}`))
const signature = crypto.createHmac('sha256', SECRET).update(ts + '.' + body).digest('hex');
const res = await fetch(BASE + '/v1/invoices', {
method: 'POST',
headers: {
'content-type': 'application/json',
'X-Api-Key': PUBLIC_KEY,
'X-Timestamp': ts,
'X-Signature': signature,
},
body,
});
console.log(await res.json()); // { id, ... } — id счёта
}В ответ придёт объект счёта с полем id. Отдайте покупателю ссылку на оплату вида <checkout>/<id> или встройте виджет оплаты.
Получить счёт / котировку
- GET /v1/invoices/:id — статус счёта, charges и платежи.
- GET /v1/invoices/:id/quote — суммы к оплате по каждому поддерживаемому активу с зафиксированным курсом.
Вебхуки
Укажите callbackUrl в счёте или дефолтный URL вебхуков в разделе «Настройки» — Сервис будет уведомлять о смене статуса (оплачен, частично, подтверждён). Доставки подписываются HMAC; лог доставок виден в разделе «Вебхуки».