Оплата

Возвращает типы оплаты, которые отель принимает при онлайн-бронировании, и запускает этап оплаты для выбранного типа. Что делать для каждого типа, описано в руководстве Процесс оплаты.

Список типов оплаты#

GET/external/online/payment/type

Аутентификация: Authorization: Bearer

Возвращает типы оплаты, включённые отелем для онлайн-продаж. Фиксированные ID типов: 1 — оплата в отеле, 3 — банковский перевод, 9 — кредитная карта (данные карты передаются вместе с бронированием), 10 — онлайн-оплата (виртуальный POS).

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

hotelIDintegerобязательный
ID отеля.

Ответ

200 Успешно.

Запрос
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Ответ · 200
{
    "success": true,
    "count": 3,
    "items": [
        {
            "title": "Оплата в отеле",
            "title_translate": "odeme.otelde_odeme",
            "typeID": 1
        },
        {
            "title": "Банковский перевод",
            "title_translate": "odeme.havale",
            "typeID": 3
        },
        {
            "title": "Онлайн-оплата картой",
            "title_translate": "odeme.online_odeme",
            "typeID": 10
        }
    ]
}

Данные виртуального POS#

GET/external/payment/company

Аутентификация: Authorization: Bearer

Возвращает провайдера виртуального POS отеля и данные мерчанта. Нужен, только если вы подключаетесь к провайдеру напрямую на своей стороне; в стандартном процессе используется POST …/payment/type/10. Ответ содержит секретные данные — не выпускайте его за пределы сервера.

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

hotelIDintegerобязательный
ID отеля.

Ответ

200 Успешно.

Ответы с ошибками

  • 200 hotel_company_info_could_not_found — для отеля не настроен виртуальный POS.
Запрос
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Ответ · 200
{
    "success": true,
    "paymentCompany": {
        "merchant_id": "4000****",
        "store_key": "********",
        "terminal_no": "VP00****",
        "user": "demo_api",
        "password": "********",
        "max_installment": 6,
        "company_id": 3,
        "company_code": "iyzico",
        "company_name": "iyzico"
    }
}

Начать этап оплаты#

POST/external/online/payment/type/{paymentType}

Аутентификация: Authorization: Bearer · Тело: application/json

Возвращает, что нужно сделать для выбранного типа оплаты. Типам 1 и 9 достаточно hotelID; тип 3 возвращает список банковских счетов; для типа 10 оплата запускается с данными гостя и корзины, а возвращённый code (HTML) выводится на странице гостя и переводит его на платёжную страницу провайдера.

Параметры пути

paymentTypeintegerобязательный
ID типа оплаты.
13910

Тело запроса

hotelIDintegerобязательный
ID отеля.
totalPricedecimal
Обязательно для типа 10. Общая сумма к списанию.
orderIDstring
Обязательно для типа 10. Номер вашего заказа или бронирования.
returnUrlstring
Обязательно для типа 10. URL, на который гость вернётся после оплаты.
name / surname / email / phonestring
Обязательно для типа 10. Данные плательщика.
city / addressstring
Обязательно для типа 10. Платёжный адрес.
countryIDinteger
Обязательно для типа 10. id из списка стран.
baskets[]object[]
Обязательно для типа 10, минимум один элемент. Каждый элемент: id, name, piece, price.

Ответ

200 Тип 10: в code возвращается HTML-фрагмент, который передаёт гостя платёжному провайдеру (в зависимости от провайдера — автоматически отправляемая форма, скрипт window.location или встроенная платёжная форма). Выведите его в браузере гостя как есть. Для остальных типов поле message сообщает, что нужно сделать.

Ответы с ошибками

  • 200 required_input_info_not_submitted (+ errors[]) — не передано поле для типа 10; country_info_sent_incorrectly — неверный countryID; there_is_missing_info_in_the_shopping_cart — в элементе корзины не хватает поля; bank_info_is_not_found — для типа 3 не настроен банковский счёт.
  • 404 Неизвестный paymentType.
Запрос
curl -X POST "https://test.hms.gen.tr/external/online/payment/type/10" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "hotelID": 1000,
    "totalPrice": 2330,
    "orderID": "4811174883",
    "returnUrl": "https://booking.example.com/payment/result",
    "name": "Ayşe",
    "surname": "Demir",
    "email": "[email protected]",
    "phone": "05551112233",
    "city": "Denizli",
    "address": "Kumsal Cad. No: 12",
    "countryID": 1,
    "baskets": [
        {
            "id": 2,
            "name": "Стандартный номер · Завтрак включён",
            "piece": 1,
            "price": 1930
        },
        {
            "id": 12,
            "name": "Ужин",
            "piece": 1,
            "price": 400
        }
    ]
}'
Ответ · 200
{
    "success": true,
    "message": "payment_order_code",
    "code": "<form method=\"post\" action=\"https://vpos.provider.example/3d\"><input type=\"hidden\" name=\"orderId\" value=\"4811174883\"> … </form><script>document.forms[0].submit()</script>"
}
Ответ · 200 (тип 3, банковский перевод)
{
    "success": true,
    "message": "payment_by_bank_transfer",
    "banks": [
        {
            "companyName": "Зираат Банк",
            "holder": "Demo Turizm A.Ş.",
            "branchName": "Denizli",
            "branchNumber": "0123",
            "bankAccountNumber": "12345678-5001",
            "iban": "TR00 0001 0001 2345 6789 5001 01"
        }
    ]
}
Ответ · 200 (тип 1 / тип 9)
{
    "success": true,
    "message": "credit_card_info_should_be_requested"
}
Последнее обновление:: 21 сентября 2026 г.Нашли ошибку? Напишите нам