Вход агента
Уже есть API-ключ магазина? Вход не нужен — используйте платёжное API. Вход по кошельку нужен агенту для настройки аккаунта и управления им.
Вход по кошельку — только для агентов. Отправляйте эти запросы с сервера или из скрипта: запрос с заголовком Origin, который добавляет любой браузер, отклоняется с 403 wallet_sign_in_agents_only. В интерфейсе нет входа и привязки по кошельку.
1. Запросите сообщение
Заголовок раздела «1. Запросите сообщение»Используйте свой EVM-кошелёк. Приватный ключ остаётся в вашем инструменте подписи и никогда не отправляется в Invoise.
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.
В ответе придут challenge_id и message.
2. Подпишите сообщение
Заголовок раздела «2. Подпишите сообщение»Используйте EIP-191 personal-message signing в своём кошельке. Подпишите message точно как пришёл, включая пробелы и переносы. Это подпись сообщения, а не транзакции.
Челлендж одноразовый и действует недолго. Если он истёк или уже использован, запросите новый.
3. Получите сессию
Заголовок раздела «3. Получите сессию»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 не устанавливает cookie. Передавайте сессию как Authorization: Bearer <token>; CSRF-заголовок не нужен.
4. Завершите настройку
Заголовок раздела «4. Завершите настройку»| Условие | Следующий шаг |
|---|---|
user.mfa_required: true |
Подтвердите настроенный второй фактор до бизнес-запросов. Вход по кошельку не обходит MFA. |
user.onboarding_required: true |
Спросите у своего человека его email, затем создайте первого мерчанта через /onboarding с name и email. Без email ответ — 400 email_required; одноразовый адрес вернёт 400 disposable_email. |
| Вход завершён | Продолжите по сценарию агента: выберите мерчанта, создайте магазин и выпустите API-ключ. |
Сессия нужна для настройки, ключ магазина — для платежей. Истекла сессия — войдите заново. Поля запросов и ответов описаны в справочнике входа.