Аутентификация
API Key (интеграция без ЛК)
При создании кассы генерируются api_key и signing_secret. Ключ передаётся в каждом запросе к API, секрет используется только для проверки подписи вебхуков.
Заголовки:
X-API-Key: rpk_live_abc123def456
X-Nonce: 550e8400-e29b-41d4-a716-446655440000
API-ключ привязан к одной кассе. Все операции выполняются в контексте этой кассы (например, при создании платежа terminal_id можно не передавать — подставится касса ключа).
Защита от повтора (nonce)
Чтобы исключить повторное использование одного и того же запроса, с каждым запросом передавайте уникальный X-Nonce (например, UUID). Один и тот же nonce нельзя использовать повторно в течение 10 минут. При повторном использовании вернётся 401 Unauthorized с сообщением "nonce already used".
JWT (личный кабинет)
Для входа в веб-интерфейс (дашборд) используется пара токенов, получаемая через логин.
POST /api/v1/auth/login
Тело запроса:
{
"email": "merchant@example.com",
"password": "your_password"
}
Ответ 200 OK:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"refresh_token": "eyJhbGciOiJIUzI1NiIs...",
"expires_at": 1740441600,
"user": {
"id": "usr_abc123",
"email": "merchant@example.com",
"role": "merchant_owner",
"account_id": "acc_xyz789"
}
}
В последующих запросах к API от имени пользователя передавайте:
Authorization: Bearer <access_token>
Обновление токена: POST /api/v1/auth/refresh с телом { "refresh_token": "..." }.
Для серверной интеграции без ЛК используйте только X-API-Key и X-Nonce.