# Аутентификация Lumo B2B API использует API-ключи для аутентификации запросов. ## Получение API-ключа API-ключ выдаётся при подключении компании к платформе. Свяжитесь с менеджером в [Telegram](https://t.me/lumo_support_bot). После подключения вы получите: - Email и пароль для входа - Первичный API-ключ - Доступ к личному кабинету ## Передача ключа Рекомендуемый способ — заголовок `X-API-Key`: ```bash curl -X GET 'https://b2b.lumowallet.io/wallets/balance' \ -H 'X-API-Key: lb2b_5f7f1f7b7f034dbf81b0b8b8d7c0b9f1' ``` Также поддерживаются: - `Authorization: Bearer ` - Query-параметр `?api_key=` (не рекомендуется) ## Ротация ключа ### Через логин При каждом успешном логине генерируется новый API-ключ: ```bash curl -X POST 'https://b2b.lumowallet.io/auth/company/login' \ -H 'Content-Type: application/json' \ -d '{ "email": "admin@company.com", "password": "your-password" }' ``` Ответ: ```json { "company": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My Company", "email": "admin@company.com" }, "apiKey": "lb2b_new_key_here" } ``` > ⚠️ **Важно:** Предыдущий ключ становится недействительным. ### Ручная ротация Перевыпустите ключ без смены пароля: ```bash curl -X POST 'https://b2b.lumowallet.io/auth/company/regenerate-key' \ -H 'X-API-Key: YOUR_CURRENT_API_KEY' ``` ## Whitelist IP Доступ к API ограничен списком разрешённых IP-адресов. Для добавления IP свяжитесь с менеджером. Запросы с неавторизованных IP получат ошибку: ```json { "statusCode": 403, "message": "IP address not whitelisted", "error": "Forbidden" } ``` ## Безопасность - Храните API-ключ в безопасном месте (env-переменные, secrets manager) - Не передавайте ключ в URL или логах - Периодически ротируйте ключи - Используйте HTTPS для всех запросов ## Ошибки аутентификации | Код | Ошибка | Описание | | --- | --- | --- | | 401 | `Missing credentials` | Не передан API-ключ | | 401 | `Invalid API key` | Неверный или устаревший ключ | | 403 | `IP not whitelisted` | IP-адрес не в whitelist | | 403 | `Company is disabled` | Компания деактивирована |