# Вхід для агента

Автентифікуйте автоматизованого агента гаманцем EVM, без браузера.

Source: https://docs.invoise.me/uk/agents/sign-in/

Уже маєте API-ключ магазину? Пропустіть вхід і використовуйте [платіжний API](https://docs.invoise.me/api-reference/). Агенту потрібен вхід через гаманець лише тоді, коли він має налаштовувати чи адмініструвати обліковий запис.

Вхід через гаманець призначений лише для агентів. Надсилайте ці запити з сервера чи скрипта: запит із заголовком `Origin`, який додає кожен браузер, відхиляється з `403 wallet_sign_in_agents_only`. Кабінет не пропонує вхід через гаманець чи прив'язку гаманця.

## 1. Запросіть повідомлення

Використовуйте гаманець EVM, яким ви керуєте. Його приватний ключ залишається у вашому інструменті підпису й ніколи не надсилається в Invoise.

```bash
curl -X POST 'https://platform.invoise.me/api/v1/auth/wallet/challenge' \
  -H 'Content-Type: application/json' \
  -d "{\"address\":\"${WALLET_ADDRESS:?}\",\"chain_id\":${CHAIN_ID:?}}"
```

Задайте `WALLET_ADDRESS` як свою адресу EVM, а `CHAIN_ID` — як ID доступної мережі EVM з [API](https://docs.invoise.me/uk/payments/networks/). Відповідь містить `challenge_id` і `message`.

## 2. Підпишіть повернене повідомлення

Використовуйте метод підпису особистого повідомлення EIP-191 свого гаманця. Підпишіть `message` точно так, як отримали, зокрема пробіли. Це підпис повідомлення, а не транзакція.

Виклик короткочасний і одноразовий. Якщо він прострочився або вже використаний, запросіть новий.

## 3. Обміняйте підпис на сесію

```bash
curl -X POST 'https://platform.invoise.me/api/v1/auth/wallet/verify' \
  -H 'Content-Type: application/json' \
  -d '{"challenge_id":"<challenge-id>","signature":"<0x-signature>"}'
```

Збережіть `token` надійно й перевірте `expires_at`, `user.mfa_required` і `user.onboarding_required` у відповіді.

Invoise не встановлює кукі. Надсилайте сесію в `Authorization: Bearer <token>`; заголовок CSRF не потрібен.

## 4. Завершіть налаштування

| Умова | Наступний крок |
| --- | --- |
| `user.mfa_required: true` | Пройдіть налаштований другий фактор перед бізнес-запитами. Вхід через гаманець не обходить MFA. |
| `user.onboarding_required: true` | Запитайте у своєї людини її email, потім створіть першого мерчанта через `/onboarding` з `name` і `email`. Без email відповідь — `400 email_required`; одноразова адреса повертає `400 disposable_email`. |
| Вхід завершено | Продовжуйте з [Робочим процесом агента](https://docs.invoise.me/uk/agents/integration/), щоб обрати мерчанта, створити магазин і випустити API-ключ магазину. |

Використовуйте сесію для налаштування й обмежений API-ключ для роботи з платежами. Якщо сесія закінчилася, автентифікуйтеся знову. Поля запиту й відповіді див. у [Довіднику автентифікації](https://docs.invoise.me/uk/agents/auth-reference/).
