Pulse2Pay использует аутентификацию API Key + HMAC подпись для всех API запросов.
Обзор аутентификации
Каждый API запрос требует три заголовка:
|-----------|----------|
X-Pulse2Pay-Keypk_live_ или pk_test_)X-Pulse2Pay-SignatureX-Pulse2Pay-TimestampПолучение учётных данных
Генерация подписей
Подпись вычисляется над каноническим запросом:
signature = HMAC-SHA256(api_secret, canonical_request)
canonical_request = timestamp + "." + method + "." + path + "." + body
Компоненты
|-----------|----------|--------|
timestamp1705320000000methodPOSTpath/api/merchant/v1/paymentsbody{"amount":"100.00","currency":"USDT","network":"TRON"}Пример: Node.js
const crypto = require('crypto');function signRequest(method, path, body, apiSecret) {
const timestamp = Date.now().toString(); // миллисекунды
const bodyString = body ? JSON.stringify(body) : '';
const canonical = ${timestamp}.${method}.${path}.${bodyString};
const signature = crypto
.createHmac('sha256', apiSecret)
.update(canonical)
.digest('hex');
return { timestamp, signature };
}
// Использование
const body = {
amount: '100.00',
currency: 'USDT',
network: 'TRON'
};
const { timestamp, signature } = signRequest(
'POST',
'/api/merchant/v1/payments',
body,
process.env.PULSE2PAY_API_SECRET // sk_live_...
);
Частые ошибки
|--------|---------|---------|
INVALID_SIGNATURETIMESTAMP_EXPIREDINVALID_API_KEY