Плащане

Връща типовете плащане, които хотелът приема за онлайн резервации, и стартира стъпката на плащане за избрания тип. Какво да направите при всеки тип е описано в ръководството Процес на плащане.

Списък с типове плащане#

GET/external/online/payment/type

Удостоверяване: Authorization: Bearer

Връща типовете плащане, които хотелът е активирал за онлайн продажби. Фиксирани ID на типовете: 1 плащане в хотела, 3 банков превод, 9 кредитна карта (данните на картата се изпращат с резервацията), 10 онлайн плащане (виртуален POS).

Query параметри

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. Отговорът съдържа тайни данни; дръжте го само на сървъра.

Query параметри

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 г.Открихте грешка? Пишете ни