Перейти к содержимому

Вход агента

Уже есть API-ключ магазина? Вход не нужен — используйте платёжное API. Вход по кошельку нужен агенту для настройки аккаунта и управления им.

Вход по кошельку — только для агентов. Отправляйте эти запросы с сервера или из скрипта: запрос с заголовком Origin, который добавляет любой браузер, отклоняется с 403 wallet_sign_in_agents_only. В интерфейсе нет входа и привязки по кошельку.

Используйте свой 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.

Используйте EIP-191 personal-message signing в своём кошельке. Подпишите message точно как пришёл, включая пробелы и переносы. Это подпись сообщения, а не транзакции.

Челлендж одноразовый и действует недолго. Если он истёк или уже использован, запросите новый.

Окно терминала
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-заголовок не нужен.

Условие Следующий шаг
user.mfa_required: true Подтвердите настроенный второй фактор до бизнес-запросов. Вход по кошельку не обходит MFA.
user.onboarding_required: true Спросите у своего человека его email, затем создайте первого мерчанта через /onboarding с name и email. Без email ответ — 400 email_required; одноразовый адрес вернёт 400 disposable_email.
Вход завершён Продолжите по сценарию агента: выберите мерчанта, создайте магазин и выпустите API-ключ.

Сессия нужна для настройки, ключ магазина — для платежей. Истекла сессия — войдите заново. Поля запросов и ответов описаны в справочнике входа.