Ödəniş

Otelin onlayn rezervasiyalar üçün qəbul etdiyi ödəniş növlərini siyahıya alır və seçilmiş növ üçün ödəniş addımını başladır. Hər növ üçün nə etmək lazım olduğu Ödəniş axını bələdçisində təsvir olunub.

Ödəniş növlərinin siyahısı#

GET/external/online/payment/type

Autentifikasiya: Authorization: Bearer

Otelin onlayn satış üçün aktivləşdirdiyi ödəniş növlərini qaytarır. Sabit növ ID-ləri: 1 oteldə ödəniş, 3 bank köçürməsi, 9 kredit kartı (kart məlumatları rezervasiya ilə göndərilir), 10 onlayn ödəniş (virtual POS).

Sorğu sətri parametrləri

hotelIDintegerməcburi
Otel ID-si.

Cavab

200 Uğurlu.

Sorğu
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Cavab · 200
{
    "success": true,
    "count": 3,
    "items": [
        {
            "title": "Oteldə ödəniş",
            "title_translate": "odeme.otelde_odeme",
            "typeID": 1
        },
        {
            "title": "Bank köçürməsi",
            "title_translate": "odeme.havale",
            "typeID": 3
        },
        {
            "title": "Onlayn kartla ödəniş",
            "title_translate": "odeme.online_odeme",
            "typeID": 10
        }
    ]
}

Virtual POS məlumatları#

GET/external/payment/company

Autentifikasiya: Authorization: Bearer

Otelin virtual POS provayderini və ticarət nöqtəsi məlumatlarını qaytarır. Yalnız provayderi birbaşa öz tərəfinizdə inteqrasiya edirsinizsə lazımdır; standart axın POST …/payment/type/10 istifadə edir. Cavabda gizli məlumatlar var; onu yalnız server tərəfində saxlayın.

Sorğu sətri parametrləri

hotelIDintegerməcburi
Otel ID-si.

Cavab

200 Uğurlu.

Xəta cavabları

  • 200 hotel_company_info_could_not_found — otel üçün virtual POS konfiqurasiya edilməyib.
Sorğu
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Cavab · 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"
    }
}

Ödəniş addımının başladılması#

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

Autentifikasiya: Authorization: Bearer · Gövdə: application/json

Seçilmiş ödəniş növü üçün nə etmək lazım olduğunu qaytarır. 1 və 9 növləri üçün yalnız hotelID kifayətdir; 3-cü növ bank hesablarını siyahıya alır; 10-cu növdə ödəniş qonaq və səbət məlumatları ilə başladılır, qaytarılan code (HTML) isə qonağı provayderin ödəniş ekranına ötürmək üçün qonağın səhifəsində göstərilir.

Yol parametrləri

paymentTypeintegerməcburi
Ödəniş növünün ID-si.
13910

Sorğu gövdəsi

hotelIDintegerməcburi
Otel ID-si.
totalPricedecimal
10-cu növ üçün məcburidir. Tutulacaq ümumi məbləğ.
orderIDstring
10-cu növ üçün məcburidir. Sizin sifariş/rezervasiya nömrəniz.
returnUrlstring
10-cu növ üçün məcburidir. Ödənişdən sonra qonağın qayıdacağı URL.
name / surname / email / phonestring
10-cu növ üçün məcburidir. Ödəyicinin məlumatları.
city / addressstring
10-cu növ üçün məcburidir. Faktura ünvanı.
countryIDinteger
10-cu növ üçün məcburidir. Ölkələr siyahısındakı id.
baskets[]object[]
10-cu növ üçün məcburidir, ən azı bir element. Hər element: id, name, piece, price.

Cavab

200 10-cu növ: code sahəsində ödəniş provayderinə ötürən HTML fraqmenti qaytarılır (provayderdən asılı olaraq avtomatik göndərilən forma, window.location skripti və ya daxil edilmiş ödəniş forması). Onu qonağın brauzerində olduğu kimi göstərin. Digər növlərdə message sahəsi nə etmək lazım olduğunu bildirir.

Xəta cavabları

  • 200 required_input_info_not_submitted (+ errors[]) — 10-cu növ üçün sahə çatışmır; country_info_sent_incorrectlycountryID yanlışdır; there_is_missing_info_in_the_shopping_cart — səbət elementində sahə çatışmır; bank_info_is_not_found — 3-cü növ üçün bank hesabı konfiqurasiya edilməyib.
  • 404 Naməlum paymentType.
Sorğu
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": "Standart otaq · Səhər yeməyi daxil",
            "piece": 1,
            "price": 1930
        },
        {
            "id": 12,
            "name": "Şam yeməyi",
            "piece": 1,
            "price": 400
        }
    ]
}'
Cavab · 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>"
}
Cavab · 200 (3-cü növ, bank köçürməsi)
{
    "success": true,
    "message": "payment_by_bank_transfer",
    "banks": [
        {
            "companyName": "Ziraat Bank",
            "holder": "Demo Turizm A.Ş.",
            "branchName": "Denizli",
            "branchNumber": "0123",
            "bankAccountNumber": "12345678-5001",
            "iban": "TR00 0001 0001 2345 6789 5001 01"
        }
    ]
}
Cavab · 200 (1-ci növ / 9-cu növ)
{
    "success": true,
    "message": "credit_card_info_should_be_requested"
}
Son yenilənmə: 21 sentyabr 2026Səhv tapdınız? Bizə bildirin