B2BB2CH2H

Формат исходного сообщения XML

Песочница
POST https://sandbox.alfabank.ru/api/signature-encryption-tests/xml
Описание

С помощью данного метода можно протестировать подпись и шифрование сообщения в формате XML с использованием RSA-сертификата.

Процесс формирования и подписания сообщения с использованием RSA-сертификата описан здесь, а процесс формирования и шифрования сообщения описан здесь. Подписание запроса и дешифрование ответа происходит с использованием закрытого ключа сертификата. Для тестирования необходимо использовать тестовый закрытый ключ (пароль уточняйте у персонального менеджера).

Процесс формирования и подписания сообщения с использованием ГОСТ-сертификата описан здесь, а процесс формирования и шифрования сообщения описан здесь.

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

HEADERS
Атрибут
Описание
Authorization
stringrequired

Bearer {access_token}

Accept
stringrequired

application/xml

Content-Type
stringrequired

application/xml

X-Request-ChannelSecurity
stringoptional

Тип защиты канала, которая будет применена при обработка запроса. Возможные значения: NO - без защиты; SIGNATURE - проверка подписи запроса; ENCRYPTION - дешифрование и проверка подписи запроса

X-Response-ChannelSecurity
stringoptional

Тип защиты канала, которая будет применена при генерации ответа на запрос. Возможные значения: NO - без защиты, SIGNATURE - подписание ответа, ENCRYPTION - подписание и шифрование ответа

BODY
Атрибут
Описание
stringrequired

Тело подписи в виде base64-строки

Пример запроса
1curl -X POST https://sandbox.alfabank.ru/api/signature-encryption-tests/xml \
2  -H 'Authorization: Bearer {access-token}' \
3  -H 'Accept: application/xml' \
4  -H 'Content-Type: application/xml' \
5  -H 'X-Request-ChannelSecurity: SIGNATURE' \
6  -H 'X-Response-ChannelSecurity: SIGNATURE' \
7  -d 'eyJraWQiOiI2MTAwMDM4YWFhYTAxZTRkN2YzOTM5OGQ4NDAwMDEwMDAzOGFhYSIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJjb3VudCI6MTAwLCJzb21lRmllbGQiOiJzb21lVmFsdWUiLCJpZCI6IjNiNzk1YTBlLTFjOTctNDIxMi05YTI4LWYyODJkODAxNWI1YSIsImNyZWF0aW9uRGF0ZSI6IjIwMjItMDUtMThUMTA6Mjc6MDkuNzEyWiIsInN0YXR1cyI6ImFjdGl2ZSJ9.WYQKfllUHfs7IN0DdujjKlqpnThfJZgY_A6CZN-ghFohTYbDiRAJBAk4IxIkRfj2Hxcz4rR5DEKX8remdXEOHGrBpNf4okOob0bfIutNRhaeaZAIMFKjungALPRBmMhAiU0t5-Vp3ImUwhidSnSSP08gCHrTD1by5zYrzzYBB6tyikf8lNwYJQKRxscZcXqwOU9gAWBuV4rteClIbDCeTwkx5ci6WKWAq8bv7RDuwU_1KPjh6upJmwJ1g1epmvPdaFOQq5uf9NhAxomeeptmJoBOm3c8ZSYASYMno8KNWxr94B2xAhD7NCakfFCiQZjSH9b6MjM2aJEBhDyKYo2IGw'

Параметры ответа

Пример ответа 201 (Created)
1<?xml version="1.0" encoding="UTF-8"?>
2<Response>
3  <XmlElementName2>XmlElementValue2</XmlElementName2>
4    <ds:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
5             <ds:SignatureValue>H6jGW+bKLwvQ9xxbhZ6jNYRHtupT4aJ4jjlLh4W8svK0w5G7ZXf4OxqRR0t2l6aYOpNBdN2Q0+2T&amp;#13;
61LXyadtnz7XJ7QYXNXrnWNcq7mOxM5Lj5bBQa2JPZSiMkp1lsnAV/LFDAJ+Uhruj3mFQxjiFpJLR&amp;#13;
7W/vRJzmRv925xXWopb94PFvP9mjtAwPXtBGEL5rqJICabzVo8+1BfPwFF5+8sqYzT74mmJIQmeFm&amp;#13;
8FiYVMNive5lRxlt7nXEgS4iENF1dXq5+prCPloms8hIX6I4HQo3Jn+G37Os57nv8g61gk4jnu2OK&amp;#13;
9bOsZasIzXSLVG2GrCbDQ+HFjWs3Fgg4JOkULfw==
10</ds:SignatureValue>
11            <ds:SignedInfo>
12                    <ds:Reference URI="">
13                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384">
14                            </ds:DigestMethod>
15                            <ds:DigestValue>xgVcc1UZhuWRp4/8K0OAVLuQUhySUtJg7mYo78Od+WWidnIZr2XZUvPqwxOpFwRY</ds:DigestValue>
16                            <ds:Transforms>
17                                    <ds:Transform/>
18                                    <ds:Transform/>
19                            </ds:Transforms>
20                    </ds:Reference>
21                    <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256">
22                    </ds:SignatureMethod>
23                    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
24                    </ds:CanonicalizationMethod>
25            </ds:SignedInfo>
26            <ds:KeyInfo>
27                    <ds:X509Data>
28                            <ds:X509Certificate>MIIGATCCBLWgAwIBAgITYQADiqqgHk1/OTmNhAABAAOKqjBBBgkqhkiG9w0BAQowNKAPMA0GCWCG&amp;#13;
29SAFlAwQCAwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUAwWzELMAkGA1UEBhMC&amp;#13;
30UlUxEjAQBgNVBAoTCUFsZmEtQmFuazELMAkGA1UECxMCSVQxKzApBgNVBAMTIkFsZmEtQmFuayBJ&amp;#13;
31c3N1aW5nIFN1Ym9yZGluYXRlIENBIDEwHhcNMjMwNzI4MTUxMTE0WhcNMjUwNjE5MTE0ODA2WjCB&amp;#13;
32pzEXMBUGA1UEKgwO0JXRgNC80L7Qu9Cw0LkxGzAZBgNVBAQMEtCa0YPQtNGA0Y/QstGG0LXQsjEL&amp;#13;
33MAkGA1UEBhMCUlUxOzA5BgNVBAMMMtCa0YPQtNGA0Y/QstGG0LXQsiDQldGA0LzQvtC70LDQuSDQ&amp;#13;
34mNCz0L7RgNC10LLQuNGHMSUwIwYJKoZIhvcNAQkBFhZVc2VyNTA0QHBvY2h0b2Noa2EuY29tMIIB&amp;#13;
35IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZM3Ztf+Ro4e64R8yI4qDV/zLdJjUCx5WNBx&amp;#13;
366gcp1pJ4uhQixw+ASy4Oxu0Xp7OxmpXtvDJFi4kr6QymtzMNYqJA3GZk85p+Iobkwo5zHKyBf0tX&amp;#13;
375HwmFWjJx9CqZKp8iZAFw9nqz1uqronxyzTgULPL6eE9igVSzaVf5msV8sXXfl87guVHF+Ph18hs&amp;#13;
38dng1WiCJ7Mi14ETdI9O0R5eJiPZztLIHRnXuBtB1Oa1YiiWtvkZNnpLKONwxljdTZlH7h7KfaXUw&amp;#13;
39W3kX8r0p7jvO7gNhMXvOSK1JPXWevmBHrjONVlG2atWoxT2IHs2ZDz+BLxgSwLc9NIQK+qKhIMfA&amp;#13;
401wIDAQABo4ICBzCCAgMwJQYDVR0RBB4wHIILZXhhbXBsZS5jb22CDSouZXhhbXBsZS5jb20wHQYD&amp;#13;
41VR0OBBYEFGbczU3B6IZhHwKsC8ODg8r4xi3nMB8GA1UdIwQYMBaAFMkXMx6bqZSglhhLbnFMgdvp&amp;#13;
42c/5lMIG7BgNVHR8EgbMwgbAwga2ggaqggaeGOWh0dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9k&amp;#13;
43aXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNybIYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9p&amp;#13;
44bnQvQWxmYS1CYW5rX1NDQTEuY3JshjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBv&amp;#13;
45aW50L0FsZmEtQmFua19TQ0ExLmNybDCB2wYIKwYBBQUHAQEEgc4wgcswRQYIKwYBBQUHMAKGOWh0&amp;#13;
46dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNydDA8&amp;#13;
47BggrBgEFBQcwAoYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9pbnQvQWxmYS1CYW5rX1NDQTEu&amp;#13;
48Y3J0MEQGCCsGAQUFBzAChjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0Fs&amp;#13;
49ZmEtQmFua19TQ0ExLmNydDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAwUAoRwwGgYJKoZI&amp;#13;
50hvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUADggEBAHTjDmxldqWkRgpT5gXKuIzyqIHjlDZMMfah&amp;#13;
51cWBxqWV9XC46bcPx8gvlpzb8N+oK+X6AqDt3+vneAiGQn8iNs9ajDKtes9ulZzMUJBwzwv26DsiI&amp;#13;
523s4/0phypAcqQVHJQxvU+rdrh5FgqJcNZsuOtOaJhiO/i/3J7hoL/oxVwSk+lX4m+X5u76/Vdqk9&amp;#13;
53ydKXNNnzMi12F4FvD+igTrezzLjPHQRx5vLY0cWwLEdBxLJmBwd1u7EBT3j+v9Pyh0pTzXsJC0BY&amp;#13;
541BIt6VOh6QGKGTKT3cBB6zbIOrY7UTOkYdCqtyB9vhayAyti3aO37PANUQ7dUwUEZyf64/D4/HRl&amp;#13;
55hqI=
56</ds:X509Certificate>
57                    </ds:X509Data>
58            </ds:KeyInfo>
59    </ds:Signature>
60  <XmlElementName1>XmlElementValue1</XmlElementName1>
61</Response>
stringoptional

Корневой элемент XML Signature

stringoptional

Элемент содержит информацию об алгоритме канонизации, алгоритме подписи, дайджесте

ds:CanonicalizationMethod
stringoptional

Элемент содержит информацию об алгоритме канонизации. Включает обязательный атрибут Algorithm, который должен содержать ссылку на алгоритм канонизации

ds:SignatureMethod
stringoptional

Элемент содержит информацию об алгоритме подписи. Включает обязательный атрибут Algorithm, который должен содержать ссылку на алгоритм подписи

ds:DigestMethod
stringoptional

Элемент содержит информацию об алгоритме дайджеста. Включает обязательный атрибут Algorithm, который должен содержать ссылку на алгоритм дайджеста

ds:SignatureValue
stringoptional

Элемент содержит значение тела подписи в кодировке base64

stringoptional

Элемент включает информацию о ключах и сертификатах для проверки подписи

stringoptional

Элемент включает информацию о сертификатах

ds:X509Certificate
stringoptional

Элемент содержит сертификат, которым подписано тело запроса в кодировке base64

Пример ответа 201 (Created)
1<?xml version="1.0" encoding="UTF-8"?>
2<Response>
3  <XmlElementName2>XmlElementValue2</XmlElementName2>
4    <ds:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
5             <ds:SignatureValue>H6jGW+bKLwvQ9xxbhZ6jNYRHtupT4aJ4jjlLh4W8svK0w5G7ZXf4OxqRR0t2l6aYOpNBdN2Q0+2T&amp;#13;
61LXyadtnz7XJ7QYXNXrnWNcq7mOxM5Lj5bBQa2JPZSiMkp1lsnAV/LFDAJ+Uhruj3mFQxjiFpJLR&amp;#13;
7W/vRJzmRv925xXWopb94PFvP9mjtAwPXtBGEL5rqJICabzVo8+1BfPwFF5+8sqYzT74mmJIQmeFm&amp;#13;
8FiYVMNive5lRxlt7nXEgS4iENF1dXq5+prCPloms8hIX6I4HQo3Jn+G37Os57nv8g61gk4jnu2OK&amp;#13;
9bOsZasIzXSLVG2GrCbDQ+HFjWs3Fgg4JOkULfw==
10</ds:SignatureValue>
11            <ds:SignedInfo>
12                    <ds:Reference URI="">
13                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384">
14                            </ds:DigestMethod>
15                            <ds:DigestValue>xgVcc1UZhuWRp4/8K0OAVLuQUhySUtJg7mYo78Od+WWidnIZr2XZUvPqwxOpFwRY</ds:DigestValue>
16                            <ds:Transforms>
17                                    <ds:Transform/>
18                                    <ds:Transform/>
19                            </ds:Transforms>
20                    </ds:Reference>
21                    <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256">
22                    </ds:SignatureMethod>
23                    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
24                    </ds:CanonicalizationMethod>
25            </ds:SignedInfo>
26            <ds:KeyInfo>
27                    <ds:X509Data>
28                            <ds:X509Certificate>MIIGATCCBLWgAwIBAgITYQADiqqgHk1/OTmNhAABAAOKqjBBBgkqhkiG9w0BAQowNKAPMA0GCWCG&amp;#13;
29SAFlAwQCAwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUAwWzELMAkGA1UEBhMC&amp;#13;
30UlUxEjAQBgNVBAoTCUFsZmEtQmFuazELMAkGA1UECxMCSVQxKzApBgNVBAMTIkFsZmEtQmFuayBJ&amp;#13;
31c3N1aW5nIFN1Ym9yZGluYXRlIENBIDEwHhcNMjMwNzI4MTUxMTE0WhcNMjUwNjE5MTE0ODA2WjCB&amp;#13;
32pzEXMBUGA1UEKgwO0JXRgNC80L7Qu9Cw0LkxGzAZBgNVBAQMEtCa0YPQtNGA0Y/QstGG0LXQsjEL&amp;#13;
33MAkGA1UEBhMCUlUxOzA5BgNVBAMMMtCa0YPQtNGA0Y/QstGG0LXQsiDQldGA0LzQvtC70LDQuSDQ&amp;#13;
34mNCz0L7RgNC10LLQuNGHMSUwIwYJKoZIhvcNAQkBFhZVc2VyNTA0QHBvY2h0b2Noa2EuY29tMIIB&amp;#13;
35IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZM3Ztf+Ro4e64R8yI4qDV/zLdJjUCx5WNBx&amp;#13;
366gcp1pJ4uhQixw+ASy4Oxu0Xp7OxmpXtvDJFi4kr6QymtzMNYqJA3GZk85p+Iobkwo5zHKyBf0tX&amp;#13;
375HwmFWjJx9CqZKp8iZAFw9nqz1uqronxyzTgULPL6eE9igVSzaVf5msV8sXXfl87guVHF+Ph18hs&amp;#13;
38dng1WiCJ7Mi14ETdI9O0R5eJiPZztLIHRnXuBtB1Oa1YiiWtvkZNnpLKONwxljdTZlH7h7KfaXUw&amp;#13;
39W3kX8r0p7jvO7gNhMXvOSK1JPXWevmBHrjONVlG2atWoxT2IHs2ZDz+BLxgSwLc9NIQK+qKhIMfA&amp;#13;
401wIDAQABo4ICBzCCAgMwJQYDVR0RBB4wHIILZXhhbXBsZS5jb22CDSouZXhhbXBsZS5jb20wHQYD&amp;#13;
41VR0OBBYEFGbczU3B6IZhHwKsC8ODg8r4xi3nMB8GA1UdIwQYMBaAFMkXMx6bqZSglhhLbnFMgdvp&amp;#13;
42c/5lMIG7BgNVHR8EgbMwgbAwga2ggaqggaeGOWh0dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9k&amp;#13;
43aXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNybIYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9p&amp;#13;
44bnQvQWxmYS1CYW5rX1NDQTEuY3JshjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBv&amp;#13;
45aW50L0FsZmEtQmFua19TQ0ExLmNybDCB2wYIKwYBBQUHAQEEgc4wgcswRQYIKwYBBQUHMAKGOWh0&amp;#13;
46dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNydDA8&amp;#13;
47BggrBgEFBQcwAoYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9pbnQvQWxmYS1CYW5rX1NDQTEu&amp;#13;
48Y3J0MEQGCCsGAQUFBzAChjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0Fs&amp;#13;
49ZmEtQmFua19TQ0ExLmNydDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAwUAoRwwGgYJKoZI&amp;#13;
50hvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUADggEBAHTjDmxldqWkRgpT5gXKuIzyqIHjlDZMMfah&amp;#13;
51cWBxqWV9XC46bcPx8gvlpzb8N+oK+X6AqDt3+vneAiGQn8iNs9ajDKtes9ulZzMUJBwzwv26DsiI&amp;#13;
523s4/0phypAcqQVHJQxvU+rdrh5FgqJcNZsuOtOaJhiO/i/3J7hoL/oxVwSk+lX4m+X5u76/Vdqk9&amp;#13;
53ydKXNNnzMi12F4FvD+igTrezzLjPHQRx5vLY0cWwLEdBxLJmBwd1u7EBT3j+v9Pyh0pTzXsJC0BY&amp;#13;
541BIt6VOh6QGKGTKT3cBB6zbIOrY7UTOkYdCqtyB9vhayAyti3aO37PANUQ7dUwUEZyf64/D4/HRl&amp;#13;
55hqI=
56</ds:X509Certificate>
57                    </ds:X509Data>
58            </ds:KeyInfo>
59    </ds:Signature>
60  <XmlElementName1>XmlElementValue1</XmlElementName1>
61</Response>
Error
stringrequired

Код ошибки. Принимает возможные значения: invalid_request - неверные входные параметры запроса

ErrorDescription
stringoptional

Описание ошибки

Пример ошибки 400 (Bad Request)
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3  <Error>invalid_request</Error>
4  <ErrorDescription>Authorization header is not present in request headers</ErrorDescription>
5</ErrorResponse>
Error
stringrequired

Код ошибки. Принимает возможные значения: invalid_token - предоставленный токен просрочен, отозван, имеет неправильный формат или недействителен по другим причинам. При истечении срока жизни токена необходимо обновить его с помощью refresh_token. При отзыве токена необходимо заново пройти авторизацию

ErrorDescription
stringoptional

Описание ошибки

Пример ошибки 401 (Unauthorized)
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3  <Error>invalid_token</Error>
4    <ErrorDescription>The access token provided is expired, revoked, malformed, or invalid for other reasons</ErrorDescription>
5</ErrorResponse>
Error
stringrequired

Код ошибки. Принимает возможные значения: unknown_endpoint - эндпоинт не найден или неактивен

ErrorDescription
stringoptional

Описание ошибки

Пример ошибки 404 (Not Found)
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3  <Error>unknown_endpoint</Error>
4  <ErrorDescription>Endpoint is not found or not active</ErrorDescription>
5</ErrorResponse>
Error
stringrequired

Код ошибки. Принимает возможные значения: internal_error - внутренняя ошибка сервиса при выполнении обработки запроса

ErrorDescription
stringoptional

Описание ошибки

Пример ошибки 500 (Internal Server Error)
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3  <Error>internal_error</Error>
4  <ErrorDescription>Internal server error</ErrorDescription>
5</ErrorResponse>

Значения параметров ошибок могут изменяться. Рекомендуем предусмотреть стандартную обработку ошибок, не описанных в текущей версии документации.