# Полный номер и CVC

По умолчанию через API виден только `maskedPan` (`4466 ** ** 1234`).
Полный номер, CVC и срок доступны только через отдельный reveal-endpoint.

## Endpoint

```
GET /cards/:id/sensitive
```

Доступно **только для карт в статусе `assigned`**. Для `retired` / `failed`
/ `requested` — возвращает 404.

## Пример

```bash
curl 'https://b2b.lumowallet.io/cards/8c7f1823-.../sensitive' \
  -H 'X-API-Key: YOUR_API_KEY'
```

## Ответ

```json
{
  "cardId": "8c7f1823-...",
  "cardNumberFull": "4466123412341234",
  "cardCvv": "123",
  "expiry": "03/29"
}
```

## Как работает

- Каждый запрос идёт **напрямую к эквайеру** без кэша на стороне
Lumo. У нас в БД хранится только `maskedPan`.
- Факт вызова логируется на сервере: `company=<id> revealed sensitive data for card <id>`.
- Никаких rate-limit'ов сверх общих (но злоупотребление — повод для
блокировки).


## UX-рекомендация

Не держите полный номер в UI дольше, чем нужно. Наш личный кабинет
`b2b-app.lumowallet.io` показывает PAN + CVC в течение 30 секунд и
автоматически скрывает. Рекомендуем повторить это в вашем интерфейсе.

## Тестовый режим

Если у компании `cardsTestMode = true`, endpoint возвращает статичный
тестовый набор, не обращаясь к эквайеру:

```json
{
  "cardId": "...",
  "cardNumberFull": "4111111111111111",
  "cardCvv": "123",
  "expiry": "12/29"
}
```