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

# Webhook Uç Nokta Kılavuzu

> Tüm iklim.co webhook alarm teslimatlarında ortak olan kimlik doğrulama ve yanıt gereksinimleri.

## Gelen istek kimlik doğrulaması

iklim.co bir alarmı webhook uç noktanıza ilettiğinde, alarm kaydı sırasında yapılandırdığınız kimlik bilgilerini ekler. Tam mekanizma, seçtiğiniz kimlik doğrulama türüne bağlıdır:

| Kimlik doğrulama türü                  | Kimlik bilgileri nasıl iletilir                                                      |
| -------------------------------------- | ------------------------------------------------------------------------------------ |
| **Basic**                              | `Authorization: Basic <base64(kullanıcıAdı:şifre)>` başlığı                          |
| **API Key — başlık olarak**            | `X-API-Key: <api-anahtarınız>` başlığı                                               |
| **API Key — sorgu parametresi olarak** | URL'ye `?apiKey=<api-anahtarınız>` eklenir                                           |
| **JWT**                                | `Authorization: Bearer <jwt-token>` başlığı                                          |
| **HMAC İmzası**                        | `X-Client-Id`, `X-Signature`, `X-HmacAlgorithm`, `X-Timestamp`, `X-Nonce` başlıkları |

<Tip>
  **API Key** kimlik doğrulamasını seçtiyseniz, iki iletim modundan (`asHeader` veya `asQueryParameter`) yalnızca biri aktif olur — ikisi aynı anda kullanılmaz.
</Tip>

***

## Uç noktanızın yanıtı

Alarm yükünü aldıktan sonra webhook uç noktanız HTTP `200` ve `AlarmReceived` şemasına uygun bir JSON gövdesi ile yanıt vermelidir. iklim.co, teslimatın başarılı olup olmadığına ya da yeniden denenmesi gerekip gerekmediğine karar vermek için hem HTTP durum kodunu hem de gövde içindeki `status` alanını değerlendirir.

<Tabs>
  <Tab title="Beklenen yanıt 💾" icon="code">
    ```json theme={null}
    {
      "id": "a1b2c3d4-0000-4e5f-9876-000000000001",
      "status": "SUCCESS",
      "timeEpochMillis": 1726286415123
    }
    ```
  </Tab>

  <Tab title="Yanıt alanları 📚" icon="table-list">
    | Alan              | Tip    | Açıklama                                                                                                                                                                                                        |
    | ----------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`              | string | Alınan alarm yükündeki `id` değerini olduğu gibi geri gönderin. iklim.co bu değeri gönderilen alarmın `id`'si ile karşılaştırır; uyuşmazlık geçici bir hata olarak değerlendirilerek yeniden denemeye yol açar. |
    | `status`          | enum   | Uç noktanız tarafından bildirilen işlem sonucu (aşağıdaki durum tablosuna bakın).                                                                                                                               |
    | `timeEpochMillis` | number | Uç noktanızın alarmı işlediği andaki Unix epoch zaman damgası (milisaniye).                                                                                                                                     |

    #### `Status` değerleri

    | Değer       | Anlam                                                                         | iklim.co aksiyonu                            |
    | ----------- | ----------------------------------------------------------------------------- | -------------------------------------------- |
    | `SUCCESS`   | Alarm başarıyla alındı ve işlendi.                                            | Yeniden denemeyi durdur, sonraki alarma geç. |
    | `CANCELLED` | Sisteminiz bu alarm için teslimatı reddetti.                                  | Yeniden denemeyi durdur, sonraki alarma geç. |
    | `FAILURE`   | Sizin tarafınızda geçici bir hata oluştu (ör. bağımlı servis kullanılamıyor). | Yeniden deneme politikasını uygula.          |
    | `TIMEOUT`   | Uç noktanız alarmı işlerken dahili zaman aşımına uğradı.                      | Yeniden deneme politikasını uygula.          |
    | `UNKNOWN`   | Nedeni belirsiz beklenmedik bir durum oluştu.                                 | Yeniden deneme politikasını uygula.          |
  </Tab>

  <Tab title="HTTP durum kodu matrisi 🔍" icon="list-check">
    iklim.co, HTTP durum kodunu **yanıt gövdesini incelemeden önce** değerlendirir. 2xx dışındaki yanıtlar gövde düzeyinde değerlendirmeye ulaşmaz.

    | HTTP | Gövde durumu                   | Neden                               | Aksiyon                 |
    | ---- | ------------------------------ | ----------------------------------- | ----------------------- |
    | 200  | `SUCCESS`                      | Başarıyla işlendi                   | Yeniden denemeyi durdur |
    | 200  | `CANCELLED`                    | Uç nokta teslimatı reddetti         | Yeniden denemeyi durdur |
    | 200  | `FAILURE`                      | Alıcı tarafında geçici hata         | Yeniden dene            |
    | 200  | `TIMEOUT`                      | Alıcı tarafında zaman aşımı         | Yeniden dene            |
    | 200  | `UNKNOWN`                      | Alıcı tarafında beklenmedik hata    | Yeniden dene            |
    | 200  | id uyuşmazlığı veya null gövde | Korelasyon kontrolü başarısız       | Yeniden dene            |
    | 400  | —                              | Yük bozuk veya eksik alanlar var    | Yeniden dene            |
    | 401  | —                              | Yetkilendirme geçersiz veya eksik   | Yeniden denemeyi durdur |
    | 403  | —                              | Erişim reddedildi                   | Yeniden denemeyi durdur |
    | 404  | —                              | Uç nokta kaynağı bulunamadı         | Yeniden denemeyi durdur |
    | 405  | —                              | HTTP yöntemi desteklenmiyor         | Yeniden denemeyi durdur |
    | 429  | —                              | Hız limiti aşıldı                   | Yeniden dene            |
    | 500  | —                              | Sunucu tarafında beklenmedik hata   | Yeniden dene            |
    | 502  | —                              | Geçersiz yukarı yön yanıtı          | Yeniden dene            |
    | 503  | —                              | Servis geçici olarak kullanılamıyor | Yeniden dene            |
    | 504  | —                              | Yukarı yön ağ geçidi zaman aşımı    | Yeniden dene            |
  </Tab>
</Tabs>
