Zahlung

Listet die Zahlungsarten auf, die das Hotel für Online-Buchungen akzeptiert, und startet den Zahlungsschritt für die gewählte Art. Was bei welcher Zahlungsart zu tun ist, beschreibt der Leitfaden Zahlungsablauf.

Zahlungsarten auflisten#

GET/external/online/payment/type

Authentifizierung: Authorization: Bearer

Gibt die Zahlungsarten zurück, die das Hotel für den Online-Verkauf aktiviert hat. Feste Typ-IDs: 1 Zahlung im Hotel, 3 Überweisung, 9 Kreditkarte (Kartendaten werden mit der Buchung gesendet), 10 Online-Zahlung (virtuelles POS-Terminal).

Abfrageparameter

hotelIDintegererforderlich
Hotel-ID.

Antwort

200 Erfolgreich.

Anfrage
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Antwort · 200
{
    "success": true,
    "count": 3,
    "items": [
        {
            "title": "Zahlung im Hotel",
            "title_translate": "odeme.otelde_odeme",
            "typeID": 1
        },
        {
            "title": "Banküberweisung",
            "title_translate": "odeme.havale",
            "typeID": 3
        },
        {
            "title": "Online-Kartenzahlung",
            "title_translate": "odeme.online_odeme",
            "typeID": 10
        }
    ]
}

Daten des virtuellen POS-Terminals#

GET/external/payment/company

Authentifizierung: Authorization: Bearer

Gibt den Anbieter des virtuellen POS-Terminals und die Händlerdaten des Hotels zurück. Nur nötig, wenn Sie den Anbieter auf Ihrer Seite direkt anbinden; der Standardablauf verwendet POST …/payment/type/10. Die Antwort enthält geheime Daten; verwenden Sie sie nur serverseitig.

Abfrageparameter

hotelIDintegererforderlich
Hotel-ID.

Antwort

200 Erfolgreich.

Fehlerantworten

  • 200 hotel_company_info_could_not_found — für das Hotel ist kein virtuelles POS-Terminal konfiguriert.
Anfrage
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
Antwort · 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"
    }
}

Zahlungsschritt starten#

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

Authentifizierung: Authorization: Bearer · Body: application/json

Gibt zurück, was für die gewählte Zahlungsart zu tun ist. Die Typen 1 und 9 benötigen nur hotelID; Typ 3 listet Bankkonten auf; bei Typ 10 wird die Zahlung mit Gast- und Warenkorbdaten gestartet, und der zurückgegebene code (HTML) wird auf der Seite des Gastes ausgegeben, um an die Zahlungsseite des Anbieters zu übergeben.

Pfadparameter

paymentTypeintegererforderlich
ID der Zahlungsart.
13910

Request-Body

hotelIDintegererforderlich
Hotel-ID.
totalPricedecimal
Erforderlich für Typ 10. Zu belastender Gesamtbetrag.
orderIDstring
Erforderlich für Typ 10. Ihre Bestell- bzw. Buchungsnummer.
returnUrlstring
Erforderlich für Typ 10. URL, zu der der Gast nach der Zahlung zurückkehrt.
name / surname / email / phonestring
Erforderlich für Typ 10. Daten des Zahlenden.
city / addressstring
Erforderlich für Typ 10. Rechnungsadresse.
countryIDinteger
Erforderlich für Typ 10. id aus der Länderliste.
baskets[]object[]
Erforderlich für Typ 10, mindestens ein Element. Jedes Element: id, name, piece, price.

Antwort

200 Typ 10: code enthält ein HTML-Fragment, das an den Zahlungsanbieter übergibt (je nach Anbieter ein automatisch abgesendetes Formular, ein window.location-Skript oder ein eingebettetes Zahlungsformular). Geben Sie es unverändert im Browser des Gastes aus. Bei den anderen Typen gibt das Feld message an, was zu tun ist.

Fehlerantworten

  • 200 required_input_info_not_submitted (+ errors[]) — Feld fehlt bei Typ 10; country_info_sent_incorrectly — ungültige countryID; there_is_missing_info_in_the_shopping_cart — Feld fehlt in einem Warenkorbelement; bank_info_is_not_found — kein Bankkonto für Typ 3 konfiguriert.
  • 404 Unbekannter paymentType.
Anfrage
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": "Standardzimmer · Übernachtung mit Frühstück",
            "piece": 1,
            "price": 1930
        },
        {
            "id": 12,
            "name": "Abendessen",
            "piece": 1,
            "price": 400
        }
    ]
}'
Antwort · 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>"
}
Antwort · 200 (Typ 3, Überweisung)
{
    "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"
        }
    ]
}
Antwort · 200 (Typ 1 / Typ 9)
{
    "success": true,
    "message": "credit_card_info_should_be_requested"
}
Zuletzt aktualisiert: 21. September 2026Fehler gefunden? Schreiben Sie uns