Создание поручения на покупку/продажу валюты
Запрос на создание поручения на покупку/продажу валюты
Для доступа к этому методу в параметре scope ссылки авторизации пользователя должен быть указан сервис CONVERSION_OPERATION_CURRENCY.
Дайджест - это текстовый документ, содержащий перечень и значения полей запроса, к которому он относится, и предназначенный для подписания ЭП. Сохраняйте порядок и количество полей дайджеста, как показано в примере ниже, иначе подписать его не получится.
Дайджест формируется по коду атрибута в том же порядке, как указано в таблице. Если какое-то поле не заполнено (null), то в дайджест не попадает
Формат дайджеста запроса на создание поручения на покупку/продажу валюты:
| Наименование поля | Описание поля | Пример |
|---|---|---|
| chargeData.account | Счет списания комиссии (в рублях). Необязательный атрибут. Формируется, если способ расчета - по курсу ЦБ РФ со взиманием комиссии | 40702810657240000001 |
| chargeData.isoCode | ISO-код валюты списания комиссии (код российского рубля). Необязательный атрибут. Формируется, если способ расчета - по курсу ЦБ РФ со взиманием комиссии | RUB |
| creditData.account | Счет зачисления. Обязательный атрибут. | 40702840657240000001 |
| creditData.amount | Сумма зачисления. Необязательный атрибут. Формируется, если был передан при создании поручения | null |
| creditData.bic | БИК банка зачисления. Необязательный атрибут. Формируется, если счет зачисления открыт в другом банке | 044525225 |
| creditData.corrAccount | Корреспондентский счет банка зачисления. Необязательный атрибут. Формируется, если счет зачисления открыт в другом банке | 30101810400000000225 |
| creditData.isExternalAccount | Признак внешнего счета зачисления (false – счет зачисления открыт в Сбербанке, true – счет зачисления открыт в другом банке) | true |
| creditData.isoCode | ISO-код валюты зачисления. Обязательный атрибут. | USD |
| debitData.account | Счет списания. Обязательный атрибут. | 40702810657240000001 |
| debitData.amount | Сумма списания. Необязательный атрибут. Формируется, если была передана при создании поручения | 1000 |
| debitData.isoCode | ISO-код валюта списания. Обязательный атрибут. | RUB |
| generalData.date | Дата документа ( в формате YYYY-MM-DD). Обязательный атрибут. | 2026-03-15 |
| generalData.externalId | Идентификатор документа в системе партнера (UUID). Обязательный атрибут. | 25c34765-5792-43ed-9dec-2c0bb5ac5f48 |
| generalData.isCharged | Способ расчета. Обязательный атрибут: false – расчет по курсу банка БЕЗ комиссии, true – расчет по курсу ЦБ РФ со взиманием комиссии | true |
| generalData.number | Номер документа. Обязательный атрибут. | 956 |
| orgData.inn | ИНН клиента. Обязательный атрибут. | 2569873456 |
| orgData.name | Наименование клиента. Обязательный атрибут. | ООО "Рога и копыта" |
Примеры: Дайджест подписи для поручения на продажу валюты с внешним счетом зачисления и способом расчета по курсу ЦБ РФ со взиманием комиссии. На вход передана сумма списания.
chargeData.account=40702810657240000000
chargeData.isoCode=RUB
creditData.account=40702810657240000000
creditData.bic=044525593
creditData.corrAccount=30101810400000000000
creditData.isExternalAccount=true
creditData.isoCode=RUB
debitData.account=40702840657240000000
debitData.amount=1000
debitData.isoCode=USD
generalData.date=2026-03-03
generalData.externalId=25c34765-5792-43ed-9dec-2c0bb5ac5f48
generalData.isCharged=true
generalData.number=956
orgData.inn=2569873456
orgData.name=ООО "Рога и копыта"
Дайджест подписи для поручения на продажу валюты с внешним счетом зачисления. На вход передана сумма зачисления.
creditData.account=40702810657240000000
creditData.amount=50
creditData.bic=044525593
creditData.corrAccount=30101810400000000000
creditData.isExternalAccount=true
creditData.isoCode=RUB
debitData.account=40702840657240000000
debitData.isoCode=USD
generalData.date=2026-03-03
generalData.externalId=25c34765-5792-43ed-9dec-2c0bb5ac5f48
generalData.isCharged=false
generalData.number=956
orgData.inn=2569873456
orgData.name=ООО "Рога и копыта"
Дайджест подписи для поручения на покупку валюты на счет, открытый в ПАО Сбербанк. На вход передана сумма зачисления.
creditData.account=40702840657240000000
creditData.amount=50
creditData.isExternalAccount=false
creditData.isoCode=USD
debitData.account=40702810657240000000
debitData.isoCode=RUB
generalData.date=2026-03-03
generalData.externalId=25c34765-5792-43ed-9dec-2c0bb5ac5f48
generalData.isCharged=false
generalData.number=956
orgData.inn=2569873456
orgData.name=ООО "Рога и копыта"
При тестировании создания поручения на покупку/продажу валюты в Песочнице соблюдайте правила:
- Генерируйте уникальный
externalIdдля каждого документа. - Не нужно устанавливать промышленные сертификаты электронной подписи (ЭП) — Песочница использует тестовые идентификаторы ЭП (certificateUuid).
- Все остальные поля запроса заполняйте произвольными данными (реквизиты, суммы, данные организации) в соответствии с требованиями в документации.
1. Позитивный сценарий:
- в массиве digestSignatures заполнить сертификат подписи (для каждой подписи, если их две) одним из значений:
- "certificateUuid": "bb014b5d-8159-40be-97c1-eafeed4a8c3d" (Единственная подпись)
- "certificateUuid": "d5d4f811-f4d4-4205-a70f-58f772eeab72" (Первая подпись)
- "certificateUuid": "4f29c8ef-b55d-43c7-a321-f2b1303a29cd" (Вторая подпись)
- все остальные поля запроса заполняйте произвольными данными (реквизиты, суммы) в соответствии с требованиями в документации.
Результат:
- HTTP 201 CREATED
- Тело ответа: модель данных созданного документа
2 Негативные сценарии:
- при использовании любых других значений certificateUuid вернется ошибка:
- cause = "BUSINESS_EXCEPTION"
- message = "Действующие полномочия подписи не найдены."
- internalErrorCode = "188.1-2021"
- при некорректном заполнении полей запроса, нарушающее требования в документации, вернется ошибка:
- HTTP 422 Unprocessable Entity
- cause = "VALIDATION_FAULT"
- message = "Ошибка при разборе параметров запроса."
- internalErrorCode = "188.1-1001"
- если в массиве digestSignatures передано больше двух подписей, вернется ошибка:
- HTTP 400 Bad Request
- cause = "VALIDATION_FAULT"
- message = "Количество подписей больше 2 штук не может быть обработано."
- internalErrorCode = "188.1-1002"
- Проверка обязательности атрибутов.
- если REQUEST.generalData.isCharged = true, то блок REQUEST.chargeData - обязателен И REQUEST.chargeData.isoCode = RUB
- если REQUEST.creditData.isExternalAccount = true, то REQUEST.creditData.corrAccount - обязателен
- иначе вернуть ошибку:
- cause = "VALIDATION_FAULT"
- message = "Заполнены не все обязательные атрибуты."
- internalErrorCode = "188.1-1002"
- Проверка суммы списания и зачисления
- HTTP 400 Bad Request
- cause = "VALIDATION_FAULT"
- message = "Некорректно заполнены атрибуты сумм списания и зачисления, необходимо передавать только одно значение."
- internalErrorCode = "188.1-1002"
3 Альтернативные сценарии:
- для получения ошибки HTTP 400 с кодом VALIDATION_FAULT, необходимо заполнить externalId = "eb8e0372-b6a9-4e74-a123-f206f2bd492e"
- cause = "VALIDATION_FAULT"
- message = "Документ с таким externalId уже существует."
- internalErrorCode = "188.1-1002"
- для получения ошибки HTTP 500 с кодом TECHNICAL_EXCEPTION, необходимо заполнить externalId = "6ca178cc-658c-435f-ab00-b27b190f64c1"
- cause = "TECHNICAL_EXCEPTION"
- message = "При выполнении операции произошла ошибка. Мы уже работаем над ее устранением. Повторите попытку позже. Код ошибки: 000-0."
- internalErrorCode = "188.1-5002"
- для получения ошибки HTTP 500 с кодом UNKNOWN_EXCEPTION, необходимо заполнить externalId = "c56c1281-9d44-427c-8973-731f6750350d"
- cause = "UNKNOWN_EXCEPTION"
- message = "При выполнении операции произошла ошибка. Мы уже работаем над ее устранением. Повторите попытку позже. Код ошибки: 000-0."
- internalErrorCode = "188.1-1000"
Запрос
Ответы
Успешный запрос на создание поручения на покупку/продажу валюты
"Ошибка в запросе"
| Cause | Message | Description |
|---|---|---|
| VALIDATION_FAULT | Ошибка валидации | Если в запросе отсутствуют обязательные параметры или переданы некорректные параметры |
| TECHNICAL_EXCEPTION | Техническая ошибка | Если возникли прочие технические ошибки |
| BUSINESS_EXCEPTION | Ошибка бизнес-процесса | Если возникли различные бизнес ошибки |
"Не авторизован"
| Cause | Message | Description |
|---|---|---|
| UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
"Операция не может быть выполнена: доступ к ресурсу запрещен"
| Cause | Message | Description |
|---|---|---|
| ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция CONVERSION_OPERATION_CURRENCY. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
"Ошибка валидации запроса"
| Cause | Message | Description |
|---|---|---|
| VALIDATION_FAULT | Валидация запроса завершилась ошибкой | Модель запроса не прошла валидацию на SOWA |
"Превышен лимит запросов"
| Cause | Message | Description |
|---|---|---|
| TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
"Внутренняя ошибка сервера"
| Cause | Message | Description |
|---|---|---|
| UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
"Сервис временно недоступен"
| Cause | Message | Description |
|---|---|---|
| UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |