Old versions of the API
Help
Sign up for YooMoney
Выставление счетов
В ЮKassa можно выставлять счета на оплату. Счет — это страница ЮKassa, на которой пользователь увидит описание заказа и сможет заплатить в любой удобный момент в течение заданного вами срока.
С помощью выставления счетов от ЮKassa вы можете автоматизировать прием платежей даже без сайта, увеличить срок оплаты для пользователя до 30 дней (вместо 1 часа) и принимать платежи популярными способами оплаты: кошельком ЮMoney, банковской картой, SberPay, СБП и другими.
В этой статье описано выставление счетов по API.
Подробнее о других способах выставления счетов
Как это работает
Счет — это готовая страница с описанием заказа, который сделал пользователь. Для приема оплаты ЮKassa использует Умный платеж: когда пользователь перейдет к оплате, ЮKassa автоматически создаст платеж и перенаправит пользователя на страницу оплаты. На платежной форме будут отображаться все способы оплаты, доступные вашему магазину.
Для приема платежа вам нужно только создать счет и передать ссылку пользователю: всё остальное сделает ЮKassa.
При оплате ЮKassa создаст объект платежа . С ним можно выполнять все действия, которые можно делать с платежами: получать уведомления об изменении статуса платежа, запрашивать информацию о платеже, подтверждать платеж, делать возвраты и т.д.
Подробнее о выставлении счетов:
Как проходит оплата по выставленному счету
Когда обсудите с пользователем детали заказа, создайте счет и передайте ссылку на него любым удобным способом. Например, отправьте в мессенджере.
При переходе по ссылке пользователь попадет на страницу счета, где увидит его срок действия, а также корзину заказа и сумму к оплате.
Пример страницы счета
Когда пользователь перейдет к оплате, ЮKassa создаст платеж и перенаправит пользователя на платежную форму, где он выберет подходящий способ оплаты, введет данные и подтвердит платеж. Подробнее о доступных способах оплаты
Пример платежной формы
Если по каким-то причинам платеж не пройдет и перейдет в статус canceled, пользователь сможет повторять попытку оплаты, пока срок действия счета не истечет. Для этого пользователю нужно вернуться на страницу счета и заново перейти к оплате — каждый раз ЮKassa будет создавать новый платеж.
Счет считается оплаченным, когда по нему есть успешный платеж (в статусе succeeded). Вы можете в любой момент проверить статус счета, отправляя запросы на получение информации о счете .
Возможности
Выставляя счета по API, вы можете:
  • автоматизировать оплату по счетам;
  • создавать счета со сроком оплаты до 30 дней;
  • показывать пользователю корзину заказа прямо на странице ЮKassa;
  • принимать платежи всеми способами, кроме оплаты Электронным сертификатом и через СберБанк Бизнес Онлайн.
  • принимать платежи в две стадии и списывать оплату полностью или частично;
  • делать возвраты по API или из личного кабинета;
  • сохранять способы оплаты для проведения автоплатежей;
  • передавать данные для чека в онлайн-кассу (для компаний и ИП) или в налоговую (для самозанятых);
  • получать информацию о счете  и платеже  по API.
Преимущества выставления счетов по API
Выставить счет можно не только по API, но и в личном кабинете ЮKassa или Telegram-боте. Тогда вам не потребуется писать код: вы укажете необходимые настройки, получите ссылку на страницу счета и сможете отправить ее пользователю — самостоятельно или, если выставляете счета в личном кабинете, через ЮKassa.
Тем не менее, у выставления счетов по API есть ряд преимуществ:
  • Выставляя счета по API, вы можете автоматизировать обработку информации о статусе счета. Это недоступно для счетов, выставленных из личного кабинета или через Telegram-бота.
  • У всех платежных решений API ЮKassa один и тот же формат взаимодействия. Если вы захотите принимать платежи на сайте, делать выплаты по API ЮKassa или использовать другие платежные решения, вам нужно будет только подписать договор и подключить новые возможности по соответствующим инструкциям.
  • API поддерживает те возможности, которых нет в личном кабинете. Например, автоплатежи или частичное списание оплаты по платежу в две стадии.
  • Если вы используете решения ЮKassa для работы по 54-ФЗ, то выставляя счета по API сможете передавать больше данных для чека, чем в личном кабинете. Например, код маркировки или меру количества предмета расчета.
Использование счета
Прием платежа по счету
Чтобы принять платеж, вам нужно создать счет и отправить пользователю ссылку на него. Когда на странице счета пользователь перейдет к оплате — ЮKassa автоматически создаст платеж и отобразит платежную форму. На ней пользователь увидит все способы оплаты, подключенные в вашем магазине и доступные для этого платежа. Подробнее об отображении способов оплаты
Счет одноразовый — с ним может быть связан только один успешный платеж. В контексте выставления счетов это значит, что платеж по счету перешел в статус succeeded (при оплате в одну стадию) или в статус waiting_for_capture (при оплате в две стадии). Если такой платеж уже есть, в объекте счета появится объект payment_details с идентификатором платежа. После этого оплатить счет еще раз не получится — нужно создавать новый счет.
Счет считается оплаченным, когда платеж по нему переходит в статус succeeded, т.к. для платежа это финальный статус. Если платеж находится в статусе wating_for_capture, то он может перейти как в статус succeeded, так и в статус canceled. При отмене платежа на этой стадии счет тоже отменится. Подробнее о статусах счета
Срок действия счета
Срок действия счета вы можете регулировать самостоятельно при создании счета. Счет может действовать максимум 30 дней.
Когда указанный срок пройдет, счет перейдет в статус canceled и его оплатить не получится.
Отправка ссылки на счет пользователю
ЮKassa только формирует ссылку на счет, но не отправляет её пользователю. Способ отправки ссылки вы выбираете самостоятельно. Например, вы можете отправить её в мессенджере, по электронной почте, с помощью сервисов для автоматических рассылок или показать на странице своего сайта, если он у вас есть.
Работа в личном кабинете
Со счетами, выставленными по API, можно работать в личном кабинете. Вы найдете их в разделе Счета клиентам.
Так можно посмотреть статус счета и детали: корзину заказа, идентификатор счета и другие данные. Если пользователь уже подтвердил платеж по выставленному счету, то платеж вы тоже увидите в деталях, а также сможете перейти в раздел Платежи за более подробной информацией о нём.
При необходимости в личном кабинете вы можете привязывать счета к гибкому QR и использовать их, например, для приема платежей в офлайне.
Кроме того, если пользователь пока не подтвердил платеж, то в личном кабинете можно отменить счет — тогда оплатить его не получится.
Порядок интеграции
Чтобы начать выставлять счета:
  1. Изучите формат взаимодействия по API.
  2. Если планируете использовать автоплатежи, сообщите об этом вашему менеджеру ЮKassa.
  3. Если планируете принимать платежи в две стадии или автоплатежи, то проверьте, что в вашем магазине подключен как минимум один способ оплаты, который поддерживает нужную опцию. Подробнее о способах оплаты
  4. При необходимости подпишитесь на уведомления о платежах от ЮKassa в личном кабинете
  5. Реализуйте выставление счетов по инструкциям:
  6. Протестируйте интеграцию: выставьте счет на небольшую сумму и проверьте все необходимые вам сценарии.
Готово! Можно выставлять счета реальным пользователям.
Жизненный цикл счета
Счет может находиться в статусе pending, canceled или succeeded. Статус счета зависит от того, что происходит с платежом.
Как связаны статус счета и статус платежа
Статус счета Пояснение к статусу счета Действия пользователя и статус платежа
pending
Статус pending означает, что счет создан и ожидает оплаты от пользователя или списания оплаты от вас (при проведении платежей в две стадии).
The invoice status may change from pending to succeeded or canceled (if something went wrong).
  • Пользователь еще не перешел к оплате, платеж не создан.
  • Пользователь перешел к оплате, но еще не подтвердил платеж. Платеж в статусе pending.
  • Пользователь подтвердил платеж, но что-то пошло не так (например, недостаточно средств на балансе). Платеж в статусе canceled, можно повторить попытку оплаты.
succeeded
Счет в статусе succeeded означает, что пользователь подтвердил платеж по счету и оплата прошла успешно.
Это финальный и неизменяемый статус для платежей в одну стадию. При проведении платежей в две стадии счет может перейти из статуса succeeded в статус canceled.
  • Пользователь подтвердил платеж, и деньги списаны. Платеж в статусе succeeded.
  • Для платежей в две стадии: пользователь подтвердил платеж, но вы еще не списали оплату. Платеж в статусе waiting_for_capture.
  • Для платежей в две стадии: пользователь подтвердил платеж, и вы списали по нему оплату. Платеж был в статусе waiting_for_capture и перешел в статус succeeded.
canceled
Статус canceled означает, что счет отменен. Вы увидите этот статус, если:
  • срок действия счета истек, а успешного платежа по счету не было;
  • вы отменили платеж в две стадии;
  • вы отменили счет в личном кабинете.
Это финальный и неизменяемый статус.
  • Пользователь не переходил к оплате, а срок действия счета истек. Платеж не был создан.
  • Пользователь не успел перейти к оплате, вы отменили счет в личном кабинете. Платеж не был создан.
  • Для платежей в две стадии: пользователь подтвердил платеж, но вы отменили его. Платеж был в статусе waiting_for_capture, но перешел в статус canceled.
  • Пользователь подтвердил платеж, но оплата прошла неуспешно. Платеж в статусе canceled, новой попытки оплаты не было.
Чтобы узнать статус счета, периодически отправляйте запросы на получение информации о счете  или дождитесь уведомления по платежу от ЮKassa.
See also
Выставление счетов в личном кабинете и через Telegram