გადახდა

აბრუნებს გადახდის ტიპებს, რომლებსაც სასტუმრო ონლაინ ჯავშნებისთვის იღებს, და არჩეული ტიპისთვის იწყებს გადახდის ეტაპს. რა უნდა გააკეთოთ თითოეული ტიპისთვის, აღწერილია სახელმძღვანელოში გადახდის პროცესი.

გადახდის ტიპების სია#

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იპოვეთ შეცდომა? შეგვატყობინეთ