OHC API Documentation

Giriş

API Root Endpoint

https://api.onlinehotelcheck.in/v1

Online Hotel CheckIn API Back-End ile web istemcisi arasındaki işlemleri gerçekleştirmek için geliştirilmiştir.

OHC API'si REST ilkelerini kullanarak HTTP protokolü ile kolayca istemci ve sunucu arasında veri akışını sağlamaktadır.

API'deki her modülün ortak bir kök ENDPOINT'i vardır.

Başlangıç

Örnek

$ curl https://api.onlinehotelcheck.in/v1/users \
					-H 'Authorization: Bearer ba4604e8e433g9c892e360d53463oec5' \ 
					-H 'Api-Key: 10234695'
				

Tüm OHC API istekleri 2 header bilgisi gerektirir.

  1. Authorization - Kimlik Doğrulama isteği için başlık. Yetkilendirilecek modüller için gereklidir.
  2. Api-Key - Bu başlık API erişimine yetkisi olan organizasyonunuza ait Online Hotel CheckIn'den temin edilecek Api antahtarıdır.

Kimlik Doğrulama

OHC API istekleri rfc6750 standartlarına göre kimlik doğrulamaya ihtiyaç duymaktadır.

Aşağıdaki şekillerde yetkilendirme sağlayabilirsiniz:

  1. Tarayıcıdan bir URL üzerinden.
  2. API ile.

Örnek olumlu yanıt

					{
						"status": true,
						"authtoken": "ba4604e8e433g9c892e360d53463oec5"
					}
				

Örnek hata yanıtı

					{
						"status": false,
						"code": "INVALID_USERNAME_OR_PASSWORD"
					}
				

Tarayınıcıda kullanım

Tarayıcı ile yetkilendirme sağlamak çok kolaydır. Aşağıdaki linke gidin ve login olun.

https://api.onlinehotelcheck.in/apiauthtoken/create?SCOPE=api

API Kullanarak

Eğer API ile yetkilendirme almak istiyorsanız aşağıdaki adımları takip edin.

Aşağıdaki URL ye parametreleri POST etmelisiniz. Submit an HTTP POST request to the below URL.

https://api.onlinehotelcheck.in/apiauthtoken/create.

POST gövdesi aşağıdaki biçimde dizi içermelidir.

?USERNAME=[Username]&PASSWORD=[Password]

Aşağıda URL de geçecek srunlu parametreler bulunmaktadır.

Parametre Açıklama
USERNAME Kullanıcı adınız
PASSWORD Şifreniz

Api Key

OHC API'sini kullanabilmek için API KEY almalısınız. Bu linkten kayıt olarak Api Key alabilirsiniz.

HTTP Metodları

GET yönetimini kullanarak kayıtları veya kayıtdaki bazı detayları alabilirsiniz..

Tüm Otel checkin kayıtlarını alma

$ curl https://api.onlinehotelcheck.in/v1/checkin \
		-H 'Authorization: Bearer ba4604e8e433g9c892e360d53463oec5' \
		-H 'Api-Key: 10234695' 
Belli bir checkin kaydının detaylarını alma

$ curl https://api.onlinehotelcheck.in/v1/checkin/x6ck95 \
		-H 'Authorization: Bearer ba4604e8e433g9c892e360d53463oec5' \
		-H 'Api-Key: 10234695' 

OHC API her eylem için uygun bir HTTP metodu kullanır.

Metod Açıklama
GET Kayıtları almak için kullanılır.Used for retrieving resources.
POST Yeni bir kayıt açmak için kullanılır.
PUT Kaydı güncellemek için kullanılır.
DELETE Kaydı silmek için kullanılır.

Response

Response Yapısı

CheckIn kayıtları cevap yapısı aşağıdaki gibidir..

	{
		"id" : "x7dcj3",
		"status": "waiting",
		"created_at": "2016-03-13T13:29:15-04:00",
		"status":{

		},
		"booking":{

		},
		"hotel": {
			"id": "oscarhotel",
			"name": "Oscar Otel",
		},
		"room": {

		},
		"guests": [

		],
		"transfer": {

		},
		"upsell": {

		}
	}

Örnek Request

$ curl https://api.onlinehotelcheck.in/v1/checkin/x6ck95 \
		-H 'Authorization: Bearer ba4604e8e433g9c892e360d53463oec5' \
		-H 'Api-Key: 10234695'  \
		-H 'Accept: application/pdf'
                    OR
$ curl https://api.onlinehotelcheck.in/v1/checkin/x6ck95?accept=pdf \
		-H 'Authorization: Bearer ba4604e8e433g9c892e360d53463oec5' \
		-H 'Api-Key: 10234695'

Yanıtlar JSON formatındadır.

Node Name Description
status Durum. Sonuç başarılı ise true, başarısız ise false gelir.
code, optional Hatanın kodudur. Eğer sonuç başarılı ise gelmez
data, optional API yanıtında yer alan veridir.

Örnek Response Headeri


HTTP/1.1 200 OK
Content-Disposition: attachment; filename="CHECKIN-x7d4f.pdf"
Content-Type: application/pdf;charset=UTF-8


Diğer Formatlar

Gönderilen istekte accept parametresiyle gelen yanıtın tipi değişir. accept parametresi csv ve pdf formatlarını destekler.



















Tarih

Tüm Tarih timestamps tipi ISO 8601 formatındadır. - YYYY-MM-DDThh:mm:ssTZD.

Örnek: 2014-06-11T17:38:06-0700

Hatalar

Örnek Request

$ curl https://api.onlinehotelcheck.in/v1/checkin/xfc5c7op \
	-H 'Authorization: Bearer ba4604e8e433g9c892e360d53463oec5' \
	-H 'Api-Key: 10234695'

Örnek Response

{
		"status": false,
		"code": "CHECKIN_DOES_NOT_EXISTS"
}

OHC API yanıtlarıın başarılı veya başarısız olduğunu belirtmek için. HTTP durum kodlarını kullanır. Genel olarak 2xx kodları çağrının başarılı olduğunu, 4xx kodları verilen bilgilerde bir hata olduğunu, 5xx kodları sunucu bazlı bir hata olduğunu gösterir. En çok kullanılan HTTP durum kodları aşağıdadır.

HTTP Durum Kodları

Durum Kodu Açıklama
200 OK
201 Created, (Oluşturuldu)
400 Bad Request (Hatalı İstek)
401 Unauthorized (Yetkilendirme Hatası)
404 URL Not Found (Sayfa bulunamadı)
405 Method Not Allowed (API'nin izin vermediği bir metotla çağrıldı)
429 Rate Limit Exceeded (API kullanım limiti aşıldı)
500 Internal Error (İç sunucu hatası)

Sayfalama

Örnek

{
		"status": true,
		"list": [

		],
		"records": {
			"count": 312,
			"page": 2,
			"per_page": 25
		}
}

OHC API uzun liste kayıtlarında sayfalama kullanmaktadır. Varsayılan sayfa başı 20 öğe gönderilir. Sayfalamaya ait bilgileri records düğümünün altında gönderilir.

Özellikler

count
integer
Toplam kayıt sayısını verir.
page
integer
Geçerli sayfa numarası.
per_page
integer default: 25
Sayfa başı kayıt sayısı

CheckIn

Ana modüldü. Otelin sayfasından checkin alma, yönetici panelinde listeleme, güncelleme vb. operasyonları yapar.

Örnek

	{
		"id": "xfc5c7op",
		"created_at": "2016-03-13T13:29:15-04:00",
		"status" : {
			"type": "cancelled",
			"updated_at": "2016-03-13T16:09:55-04:00",
			"description": "",
			"owner": "customer"
		},
		"hotel": {
			"name": "Oscar Hotel",
			"id": "oscarhotel"
		},
		"booking": {
			"arrival": "2016-04-02",
			"departure": "2016-04-06",
			"adult" : 2,
			"child" : 1,
			"remarks" : "Üst katlardan bir oda rica ediyorum"
		},
		"pension": "UHD",
		"room":{
			"id":5,
			"name": "Standart Room",
			"no": "3443"
		},
		"guests": [
			{
				"gender" : "male",
				"name" : "John Locke",
				"identity": {
					"no": "3434283883",
					"type": "pasaport",
					"photo": "4c849kp43cmo0.jpg"
				},
				"birth_date": "1965-12-10",
				"nationality": "us",
				"email" : "john_locke@lost.com",
				"tel": "603-376-8300"
			}
		],
		"transfer": {
			"status": "wait",
			"landing": {
				"airport": "Antalya Airport",
				"date": "2016-03-13T12:09:55-04:00"
			},
			"takeoff": {
				"airport": "Frankfurt Airport",
				"date": "2016-03-13T16:09:55-04:00"
			},
			"flight_number": "34553",
			"airline": "Sun Express",
			"price": {
				"amount": 32.4,
				"currency": "usd"
			},
			"payment": {
				"status": true,
				"type": "credit_card",
				"paid": {
					"amount": 32.4,
					"currency": "usd"
				}
			}
		},
		"upsell": {
			"status": "wwait",
			"booking_room": {
				"id": 5,
				"date": "Standart Room"
			},
			"upgraded_room": {
				"id": 5,
				"date": "Junior Suite"
			},
			"daily_fee": {
				"amount": 15,
				"currency": "usd"
			},
			"payment": {
				"status": true,
				"type": "credit_card",
				"paid": {
					"amount": 32.4,
					"currency": "usd"
				}
			}

		}

	}


Özellikler

id
string length: 8
Sunucu tarafından oluşturulan her checkin kaydına özgü 8 karakterli benzersiz koddur.
created_at
date
Checkin'in oluşturulma tarihi
object
Checkin kaydının güncel durumunu bildirir.
object
Checkin kaydına ait otel bilgileri.
object
Rezervasyona ait bilgileri içeren bölümdür.
pension
string
Pansiyon Tipi. Örnek: UHD
object
Rezervasyon yapılan odaya ait bilgileri barındırır.
list
Odada kalan misafir listesidir
object
Transfer bilgileri
object
Upsell bilgileri

Yeni CheckIn Kaydı

POST /checkin

Yeni checkin kaydı oluşturur.

Bu metod Authorization'a gerek duymaz.

Sistemde yeni bir oturum ve checkin kaydı açılır ve bu kaydın ID'sini geri döndürür.

Örnek Request

$ curl https://api.onlinehotelcheck.in/v1/checkin \
		-H "Content-Type: application/json;charset=UTF-8" \
		-H "Api-Key: 10234695" \
		-d '{
		"hotel_id": "oscarhotel",
		"source": "webpage"
}'

Response Example

	{
		"status": true,
		"checkin_id": "xfc5c7op",
		"session_id" : "572b555b17f060950f7b23c8",
		"hotel":{
			"id": "oscarhotel",
			"name": "Oscar Hotel",
			"location": {
				"lat": 38.43,
				"long": 49.85
			},
			"address": "Ataturk Caddessi 1302 Sokak 12",
			"tel": "+90(0242) 243 1125",
			"email": "info@oscarhotel.com.tr",
			"web": "www.oscarhotel.com.tr"
		},
		"settings":{
			"pack": "platinum",
			"transfer": {
				"active": true,
				"price": {
					"amount": 30,
					"currency": "usd"
				},
			},
			"upsell": {
				"active": true
			}
		},
		"rooms": [
			{
				"id":1,
				"name": "Standart Room",
				"price": {
					"amount": 0,
					"currency": "usd"
				}
			}
		],

	}

Request

hotel_id
string required
Otelin sistemdeki benzersiz ID'si.
source
string optional
Trafik kaynağı.
webpage Otelin web sitesindeki widget tarafından.
ohc Online Otel CheckIn sayfasından.
admin Yönetici panelinden

Response

checkin_id
string
Sunucuda üretilen benzersiz CheckIn'i tanımlayan ID.
session_id
string
Oturum için kullanılacak kod. Authorization yoksa gönderilir.

CheckIn Güncelleme

PUT /checkin/{checkin_id}

Oluşturulan CheckIn kayıtlarını günceller.

Örnek Request

$ curl https://api.onlinehotelcheck.in/v1/checkin/{checkin_id} \
		-H "Api-Key: 10234695" \
		-d '{
		"session_id": "572b555b17f060950f7b23c8",
		"booking": {
			"arrival": "2016-04-02",
			"departure": "2016-04-06",
			"adult" : 2,
			"child" : 1,
			"remarks" : "Üst katlardan bir oda rica ediyorum"
		}
}'

Örnek Olumlu Cevap

	{
		"status": true
	}

Örnek Olumsuz Cevap

	{
		"status": false,
		"code": "ARRIVAL_DATE_IS_WRONG"
	}

Hesaplar

Hesaplar modülü. Hesapları yönetmeye yarar.

Örnek

	{
		"id": 493,
		"active": true,
		"created_at": "2016-04-10",
		"expired_at": "2017-04-10",
		"pack":{
			"id": 5,
			"name": "Platon",
			"properties": {
				"hotel_count": 5,
				"upsell": true,
				"transfer": true,
				"price": {
					"amount": 50,
					"currency": "usd"
				}
			}
		},
		"payments":[
			{
				"type": "purchase",
				"paid_at": "2016-04-10",
				"paid": {
					"amount": 300,
					"currency": "usd"
				}
			}
		]
	}

Kullanıcılar

Kullanıcı modülü. Hesaplara ait kullanıcıları yönetir..

Örnek

{
	"id": 42,
	"active": true,
	"type": "admin",
	"login_info": {
		"username": "j.locke",
		"password": "xxxxxx"
	},
	"personal_info": {
		"name": "John Locke",
		"gender": "male",
		"duty": "Genel Müdür",
		"email": "john.locke@lost.com",
		"tel": "905329483345"
	},
	"options":{
		"language": "tr"
	},
	"permissions": [

	],
	"account_id": 493
}

Oteller

Oteller modülü. Hesaplara ait otelleri yönetir.

Örnek

	{
		"id": "oscarhotel",
		"active": true,
		"name": "Oscar Hotel",
		"location": {
			"lat": 38.43,
			"long": 49.85
		},
		"address": "Ataturk Caddessi 1302 Sokak 12",
		"tel": "+90(0242) 243 1125",
		"email": "info@oscarhotel.com.tr",
		"web": "www.oscarhotel.com.tr"
	}