---
title: "iletiMerkezi API'sinde Test ve Geliştirme"
description: "iletiMerkezi'nin ayrı sandbox API'si yoktur — production anahtarıyla güvenli test pattern'leri: yan etkisiz endpoint'ler, kendi numarasına TEST prefix gönderim, doğrulama akışı."
slug: /docs/api/test-mode
locale: tr
audience: developer
last_updated: 2026-04-29
auth: api-key-and-hash
related: [authentication, get-balance, send-sms]
alternates:
  tr: https://www.iletimerkezi.com/docs/api/test-mode
  en: https://www.iletimerkezi.com/en/docs/api/test-mode
---

# iletiMerkezi API'sinde Test ve Geliştirme

iletiMerkezi'nin **ayrı bir sandbox / test API'si yoktur**. Aynı API anahtarı hem production hem geliştirme için kullanılır; "test mode" bir endpoint değil, bir **disiplin**. Bu sayfa, gerçek SMS göndermeden ya da kontrolsüz kontör harcamadan API'yi denemek için pratik kuralları tanımlar.

## Yan etkisiz endpoint'ler — entegrasyonu önce buradan test edin

Aşağıdaki endpoint'ler kontör harcamaz, gerçek SMS göndermez, hata anında bile state değiştirmez. Doğrulama, otomasyon ve sürekli entegrasyon için ideal:

- [`get-balance`](./get-balance.md) — Auth doğrulama + bakiye okuma
- [`get-sender`](./get-sender.md) — Onaylı sender ID listesi
- [`get-blacklist`](./get-blacklist.md) — Kara liste sorgu
- [`get-report`](./get-report.md) — Geçmiş sipariş raporu (yeni SMS göndermez)
- [`get-inbox`](./inbox.md) — Gelen SMS listesi

İlk entegrasyon adımı genellikle `get-balance`'dır:

```bash
curl -X POST 'https://api.iletimerkezi.com/v1/get-balance/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "request": {
      "authentication": {
        "key": "API_KEY",
        "hash": "API_HASH"
      }
    }
  }'
```

`200 İşlem başarılı` dönüyorsa kimlik doğrulama, panel toggle ve istek formatı doğru demektir. Diğer endpoint'leri çağırmaya hazırsınız.

## Gerçek SMS test pattern'leri

`send-sms`'i denemek istediğinizde her başarılı çağrı **gerçek SMS gönderir ve kontör harcar**. Güvenli test için:

### 1. Kendi cep numaranıza gönderin

Test mesajları sadece sizin (veya geliştirici ekibinizin) erişebileceği numaralara gönderilmelidir. Yanlış alıcı = spam ve marka riski.

### 2. Mesaj içeriğine "TEST" prefix ekleyin

Alıcı (kendinizsiniz) test mesajını üretim mesajından ayırt edebilmeli. Standart pattern:

```
TEST send-sms entegrasyon doğrulaması, 2026-04-29 14:35
```

### 3. Mesaj uzunluğunu sınırlayın

iletiMerkezi'nin gerçek karakter limitleri, B186 operatör kodu sebebiyle standart SMS'tekinden biraz düşüktür: İngilizce **155**, Türkçe **150**, Unicode **65** karakter (ilk parça). Test mesajlarınızı **140 karakteri aşmayacak** şekilde ve mümkünse Türkçe karakter olmadan kurun — beklenmeyen multi-part bölünmesi ve kontör çarpımı olmaz. Detaylı tablo: [overview](./overview.md).

### 4. Önce ve sonra bakiyeyi loglayın

```javascript
const before = await client.account().balance();
await client.sms().send(myNumber, 'TEST mesajı');
const after = await client.account().balance();
console.log('Tüketilen kontör:', before.getCredits() - after.getCredits());
```

`send-sms` 200 yanıtı kuyruğa alındığı anda kontör düşer (teslim onayı beklenmez).

### 5. `iys: "0"` (transactional) kullanın

Test mesajları ticari değildir. `iys: "0"` ile gönderim İYS sorgulamasından muaf tutulur. Detay: [send-sms](./send-sms.md).

## CI / otomasyon için yaklaşım

Sürekli entegrasyon (CI) ortamında **`send-sms` çağırmaktan kaçının**. Bunun yerine:

- Auth + bağlantı doğrulaması: `get-balance` çağrısı (kontör harcamaz)
- Body şema doğrulaması: HTTP istemcinizi mock'layın, gönderdiğiniz JSON'un beklenen yapıda olduğunu unit test'te doğrulayın
- Geliştirme ortamı için ayrı bir test hesabı: Production hesabı yerine ekibe özel ayrı bir iletiMerkezi hesabı açıp anahtarını CI secret'ına koyun. Test bütçesi production'dan ayrılır.

## Idempotency ve duplicate koruması

Aynı `sender + alıcı + mesaj metni` kombinasyonunu kısa süre içinde tekrar gönderirseniz `451 — Tekrar eden sipariş` hatası alırsınız (memory: bu davranış `send-sms` testinde 2026-04-29 doğrulandı). Test akışınızda mesaj sonuna unique bir nonce (timestamp, UUID) ekleyin:

```
TEST send-sms 2026-04-29T14:35:42Z
```

## `APITEST` sender ile sender ID onayı beklemeden test

BTK mevzuatı gereği SMS göndermek için onaylı bir sender ID (başlık) zorunludur ve onay süreci 1-2 iş günü alır. Bu süreyi beklemeden API entegrasyonunu test edebilmeniz için iletiMerkezi özel bir sender değerine izin verir: **`APITEST`**.

`send-sms` çağrısında `order.sender` alanını `"APITEST"` olarak gönderdiğinizde:

- **HTTP akışı tam çalışır:** istek başarıyla işlenir, `200` yanıtı + `orderId` döner.
- **`get-report`, webhook, `get-balance` doğru çalışır:** sipariş raporlanır, kontör düşer (gerçek SMS gönderimi olmasa bile).
- **Ama mesaj metni değiştirilir:** Alıcı her zaman aşağıdaki sabit metni alır, sizin gönderdiğiniz `text` alanı yok sayılır:

  > Bu bir deneme mesajıdır. SMS gonderim hizmetimizi test ettiginiz icin tesekkur ederiz. Detayli bilgiye www.iletimerkezi.com adresinden ulasabilirsiniz.

**Ne zaman `APITEST` kullanın:**

- Sender ID onayı beklerken HTTP entegrasyon akışını uçtan uca test etmek
- SDK/HTTP istemcinizin doğru request/response yapısını ürettiğini doğrulamak
- Webhook handler'ınızı gerçek bir `accepted` / `delivered` callback ile test etmek
- get-report, get-balance gibi yan endpoint'lerin gerçek bir `orderId` ile çalıştığını görmek

**Ne zaman kullanmayın:**

- Mesaj içeriğinin doğru render edildiğini test etmek (içerik değişiyor — kendi sender'ınız onaylanınca tekrar test edin)
- Production akışı (sender ID onayı geldikten sonra geçin)
- Karakter limiti / multi-part testleri (sabit metin sabit uzunlukta gelir)

## Test API kimlik bilgileri

iletiMerkezi'nin paylaşılabilir bir test anahtarı yoktur. Geliştirici ekipler kendi test hesaplarını panelden açar; **yeni hesaplara test/değerlendirme amaçlı 100 SMS kredisi otomatik tanımlanır**, bu da ilk entegrasyonu ek bir maliyet olmadan denemenize yeter. Anahtarlarınızı uygulama secret yöneticisine koyun (Vault, AWS Secrets, GitHub Actions secrets).

API anahtarınızı **asla** repository'ye, public dosyaya, blog yazısına veya screenshot'a sızdırmayın — anahtar tüm hesabınıza erişim verir, tek API çağrısıyla tüm bakiye harcanabilir.

## Common Pitfalls

- **Sandbox'a güvenmeyin, çünkü yok.** "Test mode" bir endpoint flag'i değil, sizin uyguladığınız bir disiplin.
- **Production hesabınızda CI testi koşturmayın.** Tek bir hatalı script tüm bakiyeyi yakabilir; ayrı test hesabı standart pattern'dir.
- **`send-sms`'i CI'da kullanmayın.** Mock + unit test daha hızlı, daha güvenli, daha ucuz.
- **Yanlış alıcı = gerçek hasar.** Test sırasında yanlış numara verme riski (kopyala-yapıştır, regex hatası, lokal kayıt) gerçek bir kullanıcıya istenmeyen mesaj gönderir; numara whitelist'i kullanın.

## Related

- [Kimlik doğrulama (authentication)](./authentication.md)
- [Bakiye sorgulama (get-balance)](./get-balance.md)
- [SMS gönderme (send-sms)](./send-sms.md)
- [Hata kodları tablosu](./error-codes.md)
