Kimlik Doğrulama
Partner API, OAuth 2.0 Client Credentials akışını kullanır. Tüm uç noktalar (OAuth hariç) geçerli bir Authorization: Bearer <access_token> başlığı gerektirir.
1. Kimlik Bilgilerini Alın
TourMAX hesap yöneticinizden aşağıdaki bilgileri talep edin:
| Alan | Örnek |
|---|---|
client_id | cid_f36a59d50737c1a2616cc823d22697fc |
client_secret | sk_live_... veya sk_test_... (sandbox) |
scopes | hotels:read tours:read reservations:read reservations:write ... |
uyarı
client_secret değerini asla istemci tarafında (tarayıcı/mobil) kullanmayın. Yalnızca sunucudan sunucuya yapılan çağrılarda kullanılmalıdır.
2. Erişim Tokenu (Access Token) Alın
curl
curl -X POST https://example.com/apiv2/partner-api/v1/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"scope": "hotels:read reservations:write"
}'
Response
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 7200,
"scope": "hotels:read reservations:write"
}
}
- Token 7200 saniye (2 saat) geçerlidir.
- Süresi dolduğunda
401 Unauthorizedhatası döner — aynı uç noktaya yenidenPOSTatarak yeni bir token alın. - Tokenları istemci tarafında önbelleğe (cache) alın; her istekte yeni token üretmeyin.
3. Korumalı Bir Uç Noktaya Çağrı
curl https://example.com/apiv2/partner-api/v1/account \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
4. Scope'lar
| Scope | Açıklama |
|---|---|
hotels:read | Otel arama, detay, fiyat sorgulama |
tours:read | Tur arama, detay |
reservations:read | Rezervasyon listeleme ve detay görme |
reservations:write | Rezervasyon oluşturma, güncelleme, iptal |
account:read | Hesap bilgisi ve bakiye |
content:read | Para birimi, ülke, şehir vb. sabit veriler |
webhooks:read | Webhook aboneliklerini listeleme |
webhooks:write | Webhook aboneliği oluşturma, güncelleme, silme |
Token alırken yalnızca ihtiyacınız olan kapsamları (scope) talep edin — en az yetki (least privilege) ilkesi.
5. Token İptali
Bir tokenı süresi dolmadan iptal etmek için:
curl -X POST https://example.com/apiv2/partner-api/v1/oauth/revoke \
-H "Content-Type: application/json" \
-d '{"token": "eyJhbGciOiJIUzI1NiIs..."}'