Pembayaran

Menampilkan jenis pembayaran yang diterima hotel untuk reservasi online dan memulai langkah pembayaran untuk jenis yang dipilih. Langkah untuk setiap jenis dijelaskan dalam panduan Alur pembayaran.

Daftar jenis pembayaran#

GET/external/online/payment/type

Autentikasi: Authorization: Bearer

Mengembalikan jenis pembayaran yang diaktifkan hotel untuk penjualan online. ID jenis bersifat tetap: 1 bayar di hotel, 3 transfer bank, 9 kartu kredit (detail kartu dikirim bersama reservasi), 10 pembayaran online (virtual POS).

Parameter kueri

hotelIDintegerwajib
ID hotel.

Respons

200 Berhasil.

Permintaan
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Respons · 200
{
    "success": true,
    "count": 3,
    "items": [
        {
            "title": "Bayar di Hotel",
            "title_translate": "odeme.otelde_odeme",
            "typeID": 1
        },
        {
            "title": "Transfer Bank",
            "title_translate": "odeme.havale",
            "typeID": 3
        },
        {
            "title": "Pembayaran Kartu Online",
            "title_translate": "odeme.online_odeme",
            "typeID": 10
        }
    ]
}

Detail virtual POS#

GET/external/payment/company

Autentikasi: Authorization: Bearer

Mengembalikan penyedia virtual POS dan detail merchant hotel. Hanya diperlukan jika Anda mengintegrasikan penyedia secara langsung di sisi Anda; alur standar menggunakan POST …/payment/type/10. Respons berisi data rahasia; simpan hanya di sisi server.

Parameter kueri

hotelIDintegerwajib
ID hotel.

Respons

200 Berhasil.

Respons error

  • 200 hotel_company_info_could_not_found — tidak ada virtual POS yang dikonfigurasi untuk hotel.
Permintaan
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Respons · 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"
    }
}

Mulai langkah pembayaran#

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

Autentikasi: Authorization: Bearer · Body: application/json

Mengembalikan tindakan yang perlu dilakukan untuk jenis pembayaran yang dipilih. Jenis 1 dan 9 hanya memerlukan hotelID; jenis 3 menampilkan daftar rekening bank; untuk jenis 10, pembayaran dimulai dengan data tamu dan keranjang, lalu code (HTML) yang dikembalikan ditampilkan di halaman tamu untuk meneruskannya ke layar pembayaran penyedia.

Parameter path

paymentTypeintegerwajib
ID jenis pembayaran.
13910

Body permintaan

hotelIDintegerwajib
ID hotel.
totalPricedecimal
Wajib untuk jenis 10. Jumlah total yang ditagih.
orderIDstring
Wajib untuk jenis 10. Nomor pesanan/reservasi Anda.
returnUrlstring
Wajib untuk jenis 10. URL tujuan tamu setelah pembayaran.
name / surname / email / phonestring
Wajib untuk jenis 10. Data pembayar.
city / addressstring
Wajib untuk jenis 10. Alamat penagihan.
countryIDinteger
Wajib untuk jenis 10. id dari daftar negara.
baskets[]object[]
Wajib untuk jenis 10, minimal satu item. Setiap item: id, name, piece, price.

Respons

200 Jenis 10: code berisi fragmen HTML yang meneruskan tamu ke penyedia pembayaran (form yang terkirim otomatis, script window.location, atau form checkout tersemat, tergantung penyedia). Tampilkan apa adanya di browser tamu. Untuk jenis lain, field message menjelaskan apa yang harus dilakukan.

Respons error

  • 200 required_input_info_not_submitted (+ errors[]) — ada field yang tidak dikirim untuk jenis 10; country_info_sent_incorrectlycountryID tidak valid; there_is_missing_info_in_the_shopping_cart — ada field yang tidak lengkap pada item keranjang; bank_info_is_not_found — tidak ada rekening bank yang dikonfigurasi untuk jenis 3.
  • 404 paymentType tidak dikenal.
Permintaan
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": "Kamar Standar · Termasuk Sarapan",
            "piece": 1,
            "price": 1930
        },
        {
            "id": 12,
            "name": "Makan Malam",
            "piece": 1,
            "price": 400
        }
    ]
}'
Respons · 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>"
}
Respons · 200 (jenis 3, transfer bank)
{
    "success": true,
    "message": "payment_by_bank_transfer",
    "banks": [
        {
            "companyName": "Bank Ziraat",
            "holder": "Demo Turizm A.Ş.",
            "branchName": "Denizli",
            "branchNumber": "0123",
            "bankAccountNumber": "12345678-5001",
            "iban": "TR00 0001 0001 2345 6789 5001 01"
        }
    ]
}
Respons · 200 (jenis 1 / jenis 9)
{
    "success": true,
    "message": "credit_card_info_should_be_requested"
}
Terakhir diperbarui: 21 September 2026Menemukan kesalahan? Beri tahu kami