Конвертация (buy)
Reverse-конвертация: «хочу получить сумму в целевой валюте, сколько нужно заплатить в исходной валюте?». Используйте для точного расчёта суммы платежа — не умножайте курс из «Курс валюты»/«Кросс-курс» на сумму вручную.
URL
Запрос
Query-параметры
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
source_ccy |
string | Да | Числовой код валюты оплаты. См. «Коды валют». |
target_ccy |
string | Да | Числовой код желаемой валюты получения. Должен отличаться от source_ccy. |
target_amount |
integer | Да | Желаемая сумма в целевой валюте, в минорных единицах. Например, 1000000 = 10 000.00 RUB. |
Заголовки
| Название | Тип | Обязательно | Описание |
|---|---|---|---|
X-Api-Key |
string | Да | Идентификатор магазина. |
Подпись X-Signature для этого метода не требуется.
Пример
curl --request GET \
--url 'https://api.pay.stage.kvell.group/v1/currency/convert/buy?source_ccy=840&target_ccy=643&target_amount=1000000' \
--header 'X-Api-Key: 00000000-0000-4000-8000-000000000000'
Ответ
{
"source_currency": "840",
"target_currency": "643",
"amount": 11712,
"source_to_base": 12210,
"base_to_target": 143,
"base_currency": "UZS"
}
Параметры ответа
| Параметр | Тип | Описание |
|---|---|---|
source_currency |
string | Числовой код валюты оплаты. |
target_currency |
string | Числовой код желаемой валюты получения. |
amount |
integer | Сумма к оплате в минорных единицах source_currency. Равно округлённому target_amount × base_to_target / source_to_base. |
source_to_base |
number | Курс исходной валюты к базовой (UZS). |
base_to_target |
number | Курс базовой валюты (UZS) к целевой. |
base_currency |
string | Базовая валюта расчёта — всегда "UZS". |
Формула расчёта
amount = round(target_amount × base_to_target / source_to_base)
Что означает ответ
Метод не создаёт операцию платежа — только рассчитывает сумму на основе текущего курса.
Что делать дальше
Используйте amount как итоговую сумму к оплате в source_currency.
{
"errors": [
{
"code": 20099,
"message": "source_ccy and target_ccy must differ"
}
]
}
Параметры ответа
| Параметр | Тип | Описание |
|---|---|---|
errors |
array | Список ошибок. Коды и рекомендации по обработке приведены в разделе «Ошибки HTTP-ответов». |
errors[].code |
integer | Код ошибки. |
errors[].message |
string | Описание причины отклонения запроса. |
Что означает ответ
source_ccy и target_ccy совпадают — конвертация валюты в саму себя не имеет смысла.
Что делать дальше
Передайте два разных кода валют и повторите запрос.
{
"errors": [
{
"code": 20044,
"message": "Интеграция с Montra не настроена для магазина"
}
]
}
Параметры ответа
| Параметр | Тип | Описание |
|---|---|---|
errors |
array | Список ошибок. Коды и рекомендации по обработке приведены в разделе «Ошибки HTTP-ответов». |
errors[].code |
integer | 20044 — интеграция не подключена; 20099 — курс для одной из валют недоступен у провайдера. |
errors[].message |
string | Описание причины. |
Что означает ответ
Для кода 20044 обратитесь в поддержку KVELL, чтобы подключить интеграцию с провайдером курсов.
Для кода 20099 проверьте коды валют в source_ccy/target_ccy.
Что делать дальше
Устраните причину ошибки и повторите запрос.
{
"errors": [
{
"code": 20098,
"message": "target_amount: Field required"
}
]
}
Параметры ответа
| Параметр | Тип | Описание |
|---|---|---|
errors |
array | Список ошибок валидации. |
errors[].code |
integer | Код ошибки. |
errors[].message |
string | Поле и причина ошибки валидации. |
Что означает ответ
Не передан обязательный параметр или он не соответствует формату.
Что делать дальше
Исправьте поле из errors[].message и повторите запрос.
{
"errors": [
{
"code": 20000,
"message": "Неизвестная ошибка"
}
]
}
Параметры ответа
| Параметр | Тип | Описание |
|---|---|---|
errors |
array | Список ошибок. Коды и рекомендации по обработке приведены в разделе «Ошибки HTTP-ответов». |
errors[].code |
integer | Код ошибки. |
errors[].message |
string | Описание технической ошибки. |
Что означает ответ
Метод не создаёт финансовую операцию — техническая ошибка не может привести к неопределённому результату.
Что делать дальше
Безопасно повторите тот же запрос. Если ошибка повторяется, обратитесь в поддержку KVELL и
передайте URL, время запроса, HTTP-код, code и message.