# Netgsm İYS API

> Bu API ile İleti Yönetim Sistemi'ne (İYS) izin kaydedebilir, kayıtlı izinleri sorgulayabilir ve izin sonuçlarının bildirileceği webhook adresinizi…

- **Sürüm:** 1.0
- **Canlı ortam:** `https://ext-api.netgsm.com.tr/iys/v1`
- **OpenAPI tanımı:** https://api-docs.netgsm.com.tr/openapi/iys-v1.yaml
- **HTML sayfası:** https://api-docs.netgsm.com.tr/iys/netgsm-iys-api/

Bu API ile İleti Yönetim Sistemi'ne (İYS) izin kaydedebilir, kayıtlı izinleri sorgulayabilir
ve izin sonuçlarının bildirileceği webhook adresinizi tanımlayabilirsiniz.

## Kimlik doğrulama

Her isteğe `Authorization: Bearer <token>` başlığını eklemelisiniz. Token'ı Netgsm
Authorization API'nin `POST /auth/v3/token` ucundan, kullanıcı adınız ve şifrenizle alırsınız.
Hesabınızda İYS hizmetinin aktif olması gerekir.

## İstek ve yanıt biçimi

- Gövdeler JSON'dur: `Content-Type: application/json`.
- Tarih ve saatler `YYYY-MM-DD HH:mm:ss` biçimindedir, örneğin `2026-02-20 16:46:00`.
- Telefon numaraları `+90XXXXXXXXXX` biçiminde, e-posta adresleri olduğu gibi gönderilir.
- `brandCode`, İYS'deki marka kodunuzdur.

Her yanıt aynı zarfla döner:

```json
{
  "success": true,
  "errorCode": 0,
  "message": "success",
  "data": {}
}
```

`success` işlemin başarılı olup olmadığını, `errorCode` sonucu gösterir; başarılı yanıtta
`errorCode` `0`'dır.

Her yanıtta `X-Thread-Id` başlığı döner. Destek ekibine yazarken bu değeri paylaşmanız,
isteğinizi hızlıca bulmamızı sağlar. İsteğe kendi `X-Request-Id` değerinizi (8-64 karakter,
`A-Z a-z 0-9 . _ -`) eklerseniz `X-Thread-Id` olarak bu değer kullanılır.

## Hata kodları

| errorCode | Hata | HTTP | Açıklama |
|---|---|---|---|
| 50 | `UNAUTHENTICATED` | 401 | Kimlik doğrulama yapılmadı. |
| 51 | `TOKEN_NOT_FOUND` | 401 | Token bulunamadı. |
| 52 | `INVALID_TOKEN` | 401 | Geçersiz token. |
| 53 | `SESSION_EXPIRED` | 401 | Token'ın süresi dolmuş. |
| 60 | `UNAUTHORIZED` | 403 | Yetkisiz erişim. |
| 61 | `FORBIDDEN` | 403 | Erişim engellendi. |
| 63 | `IYS_MODULE_INACTIVE` | 403 | Hesapta İYS hizmeti aktif değil. |
| 70 | `VALIDATION_ERROR` | 422 | İstekteki bir alan kurallara uymuyor; ayrıntı `data.errors` içindedir. |
| 80 | `METHOD_NOT_ALLOWED` | 405 | Adres bu metodu desteklemiyor. |
| 81 | `NOT_FOUND` | 404 | Kayıt bulunamadı. |
| 112 | `DEPENDENCY_ERROR` | 424 | İYS'den geçerli bir yanıt alınamadı. |
| 120 | `BAD_REQUEST` | 400 | Hatalı istek. |
| 130 | `CONFLICT` | 409 | Kayıt zaten mevcut. |
| 141 | `INTEGRATION_ERROR` | 503 | Servis şu anda isteği işleyemiyor; isteği biraz sonra tekrar gönderebilirsiniz. |
| 150 | `TOO_MANY_REQUESTS` | 429 | Çok fazla istek gönderildi. |
| 110 | `SERVER_ERROR` | 500 | Beklenmeyen bir hata oluştu. |

## Kimlik doğrulama şemaları

- `bearer` (HTTP bearer): Authorization API'den aldığınız access token.

## Uç noktalar

### İzinler

İYS'ye izin kaydetme ve kayıtlı izinleri sorgulama.

- [`POST /consents` İzin kaydetme](https://api-docs.netgsm.com.tr/iys/save-consents.md): İzinleri İYS'ye kaydeder.
- [`GET /consents` İzin sorgulama](https://api-docs.netgsm.com.tr/iys/search-consents.md): Bir ya da birden fazla alıcının İYS'deki izin durumunu sorgular.

### Webhook

İzin sonuçlarının bildirileceği adresi tanımlama.

- [`POST /webhooks` Webhook kaydetme ve güncelleme](https://api-docs.netgsm.com.tr/iys/save-webhook.md): İYS'ye yüklediğiniz izinlerin işlenme sonuçlarının ve izin değişikliklerinin bildirileceği adresi tanımlar.
