Метод process-payment
Подтверждение платежа, ранее созданного методом request-payment. Указание метода проведения платежа.
 
Запрос
ПараметрТипОписание
request_idstringИдентификатор запроса, полученный из ответа метода request-payment.
money_sourcestring
Запрашиваемый метод проведения платежа:
По умолчанию:
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
 
Ответ
Метод возвращает следующие параметры:
ПараметрТипОписание
statusstring
Код результата выполнения операции. Возможные значения:
  • success
     — успешное выполнение (платеж проведен). Это конечное состояние платежа.
  • refused
     — отказ в проведении платежа. Причина отказа возвращается в поле
    error
    . Это конечное состояние платежа.
  • in_progress
     — авторизация платежа не завершена. Приложению следует повторить запрос с теми же параметрами спустя некоторое время.
  • ext_auth_required
     — для завершения авторизации платежа с использованием банковской карты требуется аутентификация по технологии 3‑D Secure.
  • все прочие значения — состояние платежа неизвестно. Приложению следует повторить запрос с теми же параметрами спустя некоторое время.
errorstringКод ошибки при проведении платежа (пояснение к полю
status
). Присутствует только при ошибках.
payment_idstringИдентификатор проведенного платежа. Присутствует только при успешном выполнении метода. Этот параметр соответствует параметру
operation_id
в методах operation-history и operation-details истории плательщика.
balanceamount
Баланс счета пользователя после проведения платежа. Присутствует только при выполнении следующих условий:
  • метод выполнен успешно;
  • токен авторизации обладает правом
    account-info
    .
invoice_idstringНомер транзакции магазина в ЮMoney. Присутствует при успешном выполнении платежа в магазин.
payerstringНомер счета плательщика. Присутствует при успешном переводе средств на счет другого пользователя ЮMoney.
payeestringНомер счета получателя. Присутствует при успешном переводе средств на счет другого пользователя ЮMoney.
credit_amountamountСумма, поступившая на счет получателя. Присутствует при успешном переводе средств на счет другого пользователя ЮMoney.
account_unblock_uristringАдрес, на который необходимо отправить пользователя для разблокировки счета. Поле присутствует в случае ошибки
account_blocked
.
hold_for_pickup_linkstringСсылка на получение перевода до востребования при отправке его Яндекс.Почтой. Поле присутствует, если значение известно.
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"
}
Если приложение не получило ответ, нельзя однозначно определить состояние платежа. Платеж равновероятно может быть как успешным, так и не успешным. Для разрешения состояния платежа следует повторить вызов process-payment с теми же параметрами.
Если платеж осуществляется с банковской карты, то может быть затребована дополнительная проверка покупателя по технологии 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Права на выполнение операций