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

Вопросы и ошибки

Здесь собраны частые вопросы и популярные ошибки при работе с API. Раздел разделён на две части: частые вопросы и частые ошибки.

Частые вопросы

Как узнать свой customerCode

Вызовите метод Get Customers List. Значение customerCode берите из объекта с полем customerType: "Business".

Как принимать оплату только по СБП

При создании платёжной ссылки укажите в paymentMode только sbp:

"paymentMode": ["sbp"]

Или напрямую через QR-коды — методом Register Qr Code. Подробнее — в разделе Работа с QR-кодами.

Как сделать первую сумму оплаты подписки меньше, чем следующие

Создайте подписку без графика: передайте "recurring": true и не передавайте объект Options. Чтобы провести списание, вызовите метод Charge Subscription с operationId (идентификатор подписки из ответа при создании) и суммой.

Важно

При "recurring": true не передавайте "saveCard": true. Иначе пройдёт только первая оплата, а дальнейшие списания провести не получится.

Как сохранить данные карты покупателя, чтобы предложить её при следующих оплатах

При создании платёжной ссылки или подписки передайте "saveCard": true. Карта сохранится только если покупатель отметит галочку «Сохранить карту». После этого в ответе придёт consumerId — подставляйте его в последующие запросы, чтобы предложить покупателю сохранённую карту.

примечание

Для подписок без графика с "recurring": true" параметр saveCard ведёт себя иначе — смотрите вопрос «Как сделать первую сумму оплаты подписки меньше».

инфо

Если при создании платёжной ссылки указать "saveCard": true, то не получится передать "preAuthorization": true, то есть использовать двухэтапную оплату.

Можно ли подключить несколько вебхуков

Вебхук подключается к client_id, поэтому на один client_id можно создать только один вебхук. При этом список событий вы выбираете сами: можно указать одно событие, несколько или все сразу — в поле webhooksList при создании вебхука.

Как получать вебхуки на разные URL

На один client_id можно указать только один URL, то есть один вебхук. Чтобы получать вебхуки на разные URL (например, для каждого события — свой), выпустите нужное количество JWT-ключей: каждый ключ даёт свой client_id, а на каждый client_id можно создать отдельный вебхук со своим URL и набором событий.

Как проверить, по каким событиям подключён вебхук

Вызовите метод Get Webhooks — он возвращает список всех вебхуков, настроенных на приложение.

В каком разделе интернет-банка можно добавить URL для вебхуков

В интернет-банке настроить вебхуки нельзя. Подключить, изменить или удалить их можно только через API.

Можно ли получить логи запросов

Нет, логи со своей стороны мы не предоставляем.

Для чего нужна Песочница

Песочница нужна для отладки интеграции по принципу «запрос — ответ». Все данные в ней тестовые и захардкожены: при корректном запросе ответ всегда один и тот же. Провести реальную оплату или перейти по сформированной платёжной ссылке в песочнице нельзя — это доступно только на боевом слое.

Как понять, какие поля в запросах обязательные

На странице метода обязательные поля отмечены красной меткой required. Поля без этой метки заполнять не обязательно.

обязательные поля

Что нужно знать о счетах на оплату

  • Выставить счёт на оплату можно только юрлицам и ИП. Физлицу счёт выставить нельзя.
  • Через API можно получить только тот счёт, который вы сами сформировали методом Create Invoice. За один запрос возвращается один счёт.
  • Указать в счёте свои логотип, подпись и печать через API нельзя.

Как отозвать токен

Чтобы закрыть ключу доступ к API, удалите его в разделе «JWT-ключи». Запросы с удалённым ключом будут возвращать ошибку 403.

Можно ли изменить доступы или срок у созданного ключа

Напрямую — нет. При изменении доступов или срока ключ перевыпускается и client_id тоже обновляется.

Частые ошибки

Общие

Ошибка возникает, когда у customerCode не хватает разрешений для вызова метода. Частые причины:

  1. Указан неверный customerCode. Узнать свой customerCode можно методом Get Customers List, взяв значение из объекта с customerType: "Business"
  2. Нет разрешения на этот метод. Чтобы посмотреть список выданных разрешений, вызовите два метода по очереди:

Ошибка 501: Not Implemented

Неверно указан endpoint запроса. Проверьте, совпадает ли он с адресом из документации метода.

Вебхуки

Failed to test webhook url accessibility

Ваш сервер не ответил кодом 200 на тестовый вебхук при создании вебхука. Проверьте настройки сервера. Подробнее — в разделе Вебхуки.

Платёжные ссылки, подписки и эквайринг

Field merchantId is required for this payment

Полный текст: "errorCode": "Something going wrong", "message": "Field merchantId is required for this payment".

При создании платёжной ссылки или подписки не передан merchantId. Этот параметр необязателен, если у вас одна торговая точка интернет-эквайринга, но становится обязательным, когда точек несколько. Найти merchantId можно методом Get Retailers — в ответе придут данные ваших торговых точек.

Retailer not found

Ошибку можно получить при вызове Get Retailers, если торговая точка ещё не создана или заявка на подключение интернет-эквайринга только подана. Убедитесь, что заявка оставлена, либо подождите, пока её возьмут в работу.

Кассовый чек не отправляется на почту покупателя

Так же проявляется, если на форме оплаты нет поля для электронной почты. Если к интернет-эквайрингу подключена облачная касса или сервис «Чеки», используйте методы с фискализацией:

Данные покупателя, включая электронную почту, передавайте в параметре email внутри объекта Client.