Метод process-payment
Подтверждение платежа, ранее созданного методом request-payment. Указание метода проведения платежа.
 
Запрос
ПараметрТипОписание
request_idstringИдентификатор запроса, полученный из ответа метода request-payment.
money_source
string
Запрашиваемый метод проведения платежа:
  • wallet — со счета пользователя
  • идентификатор привязанной к счету карты (значение поля id описания банковской карты)
По умолчанию: wallet
cscstringCard Security Code, CVV2/CVC2-код привязанной банковской карты пользователя. Параметр следует указывать только при платеже с привязанной банковской карты.
ext_auth_success_uristringАдрес страницы возврата при успехе аутентификации платежа банковской картой по 3‑D Secure. Указывается, если приложение поддерживает аутентификацию по 3‑D Secure. Обязательный параметр для такой аутентификации.
ext_auth_fail_uristringАдрес страницы возврата при отказе в аутентификации платежа банковской картой по 3‑D Secure. Указывается, если приложение поддерживает аутентификацию по 3‑D Secure. Обязательный параметр для такой аутентификации.
Пример запроса, оплата со счета пользователя
POST /api/process-payment HTTP/1.1
Host: yoomoney.ru
Authorization: Bearer 410012345678901.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123
Content-Type: application/x-www-form-urlencoded
Content-Length: 18

request_id=1234567
Пример запроса, оплата с привязанной банковской карты пользователя
POST /api/process-payment HTTP/1.1
Host: yoomoney.ru
Authorization: Bearer 410012345678901.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123
Content-Type: application/x-www-form-urlencoded
Content-Length: 44

request_id=1234567&money_source=card&csc=123
Ответ
Метод возвращает следующие параметры:
ПараметрТипОписание
status
string
Код результата выполнения операции. Возможные значения:
  • success — успешное выполнение (платеж проведен). Это конечное состояние платежа.
  • refused — отказ в проведении платежа. Причина отказа возвращается в поле error. Это конечное состояние платежа.
  • in_progress — авторизация платежа не завершена. Приложению следует повторить запрос с теми же параметрами спустя некоторое время.
  • ext_auth_required — для завершения авторизации платежа с использованием банковской карты требуется аутентификация по технологии 3‑D Secure.
  • все прочие значения — состояние платежа неизвестно. Приложению следует повторить запрос с теми же параметрами спустя некоторое время.
errorstringКод ошибки при проведении платежа (пояснение к полю status). Присутствует только при ошибках.
payment_idstringИдентификатор проведенного платежа. Присутствует только при успешном выполнении метода. Этот параметр соответствует параметру operation_id в методах operation-history и operation-details истории плательщика.
balance
amount
Баланс счета пользователя после проведения платежа. Присутствует только при выполнении следующих условий:
  • метод выполнен успешно;
  • токен авторизации обладает правом account-info.
invoice_idstringНомер транзакции магазина в ЮMoney. Присутствует при успешном выполнении платежа в магазин.
payerstringНомер счета плательщика. Присутствует при успешном переводе средств на счет другого пользователя ЮMoney.
payeestringНомер счета получателя. Присутствует при успешном переводе средств на счет другого пользователя ЮMoney.
credit_amountamountСумма, поступившая на счет получателя. Присутствует при успешном переводе средств на счет другого пользователя ЮMoney.
account_unblock_uristringАдрес, на который необходимо отправить пользователя для разблокировки счета. Поле присутствует в случае ошибки account_blocked.
acs_uristringАдрес страницы аутентификации банковской карты по 3‑D Secure на стороне банка-эмитента. Поле присутствует, если для завершения транзакции с использованием банковской карты требуется аутентификация по 3‑D Secure.
acs_paramsobjectПараметры аутентификации карты по 3‑D Secure в формате коллекции «имя-значение». Поле присутствует, если для завершения транзакции с использованием банковской карты требуется аутентификация по 3‑D Secure.
next_retrylongРекомендуемое время, спустя которое следует повторить запрос, в миллисекундах. Поле присутствует при status=in_progress.
digital_goodsobjectДанные о цифровом товаре (пин-коды и бонусы игр, iTunes, Xbox etc). Поле присутствует при успешном платеже в магазины цифровых товаров.
Пример ответа при успешной авторизации платежа
JSON
{
  "status": "success",
  "payment_id": "2ABCDE123456789",
  "balance": 1000.00
}
Коды ошибок
В случае ошибки выполнения операции возвращается ее код:
КодОписание
contract_not_foundОтсутствует созданный (но не подтвержденный) платеж с заданным request_id.
not_enough_fundsНедостаточно средств на счете плательщика. Необходимо пополнить счет и провести новый платеж.
limit_exceeded
Превышен один из лимитов на операции:
  • на сумму операции для выданного токена авторизации;
  • сумму операции за период времени для выданного токена авторизации;
  • ограничения ЮMoney для различных видов операций.
money_source_not_availableЗапрошенный метод платежа (money_source) недоступен для данного платежа.
illegal_param_cscОтсутствует или указано недопустимое значение параметра csc.
payment_refused
В платеже отказано. Возможные причины:
  • магазин отказал в приеме платежа (запрос checkOrder);
  • перевод пользователю ЮMoney невозможен (например, превышен лимит остатка кошелька получателя).
authorization_reject
В авторизации платежа отказано. Возможные причины:
  • истек срок действия банковской карты;
  • банк-эмитент отклонил транзакцию по карте;
  • превышен лимит для этого пользователя;
  • транзакция с текущими параметрами запрещена для данного пользователя;
  • пользователь не принял Соглашение об использовании сервиса ЮMoney.
account_blockedСчет пользователя заблокирован. Для разблокировки счета необходимо отправить пользователя по адресу, указанному в поле account_unblock_uri.
illegal_param_ext_auth_success_uriОтсутствует или указано недопустимое значение параметра ext_auth_success_uri.
illegal_param_ext_auth_fail_uriОтсутствует или указано недопустимое значение параметра ext_auth_fail_uri.
все прочие значенияВ авторизации платежа отказано. Приложению следует провести новый платеж спустя некоторое время.
Пример ответа при отказе
JSON
{
  "status": "refused",
  "error": "not_enough_funds"
}
Платеж привязанной банковской картой
Необходимые условия выполнения платежа с привязанной банковской карты:
  • к счету пользователя в ЮMoney привязана банковская карта;
  • пользователь разрешил приложению использование банковской карты для платежей;
  • платеж осуществляется в магазин;
  • магазин может принимать платежи с банковских карт.
Время платежа с привязанной банковской карты (money_source=card) определяется временем обработки транзакции банком-эмитентом карты. Кроме того, ЮMoney могут связываться с сервером магазина, и время его ответа также влияет на время авторизации платежа.
Если авторизация платежа продолжается более 1 минуты, метод process-payment возвращает код результата операции in_progress. Приложению следует повторять вызов метода process-payment с теми же параметрами раз в 1 минуту до получения окончательного ответа (status должен иметь значение success или refused).
Пример ответа в случае незавершенной авторизации платежа
JSON
{
  "status": "in_progress"
}
Если платеж осуществляется с банковской карты, то может быть затребована дополнительная проверка покупателя по технологии 3‑D Secure.
Сценарий платежа с аутентификацией по 3‑D Secure
Шаг 1. Вызывается метод request-payment с параметрами платежа.
Шаг 2. Вызывается метод process-payment с указанием money-source=card, csc кода, ext_auth_success_uri, ext_auth_fail_uri.
Пример запроса при оплате с банковской карты приложением, поддерживающим 3‑D Secure
POST /api/process-payment HTTP/1.1
Host: yoomoney.ru
Authorization: Bearer 410012345678901.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123
Content-Type: application/x-www-form-urlencoded
Content-Length: 164

request_id=1234567&money-source=card&csc=123&ext_auth_success_uri=http%3A%2F%2Fclient.example.com%2Fsuccess&ext_auth_fail_uri=http%3A%2F%2Fclient.example.com%2Ffail
Шаг 3. Метод process-payment возвращает status=ext_auth_required, acs_uri, acs_params.
Пример ответа при требовании аутентификации по 3‑D Secure
JSON
{
  "status": "ext_auth_required",
  "acs_uri": "https://acs.alfabank.ru/acs/PAReq",
  "acs_params": {
    "MD": "723613-7431F11492F4F2D0",
    "PaReq": "eJxVUl1T2zAQ/CsZv8f6tCR7LmLSGiidJjAldMpTR7XVxAN2gmynSX59JeNAebu9O93u7QkuDvXzZG9dW22bWURiHE1sU2zLqlnPoofV1VRFFxpWG2dtfm+L3lkNC9u2Zm0nVTmLVvn9r7v5d/uS/UkYt4b8tjibUiGVxazICMeSSkmtwBmlhYw="
  }
}
Шаг 4. Приложению следует открыть браузер, выполнить POST-запрос по адресу acs_uri с параметрами acs_params как application/x-www-form-urlencoded (аналог HTML form submit).
Шаг 5. Клиент проходит аутентификацию по сценарию банка-эмитента и перенаправляется по HTTP 302 Redirect на один из адресов, в зависимости от результата: ext_auth_success_uri или ext_auth_fail_uri.
Шаг 6. Приложению следует повторно вызвать метод process-payment, указав только один параметр — request_id.
Пример повторного запроса при оплате с банковской карты приложением после прохождения аутентификации по 3‑D Secure
POST /api/process-payment HTTP/1.1
Host: yoomoney.ru
Authorization: Bearer 410012345678901.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123
Content-Type: application/x-www-form-urlencoded
Content-Length: 18

request_id=1234567
Шаг 7. Метод process-payment возвращает status=success или refused.
Данные о цифровых товарах
При успешном платеже в магазин цифровых товаров в ответе присутствует поле digital_goods, которое содержит список товаров и список бонусов.
Данные о цифровом товаре или бонусе:
ПараметрТипОписание
merchantArticleIdstringИдентификатор товара в системе продавца. Присутствует только для товаров.
serialstringСерийный номер товара (открытая часть пин-кода, кода активации или логин).
secretstringСекрет цифрового товара (закрытая часть пин-кода, кода активации, пароль или ссылка на скачивание).
Пример цифровых товаров
JSON
"digital_goods": {
  "article": [
    {
      "merchantArticleId": "1234567",
      "serial": "EAV-0087182017",
      "secret": "87actmdbsv"
    },
    {
      "merchantArticleId": "1234567",
      "serial": "2000012",
      "secret": "gjhkgjsuurtrghxchfhjkrwetuertrehtthh"
    },
    {
      "merchantArticleId": "1234567",
      "serial": "2000013",
      "secret": "77788sfs7fd89g89dfg77778dfgdjkert789"
    }
  ],
  "bonus": [
    {
      "serial": "XXXX-XX-XX",
      "secret": "0000-1111-2222-3333-4444"
    }
  ]
}
Что почитать еще
Метод request-payment Права на выполнение операций