Kimlik Doğrulama
KolayBi API'ye erişmek için aşağıdaki adımları izleyin.
1- KolayBi uygulamasında yeni API anahtarı oluşturun
- KolayBi uygulamasında
Ayarlar → Profil Hesabı → API Anahtarları
- "Yeni API Anahtarı oluştur" deyin, bir ad verin ve anahtarı kopyalayın
- Bu anahtar sadece Access Token almak için header'da gönderilir (
api_key
)
İpucu
Anahtarı güvende tutun; kod deposuna, loglara veya client-side koda koymayın.
2- Channel bilgisini alın
- Channel, şirket/entegrasyon kanalınızı tanımlar ve tüm API çağrılarında zorunlu header'dır
- Channel bilgisini
api.support@kolaybi.com
üzerinden talep edebilirsiniz - İsteklerde
Channel: YOUR_CHANNEL
olarak gönderilir
3- Access Token isteği gönderin
Access Token, API anahtarınız ile alınır ve 24 saat geçerlidir. Ardından Bearer token olarak tüm isteklerde kullanılır.
- cURL
- JavaScript
- Python
- PHP
- C#
curl -X POST "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/access_token" \
-H "Channel: YOUR_CHANNEL" \
-H "Content-Type: application/json" \
-d '{"api_key": "YOUR_API_KEY"}'
async function getAccessToken(
apiKey,
channel,
baseUrl = "https://ofis-sandbox-api.kolaybi.com"
) {
const res = await fetch(`${baseUrl}/kolaybi/v1/access_token`, {
method: "POST",
headers: {
Channel: channel,
"Content-Type": "application/json",
},
body: JSON.stringify({ api_key: apiKey }),
});
if (!res.ok) throw new Error(`Access token error: ${res.status}`);
const body = await res.json();
return body.data; // string (Bearer token değeri)
}
import requests
def get_access_token(api_key: str, channel: str, base_url: str = 'https://ofis-sandbox-api.kolaybi.com') -> str:
url = f"{base_url}/kolaybi/v1/access_token"
resp = requests.post(url, headers={"Channel": channel}, json={"api_key": api_key}, timeout=30)
resp.raise_for_status()
return resp.json()["data"] # string token
function getAccessToken(string $apiKey, string $channel, string $baseUrl = 'https://ofis-sandbox-api.kolaybi.com'): string {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $baseUrl . '/kolaybi/v1/access_token');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Channel: ' . $channel, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['api_key' => $apiKey]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === false) {
throw new Exception('cURL error: ' . curl_error($ch));
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status < 200 || $status >= 300) {
throw new Exception('Access token error: HTTP ' . $status);
}
$json = json_decode($response, true);
return $json['data'];
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Text;
using Newtonsoft.Json;
public async Task<string> GetAccessTokenAsync(string apiKey, string channel, string baseUrl = "https://ofis-sandbox-api.kolaybi.com")
{
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, $"{baseUrl}/kolaybi/v1/access_token");
request.Headers.Add("Channel", channel);
var content = new StringContent(
JsonConvert.SerializeObject(new { api_key = apiKey }),
Encoding.UTF8,
"application/json"
);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<dynamic>(content);
return result.data; // string token
}
Başarılı Yanıt (200)
{
"data": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
Geçerlilik
Access Token süresi 24 saattir. Süre dolduğunda aynı endpoint ile yeni token alın.
4- Token'ı isteklerde kullanın
Access Token'ı Authorization
header'ında, Channel'ı Channel
header'ında gönderin.
curl -X GET "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/companies" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Channel: YOUR_CHANNEL"
Gerekli header'lar:
Header | Değer | Zorunluluk |
---|---|---|
Authorization | Bearer YOUR_ACCESS_TOKEN | Evet |
Channel | YOUR_CHANNEL | Evet |