Формат взаимодействия
Ваша система и сервер ЮKassa по протоколу HTTPS. Версия TLS — 1.2 или выше. Для аутентификации вам необходимо получить клиентский сертификат в удостоверяющем центре ЮMoney (по запросу). Подробнее см. Взаимодействие по SSL
В процессе взаимодействия с ЮKassa вы будете обмениваться данными, помещенными в криптоконтейнер с АСП (цифровой подписью, аналогом собственноручной подписи). Криптоконтейнер не должен содержать цепочки сертификации. Компрессия данных и шифрование не используются. Криптоконтейнер должен быть закодирован в формате PEM (OpenSSL).
 
Формирование запроса
Для выполнения каждой из операций вам необходимо передавать отдельный HTTP-запрос, содержащий криптоконтейнер формата PKCS#7.
Формирование запроса к ЮKassa состоит из нескольких шагов.
 
Шаг 1. Распоряжение на исполнение операции
Распоряжение формируется как документ по стандарту XML 1.0 (Fifth Edition). Документ должен быть сформирован в кодировке UTF‑8 согласно стандарту ISO 10646.
Адрес сервера для вызова операции
https://payouts.yookassa.ru:9094
 
Шаг 2. Формирование криптоконтейнера
Сформированный документ помещается в криптоконтейнер формата PKCS#7 согласно стандарту RFC 5652. Подробные требования к криптоконтейнеру описаны выше.
Сертификат, который вы используете при создании криптоконтейнера, должен соответствовать стандарту X.509 Version 3.
 
Шаг 3. Передача запроса на сервер ЮKassa
Вы формируете POST-запрос по протоколу HTTP/1.1 (см. также HTTP Over TLS и TLS). Криптоконтейнер можно передавать одним из двух способов:
  • В теле POST-запроса, MIME‑тип:
    application/pkcs7-mime
    .
  • В качестве multipart-data вложения. MIME‑тип:
    application/pkcs7-mime
    . POST-запрос должен иметь только один
    'part'
    , криптоконтейнер должен быть вложен как файл. Такой запрос может быть отправлен из стандартной HTML-формы для отправки файла на сервер (подробнее см. в стандарте RFC 7578).
Для авторизации запросов ЮKassa проверяет АСП криптоконтейнера.
Чтобы зачисления случайно не повторялись, каждой операции присваивается уникальный номер (
clientOrderId
).
Пример сформированного запроса
POST /webservice/deposition/api/makeDeposition HTTP/1.1
Content-Type: application/pkcs7-mime
Content-Length: 572

-----BEGIN PKCS7-----
MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAaCA
JIAEDEhlbGxvIFdvcmxkIQAAAAAAADGCAS8wggErAgEBMCowJTEWMBQGA1UECgwN
Qm91bmN5IENhc3RsZTELMAkGA1UEBhMCQVUCAQIwCQYFKw4DAhoFAKBdMBgGCSqG
SIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEwMDgwNjE1MzE0
M1owIwYJKoZIhvcNAQkEMRYEFC73veYIzlQE6X1fBC+V+J8cIyhxMA0GCSqGSIb3
DQEBAQUABIGAEgIfi0XDEZwbdC8i0I5EPUnFe1PUnBMiRs3heYxdK+oXaG6v3axO
Zr+VNG3tnW1W8M2xWtOcM4PdSTwx98WR1mWN8XDb2Wl9HiG6CGbmE7k4TgcDKhcg
iZmLV+7anBv302qTprTbKY9vChaaVwclSdQBkjPvxhlPnpBM0C9YdYQAAAAAAAA=
-----END PKCS7-----
 
Получение ответа
В ответ ЮKassa отправит вам XML-документ с результатом обработки запроса. MIME-тип:
application/pkcs7-mime
. Документ будет помещен в криптоконтейнер формата PKCS#7.
При получении данных вам необходимо проверить АСП ответа, чтобы убедиться, что ответ отправила ЮKassa, а его содержимое не было изменено третьей стороной.
Ответ может содержать дополнительные параметры, которые не описаны в документе. Их следует игнорировать.
 
Что почитать еще
HTTP-коды ответаВзаимодействие по SSLЗачисление переводов