Skip to main content
Все запросы к Meridian API должны содержать заголовки X-API-Key и X-Signature.

Получение API ключей

Для мерчантов (самостоятельно)

  1. Войдите в личный кабинет Meridian
  2. Перейдите в раздел API Ключи в боковом меню
  3. Нажмите Создать ключ
  4. Введите описательное имя (например, “Production Server”)
  5. ВАЖНО: Скопируйте и сохраните Key ID и Secret немедленно
    • Формат: meridian_<32_символа> для обоих значений
    • Secret больше никогда не будет показан
После создания ключа Secret отображается только один раз. Сохраните его в безопасном месте!

X-API-Key

Заголовок X-API-Key должен содержать комбинацию из Key ID и Secret в формате keyId:secret.
X-API-Key: meridian_abc123...:meridian_xyz789...

X-Signature

Заголовок X-Signature должен содержать строку, закодированную в формате Base64, которая подписана секретным ключом с использованием алгоритма HMAC-SHA256.
X-Signature: <Base64-encoded-signature>

Формирование строки для подписи

Строка для подписи формируется путем конкатенации следующих элементов в следующем порядке:
  1. HTTP-метод запроса в верхнем регистре (например, GET, POST)
  2. Полный URL запроса, включая протокол, хост и путь (например, https://api.meridian.vip/api/v1/resource)
  3. Тело запроса - если оно присутствует, как JSON-строка
Пример строки для подписи:
POSThttps://api.meridian.vip/api/v1/resource{"key":"value","data":"example"}

Запросы GET

Для типа запроса GET строка для подписи создается путем конкатенации только метода запроса и URL запроса (тело запроса - пустая строка). Пример для GET запроса:
GEThttps://api.meridian.vip/api/v1/resource

Формирование подписи

Полученная строка подписывается секретным ключом secret с использованием алгоритма HMAC-SHA256, а результат кодируется в Base64 и передается в заголовке X-Signature.

Примеры кода

const crypto = require('crypto');

function calculateSignature(method, url, body, secret) {
  // Формируем строку для подписи
  const stringToSign = method + url + (body || '');

  // Вычисляем HMAC-SHA256
  const hmac = crypto.createHmac('sha256', secret);
  hmac.update(stringToSign);

  return hmac.digest('base64');
}

// Пример использования
const method = 'POST';
const url = 'https://api.meridian.vip/api/v1/resource';
const body = JSON.stringify({
  key: 'value',
  data: 'example'
});

// Ваш API ключ в формате: luma_keyId:luma_secret
const apiKey = 'luma_abc123...:luma_xyz789...';
const [keyId, secret] = apiKey.split(':');
const signature = calculateSignature(method, url, body, secret);

// Выполняем запрос
fetch(url, {
  method,
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': apiKey,
    'X-Signature': signature
  },
  body
});