> ## Documentation Index
> Fetch the complete documentation index at: https://docs.muhasip.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Hızlı başlangıç

> Erişim koşullarını hazırlayın ve ilk API isteğinizi gönderin.

<Tip>
  Entegrasyon kodunu yapay zekâ desteğiyle hazırlıyorsanız [MCP bağlantısını](/baslangic/mcp) ekleyerek güncel
  dokümanları aracınızdan arayabilir ve okuyabilirsiniz.
</Tip>

## Erişim koşulları

API erişimi tanımlanmış etkin bir firma ve geçerli API kimlik bilgileri gerekir. Size verilen `apiUserId` ve `secretKey` değerlerini hazırlayın. Erişim bilgilerinizi yetkili hesap yönetiminden edinin.

İlk `/apps` isteği için `muhasip:apps:read` iznini ve varsa IP erişim kısıtını kontrol edin. İzinlerin nasıl değerlendirildiği [kimlik ve izinler](/baslangic/kimlik-ve-izinler) rehberinde açıklanır.

Firma, API kimliğinden belirlenir. İsteklere farklı firmayı seçmek için `companyId` eklemeyin. Bir uygulama bağlantısı, onaylı POS veya fatura hizmeti gerektiren işlemlerde bu ön koşullar ayrıca sağlanmalıdır. Kimlik doğrulamasının başarılı olması bütün uygulamaların etkin olduğu anlamına gelmez.

Kimlik bilgilerini uygulama sunucunuzdaki ortam değişkenlerinde saklayın. Gerçek anahtarları tarayıcı koduna, kaynak kontrolüne veya loglara yazmayın.

## 1. Erişilebilirliği okuyun

```bash theme={null}
curl 'https://api.muhasip.pro/health'
```

Temsilî cevap:

```json theme={null}
{
  "status": true,
  "uptime": 120.5,
  "timestamp": "2026-10-18T09:00:00.000Z",
  "service": "muhasip-api"
}
```

Bu çağrı API kullanıcısını veya bir banka/fatura bağlantısını doğrulamaz.

## 2. İlk kimlikli isteği gönderin

```bash theme={null}
curl 'https://api.muhasip.pro/apps' \
  -u '<apiUserId>:<secretKey>' \
  -H 'Accept: application/json'
```

Temsilî boş liste cevabı:

```json theme={null}
{ "status": true, "result": [] }
```

HTTP durumunu, ardından varsa işlem cevabının alanlarını değerlendirin. Kimlik doğrulama ayrıntıları için [kimlik ve izinler](/baslangic/kimlik-ve-izinler) rehberini inceleyin.

Entegrasyonunuza uygun işlemleri [API referansından](/api-reference/servis/core-get-apps) seçin; her işlemin izin ve bağlantı koşullarını kontrol edin.

## PHP örneği

PHP cURL uzantısı gerekir. Örnek yalnız uygulama listesini okur; mali işlem yapmaz ve otomatik tekrar uygulamaz.

```php theme={null}
<?php
$apiUserId = getenv('MUHASIP_API_USER_ID');
$secretKey = getenv('MUHASIP_API_SECRET');
if (!$apiUserId || !$secretKey) {
    throw new RuntimeException('API kimlik bilgileri eksik.');
}
$handle = curl_init('https://api.muhasip.pro/apps');
curl_setopt_array($handle, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
    CURLOPT_USERPWD => $apiUserId . ':' . $secretKey,
    CURLOPT_HTTPHEADER => ['Accept: application/json'],
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_TIMEOUT => 30,
]);
$body = curl_exec($handle);
$httpStatus = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
if ($body === false) {
    $error = curl_error($handle);
    curl_close($handle);
    throw new RuntimeException('Bağlantı tamamlanamadı: ' . $error);
}
curl_close($handle);
try {
    $data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
} catch (JsonException $error) {
    throw new RuntimeException('JSON olmayan cevap; HTTP ' . $httpStatus);
}
if ($httpStatus !== 200 || ($data['status'] ?? null) !== true) {
    throw new RuntimeException('İstek başarısız; HTTP ' . $httpStatus);
}
$apps = $data['result'] ?? [];
echo 'Uygulama sayısı: ' . count($apps) . PHP_EOL;
```

## Node.js örneği

Yerleşik `https` modülünü kullanır; ek paket gerektirmez. Kimlik ve ham cevap loglanmaz.

```javascript Node.js theme={null}
const https = require("https")
const apiUserId = process.env.MUHASIP_API_USER_ID
const secretKey = process.env.MUHASIP_API_SECRET
if (!apiUserId || !secretKey) throw new Error("API kimlik bilgileri eksik.")

const request = https.get(
  "https://api.muhasip.pro/apps",
  {
    auth: `${apiUserId}:${secretKey}`,
    headers: { Accept: "application/json" },
    timeout: 30000
  },
  (response) => {
    response.setEncoding("utf8")
    let body = ""
    response.on("data", (chunk) => {
      body += chunk
    })
    response.on("error", () => {
      console.error("Cevap tamamlanamadı.")
    })
    response.on("end", () => {
      let data
      try {
        data = JSON.parse(body)
      } catch {
        console.error(`JSON olmayan cevap; HTTP ${response.statusCode}`)
        return
      }
      if (response.statusCode !== 200 || data.status !== true) {
        console.error(`İstek başarısız; HTTP ${response.statusCode}`)
        return
      }
      console.log("Uygulama sayısı:", Array.isArray(data.result) ? data.result.length : 0)
    })
  }
)
request.on("timeout", () => request.destroy(new Error("İstek zaman aşımına uğradı.")))
request.on("error", () => {
  console.error("Bağlantı tamamlanamadı.")
})
```

## 3. İş akışını seçin

Belge işlemleri için [fatura](/rehberler/kaynaklar/fatura) ve [e-Arşiv](/rehberler/kaynaklar/e-arsiv), tahsilat için [POS](/rehberler/kaynaklar/pos), banka verileri için [banka](/rehberler/kaynaklar/banka) rehberine geçin. Her işlemde ön koşulları ve yan etkileri okuyun. Mali yazma işlemlerinden önce [işlem takibini](/rehberler/islem-takibi) ve gereken Idempotency-Key başlığını inceleyin. Ayrı bir deneme ortamı veya bütün işlemleri güvenli denemeye çeviren genel bir parametre varsaymayın.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.