Как получить accountId для Moneta.ru SDK

    При интеграции платёжной системы Moneta.ru разработчики часто сталкиваются с вопросом: что передавать в параметр $accountId при вызове метода showAccountBalance()? В документации PHP SDK этот момент описан неполно, что приводит к ошибке «Ошибка авторизации». Разберёмся, где найти или сформировать правильный идентификатор счёта.

    Что такое accountId в Moneta SDK

    AccountId - это уникальный номер лицевого счёта пользователя в системе Moneta.ru. Он не равен идентификатору пользователя (user_id) и не является произвольным числом. Каждый зарегистрированный кошелёк или счёт имеют свой постоянный числовой идентификатор, который используется для операций с балансом.

    Где взять accountId

    Существует несколько способов получить корректный accountId:

    • Через личный кабинет Moneta.ru: войдите в аккаунт, перейдите в раздел «Счета» или «Кошелёк». Номер счёта обычно отображается рядом с названием счёта и состоит из 10-15 цифр.
    • Через API получения списка счетов: используйте метод getAccountList() из того же SDK. Он возвращает массив объектов, каждый из которых содержит поле id - это и есть нужный accountId.
    • При создании нового пользователя: если вы регистрируете пользователя через API, в ответе на запрос создания приходит accountId нового счёта. Сохраните его в базе данных сразу после регистрации.

    Пример получения accountId через SDK

    Вот как можно получить список счетов и выбрать нужный идентификатор:

    $monetaSDK = new Moneta\MonetaSdk();
    $accounts = $monetaSDK->getAccountList();
    foreach ($accounts as $account) {
        echo 'Account ID: ' . $account->id . '\n';
        echo 'Balance: ' . $account->balance . '\n';
    }
    

    После этого вы можете использовать полученный accountId для вызова showAccountBalance().

    Почему возникает ошибка авторизации

    Ошибка «Ошибка авторизации» при передаче произвольного числа возникает из-за того, что SDK проверяет принадлежность счёта текущему сеансу. Если accountId не существует или не привязан к вашему API-ключу, система отклоняет запрос. Всегда используйте только те идентификаторы, которые получены через официальные методы Moneta.

    Работа с тестовым режимом

    Для отладки в SDK Moneta предусмотрен тестовый режим. В документации уточните, какие тестовые accountId допустимы - обычно это специальные номера, начинающиеся с 1000. Однако для реальной интеграции обязательно используйте боевые счета из личного кабинета или API.

    Заключение

    Правильный accountId - это не произвольное число, а реальный идентификатор счёта в Moneta.ru. Получить его можно через личный кабинет, метод getAccountList() или сохранить при создании пользователя. Избегайте передачи случайных значений, чтобы не получать ошибку авторизации. Следуя этим рекомендациям, вы успешно интегрируете отображение баланса в своём проекте.

    Часто задаваемые вопросы