Метод process-external-payment

Описание

Проведение платежа. Приложение вызывает метод вплоть до выяснения окончательного статуса платежа (status=success/refused).

Рекомендуемый режим повтора определяется полем ответа next_retry (по умолчанию — 5 секунд).

Параметры запроса

Параметры запроса для:

  • первого платежа или пополнения;
  • повторяющегося запроса после вода данных карты или аутентификации по 3-D Secure.
Параметр Тип Описание
request_id string Идентификатор контекста платежа, полученный из ответа метода request-external-payment.
instance_id string Идентификатор экземпляра приложения.
ext_auth_success_uri string Адрес страницы возврата при успехе аутентификации банковской карты по 3-D Secure.
ext_auth_fail_uri string Адрес страницы возврата при отказе аутентификации банковской карты по 3-D Secure.
request_token boolean Параметр присутствует и имеет значение true - приложение запрашивает токен для повторов платежей. По умолчанию параметр отсутствует (токен для повторов не запрашивается).

Параметры запроса для повторного платежа по токену:

  • без ввода данных карты;
  • с повторяющимся запросом после аутентификации по 3-D Secure.
Параметр Тип Описание
request_id string Идентификатор контекста платежа, полученный из ответа метода request-external-payment.
instance_id string Идентификатор экземпляра приложения.
ext_auth_success_uri string Адрес страницы возврата при успехе аутентификации банковской карты по 3-D Secure.
ext_auth_fail_uri string Адрес страницы возврата при отказе аутентификации банковской карты по 3-D Secure.
money_source_token string Токен для повторов платежей.
csc string, 3 digits Card Security Code, CVV2/CVC2-код банковской карты.

Возвращает

Поля ответа:

Параметр Тип Описание
status string Код результата выполнения операции (см. таблицу).
error string Код ошибки (пояснение к полю status). Присутствует только при ошибках. (см. таблицу).
acs_uri string Адрес страницы аутентификации банковской карты по 3-D Secure на стороне банка-эмитента. Поле обязательно присутствует, если для завершения транзакции нужна аутентификация по 3-D Secure.
acs_params object Параметры аутентификации банковской карты по 3-D Secure в формате коллекции пар «имя»-«значение». Поле обязательно присутствует, если для завершения транзакции нужна аутентификация по 3-D Secure.
money_source object Данные банковской карты для повторов платежей. Поле присутствует, если: указан параметр запроса request_token=true; платеж завершен успешно; сервер разрешил выдать токен для данной операции.
Примечание. Если сервер отказал в выдаче токена, поле в ответе отсутствует.
next_retry long Рекомендуемый отрезок времени (в миллисекундах), спустя который следует повторить запрос. Поле присутствует при status=in_progress.
invoice_id string Номер транзакции в Яндекс.Деньгах. Присутствует при успехе платежа в магазин.

Код результата выполнения операции:

Код Описание
success Обработка платежа завершена успешно.
refused Отказ в проведении платежа. Причина отказа возвращается в поле error. Это конечное состояние платежа.
in_progress Обработка платежа еще не завершена. Приложению следует повторить запрос с теми же параметрами спустя время next_retry.
ext_auth_required Для завершения обработки платежа с банковской карты нужна дополнительная проверка на стороне банка-эмитента (аутентификация по 3-D Secure). Следует открыть WebView и отправить клиента при помощи POST-запроса по адресу acs_uri с параметрами acs_params.

В случае ошибки выполнения операции возвращается ее код:

Код Описание
illegal_param_request_id Неверное значение request_id или отсутствует контекст с заданным request_id
illegal_param_csc Отсутствует или указано недопустимое значение параметра csc.
illegal_param_instance_id Отсутствует или указано недопустимое значение параметра instance_id.
illegal_param_money_source_token Отсутствует или указано недопустимое значение параметра money_source_token, токен отозван или истек его срок действия.
payment_refused В платеже отказано. Возможные причины:
  • магазин отказал в приеме платежа(запрос checkOrder);
  • перевод пользователю Яндекс.Денег невозможен(например, превышен лимит остатка кошелька получателя).
authorization_reject В авторизации платежа отказано. Возможные причины:
  • банк-эмитент отклонил транзакцию по карте;
  • транзакция с текущими параметрами запрещена для данного пользователя.
illegal_param_ext_auth_success_uri Отсутствует или указано недопустимое значение параметра ext_auth_success_uri.
illegal_param_ext_auth_fail_uri Отсутствует или указано недопустимое значение параметра ext_auth_fail_uri.

Данные банковской карты для повторов платежей:

Параметр Тип Описание
type string Тип funding-source: payment-card — банковская карта.
payment_card_type string Тип карты, может отсутствовать, если неизвестен. Возможные значения: Visa, MasterCard, AmericanExpress, JCB.
pan_fragment string Маскированный номер карты, видны последние 4 цифры.
money_source_token string Сформированный токен для повторов платежей.

Примеры

Пример запроса для проведения платежа:

POST /api/process-external-payment HTTP/1.1
Host: money.yandex.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 305

request_id=3931303833373438395f3434343164663138646162366132363630633863616638343
36137386537643935383639383062635f3330363333323938&instance_id=1234567890ABCDEF12
34567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&ext_auth_success_ur=yandexmoney
app%3A%2F%2Fsuccess&ext_auth_fail_uri=yandexmoneyapp%3A%2F%2Ffail

Пример запроса для получения токена:

POST /api/process-external-payment HTTP/1.1
Host: money.yandex.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 324

request_id=3931303833373438395f3434343164663138646162366132363630633863616638343
36137386537643935383639383062635f3330363333323938&instance_id=1234567890ABCDEF12
34567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&ext_auth_success_uri=yandexmoney
app%3A%2F%2Fsuccess&ext_auth_fail_uri=yandexmoneyapp%3A%2F%2Ffail&request_token=
true

Пример запроса платежа с токеном:

POST /api/process-external-payment HTTP/1.1
Host: money.yandex.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 589

request_id=3931303833373438395f3434343164663138646162366132363630633863616638343
36137386537643935383639383062635f3330363333323938&instance_id=1234567890ABCDEF12
34567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&ext_auth_success_uri=yandexmoney
app%3A%2F%2Fsuccess&ext_auth_fail_uri=yandexmoneyapp%3A%2F%2Ffail&money_source_t
oken=B6AE719BAF712404E08EF8A430B0F58CD8F2C592452CA5205F7E52B1FC72BD3D42745714
D60B4E75BD742F22E8120F0861ED99B69EC01C6194CF5D425C89598B959DE0E9EDB13AFD710CF
74ACE08DBFBE2A49F14F9792B32289CE2456EB50EF7DFE6D22E466D417ACD1BF8DE33B5C93BDA
9AAA8C4D693DCD2E9AA2A31A51C185&csc=123

Пример документа ответа при успешном завершении обработки платежа:

{"status": "success", "invoice_id": "3000130505460"}

Пример документа ответа при запросе аутентификации карты 3-D Secure):

{
    "status": "ext_auth_required",
    "acs_uri": "https://acs.alfabank.ru/acs/PAReq",
    "acs_params": {
        "MD": "723613-7431F11492F4F2D0",
        "PaReq": "eJxVUl1T2zAQ/CsZv8f6tCR7LmLSGiidJjAldMpTR7XVxA
N2gmynSX59JeNAebu9O93u7QkuDvXzZG9dW22bWURiHE1sU2zLqlnPo
ofV1VRFFxpWG2dtfm+L3lkNC9u2Zm0nVTmLVvn9r7v5d/uS/UkYt4b8
tjibUiGVxazICMeSSkmtwBmlhYw="
    }
}

Пример документа ответа если обработка платежа еще не завершена:

{"status": "in_progress", "next_retry": "5000"}

Пример документа ответа при отказе в проведении платежа:

{"status": "refused", "error": "payment_refused"}

Пример документа ответа при успешной отдаче токена для повторов платежей:

{
    "status": "success",
    "invoice_id": "3000130505460",
    "money_source": {
        "type": "payment-card",
        "payment_card_type": "VISA",
        "pan_fragment": "**** **** **** 0334",
        "money_source_token": "B6AE719BAF712404E08EF8A430B0F58CD8
F2C592452CA5205F7E52B1FC72BD3D42745714D60B4E75BD742F22E8120F0861E
D99B69EC01C6194CF5D425C89598B959DE0E9EDB13AFD710CF74ACE08DBFBE2A4
9F14F9792B32289CE2456EB50EF7DFE6D22E466D417ACD1BF8DE33B5C93BDA9AA
A8C4D693DCD2E9AA2A31A51C185"
    }
}

Пример документа ответа при отказе в выдаче токена для повторов платежей:

{"status": "success", "invoice_id": "3000130505460"}