# Alan Adı Uzantıları

https://dev.wisecp.com/tr/alan-adi-uzantilari

Sattığınız alan adı uzantılarını, fiyatlarını ve kayıt belgelerini yöneten on uç.

## Genel Bakış

Bu uçlar sattığınız alan adı uzantılarını yönetir: hangi uzantılar açık, hangi tescil kuruluşuna bağlı, ne kadara satılıyor ve kayıt sırasında hangi belgeler isteniyor.

Uzantı adres içinde **kendi adıyla** geçer, kimlikle değil. Fiyat tablosu üç kademelidir: önce işlem tipi, sonra yıl, sonra para birimi. Aynı uzantı beş yıllık kayıtta farklı, tek yıllık yenilemede farklı fiyatlanabilir.

## Referans

### Uzantıları Listeleme

get/api/v1/admin/products/domain/tlds

`Products/GetDomainTlds` admin sayfalı

Kurulumdaki alan adı uzantılarını döndürür.

Sorgu parametreleri 3

searchstringUzantıda arar.

pageintVarsayılan 1.

limitintVarsayılan 25, en çok 100.

Dönen alanlar data[] — 7

idintUzantı kaydının kimliği.

extensionstringUzantının kendisi. Diğer uçlarda adres parçası budur, kimlik değil.

statusstring`active` ya da `inactive`.

rankintGörüntülenme sırası.

modulestringBağlı tescil modülü. Bağlı değilse `none`; o hâlde kayıt otomatik yapılamaz.

auto_pricingboolOtomatik fiyatlama açık mı.

featuresobject 4 alanUzantının desteklediği işlemler.

dns_manageboolMüşteri DNS kayıtlarını yönetebilir.

forwardingboolAlan adı yönlendirmesi açık.

whois_privacyboolKayıt sahibi bilgisi gizlenebilir.

epp_codeboolTransfer kodu alınabilir.

Meta 4

totalintSüzgece uyan toplam kayıt.

pageintBulunduğunuz sayfa.

limitintSayfa boyutu.

next_pageintSonraki sayfa. Sıfır son sayfada olduğunuz anlamına gelir.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -G 'https://panel.ornek.com/api/v1/admin/products/domain/tlds' \
  -H "Authorization: Bearer $API_KEY" \
  -d limit=100
```

```javascript
const url = new URL('https://panel.ornek.com/api/v1/admin/products/domain/tlds');
url.searchParams.set('limit', '100');

const res  = await fetch(url, { headers: { Authorization: `Bearer ${apiKey}` } });
const body = await res.json();
```

```php
$url = 'https://panel.ornek.com/api/v1/admin/products/domain/tlds?' . http_build_query(['limit' => 100]);

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
$response = Api::Products()->GetDomainTlds([], ['limit' => 100]);
```

### Uzantı Detayı

get/api/v1/admin/products/domain/tlds/{tld}

`Products/GetDomainTld` admin uzantıyla adreslenir

Tek bir uzantıyı maliyetleri ve tüm fiyat tablosuyla döndürür.

Dönen alanlar data — 13

idintUzantı kaydının kimliği.

extensionstringUzantının kendisi.

statusstring`active` ya da `inactive`.

rankintGörüntülenme sırası.

modulestringBağlı tescil modülü.

auto_pricingboolOtomatik fiyatlama açık mı.

featuresobject 4 alanUzantının desteklediği işlemler.

dns_manageboolMüşteri DNS kayıtlarını yönetebilir.

forwardingboolAlan adı yönlendirmesi açık.

whois_privacyboolKayıt sahibi bilgisi gizlenebilir.

epp_codeboolTransfer kodu alınabilir.

min_yearsintEn az kayıt süresi, yıl olarak.

max_yearsintEn çok kayıt süresi, yıl olarak.

register_costfloatTescil kuruluşuna ödenen kayıt maliyeti.

renewal_costfloatTescil kuruluşuna ödenen yenileme maliyeti.

transfer_costfloatTescil kuruluşuna ödenen transfer maliyeti.

pricingobjectÜç kademeli eşleme: işlem tipi, sonra yıl, sonra para birimi kodu. En içteki nesne `amount`, `status`, `promotion` ve `promotion_status` taşır.

Hatalar 2

not_found404Uzantı bulunamadı.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/com' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/com', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/com');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
$response = Api::Products()->GetDomainTld(['tld' => 'com']);

// Fiyat tablosu uc kademelidir: tip, yil, para birimi.
$oneYear = $response['data']['pricing']['register']['1']['USD']['amount'] ?? null;
```

Yanıt 200

```json
{
  "data": {
    "id": 3,
    "extension": "com",
    "status": "active",
    "module": "Enom",
    "auto_pricing": false,
    "features": {
      "dns_manage": true,
      "forwarding": false,
      "whois_privacy": true,
      "epp_code": true
    },
    "min_years": 1,
    "max_years": 10,
    "register_cost": 8.5,
    "renewal_cost": 9,
    "transfer_cost": 8.5,
    "pricing": {
      "register": {
        "1": {
          "USD": {
            "amount": 12,
            "status": true,
            "promotion": 0,
            "promotion_status": false
          }
        }
      }
    }
  }
}
```

### Uzantı Ekleme

post/api/v1/admin/products/domain/tlds

`Products/CreateDomainTld` admin 201

Yeni bir uzantı ekler. İsterseniz başlangıç fiyatlarını ve logoyu aynı istekte verirsiniz.

Gövde 7

extensionstringzorunluUzantı. Baştaki nokta atılır.

registrarstringTescil modülünün adı. Varsayılan bağlı değil.

statusstring`active` ya da `inactive`.

display_orderintGörüntülenme sırası.

featuresobject 4 alanUzantının desteklediği işlemler.

dns_manageboolMüşteri DNS kayıtlarını yönetebilir.

forwardingboolAlan adı yönlendirmesi açık.

whois_privacyboolKayıt sahibi bilgisi gizlenebilir.

epp_codeboolTransfer kodu alınabilir.

pricingobjectPara birimi kodundan `{register, transfer, renewal}` nesnesine eşleme. Burada yıl kırılımı yoktur; ayrıntılı tablo fiyatlama ucundan girilir.

logostringUzantı logosu. base64 veri adresi ya da indirilebilir bir bağlantı.

Dönen alanlar data — 13

dataobjectOluşan uzantı. Detay ucuyla aynı şekildedir, ancak yeni uzantı henüz fiyat taşımaz, bu yüzden `pricing` boş döner.

Hatalar 4

extension_required422`extension` boş.

extension_exists422Bu uzantı zaten kayıtlı.

create_failed422Ekleme başarısız oldu.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X POST 'https://panel.ornek.com/api/v1/admin/products/domain/tlds' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"extension":"com","registrar":"Enom","status":"active","features":{"dns_manage":true,"whois_privacy":true},"pricing":{"USD":{"register":12,"transfer":12,"renewal":14}}}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    extension: 'com',
    registrar: 'Enom',
    status: 'active',
    features: { dns_manage: true, whois_privacy: true },
    pricing: { USD: { register: 12, transfer: 12, renewal: 14 } },
  }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'extension' => 'com',
        'registrar' => 'Enom',
        'status'    => 'active',
        'features'  => ['dns_manage' => true, 'whois_privacy' => true],
        'pricing'   => ['USD' => ['register' => 12, 'transfer' => 12, 'renewal' => 14]],
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Buradaki fiyat tek yillik baslangictir; yil kirilimi icin fiyatlama ucunu kullanin.
$response = Api::Products()->CreateDomainTld([
    'extension' => 'com',
    'registrar' => 'Enom',
    'pricing'   => ['USD' => ['register' => 12, 'renewal' => 14]],
]);
```

### Uzantıyı Silme

delete/api/v1/admin/products/domain/tlds/{tld}

`Products/DeleteDomainTld` admin fiyatlar da gider

Uzantıyı ve fiyatlarını siler.

Dönen alanlar data — 2

deletedboolSilme başarılı mı.

extensionstringSilinen uzantı.

Hatalar 3

not_found404Uzantı bulunamadı.

blocked_by_gate422`gate:domain.tld_delete` kancası işlemi veto etti.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/com' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/com', {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/com');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
$response = Api::Products()->DeleteDomainTld(['tld' => 'com']);
```

### Toplu İşlem

post/api/v1/admin/products/domain/tlds/bulk

`Products/BulkDomainTlds` admin iki farklı gövde

Birden çok uzantıyı açar, kapatır, siler ya da ayarlarını değiştirir.

Gövde 3

actionstringzorunluİşlem: `enable`, `disable`, `delete` ya da `change`.

extensionsstring[]Etkilenecek uzantılar. İlk üç işlemde gerekir.

changesobject[]Uzantı başına değişiklik listesi. Her eleman `extension` ve değiştirilecek alanları taşır: özellikler, modül, durum, sıra. Yalnız `change` işleminde.

Dönen alanlar data — 2

actionstringUygulanan işlem.

appliedstring[]İşlemin gerçekten uygulandığı uzantılar.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X POST 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/bulk' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"action":"disable","extensions":["net","org"]}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/bulk', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ action: 'disable', extensions: ['net', 'org'] }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/bulk');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'action'     => 'disable',
        'extensions' => ['net', 'org'],
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// 'change' islemi uzantilar degil degisiklikler listesi ister.
$response = Api::Products()->BulkDomainTlds([
    'action'  => 'change',
    'changes' => [
        ['extension' => 'net', 'whois_privacy' => true],
        ['extension' => 'org', 'status' => 'inactive'],
    ],
]);
```

### Fiyatlamayı Ayarlama

put/api/v1/admin/products/domain/tlds/{tld}/pricing

`Products/SetDomainTldPricing` admin üç kademeli tablo

Uzantının kayıt, transfer ve yenileme fiyatlarını yıl ve para birimi kırılımıyla yazar.

Gövde 2

auto_pricingboolOtomatik fiyatlamayı açar ya da kapatır.

pricingobjectzorunluÜç kademeli eşleme: işlem tipi (`register`, `transfer`, `renewal`), sonra yıl, sonra para birimi kodu. En içteki nesne `status`, `fee`, `promotion_status` ve `promotion` taşır.

Dönen alanlar data — 13

dataobjectGüncel uzantı. Detay ucuyla aynı şekildedir: fiyatlar tip, yıl, para birimi sırasıyla iç içe döner, bu yüzden gönderdiğiniz şeklin korunduğunu varsaymak yerine `pricing` eşlemesinin tamamını okuyun.

Hatalar 3

not_found404Uzantı bulunamadı.

update_failed422Fiyatlama kaydedilemedi.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X PUT 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/com/pricing' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"auto_pricing":false,"pricing":{"register":{"1":{"USD":{"status":true,"fee":12,"promotion_status":false,"promotion":0}}}}}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/com/pricing', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    auto_pricing: false,
    pricing: {
      register: {
        1: { USD: { status: true, fee: 12, promotion_status: false, promotion: 0 } },
      },
    },
  }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/com/pricing');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'auto_pricing' => false,
        'pricing'      => [
            'register' => [
                1 => ['USD' => ['status' => true, 'fee' => 12]],
            ],
        ],
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Okurken alan adi 'amount', yazarken 'fee' — ikisi ayni degeri tasir.
$current = Api::Products()->GetDomainTld(['tld' => 'com'])['data']['pricing'];
$amount  = $current['register']['1']['USD']['amount'];

Api::Products()->SetDomainTldPricing([
    'tld'     => 'com',
    'pricing' => [
        'register' => [1 => ['USD' => ['status' => true, 'fee' => $amount + 1]]],
    ],
]);
```

### Belge Seti Olan Uzantılar

get/api/v1/admin/products/domain/docs

`Products/GetDomainDocsList` admin

Kayıt sırasında belge isteyen uzantıları döndürür.

Sorgu parametreleri 1

searchstringUzantıda arar.

Dönen alanlar data[] — 1

tldstringUzantının kendisi.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/products/domain/docs' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/docs', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/docs');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
$response = Api::Products()->GetDomainDocsList();
```

### Belge Setini Okuma

get/api/v1/admin/products/domain/tlds/{tld}/docs

`Products/GetDomainTldDocs` admin

Bir uzantının kayıt sırasında istediği belgeleri döndürür.

Dönen alanlar data — 3

tldstringUzantının kendisi.

descriptionobjectDil kodundan açıklamaya eşleme. Müşteriye belge setinin başında gösterilir.

docsobject[] 6 alanİstenen belgeler.

idintBelge kimliği.

typestring`text`, `file` ya da `select`.

sortnumintSıra numarası.

statusstring`active` ya da `inactive`.

namesobjectDil kodundan belge adına eşleme.

optionsarraySeçim tipinde sunulan değerler.

Hatalar 2

not_found404Uzantı bulunamadı.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
$response = Api::Products()->GetDomainTldDocs(['tld' => 'us']);
```

### Belge Setini Yazma

put/api/v1/admin/products/domain/tlds/{tld}/docs

`Products/SetDomainTldDocs` admin tam değiştirme

Belge setini yazar. Gönderdiğiniz set yeni gerçektir; içinde olmayan belge silinir.

Gövde 2

descriptionobjectDil kodundan açıklamaya eşleme.

docsobjectzorunluBelge anahtarından belge nesnesine eşleme. Her belge tip, dil başına ad ve tipe göre ek kurallar taşır: izinli uzantılar, en büyük boyut, seçim değerleri. Yeni belgeye kendi uydurduğunuz bir anahtar verin; mevcut belgede kaydın kimliğini kullanın.

Dönen alanlar data — 3

dataobjectGüncel belge seti. Getirme ucuyla aynı şekildedir, yani uydurduğunuz anahtarlar kayıt kimliği olarak döner.

Hatalar 3

not_found404Uzantı bulunamadı.

update_failed422Set kaydedilemedi. Belge adı boş, uzantı yinelenmiş ya da değişiklik yok olabilir.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X PUT 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"description":{"en":"Provide a valid ID."},"docs":{"n1":{"type":"text","name":{"en":"Registrant ID"}}}}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    description: { en: 'Provide a valid ID.' },
    docs: {
      n1: { type: 'text', name: { en: 'Registrant ID' } },
    },
  }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'description' => ['en' => 'Provide a valid ID.'],
        'docs'        => [
            'n1' => ['type' => 'text', 'name' => ['en' => 'Registrant ID']],
        ],
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Bir belge EKLEMEK icin mevcut seti de gonderin, yoksa oncekiler silinir.
$existing = Api::Products()->GetDomainTldDocs(['tld' => 'us'])['data']['docs'];

$docs = [];
foreach ($existing as $doc) $docs[$doc['id']] = ['type' => $doc['type'], 'name' => $doc['names']];
$docs['n1'] = ['type' => 'file', 'name' => ['en' => 'Passport scan']];

Api::Products()->SetDomainTldDocs(['tld' => 'us', 'docs' => $docs]);
```

### Belge Setini Silme

delete/api/v1/admin/products/domain/tlds/{tld}/docs

`Products/DeleteDomainTldDocs` admin

Uzantının belge setinin tamamını siler.

Dönen alanlar data — 2

deletedboolSilme başarılı mı.

tldstringUzantının kendisi.

Hatalar 2

not_found404Bu uzantı için belge seti yok.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs', {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/products/domain/tlds/us/docs');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
$response = Api::Products()->DeleteDomainTldDocs(['tld' => 'us']);
```

## Tuzaklar

> **Okurken amount, yazarken fee**
> 
> Fiyat tablosunda aynı değer okurken `amount`, yazarken `fee` adıyla geçer. Detaydan okuduğunuz tabloyu olduğu gibi geri göndermek bu yüzden çalışmaz; alan adını dönüştürmeniz gerekir.

> **Belge seti tam olarak değiştirilir**
> 
> Belge yazma ucu birleştirme yapmaz. Bir belge eklemek için mevcut setin tamamını da göndermeniz gerekir; göndermezseniz eskiler silinir ve o uzantıda kayıt için istenen belgeler kaybolur. Yeni belgeye kendi uydurduğunuz bir anahtar verin, mevcut belgede kaydın kimliğini kullanın.

> **Toplu uç iki farklı gövde bekler**
> 
> Açma, kapatma ve silme için uzantı listesi gönderilir; ayar değiştirme için uzantı başına değişiklik listesi. Yanlış alanı göndermek işlemi sessizce boş bırakır: dönen liste boş gelir ama hata da alınmaz. Uygulananları döndüğü listeden doğrulayın.

> **Modülsüz uzantı elle yürür**
> 
> Tescil modülü bağlı değilse uzantı satılabilir ama kayıt, transfer ve yenileme otomatik çalışmaz; bu işleri operatör elle yapar. Uzantıyı açmadan önce modülün bağlı olduğunu doğrulayın.

## İlgili Makaleler

- [Alan Adı Fiyatlama ve Ayarları](https://dev.wisecp.com/tr/alan-adi-fiyatlama)
- [Ürün Uçları](https://dev.wisecp.com/tr/urun-uclari)
