# Инструменты разработчика

Ресурсы для разработки и тестирования интеграции с Lumo B2B API.

## Mock Server

Тестируйте API без реальных транзакций:


```
https://lumo.redocly.app/_mock/apis
```

Mock-сервер возвращает примеры ответов из OpenAPI-спецификации. Идеально для:

- Первичной разработки
- Unit-тестов
- CI/CD пайплайнов


### Пример


```bash
curl -X POST 'https://lumo.redocly.app/_mock/apis/orders/prepare' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: test-key' \
  -d '{"qrCode": "https://qr.nspk.ru/test"}'
```

## Staging окружение

Полнофункциональное тестовое окружение:


```
https://b2b-staging.lumowallet.io
```

Особенности:

- Реальная логика API
- Тестовые данные
- Отдельные API-ключи


Для получения доступа к staging свяжитесь с менеджером.

## Replay Console

Интерактивная консоль прямо в документации:

1. Откройте [API Reference](/apis)
2. Выберите endpoint
3. Заполните параметры
4. Нажмите "Try it"


Replay поддерживает:

- Авторизацию через API-ключ
- Редактирование request body
- Просмотр response


## OpenAPI Specification

Скачайте OpenAPI-спецификацию для генерации клиентов:

- [OpenAPI YAML](/apis)


Генерация клиента:


```bash
# JavaScript/TypeScript
npx @openapitools/openapi-generator-cli generate \
  -i https://lumo.redocly.app/apis/index.yaml \
  -g typescript-fetch \
  -o ./lumo-client

# Python
openapi-generator generate \
  -i https://lumo.redocly.app/apis/index.yaml \
  -g python \
  -o ./lumo-client
```

## Postman Collection

Импортируйте OpenAPI-спецификацию в Postman:

1. Откройте Postman
2. File → Import
3. Вставьте URL: `https://lumo.redocly.app/apis/index.yaml`
4. Настройте переменную `{{API_KEY}}`


## Webhook тестирование

Для тестирования webhooks используйте:

- [webhook.site](https://webhook.site) — временный endpoint для просмотра запросов
- [ngrok](https://ngrok.com) — туннель к локальному серверу


Пример с ngrok:


```bash
# Запустите туннель
ngrok http 3000

# Обновите webhook URL
curl -X PATCH 'https://b2b-staging.lumowallet.io/auth/company/profile' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"webhookUrl": "https://abc123.ngrok.io/webhooks/lumo"}'
```

## Логирование

Рекомендуемый формат логов:


```javascript
const log = {
  timestamp: new Date().toISOString(),
  requestId: uuid(),
  endpoint: '/orders/prepare',
  method: 'POST',
  statusCode: 201,
  duration: 145,
  request: { qrCode: '...' },
  response: { id: '...', amountUsdt: 52.63 }
};
```

## Мониторинг

Метрики для отслеживания:

| Метрика | Описание | Порог |
|  --- | --- | --- |
| Error rate | % ошибочных запросов | < 1% |
| Latency p95 | 95-й перцентиль времени ответа | < 500ms |
| Webhook delivery | % успешных доставок | > 99% |
| Order success rate | % успешных платежей | Зависит от use case |