# Veri modelleri

İç içe alanların türü bu modellerden gelir. İzin verilmeyen veya include ile seçilmeyen alan yanıtta bulunmayabilir; null ayrı bir değerdir.

## Address

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `address_line` | metin · null olabilir | Hayır | Adres satırı; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `city` | metin · null olabilir | Hayır | İl; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `district` | metin · null olabilir | Hayır | İlçe; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `full_name` | metin · null olabilir | Hayır | Ad soyad; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `neighborhood` | metin · null olabilir | Hayır | Mahalle; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `neighborhood_area` | metin · null olabilir | Hayır | Varsa bağlı köy, semt veya belde; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `phone` | metin · null olabilir | Hayır | Telefon; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `postal_code` | metin · null olabilir | Hayır | Posta kodu; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `village` | true/false · null olabilir | Hayır | Köy adresi işareti; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |

## AnonymizeCustomer

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `confirm` | sabit "anonymize" | Evet | Geri alınamaz anonimleştirme için zorunlu açık onay; tam olarak anonymize yazın. | `"anonymize"` |
| `reason` | metin (en çok 1000 karakter) · null olabilir | Hayır | İsteğe bağlı gerekçe; kişisel veri yazmayın. Denetim kaydında maskelenir, yanıtta ve olayda yayımlanmaz. | `"Müşterinin KVKK silme isteği."` |

## ApplicationIdentity

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin | Evet | Uygulamanın app_ önekli kimliği. | `"app_1234567890abcdef1234567890abcdef"` |
| `installation_id` | metin | Evet | Bu işletmedeki kurulumun ins_ önekli kimliği. | `"ins_1234567890abcdef1234567890abcdef"` |
| `name` | metin | Evet | Uygulama adı. | `"Örnek uygulama"` |

## Attempt

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `attempted_at` | tarih-saat | Evet | Teslim denemesi zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `duration_ms` | tam sayı | Evet | Teslim denemesinin milisaniye cinsinden süresi. | `120` |
| `error` | metin · null olabilir | Evet | Denemenin hata kodu; başarıda null. | `null` |
| `id` | metin | Evet | Kaynağın dış kimliği; wha_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"wha_1234567890abcdef1234567890abcdef"` |
| `status_code` | tam sayı · null olabilir | Evet | Alıcı HTTP durum kodu; ağ hatasında null. | `200` |

## Billing

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `company_name` | metin · null olabilir | Hayır | Fatura unvanı; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `tax_number` | metin · null olabilir | Hayır | Vergi/kimlik numarası; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `tax_office` | metin · null olabilir | Hayır | Vergi dairesi; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |

## Box

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `depth` | sayı (en çok 1000) | Evet | Bir kolinin boyu, cm. | `20` |
| `height` | sayı (en çok 1000) | Evet | Bir kolinin yüksekliği, cm. | `20` |
| `weight` | sayı (en çok 10000) | Evet | Bir kolinin ağırlığı, kg. | `1` |
| `width` | sayı (en çok 1000) | Evet | Bir kolinin eni, cm. | `20` |
| `count` | tam sayı (en az 1; en çok 99) | Hayır | Aynı ölçüdeki koli sayısı. | `1` |

## Brand

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin | Evet | Kaynağın dış kimliği; sto_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"sto_1234567890abcdef1234567890abcdef"` |
| `name` | metin | Evet | Erişilebilen markanın adı. | `"Örnek Marka"` |

## BrandFields

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `logo` | metin (en çok 2000 karakter) · null olabilir | Hayır | Paneldeki ürün markası logosunun URL adresi; null temizler. | `null` |
| `name` | metin (en çok 500 karakter) · null olabilir | Hayır | Görünen ad; aynı ad paneldeki gibi ayrı kayıt açabilir. | `"Mutfak"` |
| `sort_order` | tam sayı (en az 0; en çok 2147483647) · null olabilir | Hayır | Sıra; küçük değer önce gelir. | `1` |
| `status` | metin (seçenekler: active, inactive) · null olabilir | Hayır | Vitrinde görünürlük: active açık, inactive kapalı. | `"active"` |

## BulkErrorPage

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (BulkRowError) | Evet | Bu sayfadaki satır hataları. |  |
| `has_more` | true/false | Evet | Sonraki sayfa varsa true. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfanın yetkiye bağlı imleci. | `null` |

## BulkInventory

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `lines` | liste: nesne (BulkInventoryLine) (en çok 10000 öğe) | Evet | En çok 10.000 sayım satırı; her satırda expected zorunludur. |  |
| `location` | metin (en çok 36 karakter) | Evet | Sayımın loc_ depo kimliği. | `"loc_1234567890abcdef1234567890abcdef"` |

## BulkInventoryLine

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `expected` | sayı (en az -100000000; en çok 100000000) veya metin · null olabilir | Evet | Zorunlu: son okunan depo miktarı; stok sayılmıyorsa null. Değişmişse satır stock_changed ile atlanır. | `"10"` |
| `quantity` | sayı (en az 0; en çok 100000000) veya metin | Evet | Depoda sayılan miktar; sıfır olabilir, en çok üç ondalık hane. | `"12"` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; harf ve baş/son boşluk farkı yok sayılır. | `"KUPA-MAVI"` |
| `variant` | metin (en çok 36 karakter) · null olabilir | Hayır | var_ seçenek kimliği; variant veya sku alanından yalnız biri gerekir. | `"var_1234567890abcdef1234567890abcdef"` |

## BulkJob

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at` | tarih-saat | Evet | İşin açıldığı zaman; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `error_code` | metin · null olabilir | Evet | İşin tamamını durduran sabit kod; satır hataları ayrı listelenir. | `null` |
| `failed` | tam sayı | Evet | Hatalı satır sayısı; /jobs/{id}/errors ile okunur. | `0` |
| `finished_at` | tarih-saat · null olabilir | Evet | İşin bittiği zaman; sürüyorsa null. | `null` |
| `id` | metin | Evet | Kalıcı job_ iş kimliği. | `"job_1234567890abcdef1234567890abcdef"` |
| `kind` | metin (seçenekler: prices, inventory) | Evet | prices fiyat; inventory depo sayımı. | `"prices"` |
| `processed` | tam sayı | Evet | Sonuçlandırılan satır sayısı; başarısız satırlar dahildir. | `0` |
| `status` | metin (seçenekler: queued, running, succeeded, failed, partially_failed) | Evet | Sırada, çalışıyor, başarılı, başarısız veya kısmen başarısız. | `"queued"` |
| `total` | tam sayı | Evet | Gönderilen toplam satır sayısı. | `10000` |

## BulkPriceLine

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `price` | sayı (en az 0; en çok 999999999) veya metin | Evet | Excel Fiyat sütunu: indirimsiz TRY fiyatı. compare_at_price verilirse price satış fiyatı, compare_at_price indirimsiz fiyat olarak eşlenir. | `"120.00"` |
| `compare_at_price` | sayı (en az 0; en çok 999999999) veya metin · null olabilir | Hayır | Üstü çizili fiyat için alternatif gösterim; sale_price ile birlikte kullanılamaz. null indirimi kaldırır. Marka fiyat sütunu indirim yazmaz. | `null` |
| `cost` | sayı (en az 0; en çok 999999999) veya metin · null olabilir | Hayır | Excel Maliyet sütunu; costs:write gerekir. KDV hariç, muaf işletmede KDV dahil; null değiştirmez. | `null` |
| `sale_price` | sayı (en az 0; en çok 999999999) veya metin · null olabilir | Hayır | Excel İndirimli fiyat sütunu. Atlanırsa paneldeki oran korunur; null indirimi kaldırır. Seçenek indirimi ürünün kuralına uymalıdır. | `null` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; harf ve baş/son boşluk farkı yok sayılır. | `"KUPA-MAVI"` |
| `store` | metin (en çok 36 karakter) · null olabilir | Hayır | sto_ marka fiyat sütunu; atlanırsa katalog fiyatı. Ürün markaya bağlı olmalıdır. Marka sütunu yalnız satış fiyatını değiştirir. | `null` |
| `variant` | metin (en çok 36 karakter) · null olabilir | Hayır | var_ seçenek kimliği; variant veya sku alanından yalnız biri gerekir. | `"var_1234567890abcdef1234567890abcdef"` |

## BulkPrices

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `lines` | liste: nesne (BulkPriceLine) (en çok 10000 öğe) | Evet | En çok 10.000 fiyat satırı; satır numaraları 1 ile başlar. |  |

## BulkRowError

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `code` | metin | Evet | Sabit hata kodu: not_found, invalid_price, invalid_stock_operation, duplicate_row, stock_changed veya row_timeout. | `"not_found"` |
| `detail` | metin | Evet | Satırın neden uygulanmadığı. | `"Seçenek bulunamadı."` |
| `identifier` | metin | Evet | İstekteki var_ kimliği veya stok kodu. | `"BULUNAMAYAN-KOD"` |
| `line` | tam sayı | Evet | Gönderilen listedeki satır numarası; 1 ile başlar. | `2` |

## Business

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Evet | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `id` | metin | Evet | Kaynağın dış kimliği; bus_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"bus_1234567890abcdef1234567890abcdef"` |
| `kind` | metin (seçenekler: company, exempt) | Evet | İşletme türü; company: şirket, exempt: vergi muafiyetli kişi. | `"company"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Örnek Ticaret"` |
| `tax_status` | metin (seçenekler: standard, exempt) | Evet | standard: KDV mükellefi; exempt: vergiden muaf. | `"standard"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |

## CancelInvoice

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `portal_done` | true/false | Hayır | Yalnız sağlayıcı portalında iptal gerçekten tamamlandıysa true. | `false` |
| `reason` | metin (en çok 450 karakter) · null olabilir | Hayır | İptal gerekçesi; muhasebe kaydında korunur. | `"Yanlış fatura düzenlendi."` |

## CancelShipment

Alanı olmayan değer.

## CatalogAction

Arşiv ve geri getirme boş JSON nesnesi alır.

## CatalogOption

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin (en çok 100 karakter) | Evet | Seçenek özelliğinin adı. | `"Renk"` |
| `value` | metin (en çok 200 karakter) | Evet | Seçenek özelliğinin değeri. | `"Mavi"` |

## CatalogReference

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin (en çok 200 karakter) | Evet | Kendi sisteminizdeki kimlik; grant ve kaynak türünde tekildir. | `"ERP-001"` |
| `namespace` | metin · null olabilir | Hayır | Kalıcı grt_ kimliği; atlanabilir, başka bağlantının ad alanı seçilemez. | `null` |

## Category

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `description` | metin · null olabilir | Evet | Kaynağın açıklama metni. | `"Seramik kupa, 300 ml."` |
| `id` | metin | Evet | Kaynağın dış kimliği; cat_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"cat_1234567890abcdef1234567890abcdef"` |
| `image` | metin · null olabilir | Evet | Görselin genel HTTPS adresi. | `"https://example.com/kupa.jpg"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Mutfak"` |
| `parent` | metin · null olabilir | Evet | Üst kategori kimliği (cat_ ve 32 küçük onaltılık karakter). | `null` |
| `revision` | tam sayı | Evet | Kaydın revizyonu; If-Match için ETag ile birlikte kullanılır. | `1` |
| `slug` | metin · null olabilir | Evet | Adreslerde kullanılan kısa ad. | `"ornek-kupa"` |
| `sort_order` | tam sayı | Evet | Panel ve vitrindeki sırası; küçük değer önce gelir. | `0` |
| `status` | metin | Evet | Kaynağın işlem durumu. | `"active"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |

## CategoryFields

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `description` | metin (en çok 50000 karakter) · null olabilir | Hayır | Kategori açıklaması; null temizler. | `"Mutfak ürünleri"` |
| `image` | metin (en çok 2000 karakter) · null olabilir | Hayır | Paneldeki kategori görselinin URL adresi; null temizler. | `null` |
| `name` | metin (en çok 500 karakter) · null olabilir | Hayır | Görünen ad; aynı ad paneldeki gibi ayrı kayıt açabilir. | `"Mutfak"` |
| `parent` | metin · null olabilir | Hayır | Üst cat_ kategori kimliği; null ana kategori yapar. | `null` |
| `sort_order` | tam sayı (en az 0; en çok 2147483647) · null olabilir | Hayır | Sıra; küçük değer önce gelir. | `1` |
| `status` | metin (seçenekler: active, inactive) · null olabilir | Hayır | Vitrinde görünürlük: active açık, inactive kapalı. | `"active"` |

## ChangeItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin | Evet | Değişen sipariş satırının lin_ kimliği. | `"lin_1234567890abcdef1234567890abcdef"` |
| `quantity` | sayı (en az 0; en çok 100000) veya metin | Evet | Yeni miktar; 0 satırı çıkarır, reason gerekir. Son ürün çıkarılamaz. | `"1"` |
| `reason` | metin (en çok 200 karakter) | Hayır | Ürün çıkarılırken zorunlu gerekçe. | `"Müşteri bir adet istedi."` |
| `unit_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Yeni TRY birim fiyatı; yalnız panelde fiyat düzeltilebilen siparişte ve orders.price izniyle. | `"120.00"` |
| `variant` | metin · null olabilir | Hayır | Yeni var_ seçeneği; atlanırsa satırın seçeneği korunur. | `"var_1234567890abcdef1234567890abcdef"` |

## CorrectOrderStatus

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `status` | metin (seçenekler: pending, payment_pending, confirmed, processing, shipped, delivered, cancelled) | Evet | Hedef durum; panelin gerekçeli düzeltme kuralları geçerlidir. refunded desteklenmez; payment_pending eski değerdir, 409 döner (ödeme durum değildir: Ödeme alındı ucunu kullanın). | `"confirmed"` |
| `expected_status` | metin (en çok 30 karakter) · null olabilir | Hayır | Gördüğünüz sipariş durumu; kilit altında farklıysa 409 status_mismatch. | `"confirmed"` |
| `reason` | metin (en çok 1000 karakter) | Hayır | İşlemin gerekçesi; correct-status ve başka kanalda bildirilen satışın iptali için zorunlu. | `"Müşteri teslim aldı."` |

## CountLine

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `expected` | sayı (en az -100000000; en çok 100000000) veya metin · null olabilir | Evet | Zorunlu: okuduğunuz depo miktarı. Stok sayılmıyorsa açıkça null gönderin; değişmişse 409 stock_changed. | `"10"` |
| `quantity` | sayı (en az 0; en çok 100000000) veya metin | Evet | Saydığınız depo miktarı; sıfır olabilir. | `"12"` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; baş/son boşluk ve harf farkı kaldırılarak tam eşleşir. | `"KUPA-MAVI"` |
| `variant` | metin · null olabilir | Hayır | var_ seçenek kimliği; variant veya sku alanından tam biri gerekir. Ortak stokta havuzun var_ kimliğini kullanın. | `"var_1234567890abcdef1234567890abcdef"` |

## CountStock

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `lines` | liste: nesne (CountLine) (en çok 500 öğe) | Evet | Sayımın miktarı ve her satır için zorunlu expected değeri. |  |
| `location` | metin | Evet | İşlemin loc_ depo kimliği; /locations listesinden seçin. | `"loc_1234567890abcdef1234567890abcdef"` |
| `note` | metin (en çok 300 karakter) · null olabilir | Hayır | İç açıklama; internal_notes:write gerekir, okumak için internal_notes:read gerekir. | `"Depoda kontrol edildi."` |
| `reason` | metin (seçenekler: other_channel, gift, loss, count_diff, received, return, other) · null olabilir | Hayır | İsteğe bağlı sayım nedeni; yalnız miktar değişiminin yönüne uygun satırlarda görünür. | `"count_diff"` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `"sto_1234567890abcdef1234567890abcdef"` |

## Coupon

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeyse true; sepette uygulanmaz. | `false` |
| `categories` | liste: metin | Evet | Görünür cat_ kategori kimlikleri; alt kategoriler dahil. Marka sınırı bazı kimlikleri gizleyebilir; kapsamı category_restricted belirtir. |  |
| `category_restricted` | true/false | Evet | Kupon kategoriyle sınırlıysa true; categories boş görünse de kapsam bütün ürünler olmayabilir. | `false` |
| `code` | metin | Evet | Müşterinin kullanacağı normalleştirilmiş kupon kodu. | `"MERHABA10"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Evet | Tutarların para birimi. | `"TRY"` |
| `customer_restricted` | true/false | Evet | Panelden belirli müşterilere atanmışsa true; müşteri kimlikleri ve kişisel alanlar yayımlanmaz. | `false` |
| `discount_type` | metin (seçenekler: percentage, fixed) · null olabilir | Evet | Yüzde veya TRY tutarı; yalnız ücretsiz kargoda boş olabilir. | `"percentage"` |
| `discount_value` | metin · null olabilir | Evet | İndirim oranı veya TRY tutarı; ondalık metin. | `"10.00"` |
| `exclude_discounted` | true/false | Evet | İndirimli ve kampanyalı ürünleri kapsam dışında tutar. | `false` |
| `first_order_only` | true/false | Evet | Yalnız müşterinin ilk siparişinde geçerliyse true. | `false` |
| `free_shipping` | true/false | Evet | Kupon geçerliyken kargo da ücretsizse true. | `false` |
| `id` | metin | Evet | cpn_ önekli dış kupon kimliği. | `"cpn_1234567890abcdef1234567890abcdef"` |
| `max_uses` | tam sayı · null olabilir | Evet | Toplam kullanım sınırı; null sınırsız. | `100` |
| `max_uses_per_customer` | tam sayı · null olabilir | Evet | Aynı müşteri için kullanım sınırı; null sınırsız. | `1` |
| `min_order` | metin · null olabilir | Evet | Kupona uygun ürünlerde en az sepet tutarı, TRY. | `"100.00"` |
| `revision` | tam sayı | Evet | Kaydın revizyonu; If-Match için ETag ile birlikte kullanılır. | `1` |
| `status` | metin (seçenekler: active, inactive) | Evet | active açık, inactive kapalı kupon. | `"active"` |
| `store` | metin | Evet | Kuponun geçerli olduğu sto_ markası. | `"sto_1234567890abcdef1234567890abcdef"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `used_count` | tam sayı | Evet | Panelin siparişlerden hesapladığı kullanım sayısı; iptal ve tam iadeler sayılmaz. | `0` |
| `valid_from` | metin · null olabilir | Evet | Markanın yerel takvim günü (YYYY-MM-DD) veya dakika dahil saati (YYYY-MM-DDTHH:MM); null sınırsız. | `"2026-10-16"` |
| `valid_until` | metin · null olabilir | Evet | Markanın yerel bitiş günü veya saati; gün ve son dakika dahildir. null sınırsız. | `"2026-12-31T23:59"` |

## CouponAction

Arşiv eylemlerine boş JSON gönderilir.

## CreateBrand

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin (en çok 500 karakter) | Evet | Ürün markası adı; satıcının sto_ markasından ayrıdır. | `"Örnek Üretici"` |
| `logo` | metin (en çok 2000 karakter) · null olabilir | Hayır | Paneldeki ürün markası logosunun URL adresi; null temizler. | `null` |
| `sort_order` | tam sayı (en az 0; en çok 2147483647) · null olabilir | Hayır | Sıra; küçük değer önce gelir. | `1` |
| `status` | metin (seçenekler: active, inactive) · null olabilir | Hayır | Vitrinde görünürlük: active açık, inactive kapalı. | `"active"` |

## CreateCategory

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin (en çok 500 karakter) | Evet | Kategori adı. | `"Mutfak"` |
| `description` | metin (en çok 50000 karakter) · null olabilir | Hayır | Kategori açıklaması; null temizler. | `"Mutfak ürünleri"` |
| `image` | metin (en çok 2000 karakter) · null olabilir | Hayır | Paneldeki kategori görselinin URL adresi; null temizler. | `null` |
| `parent` | metin · null olabilir | Hayır | Üst cat_ kategori kimliği; null ana kategori yapar. | `null` |
| `sort_order` | tam sayı (en az 0; en çok 2147483647) · null olabilir | Hayır | Sıra; küçük değer önce gelir. | `1` |
| `status` | metin (seçenekler: active, inactive) · null olabilir | Hayır | Vitrinde görünürlük: active açık, inactive kapalı. | `"active"` |

## CreateCoupon

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `code` | metin (en çok 40 karakter) | Evet | Müşterinin yazacağı kupon kodu. | `"MERHABA10"` |
| `categories` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | cat_ kimlikleri; alt kategoriler dahil. [] bütün ürünlerde geçerli yapar. |  |
| `discount_type` | metin (seçenekler: percentage, fixed) · null olabilir | Hayır | Yüzde veya sabit TRY tutarı; null temizler. | `"percentage"` |
| `discount_value` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Yüzde oranı veya TRY tutarı; ondalık metin, null temizler. | `"10.00"` |
| `exclude_discounted` | true/false · null olabilir | Hayır | İndirimli/kampanyalı ürünlere uygulanmayacaksa true. | `false` |
| `first_order_only` | true/false · null olabilir | Hayır | Yalnız ilk siparişte geçerliyse true. | `false` |
| `free_shipping` | true/false · null olabilir | Hayır | Kargo da ücretsizse true. | `false` |
| `max_uses` | tam sayı (en az 1; en çok 2147483647) · null olabilir | Hayır | Toplam kullanım sınırı; null sınırsız. | `100` |
| `max_uses_per_customer` | tam sayı (en az 1; en çok 2147483647) · null olabilir | Hayır | Kişi başına kullanım sınırı; null sınırsız. | `1` |
| `min_order` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Kupona uygun ürünlerin en az TRY tutarı; null kaldırır. | `"100.00"` |
| `status` | metin (seçenekler: active, inactive) · null olabilir | Hayır | active açık, inactive kapalı. | `"active"` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `null` |
| `valid_from` | metin (en çok 35 karakter) · null olabilir | Hayır | Panel gibi markanın yerel günü veya dakikası; YYYY-MM-DD ya da ISO tarih/saat. null sınırı kaldırır. | `"2026-10-16"` |
| `valid_until` | metin (en çok 35 karakter) · null olabilir | Hayır | Bitiş günü/dakikası dahildir; saat dilimli ISO zaman markanın saatine çevrilir. null sınırsız. | `"2026-12-31T23:59"` |

## CreateCustomer

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin (en çok 500 karakter) | Evet | Müşterinin adı; personal_data:write gerekir. | `"Örnek Müşteri"` |
| `address` | nesne (CustomerAddress) · null olabilir | Hayır | Müşterinin adresi; null adresi kaldırır. personal_data:write gerekir. |  |
| `email` | metin (en çok 320 karakter) · null olabilir | Hayır | E-posta; null veya boş metin alanı temizler. personal_data:write gerekir. | `"musteri@example.com"` |
| `invoice` | nesne (CustomerInvoice) · null olabilir | Hayır | Fatura bilgisi; null kaldırır. personal_data:write gerekir. |  |
| `marketing_consent` | true/false · null olabilir | Hayır | Pazarlama izni: true var, false yok, null bilinmiyor. personal_data:write gerekir. | `false` |
| `note` | metin (en çok 10000 karakter) · null olabilir | Hayır | İç not; null veya boş metin kaldırır. internal_notes:write gerekir. | `"Teslimden önce bilgi verin."` |
| `phone` | metin (en çok 50 karakter) · null olabilir | Hayır | Telefon; null veya boş metin alanı temizler. personal_data:write gerekir. | `"05000000000"` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `"sto_1234567890abcdef1234567890abcdef"` |

## CreateExternalOrder

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `channel_name` | metin (en çok 20 karakter) | Evet | Satış kanalının en çok 20 karakterlik adı. Baş/son boşluklar kaldırılır; büyük/küçük harfler farklı kanal adlarıdır. | `"Etsy"` |
| `external_reference` | metin (en çok 200 karakter) | Evet | Kanalın sipariş numarası; bu grant ve channel_name içinde kalıcı olarak tekildir. | `"ETSY-2026-001"` |
| `items` | liste: nesne (ExternalOrderItem) (en çok 100 öğe) | Evet | var_ veya SKU, miktar ve kesinleşmiş birim fiyatıyla satış satırları. |  |
| `customer` | metin veya nesne (OrderCustomer) · null olabilir | Hayır | cus_ müşteri kimliği veya müşteri bilgileri; personal_data:write gerekir. E-posta/telefon yoksa yeni müşteri kartı açılmaz. | `null` |
| `fulfillment_status` | metin (seçenekler: pending, shipped, delivered) | Hayır | pending: sonra siparis.app ile kargolanabilir; shipped/delivered: kanal kargoladı/teslim etti, burada gönderi açılmaz. | `"pending"` |
| `ordered_at` | tarih-saat · null olabilir | Hayır | Kanalda siparişin verildiği saat dilimli tarih; geçmiş kabul edilir, gelecek reddedilir. Atlanırsa kayıt anı. | `"2026-10-15T09:00:00Z"` |
| `paid_at` | tarih-saat · null olabilir | Hayır | Kanalın ödemeyi aldığı saat dilimli tarih; gelecek reddedilir. Atlanırsa ordered_at, o da yoksa kayıt anı. | `"2026-10-15T09:01:00Z"` |
| `shipping_address` | nesne (OrderAddress) · null olabilir | Hayır | Teslimat adresi; personal_data:write gerekir. Adressiz satış kaydedilir; kargo için adres tamamlanır. |  |
| `shipping_total` | sayı (en az 0; en çok 10000000) veya metin | Hayır | Kanalda müşteriden alınmış TRY kargo ücreti; toplam tahsilata eklenir. | `"0.00"` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `null` |

## CreateOrder

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `delivery_method` | metin (seçenekler: shipping, hand, pickup, digital) | Evet | shipping: kargo; hand: elden; pickup: markadan teslim; digital: dijital teslim. | `"hand"` |
| `items` | liste: nesne (OrderItem) (en çok 100 öğe) | Evet | Satılacak seçenekler ve miktarları. |  |
| `allow_waiting` | true/false | Hayır | true: stokta olmayan adetler mal gelince gönderilir; panelle aynı açık onaydır. | `false` |
| `billing_address` | nesne (OrderAddress) · null olabilir | Hayır | Dijital üründe zorunlu fatura adresi; personal_data:write gerekir. |  |
| `cod_type` | metin (seçenekler: cash, card) · null olabilir | Hayır | Yalnız kargoyla kapıda ödemede: nakit veya kart. | `"cash"` |
| `coupon_code` | metin (en çok 60 karakter) | Hayır | Müşteriye tanımlı kupon; mevcut kullanım, süre ve ürün koşulları uygulanır. | `"HOSGELDIN"` |
| `customer` | metin veya nesne (OrderCustomer) · null olabilir | Hayır | Mevcut cus_ müşteri kimliği veya ad/telefon/e-posta. personal_data:write gerekir. Atlanırsa elden/mağazadan müşterisiz satış. | `"cus_1234567890abcdef1234567890abcdef"` |
| `customer_note` | metin (en çok 2000 karakter) | Hayır | Paketleme fişine de giren müşteri notu; personal_data:write gerekir. | `"Teslimden önce arayın."` |
| `delivery_day` | tarih · null olabilir | Hayır | Markanın takvimine göre söz verilen teslim günü; dijitalde uygulanmaz. | `"2026-10-17"` |
| `deposit` | nesne (PaymentPart) · null olabilir | Hayır | Şimdi alınan kapora; toplamdan küçük olmalı. paid=false gönderin. |  |
| `external_reference` | nesne (ExternalReference) · null olabilir | Hayır | Dış sipariş numarasını bu API bağlantısında tekilleştirir; anahtar döndürmek ad alanını değiştirmez. |  |
| `note` | metin (en çok 2000 karakter) | Hayır | İç not; internal_notes:write gerekir. | `"Paket kontrol edildi."` |
| `paid` | true/false | Hayır | Ödeme gerçekten alındıysa true. Kapıda ödemede false; parçalı ödemede parçalar alınmış sayılır. | `true` |
| `payment_method` | metin (seçenekler: cod, bank_transfer, cash, credit_card, split) · null olabilir | Hayır | Paneldeki elle ödeme yolu; credit_card POS kaydıdır, kart çekimi başlatmaz. 0 TL siparişte atlanabilir. | `"cash"` |
| `payments` | liste: nesne (PaymentPart) (en çok 20 öğe) · null olabilir | Hayır | split yönteminde alınan ödeme parçaları; toplam sipariş tutarıyla aynı olmalıdır. |  |
| `shipping_address` | nesne (OrderAddress) · null olabilir | Hayır | Kargoda zorunlu, elden teslimde isteğe bağlı adres; personal_data:write gerekir. |  |
| `shipping_fee` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | TRY teslimat ücreti; atlanırsa panelin marka kuralı, verilirse orders.price izniyle açık tutar. | `"0.00"` |
| `store` | metin · null olabilir | Hayır | Siparişin sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `"sto_1234567890abcdef1234567890abcdef"` |

## CreateProduct

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin (en çok 500 karakter) | Evet | Ürün adı. | `"Seramik Kupa"` |
| `barcode` | metin (en çok 100 karakter) · null olabilir | Hayır | Barkod; işletmede canlı seçenekler arasında tekil. null temizler. | `"8690000000001"` |
| `brand` | metin · null olabilir | Hayır | Mevcut brd_ ürün markası; null bağı kaldırır. Satıcının sto_ markasıyla karıştırmayın. | `null` |
| `categories` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | Mevcut cat_ kategori kimlikleri; [] bağları kaldırır. Yeni kategori açmaz. |  |
| `compare_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Üstü çizili fiyat; null kaldırır. Üründe satış fiyatından yüksek olmalıdır. | `"150.00"` |
| `cost` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Alış maliyeti; costs:write gerekir. Panel gibi KDV hariç, muaf işletmede KDV dahil saklanır; null kaldırır. | `"80.00"` |
| `description` | metin (en çok 50000 karakter) · null olabilir | Hayır | Ürün açıklaması; null kaldırır. | `"Seramik kupa, 300 ml."` |
| `external_reference` | nesne (CatalogReference) · null olabilir | Hayır | Bu API bağlantısında ürünün dış kimliği. |  |
| `images` | liste: metin (en çok 2000 karakter) (en çok 12 öğe) · null olabilir | Hayır | En çok 12 http/https görsel URL’si; [] galeriyi boşaltır. Panelin güvenli kopyalama kuyruğu kullanılır. |  |
| `made_to_order` | true/false · null olabilir | Hayır | Sipariş üzerine hazırlanırsa true; mevcut stok korunur. | `false` |
| `opening_stock` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | Seçeneksiz ürünün ilk stoğu; inventory:write gerekir. Seçenekli üründe her seçeneğe yazın. | `"10"` |
| `price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | TRY satış fiyatı; ondalık metin. null ürünün fiyatını kaldırır, seçenekte ürün fiyatına döner. | `"120.00"` |
| `short_description` | metin (en çok 1000 karakter) · null olabilir | Hayır | Kısa açıklama; null kaldırır. | `"Seramik kupa"` |
| `sku` | metin (en çok 255 karakter) · null olabilir | Hayır | Stok kodu; işletmede canlı seçenekler arasında tekil. null temizler. | `"KUPA-MAVI"` |
| `status` | metin (seçenekler: active, draft, inactive) · null olabilir | Hayır | Satış durumu; arşiv için ayrı eylemi kullanın. Fiyatsız ürün satışa açılamaz. | `"active"` |
| `store` | metin · null olabilir | Hayır | Hedef sto_ markası; tek markada veya marka sınırlı anahtarda atlanabilir. | `null` |
| `stores` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | Birden çok hedef sto_ markası; store ile birlikte gönderilmez. |  |
| `tax_rate` | sayı (en az 0; en çok 100) veya metin · null olabilir | Hayır | Yüzde KDV oranı; panelin vergi sınıfı doğrulaması kullanılır. | `"20"` |
| `unit` | metin (en çok 20 karakter) · null olabilir | Hayır | Satış birimi; panelin miktar doğrulaması kullanılır. | `"adet"` |
| `variants` | liste: nesne (CreateVariant) (en çok 500 öğe) · null olabilir | Hayır | Ürünle aynı işlemde açılacak seçenekler; bir hata tüm kaydı geri alır. |  |
| `weight` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | Kilogram cinsinden ağırlık; null kaldırır. | `"0.350"` |

## CreateRefund

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `expected_amount` | sayı (en az 0; en çok 10000000) veya metin | Evet | Son önizlemenin amount değeri, TRY; değişmişse 409 amount_changed döner. | `"120.00"` |
| `amount` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | İsteğe bağlı TRY tutarı; boşsa panelin önerisi. Kalan tahsilatı aşamaz. | `"120.00"` |
| `items` | liste: nesne (ReturnItem) (en çok 200 öğe) | Hayır | İade kalemleri; boşsa yalnız para iadesidir ve amount zorunludur. |  |
| `money_returned` | true/false | Hayır | Parayı gerçekten elle geri verdiyseniz true. Çevrimiçi kartta false bırakın; sağlayıcı sonucu beklenir. | `false` |
| `notify_customer` | true/false | Hayır | İade e-postasını müşteriye gönder. | `true` |
| `reason` | metin (en çok 200 karakter) | Hayır | İade nedeni; kişisel bilgi yazmayın. | `"Müşteri ürünü iade etti"` |
| `received_condition` | metin (seçenekler: sound, damaged) · null olabilir | Hayır | Fiziksel teslim onayı. Fire için damaged ve restock=false birlikte gerekir. | `"sound"` |
| `refund_distribution` | nesne (Distribution-Input) · null olabilir | Hayır | Değişim/ayrılan siparişte önizlemenin kart ve elle ödeme dağılımı; oluştururken aynen gönderin. |  |
| `refund_method` | metin (seçenekler: cash, pos, iban) · null olabilir | Hayır | Panelin izin verdiği elle iade yolu; çevrimiçi karta iade otomatik belirlenir. | `null` |
| `refund_parts` | liste: nesne (RefundPart) (en çok 20 öğe) · null olabilir | Hayır | Elle geri verilen parçalar; toplam iade tutarına eşit, money_returned=true olmalı. | `null` |
| `restock` | true/false · null olabilir | Hayır | Stoğa geri ekleme seçimi. Boşsa panel/AI varsayılanı: iade edilemez veya hasarlı ürün eklenmez. false tek başına fire yazmaz. | `null` |

## CreateShipment

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `carrier` | metin (en çok 40 karakter) | Evet | Fiyat yanıtındaki açık kargo firmasının code değeri; standart gönderi hizmeti. | `"YURTICI"` |
| `merge_orders` | liste: metin (en çok 99 öğe) | Hayır | Aynı marka, alıcı, adres ve depodaki diğer ord_ siparişleri; birleştirme açık seçimdir. |  |
| `package` | nesne (Package) · null olabilir | Hayır | Yalnız bu sorgu için ölçüler; sorgu siparişi değiştirmez. Açarken aynı ölçüleri gönderin. |  |

## CreateVariant

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `barcode` | metin (en çok 100 karakter) · null olabilir | Hayır | Barkod; işletmede canlı seçenekler arasında tekil. null temizler. | `"8690000000001"` |
| `compare_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Üstü çizili fiyat; null kaldırır. Üründe satış fiyatından yüksek olmalıdır. | `"150.00"` |
| `cost` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Alış maliyeti; costs:write gerekir. Panel gibi KDV hariç, muaf işletmede KDV dahil saklanır; null kaldırır. | `"80.00"` |
| `expected_stock` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | İlk seçeneğe dönüşen varsayılanın görülen stoğu; yalnız opening_stock ile kullanılır. | `"0"` |
| `external_reference` | nesne (CatalogReference) · null olabilir | Hayır | Bu API bağlantısında seçeneğin dış kimliği. |  |
| `images` | liste: metin (en çok 2000 karakter) (en çok 12 öğe) · null olabilir | Hayır | En çok 12 http/https görsel URL’si; [] galeriyi boşaltır. Panelin güvenli kopyalama kuyruğu kullanılır. |  |
| `made_to_order` | true/false · null olabilir | Hayır | Sipariş üzerine hazırlanırsa true; mevcut stok korunur. | `false` |
| `name` | metin (en çok 500 karakter) · null olabilir | Hayır | Seçeneğin görünen adı; gönderilmezse korunur. | `"Mavi"` |
| `opening_stock` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | İlk stok; inventory:write gerekir. İlk seçenek mevcut varsayılanı dönüştürürse stok korunur; farklı sayı için expected_stock gerekir. | `"10"` |
| `options` | liste: nesne (CatalogOption) (en çok 20 öğe) · null olabilir | Hayır | Seçeneğin ad/değer çiftleri; gönderilmezse korunur. |  |
| `price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | TRY satış fiyatı; ondalık metin. null ürünün fiyatını kaldırır, seçenekte ürün fiyatına döner. | `"120.00"` |
| `price_rule` | nesne (PriceRule) · null olabilir | Hayır | Ürün fiyatından TL veya yüzde farkı; null ürünle aynı fiyat demektir. |  |
| `sku` | metin (en çok 255 karakter) · null olabilir | Hayır | Stok kodu; işletmede canlı seçenekler arasında tekil. null temizler. | `"KUPA-MAVI"` |
| `weight` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | Kilogram cinsinden ağırlık; null kaldırır. | `"0.350"` |

## Customer

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; cus_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"cus_1234567890abcdef1234567890abcdef"` |
| `revision` | tam sayı (en az 1) | Evet | Müşteri kartının artan sürümü; ETag ve If-Match ile birlikte kullanılır. | `1` |
| `store` | metin | Evet | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `address` | nesne (Address) · null olabilir | Hayır | Müşteri adresi; personal_data:read yoksa alan atlanır. |  |
| `email` | metin · null olabilir | Hayır | E-posta; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `instagram` | metin · null olabilir | Hayır | Instagram kullanıcı adı; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `invoice` | nesne (Billing) · null olabilir | Hayır | Fatura alıcı bilgileri; personal_data:read yoksa alan atlanır. |  |
| `marketing_consent` | true/false · null olabilir | Hayır | Pazarlama iletişimi izni; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `name` | metin · null olabilir | Hayır | Müşteri adı; personal_data:read yoksa alan atlanır. | `null` |
| `note` | metin · null olabilir | Hayır | İç not; internal_notes:read gerekir. Kişisel kaynakta personal_data:read da gerekir. | `"Örnek iç not"` |
| `phone` | metin · null olabilir | Hayır | Telefon; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |

## CustomerAction

Arşiv eylemleri boş JSON nesnesi alır; kişisel alan yazmaz.

## CustomerAddress

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `address_line` | metin (en çok 1000 karakter) | Hayır | Açık adres. | `"Örnek Sokak No: 1"` |
| `city` | metin (en çok 100 karakter) | Hayır | İl. | `"İstanbul"` |
| `district` | metin (en çok 100 karakter) | Hayır | İlçe. | `"Kadıköy"` |
| `neighborhood` | metin (en çok 100 karakter) | Hayır | Mahalle veya köy adı. | `"Caferağa"` |
| `neighborhood_area` | metin (en çok 100 karakter) | Hayır | Varsa bağlı köy, semt veya belde. | `""` |
| `postal_code` | metin (en çok 10 karakter) | Hayır | Posta kodu. | `"34710"` |
| `village` | true/false | Hayır | Köy adresiyse true. | `false` |

## CustomerInvoice

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `company_name` | metin (en çok 500 karakter) | Evet | Şirket faturası için firma unvanı; panelin doğrulaması uygulanır. | `"Örnek Şirket"` |
| `tax_number` | metin (en çok 50 karakter) | Evet | Vergi veya kimlik numarası; panelin VKN/TCKN doğrulaması uygulanır. | `"1234567890"` |
| `tax_office` | metin (en çok 200 karakter) | Evet | Vergi dairesi; şirket faturasında zorunludur. | `"Kadıköy"` |

## CustomersExportFilters

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `email` | metin (en çok 320 karakter) · null olabilir | Hayır | Ham e-posta; sunucu email_key kolonunun normalleştirmesiyle tam eşitlik arar. personal_data:read gerekir. | `"Ornek@Example.com"` |
| `email_key` | metin (en çok 320 karakter) · null olabilir | Hayır | Normalize edilmiş e-posta; tam eşitlik araması; personal_data:read gerekir. | `"ornek@example.com"` |
| `phone` | metin (en çok 50 karakter) · null olabilir | Hayır | Ham telefon; mevcut müşteri kuralıyla son 10 haneye çevrilir. personal_data:read gerekir. | `"+90 500 000 00 00"` |
| `phone_key` | metin · null olabilir | Hayır | Telefonun son 10 hanesi; tam eşitlik araması; personal_data:read gerekir. | `"0000000000"` |
| `sort` | metin (seçenekler: updated_at, -created_at) | Hayır | updated_at: son değişiklikten ileri; -created_at: en yeni müşteri önce. Sıra değişirse yeni sayfalama başlatın. | `"-created_at"` |

## CustomersExportInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `format` | metin (seçenekler: jsonl, csv) | Evet | jsonl: satır başına JSON nesnesi; csv: her hücresi JSON değeri olan CSV. | `"jsonl"` |
| `mode` | sabit "consistent_snapshot" | Evet | consistent_snapshot: bütün kayıtlar aynı anın tutarlı görünümüdür. | `"consistent_snapshot"` |
| `resource` | sabit "customers" | Evet | Dışa aktarılacak kaynak; aynı kaynağın okuma kapsamı gerekir. | `"customers"` |
| `filters` | nesne (CustomersExportFilters) | Hayır | Kaynağın liste süzgeçleri; limit, cursor ve include desteklenmez. |  |

## Decision

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `carrier` | metin (en çok 50 karakter) · null olabilir | Hayır | Gelen kargo firması kodu; boşsa panelin varsayılanı. | `null` |
| `note` | metin (en çok 300 karakter) | Hayır | Müşteriye gösterilecek onay notu veya ret nedeni. | `"Talebiniz onaylandı"` |
| `notify_customer` | true/false | Hayır | Karar e-postasını müşteriye gönder. | `true` |
| `return_code` | true/false | Hayır | Açık seçimle geri gönderim kodu aç: BasitKargo bakiyenizden ücretlidir, shipments:write gerekir. Varsayılan false: kodsuz teslim. | `false` |

## DeliverOrder

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `collection_method` | metin (seçenekler: cash, pos, bank, later) · null olabilir | Hayır | Teslimde kalan ödemenin yöntemi; later panelde açıkken borcu korur. | `"cash"` |
| `expected_status` | metin (en çok 30 karakter) · null olabilir | Hayır | Gördüğünüz sipariş durumu; kilit altında farklıysa 409 status_mismatch. | `"confirmed"` |
| `reason` | metin (en çok 1000 karakter) | Hayır | İşlemin gerekçesi; correct-status ve başka kanalda bildirilen satışın iptali için zorunlu. | `"Müşteri teslim aldı."` |

## Delivery

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `attempt_count` | tam sayı | Evet | Bu teslim için yapılmış deneme sayısı. | `0` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `event` | metin | Evet | Olay kimliği (evt_ ve 32 küçük onaltılık karakter). | `"evt_1234567890abcdef1234567890abcdef"` |
| `id` | metin | Evet | Kaynağın dış kimliği; whd_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"whd_1234567890abcdef1234567890abcdef"` |
| `last_error` | metin · null olabilir | Evet | Son teslim hatasının kararlı kodu; hata yoksa null. | `null` |
| `last_status` | tam sayı · null olabilir | Evet | Son teslim denemesinin HTTP durum kodu; ağ hatasında null. | `null` |
| `next_attempt_at` | tarih-saat · null olabilir | Evet | Sonraki teslim denemesi zamanı; RFC 3339 UTC. Değer yoksa null. | `"2026-10-16T09:00:00Z"` |
| `status` | metin | Evet | Teslimin durumu: pending, succeeded, failed veya cancelled. | `"pending"` |
| `type` | metin | Evet | İşlem veya olay türü. | `"order.created"` |

## Distribution-Input

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `card` | sayı (en az 0; en çok 10000000) veya metin | Evet | Kaynak karta gönderilecek TRY tutarı. | `"100.00"` |
| `manual` | sayı (en az 0; en çok 10000000) veya metin | Evet | Elle iade edilecek TRY tutarı. | `"20.00"` |
| `provider` | metin (en çok 100 karakter) | Evet | Önizlemede görünen ödeme kuruluşu adı; aynen gönderin. | `"PayTR"` |

## Distribution-Output

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `card` | metin | Evet | Kaynak karta gönderilecek TRY tutarı. | `"100.00"` |
| `manual` | metin | Evet | Elle iade edilecek TRY tutarı. | `"20.00"` |
| `provider` | metin (en çok 100 karakter) | Evet | Önizlemede görünen ödeme kuruluşu adı; aynen gönderin. | `"PayTR"` |

## Document

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; doc_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"doc_1234567890abcdef1234567890abcdef"` |
| `kind` | metin | Evet | Stok belgesinin türü. | `"receipt"` |
| `location` | metin · null olabilir | Evet | Depo kimliği (loc_ ve 32 küçük onaltılık karakter). | `"loc_1234567890abcdef1234567890abcdef"` |
| `movements` | nesne (Page_Movement_) | Evet | Bu belgeye ait görünür stok hareketleri; limit/cursor ile ilerleyin. |  |
| `reversed_by` | metin · null olabilir | Evet | Bu belgeyi tersine çeviren belge kimliği (doc_ ve 32 küçük onaltılık karakter). | `null` |
| `reverses` | metin · null olabilir | Evet | Ters kaydı oluşturulan belge kimliği (doc_ ve 32 küçük onaltılık karakter). | `null` |
| `revision` | tam sayı (en az 1) | Evet | Belgenin sürümü: ilk kayıtta 1, ters kaydı varsa 2. ETag aynı değeri taşır. | `1` |
| `to_location` | metin · null olabilir | Evet | Hedef depo kimliği (loc_ ve 32 küçük onaltılık karakter). | `"loc_1234567890abcdef1234567890abcdef"` |
| `invoice_date` | tarih · null olabilir | Hayır | Tedarikçi fatura tarihi; YYYY-MM-DD; costs:read gerekir. | `"2026-10-16"` |
| `invoice_number` | metin · null olabilir | Hayır | Tedarikçi fatura numarası; costs:read gerekir. | `"TEST2026000000001"` |
| `note` | metin · null olabilir | Hayır | İç not; internal_notes:read gerekir. Kişisel kaynakta personal_data:read da gerekir. | `"Örnek iç not"` |
| `supplier` | nesne (Supplier) · null olabilir | Hayır | Tedarikçi kimliği ve adı; costs:read gerekir; iletişim bilgileri yayımlanmaz. |  |

## Endpoint

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `event_types` | liste: metin | Evet | Dinlenecek olay türleri; jokerler oluşturma anındaki izinli türlere sabitlenir. |  |
| `grant` | metin | Evet | API bağlantısı kimliği (grt_ ve 32 küçük onaltılık karakter). | `"grt_1234567890abcdef1234567890abcdef"` |
| `id` | metin | Evet | Kaynağın dış kimliği; whe_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"whe_1234567890abcdef1234567890abcdef"` |
| `last_attempt_at` | tarih-saat · null olabilir | Evet | Son teslim denemesi zamanı; RFC 3339 UTC. Değer yoksa null. | `null` |
| `last_error` | metin · null olabilir | Evet | Son teslim hatasının kararlı kodu; hata yoksa null. | `null` |
| `last_success_at` | tarih-saat · null olabilir | Evet | Son başarılı teslim zamanı; RFC 3339 UTC. Değer yoksa null. | `null` |
| `previous_secret_until` | tarih-saat · null olabilir | Evet | Önceki webhook sırrının geçerlilik sonu zamanı; RFC 3339 UTC. Değer yoksa null. | `null` |
| `schema_version` | tam sayı | Evet | Olay yükünün şema sürümü. | `1` |
| `status` | metin (seçenekler: pending_test, active, disabled_auto, disabled_remote, closed) | Evet | pending_test: deneme bekliyor; active: açık; disabled_auto: hatalarla durdu; disabled_remote: alıcı 410 verdi; closed: kapalı. | `"pending_test"` |
| `store` | metin · null olabilir | Evet | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `store_name` | metin · null olabilir | Evet | Webhook adresinin bağlı olduğu markanın görünen adı. | `"Örnek Marka"` |
| `url` | metin | Evet | Genel internete açık, kullanıcı bilgisi içermeyen HTTPS webhook adresi; port 443. | `"https://example.com/webhooks/siparis"` |

## EndpointInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `event_types` | liste: metin (en çok 100 öğe) | Evet | Dinlenecek olay türleri; jokerler oluşturma anındaki izinli türlere sabitlenir. |  |
| `url` | metin (en çok 2000 karakter) | Evet | Genel internete açık, kullanıcı bilgisi içermeyen HTTPS webhook adresi; port 443. | `"https://example.com/webhooks/siparis"` |
| `grant` | metin · null olabilir | Hayır | API bağlantısı kimliği (grt_ ve 32 küçük onaltılık karakter). | `"grt_1234567890abcdef1234567890abcdef"` |
| `schema_version` | sabit 1 | Hayır | Olay yükünün şema sürümü. | `1` |
| `store` | metin · null olabilir | Hayır | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |

## EndpointPatch

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `event_types` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | Dinlenecek olay türleri; jokerler oluşturma anındaki izinli türlere sabitlenir. |  |
| `schema_version` | sabit 1 · null olabilir | Hayır | Olay yükünün şema sürümü. | `1` |
| `store` | metin · null olabilir | Hayır | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `url` | metin (en çok 2000 karakter) · null olabilir | Hayır | Genel internete açık, kullanıcı bilgisi içermeyen HTTPS webhook adresi; port 443. | `"https://example.com/webhooks/siparis"` |

## EndpointResult

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `endpoint` | nesne (Endpoint) | Evet | Webhook adresinin güncel durumu. |  |
| `secret` | metin · null olabilir | Hayır | Yalnız oluşturma/döndürmenin ilk yanıtında bir kez gösterilen whsec_ imza sırrı; Idempotent-Replayed yanıtında alan yoktur. Güvenli ortam değişkeninde saklayın. | `"whsec_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="` |

## Event

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `actor` | nesne (EventActor) | Evet | İşlemi yapanın türü; kişi veya ekip üyesi kimliği verilmez. |  |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `data` | nesne (EventData) | Evet | Olayın kişisel veri içermeyen kaynak kimliği ve değişiklik özeti. |  |
| `id` | metin | Evet | Kaynağın dış kimliği; evt_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"evt_1234567890abcdef1234567890abcdef"` |
| `livemode` | true/false | Evet | Gerçek ortamda oluşan olay için true. | `true` |
| `schema_version` | sabit 1 | Evet | Olay yükünün şema sürümü. | `1` |
| `store` | metin · null olabilir | Evet | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `type` | metin (seçenekler: job.completed, order.created, order.updated, order.status_changed, collection.recorded, collection.reversed, refund.succeeded, payment.failed, return.requested, return.approved, return.rejected, return.received, return.closed, invoice.issued, invoice.failed, invoice.cancelled, shipment.created, shipment.status_changed, shipment.cod_changed, inventory.level_changed, inventory.low, inventory.document_created, inventory.document_reversed, product.created, product.updated, product.archived, product.restored, variant.created, variant.updated, variant.archived, variant.restored, store_product.linked, store_product.unlinked, store_price.updated, customer.created, customer.updated, customer.archived, customer.restored, customer.anonymized, subscription.created, subscription.renewed, subscription.payment_issue, subscription.paused, subscription.resumed, subscription.cancelled, coupon.created, coupon.updated, coupon.archived, coupon.restored, channel.order_imported, channel.problem, channel.recovered, webhook.test) | Evet | İşlem veya olay türü. | `"order.created"` |

## EventActor

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `type` | metin | Evet | İşlemi yapanın türü; user, api veya system gibi; kişi kimliği yoktur. | `"user"` |

## EventChanges

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `current` | nesne (EventState) | Evet | Olaydan sonraki değişen alanlar; güncel kaydı kaynak ucundan okuyun. |  |
| `previous` | nesne (EventState) | Evet | Olaydan önceki değişen alanlar; tüm kaynağın kopyası değildir. |  |

## EventData

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `changes` | nesne (EventChanges) | Evet | Değişen alanların önceki ve sonraki değerleri. |  |
| `object` | nesne (EventObject) | Evet | Değişen kaynağın dış kimliği ve ilişkileri; kişisel veri içermez. |  |

## EventItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `product` | metin | Evet | Abonelikteki ürünün prd_ kimliği. | `"prd_1234567890abcdef1234567890abcdef"` |
| `variant` | metin · null olabilir | Hayır | Seçilen seçeneğin var_ kimliği; seçeneksiz üründe null. | `"var_1234567890abcdef1234567890abcdef"` |

## EventObject

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin | Evet | Kaynağın dış kimliği; ord_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"ord_1234567890abcdef1234567890abcdef"` |
| `channel` | metin · null olabilir | Hayır | Satış kanalının türü: trendyol, hepsiburada, ikas, wix, woocommerce, ticimax veya ideasoft; kanaldan gelen siparişin source değeriyle aynıdır. | `"trendyol"` |
| `code` | metin · null olabilir | Hayır | Kuponun olay anındaki kodu. | `"MERHABA10"` |
| `customer` | metin · null olabilir | Hayır | Aboneliğin müşteri kartının cus_ kimliği; misafir aboneliğinde alan yoktur. Ad ve iletişim bilgisi olayda yoktur. | `"cus_1234567890abcdef1234567890abcdef"` |
| `items` | liste: nesne (EventItem) · null olabilir | Hayır | Aboneliğin olay anındaki ürün satırları (sırayla, en çok 50); adet ve kişiselleştirme metni yoktur. |  |
| `kind` | metin · null olabilir | Hayır | Stok belgesinin türü: receipt, count, loss veya transfer. | `"receipt"` |
| `location` | metin · null olabilir | Hayır | Depo kimliği (loc_ ve 32 küçük onaltılık karakter). | `"loc_1234567890abcdef1234567890abcdef"` |
| `number` | tam sayı · null olabilir | Hayır | Siparişin görünen numarası; kimlik değildir. | `48273910` |
| `order` | metin · null olabilir | Hayır | Sipariş kimliği (ord_ ve 32 küçük onaltılık karakter). | `"ord_1234567890abcdef1234567890abcdef"` |
| `product` | metin · null olabilir | Hayır | Seçeneğin bağlı olduğu ürünün prd_ kimliği. | `"prd_1234567890abcdef1234567890abcdef"` |
| `reverses` | metin · null olabilir | Hayır | Ters kayıt olayında özgün doc_ belge kimliği. | `"doc_1234567890abcdef1234567890abcdef"` |
| `variant` | metin · null olabilir | Hayır | Seçenek kimliği (var_ ve 32 küçük onaltılık karakter). | `"var_1234567890abcdef1234567890abcdef"` |

## EventPage

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Event) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin | Evet | Her yanıtta döner; boş/son sayfada da kaydedin. has_more=false olunca bekleyip bu imleçle yeniden okuyun. | `"SUNUCUDAN_DONEN_IMLEC"` |

## EventState

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | metin · null olabilir | Hayır | İşlem tutarı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `anonymized` | true/false · null olabilir | Hayır | Kişisel alanlar anonimleştirildiyse true. | `false` |
| `archived` | true/false · null olabilir | Hayır | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `cod_amount` | metin · null olabilir | Hayır | Kapıda tahsil edilecek sipariş payı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `cod_collected` | metin · null olabilir | Hayır | Kapıda tahsil edilmiş tutar; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `cod_release` | metin · null olabilir | Hayır | Kargo firmasından aktarılmış tutar; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `cod_state` | metin · null olabilir | Hayır | Kapıda ödeme tahsilatının kargo firmasından bağımsız ortak durumu; tanınmayan kodda null. | `"collected"` |
| `cod_status` | metin · null olabilir | Hayır | Kargo firmasının kapıda ödeme tahsilat kodu (ör. BasitKargo’nun COLLECTED kodu); firmadan bağımsız değer cod_state alanındadır. | `"COLLECTED"` |
| `compare_price` | metin · null olabilir | Hayır | Karşılaştırma fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"150.00"` |
| `currency` | metin · null olabilir | Hayır | Ödeme tutarının ISO 4217 para birimi. | `"TRY"` |
| `customer_count` | tam sayı · null olabilir | Hayır | Kuponun tanımlı olduğu müşteri sayısı; 0 herkese açık. Müşteri kimlikleri olayda yoktur. | `0` |
| `discount_type` | metin · null olabilir | Hayır | Kupon indirimi: percentage yüzde, fixed TRY tutarı; yalnız ücretsiz kargo kuponunda null. | `"percentage"` |
| `discount_value` | metin · null olabilir | Hayır | Kupon indirim oranı veya TRY tutarı; ondalık metin. | `"10.00"` |
| `interval_weeks` | tam sayı · null olabilir | Hayır | Aboneliğin teslimat sıklığı, hafta. | `2` |
| `item_count` | tam sayı · null olabilir | Hayır | İade/değişim kaydındaki ürün satırı sayısı; ürün adedi değildir. | `2` |
| `linked` | true/false · null olabilir | Hayır | Ürün markaya bağlıysa true. | `true` |
| `method` | metin · null olabilir | Hayır | Başarısız denemenin ödeme yöntemi. | `"card"` |
| `min_order` | metin · null olabilir | Hayır | Kupona uygun ürünlerde en az sepet tutarı, TRY; null sınırsız. | `"100.00"` |
| `next_date` | metin · null olabilir | Hayır | Aboneliğin sonraki teslimat günü; markanın takvim günü (YYYY-MM-DD). | `"2026-11-06"` |
| `period` | metin · null olabilir | Hayır | Yenileme siparişinin teslimat günü (YYYY-MM-DD); yalnız subscription.renewed olayında. | `"2026-10-23"` |
| `price` | metin · null olabilir | Hayır | Satış fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `problem` | metin · null olabilir | Hayır | Kanal bağlantısının sorunu: authorization (anahtar veya yetki geçersiz; stok gitmez, sipariş gelmez) veya app_removed (Wix uygulaması kaldırıldı); sorun yoksa null. Kanalın hata metni gönderilmez. | `"authorization"` |
| `provider` | metin · null olabilir | Hayır | Kart ödemesinin sağlayıcısı. | `"iyzico"` |
| `provider_code` | metin · null olabilir | Hayır | Güvenli ret anlamı: declined veya insufficient_funds. Ham sağlayıcı metni ve kart bilgisi yoktur. | `"declined"` |
| `quantity` | metin · null olabilir | Hayır | Miktar; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"1.000"` |
| `refund_amount` | metin · null olabilir | Hayır | İade kaynağındaki tutar olgusu, TRY; para ödendiği anlamına gelmez. Ödeme refund.succeeded olayıdır. | `"120.00"` |
| `state` | metin · null olabilir | Hayır | Gönderide kargo firmasından bağımsız ortak durum; status firmanın kodudur. Açılış beklerken, başarısızlıkta ve tanınmayan kodda null. | `"delivered"` |
| `status` | metin · null olabilir | Hayır | Kaynağın işlem durumu. | `"active"` |
| `threshold` | metin · null olabilir | Hayır | Düşük stok uyarısının dışlayıcı eşiği; ürünün stok biriminde ondalık metin. Miktar bu değerin altına indiğinde uyarır. | `"3.000"` |
| `total` | metin · null olabilir | Hayır | Faturanın KDV dahil toplamı, TRY cinsinden iki ondalıklı metin. | `"120.00"` |
| `valid_from` | metin · null olabilir | Hayır | Kuponun markanın yerel takvimindeki başlangıç günü (YYYY-MM-DD) veya dakikası (YYYY-MM-DDTHH:MM); null sınırsız. | `"2026-10-16"` |
| `valid_until` | metin · null olabilir | Hayır | Kuponun markanın yerel takvimindeki bitiş günü veya dakikası; gün ve son dakika dahildir. null sınırsız. | `"2026-12-31T23:59"` |

## EventType

Alanı olmayan değer.

## Export

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `completed_at` | tarih-saat · null olabilir | Evet | Tamamlanma zamanı; RFC 3339 UTC. Hazır değilse null. | `null` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `error_code` | metin · null olabilir | Evet | Hazırlama başarısızsa kod: export_too_large (süzgeçle daraltın), snapshot_timeout (daha küçük dosya isteyin), export_access_changed (güncel izinlerle yeniden başlatın); diğer hatalarda destek alın. Başarıda null. | `null` |
| `file` | nesne (ExportFile) · null olabilir | Evet | Tamamlanmış dosya bilgisi; hazırlama sürerken null. | `null` |
| `format` | metin (seçenekler: jsonl, csv) | Evet | jsonl: satır başına JSON nesnesi; csv: her hücresi JSON değeri olan CSV. | `"jsonl"` |
| `id` | metin | Evet | Kaynağın dış kimliği; exp_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"exp_1234567890abcdef1234567890abcdef"` |
| `resource` | metin (seçenekler: orders, customers, products, variants, inventory_levels) | Evet | Dışa aktarılacak kaynak; aynı kaynağın okuma kapsamı da gerekir. | `"orders"` |
| `resume_cursor` | metin · null olabilir | Evet | Dosya tamamen uygulandıktan sonra /events cursor parametresine verilir; types eklenmez. Hazır değilse null. | `null` |
| `row_count` | tam sayı | Evet | Dosyaya yazılmış nesne sayısı. | `0` |
| `status` | metin (seçenekler: queued, running, completed, failed) | Evet | queued: sırada; running: hazırlanıyor; completed: hazır; failed: başarısız. | `"queued"` |
| `mode` | sabit "consistent_snapshot" | Hayır | consistent_snapshot: bütün kayıtlar aynı anın tutarlı görünümüdür. | `"consistent_snapshot"` |

## ExportFile

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `bytes` | tam sayı | Evet | Dosyanın bayt cinsinden boyutu. | `2048` |
| `content_type` | metin | Evet | İndirilecek dosyanın içerik türü. | `"application/x-ndjson"` |
| `download_path` | metin | Evet | API kökenine eklenecek /v1/files/fil_… yolu; Bearer anahtarı gerekir. | `"/v1/files/fil_1234567890abcdef1234567890abcdef"` |
| `expires_at` | tarih-saat | Evet | Dışa aktarmanın created_at zamanından tam 7 gün sonrası; bu anda indirme 410 file_expired döner. | `"2026-10-23T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; fil_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"fil_1234567890abcdef1234567890abcdef"` |

## ExternalOrderItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `quantity` | sayı (en çok 100000) veya metin | Evet | Miktar; en çok üç ondalık hane. Adetle satılan üründe tam sayı gerekir. | `"2"` |
| `unit_price` | sayı (en az 0; en çok 10000000) veya metin | Evet | Kanalda kesinleşmiş KDV dahil TRY birim satış fiyatı; zorunludur. Kampanya uygulanmaz. | `"120.00"` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; baş/son boşluk ve harf farkı kaldırılarak tam eşleşir. | `"KUPA-MAVI"` |
| `variant` | metin · null olabilir | Hayır | var_ dış kimliği; variant veya sku alanından tam biri gerekir. | `"var_1234567890abcdef1234567890abcdef"` |

## ExternalReference

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin (en çok 200 karakter) | Evet | Kendi sisteminizdeki sipariş numarası; bu API bağlantısında tekildir. | `"WEB-2026-001"` |
| `namespace` | metin · null olabilir | Hayır | Ad alanı kalıcı grant kimliğidir (grt_). Atlayabilirsiniz; başka ad alanı seçilemez. | `null` |

## FieldError

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `code` | metin | Evet | Alan doğrulamasının kararlı kodu. | `"less_than_equal"` |
| `detail` | metin | Evet | Hatanın Türkçe açıklaması. | `"İstek alanlarını kontrol edin."` |
| `field` | metin | Evet | Hatalı alanın noktayla ayrılmış yolu. | `"query.limit"` |

## History

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `actor_type` | metin · null olabilir | Evet | İşlemi yapanın türü; kişi kimliği yayımlanmaz. | `"user"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `previous_status` | metin · null olabilir | Evet | Değişiklik öncesindeki durum. | `"pending"` |
| `status` | metin · null olabilir | Evet | Kaynağın işlem durumu. | `"active"` |
| `type` | metin | Evet | İşlem veya olay türü. | `"order.created"` |

## Identity

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `api_url` | metin | Evet | Bu ortamın /v1 içeren temel adresi. | `"https://api.siparis.app/v1"` |
| `api_version` | metin | Evet | API ana sürümü. | `"v1"` |
| `environment` | metin | Evet | Bağlantının ortamı: live veya test. | `"live"` |
| `id` | metin | Evet | Kaynağın dış kimliği; grt_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"grt_1234567890abcdef1234567890abcdef"` |
| `scopes` | liste: metin | Evet | Bu API bağlantısına açık kapsamlar; yazma kapsamı okuma vermez. |  |
| `stores` | liste: nesne (Brand) | Evet | Anahtarın okuyabildiği etkin markalar. |  |
| `actor_type` | metin | Hayır | API anahtarı için api, OAuth kurulumu için app. | `"app"` |
| `application` | nesne (ApplicationIdentity) · null olabilir | Hayır | OAuth uygulaması ve kurulumu; API anahtarında boş. | `null` |

## InventoryLevelsExportFilters

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Hayır | true arşivdeki ve kapalı kayıtları da içerir; varsayılan false. | `false` |
| `location` | metin · null olabilir | Hayır | Depo dış kimliği (loc_ ve 32 küçük onaltılık karakter). | `"loc_1234567890abcdef1234567890abcdef"` |
| `product` | metin · null olabilir | Hayır | Ürün dış kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `updated_after` | tarih-saat · null olabilir | Hayır | Başlangıç dahil; saat dilimli RFC 3339 zamanı. | `"2026-10-16T09:00:00Z"` |
| `updated_before` | tarih-saat · null olabilir | Hayır | Bitiş hariç; saat dilimli RFC 3339 zamanı. | `"2026-10-17T09:00:00Z"` |
| `variant` | metin · null olabilir | Hayır | Seçenek dış kimliği (var_ ve 32 küçük onaltılık karakter). | `"var_1234567890abcdef1234567890abcdef"` |

## InventoryLevelsExportInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `format` | metin (seçenekler: jsonl, csv) | Evet | jsonl: satır başına JSON nesnesi; csv: her hücresi JSON değeri olan CSV. | `"jsonl"` |
| `mode` | sabit "consistent_snapshot" | Evet | consistent_snapshot: bütün kayıtlar aynı anın tutarlı görünümüdür. | `"consistent_snapshot"` |
| `resource` | sabit "inventory_levels" | Evet | Dışa aktarılacak kaynak; aynı kaynağın okuma kapsamı gerekir. | `"inventory_levels"` |
| `filters` | nesne (InventoryLevelsExportFilters) | Hayır | Kaynağın liste süzgeçleri; limit, cursor ve include desteklenmez. |  |

## Invoice

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `cancelled_at` | tarih-saat · null olabilir | Evet | İptal zamanı; RFC 3339 UTC. Değer yoksa null. | `"2026-10-16T09:00:00Z"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; inv_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"inv_1234567890abcdef1234567890abcdef"` |
| `issued_at` | tarih-saat | Evet | Fatura düzenleme zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `kind` | metin | Evet | Fatura türü. | `"e_arsiv"` |
| `status` | metin | Evet | Faturanın düzenlenme/iptal durumu. Değerler: pending, issued, failed, cancelled. Türkçe karşılıkları: https://developer.siparis.app/referans#fatura-durumlari. | `"issued"` |
| `tax_total` | metin | Evet | Toplam vergi; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"20.00"` |
| `total` | metin | Evet | Toplam tutar; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `buyer_name` | metin · null olabilir | Hayır | Alıcı adı; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `buyer_tax_number` | metin · null olabilir | Hayır | Alıcı vergi/kimlik numarası; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `cancellation_status` | metin · null olabilir | Hayır | İptal isteğinin durumu; iptal istenmediyse alan atlanır. Değerler: pending, unknown, failed, succeeded. Türkçe karşılıkları: https://developer.siparis.app/referans#fatura-iptal-durumlari. | `null` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `error_code` | metin · null olabilir | Hayır | Kesim veya iptalin sabit hata kodu; sağlayıcının serbest metni yayımlanmaz. | `null` |
| `number` | metin · null olabilir | Hayır | Fatura numarası; personal_data:read gerekir. | `null` |

## InvoiceBuyer

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `address` | metin | Evet | Fatura adresinin açık adresi. | `"Örnek adres"` |
| `city` | metin | Evet | Fatura adresinin ili. | `"İstanbul"` |
| `corporate` | true/false | Evet | Şirket adına faturada true. | `false` |
| `district` | metin | Evet | Fatura adresinin ilçesi. | `"Kadıköy"` |
| `email` | metin | Evet | Sipariş verenin e-posta adresi. | `"ornek@example.com"` |
| `name` | metin | Evet | Panelin seçtiği alıcı adı veya unvanı. | `"Örnek Alıcı"` |
| `phone` | metin | Evet | Sipariş verenin telefonu. | `""` |
| `tax_number` | metin | Evet | VKN/TCKN; bireyselde panelin nihai tüketici numarası. | `"11111111111"` |
| `tax_office` | metin | Evet | Vergi dairesi; bireyselde boş. | `""` |

## InvoiceCancelPreview

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `code` | metin · null olabilir | Evet | Portal gerektiğinde invoice_portal_required; aksi halde null. | `null` |
| `detail` | metin · null olabilir | Evet | Paneldeki sağlayıcı iptal açıklaması. | `null` |
| `invoice` | metin | Evet | İptali incelenen inv_ kimliği. | `"inv_1234567890abcdef1234567890abcdef"` |
| `portal_required` | true/false | Evet | Önce portalda iptal gerekiyorsa true. | `false` |
| `via_api` | true/false | Evet | Sağlayıcı API ile iptali destekliyorsa true. | `true` |

## InvoiceInput

Alanı olmayan değer.

## InvoiceLine

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `discount` | metin | Evet | Satırın KDV hariç indirimi, TRY. | `"0.00"` |
| `name` | metin | Evet | Panelin fatura satırı açıklaması. | `"Örnek ürün"` |
| `net` | metin | Evet | İndirimden sonra KDV hariç tutar, TRY. | `"100.00"` |
| `quantity` | metin | Evet | Satır miktarı; ondalık metin. | `"2"` |
| `tax_amount` | metin | Evet | Satırın KDV tutarı, TRY. | `"20.00"` |
| `tax_rate` | metin | Evet | KDV oranı, yüzde. | `"20"` |
| `total` | metin | Evet | Satırın KDV dahil tutarı, TRY. | `"120.00"` |
| `unit` | metin | Evet | Miktarın birimi. | `"adet"` |
| `unit_price` | metin | Evet | KDV hariç birim fiyat, TRY; dört ondalık haneye kadar. | `"50.0000"` |

## InvoicePreview

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `kind` | metin (seçenekler: e_fatura, e_arsiv) · null olabilir | Evet | Mükellef sorgusu sonucu; sağlayıcı yanıt vermediyse null. | `"e_arsiv"` |
| `lines` | liste: nesne (InvoiceLine) | Evet | Panelin faturaya yazacağı ürün ve hizmet satırları. |  |
| `order` | metin | Evet | Önizlenen siparişin ord_ kimliği. | `"ord_1234567890abcdef1234567890abcdef"` |
| `tax_total` | metin | Evet | Fatura KDV toplamı, TRY. | `"20.00"` |
| `total` | metin | Evet | Fatura toplamı, TRY. | `"120.00"` |
| `warnings` | liste: nesne (InvoiceWarning) | Evet | Mükellef sorgusu ve alıcı unvanı uyarıları. |  |
| `buyer` | nesne (InvoiceBuyer) · null olabilir | Hayır | Alıcı; personal_data:read yoksa alan atlanır. |  |
| `currency` | sabit "TRY" | Hayır | Tutarların para birimi. | `"TRY"` |
| `registered_title` | metin · null olabilir | Hayır | Sağlayıcıdaki unvan; personal_data:read yoksa atlanır. | `null` |

## InvoiceWarning

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `code` | metin | Evet | Uyarının sabit kodu. | `"invoice_kind_unknown"` |
| `detail` | metin | Evet | Uyarının Türkçe açıklaması. | `"Belge türü sağlayıcı yanıt verdiğinde kesinleşir."` |

## Level

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `id` | metin | Evet | Kaynağın dış kimliği; lvl_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"lvl_1234567890abcdef1234567890abcdef"` |
| `location` | metin | Evet | Depo kimliği (loc_ ve 32 küçük onaltılık karakter). | `"loc_1234567890abcdef1234567890abcdef"` |
| `made_to_order` | true/false | Evet | Sipariş üzerine hazırlanırsa true; sayılmayan stoktan önceliklidir. | `false` |
| `product` | metin | Evet | Ürün kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `quantity` | metin · null olabilir | Evet | Depodaki fiziksel bakiye; sipariş verilebilir miktar değildir. Sayılmayan veya sipariş üzerine stokta null. | `"12.000"` |
| `quantity_unit` | metin | Evet | Bakiyenin birimi; ortak stokta havuz birimidir. | `"adet"` |
| `revision` | tam sayı (en az 1) | Evet | Bu depo ve seçeneğin stok sürümü; miktar değiştiğinde artar, ürün sürümünden bağımsızdır. | `1` |
| `stock_state` | metin (seçenekler: counted, uncounted, made_to_order) | Evet | counted: sayılan; uncounted: sayılmayan; made_to_order: sipariş üzerine. | `"counted"` |
| `stock_uncounted` | true/false | Evet | Stok sayılmıyorsa true; stok miktarı null sunulur. | `false` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `variant` | metin | Evet | Seçenek kimliği (var_ ve 32 küçük onaltılık karakter). | `"var_1234567890abcdef1234567890abcdef"` |

## Line

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `discount` | metin · null olabilir | Evet | Satır indirimi; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `id` | metin | Evet | Kaynağın dış kimliği; lin_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"lin_1234567890abcdef1234567890abcdef"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Örnek Kupa"` |
| `product` | metin · null olabilir | Evet | Ürün kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `quantity` | metin | Evet | Miktar; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"1.000"` |
| `refunded_quantity` | metin | Evet | İade edilen miktar; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"0.000"` |
| `tax_amount` | metin · null olabilir | Evet | Vergi tutarı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"20.00"` |
| `tax_rate` | metin · null olabilir | Evet | Yüzde cinsinden vergi oranı; ondalık metin. | `"20.00"` |
| `total` | metin | Evet | Toplam tutar; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `unit` | metin | Evet | Ürünün satış miktarı birimi. | `"adet"` |
| `unit_price` | metin | Evet | Satırın birim satış fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `variant` | metin · null olabilir | Evet | Seçenek kimliği (var_ ve 32 küçük onaltılık karakter). | `"var_1234567890abcdef1234567890abcdef"` |
| `variant_name` | metin · null olabilir | Evet | Satırdaki seçeneğin sipariş anındaki adı. | `"Mavi"` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `unit_cost` | metin · null olabilir | Hayır | Birim maliyet; yalnız costs:read ile görünür; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"80.00"` |

## Location

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `active` | true/false | Evet | Kayıt etkinse true. | `true` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; loc_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"loc_1234567890abcdef1234567890abcdef"` |
| `is_default` | true/false | Evet | Varsayılan seçenek veya depo ise true. | `true` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Ana depo"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |

## MoneyReturned

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `expected_amount` | sayı (en az 0; en çok 10000000) veya metin | Evet | Bu iadede kalan, gerçekten geri verilen TRY tutarı; değişirse 409 amount_changed. | `"120.00"` |
| `method` | metin (seçenekler: cash, bank, pos) · null olabilir | Hayır | Elle ödeme yöntemi: cash nakit, bank havale, pos kart. Boşsa ortak servis belirler. | `"bank"` |

## MoneySummary

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `carried` | metin | Evet | Başka siparişe devreden hak (+), başka siparişten gelen mahsup (−); TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `collect_due` | metin | Evet | Henüz tahsil edilmesi gereken; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `collected` | metin | Evet | Tahsil edilen toplam; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `has_collection` | true/false | Evet | En az bir tahsilat kaydı varsa true. | `true` |
| `kept` | metin | Evet | Tahsilatlardan geri ödemeler çıktıktan sonra kalan; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `legacy` | true/false | Evet | Eski kayıt biçiminden gelen özetse true. | `false` |
| `refund_due` | metin | Evet | Henüz müşteriye dönmesi gereken; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `reserved` | metin | Evet | Devam eden geri ödemeler için ayrılan; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `returned` | metin | Evet | Geri ödenen toplam; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `test` | true/false | Evet | Deneme işlemi ise true; gerçek para hareketiyle karıştırmayın. | `false` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |

## Movement

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `count_reason` | metin · null olabilir | Evet | Sayım farkının nedeni; sayım değilse null. | `null` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Evet | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `document` | metin · null olabilir | Evet | Stok belgesi kimliği (doc_ ve 32 küçük onaltılık karakter). | `"doc_1234567890abcdef1234567890abcdef"` |
| `id` | metin | Evet | Kaynağın dış kimliği; mov_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"mov_1234567890abcdef1234567890abcdef"` |
| `location` | metin | Evet | Depo kimliği (loc_ ve 32 küçük onaltılık karakter). | `"loc_1234567890abcdef1234567890abcdef"` |
| `order` | metin · null olabilir | Evet | Sipariş kimliği (ord_ ve 32 küçük onaltılık karakter). | `"ord_1234567890abcdef1234567890abcdef"` |
| `product` | metin | Evet | Ürün kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `quantity_change` | metin | Evet | Stok hareketinin işaretli miktar değişimi; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"-1.000"` |
| `reason` | metin | Evet | İşlemin nedeni. | `"sale"` |
| `variant` | metin | Evet | Seçenek kimliği (var_ ve 32 küçük onaltılık karakter). | `"var_1234567890abcdef1234567890abcdef"` |
| `variant_balance_after` | metin · null olabilir | Evet | Hareketten sonraki seçenek toplamı; depo bakiyesi değildir; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"12.000"` |
| `note` | metin · null olabilir | Hayır | İç not; internal_notes:read gerekir. Kişisel kaynakta personal_data:read da gerekir. | `"Örnek iç not"` |
| `unit_cost` | metin · null olabilir | Hayır | Birim maliyet; yalnız costs:read ile görünür; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"80.00"` |

## Option

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin | Evet | Seçenek özelliğinin adı. | `"Renk"` |
| `value` | metin | Evet | Seçenek özelliğinin değeri. | `"Mavi"` |

## Order

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `channel` | metin · null olabilir | Evet | Siparişin satış kanalı; api_external kaynağında bildirilen channel_name. | `"whatsapp"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `customer` | metin · null olabilir | Evet | Müşteri kimliği (cus_ ve 32 küçük onaltılık karakter). | `"cus_1234567890abcdef1234567890abcdef"` |
| `delivery_day` | tarih · null olabilir | Evet | Teslim günü; YYYY-MM-DD. | `"2026-10-17"` |
| `delivery_method` | metin · null olabilir | Evet | Teslim yöntemi. Değerler: shipping, hand, pickup, digital. Türkçe karşılıkları: https://developer.siparis.app/referans#teslim-yontemleri. | `"shipping"` |
| `discount_total` | metin · null olabilir | Evet | Toplam indirim; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `gift_wrap_fee` | metin · null olabilir | Evet | Hediye paketi ücreti; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `id` | metin | Evet | Kaynağın dış kimliği; ord_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"ord_1234567890abcdef1234567890abcdef"` |
| `number` | metin · null olabilir | Evet | Siparişin görünen sekiz haneli numarası; kaynak kimliği değildir. | `"48273910"` |
| `payment_fee` | metin · null olabilir | Evet | Ödeme yöntemi ücreti; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `payment_method` | metin · null olabilir | Evet | Ödeme yöntemi. Değerler: cod, bank_transfer, credit_card, split, cash, marketplace. Türkçe karşılıkları: https://developer.siparis.app/referans#odeme-yontemleri. | `"bank_transfer"` |
| `payment_state` | metin · null olabilir | Evet | Ödeme durumu; alınan ve iade edilen paradan hesaplanır, sipariş durumundan ayrıdır. Değerler: none, awaiting, partial, paid, refund_due, refunded, test. Türkçe karşılıkları: https://developer.siparis.app/referans#odeme-durumlari. | `"paid"` |
| `preorder_from` | tarih · null olabilir | Evet | Ön siparişin başlangıç günü; YYYY-MM-DD. | `null` |
| `shipping_total` | metin · null olabilir | Evet | Toplam kargo ücreti; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `source` | metin · null olabilir | Evet | Kaydın kaynağı; api: yeni satış, api_external: başka kanalda kesinleşmiş satış, import: eski siteden bilgi amaçlı aktarım. Panel/AI ve bağlı kanal kaynakları da korunur. | `"panel"` |
| `status` | metin | Evet | Siparişin iş akışındaki durumu; ödeme durumu ayrıca payment_state alanındadır. Değerler: pending, payment_pending, confirmed, processing, shipped, delivered, cancelled, refunded. Türkçe karşılıkları: https://developer.siparis.app/referans#siparis-durumlari. | `"confirmed"` |
| `store` | metin | Evet | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `subtotal` | metin · null olabilir | Evet | Ürünlerin ara toplamı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `tax_status` | metin (seçenekler: exempt, standard) | Evet | standard: KDV mükellefi; exempt: vergiden muaf. | `"standard"` |
| `tax_total` | metin · null olabilir | Evet | Toplam vergi; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"20.00"` |
| `total` | metin | Evet | Toplam tutar; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `billing_address` | nesne (Address) · null olabilir | Hayır | Fatura adresi; personal_data:read yoksa alan atlanır. |  |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `customer_email` | metin · null olabilir | Hayır | Müşteri e-postası; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `customer_name` | metin · null olabilir | Hayır | Müşteri adı; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `customer_note` | metin · null olabilir | Hayır | Müşterinin sipariş notu; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `customer_phone` | metin · null olabilir | Hayır | Müşteri telefonu; yalnız personal_data:read kapsamında görünür. Örnek kişisel veri içermez. | `null` |
| `invoice` | nesne (Billing) · null olabilir | Hayır | Fatura alıcı bilgileri; personal_data:read yoksa alan atlanır. |  |
| `lines` | nesne (Page_Line_) · null olabilir | Hayır | include=lines ile ilk 50 sipariş satırı; devamı /orders/{id}/lines ile alınır. |  |
| `note` | metin · null olabilir | Hayır | İç not; internal_notes:read gerekir. Kişisel kaynakta personal_data:read da gerekir. | `"Örnek iç not"` |
| `payments` | nesne (Payments) · null olabilir | Hayır | include=payments ile ilk 50 tahsilat/iade ve bütün siparişin para özeti; payments:read gerekir. |  |
| `returns` | nesne (Page_Return_) · null olabilir | Hayır | include=returns ile ilk 50 iade; returns:read gerekir. |  |
| `shipments` | nesne (Page_Shipment_) · null olabilir | Hayır | include=shipments ile ilk 50 gönderi; shipments:read gerekir. |  |
| `shipping_address` | nesne (Address) · null olabilir | Hayır | Teslimat adresi; personal_data:read yoksa alan atlanır. |  |

## OrderAction

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `expected_status` | metin (en çok 30 karakter) · null olabilir | Hayır | Gördüğünüz sipariş durumu; kilit altında farklıysa 409 status_mismatch. | `"confirmed"` |
| `reason` | metin (en çok 1000 karakter) | Hayır | İşlemin gerekçesi; correct-status ve başka kanalda bildirilen satışın iptali için zorunlu. | `"Müşteri teslim aldı."` |

## OrderAddress

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `address_line` | metin (en çok 500 karakter) | Evet | Açık teslimat adresi. | `"Örnek Sokak No: 1"` |
| `city` | metin (en çok 100 karakter) | Evet | Adresin ili. | `"İstanbul"` |
| `district` | metin (en çok 100 karakter) | Evet | Adresin ilçesi. | `"Kadıköy"` |
| `full_name` | metin (en çok 200 karakter) | Hayır | Alıcının adı; boşsa sipariş verenin adı kullanılır. | `"Örnek Alıcı"` |
| `neighborhood` | metin (en çok 100 karakter) | Hayır | Kargoda resmî listedeki mahalle veya köy adı gerekir. | `"Caferağa"` |
| `neighborhood_area` | metin (en çok 100 karakter) | Hayır | Varsa bağlı köy, semt veya belde. | `""` |
| `phone` | metin (en çok 30 karakter) | Hayır | Alıcının telefonu; kargoda zorunludur. Başka alıcıya müşterinin telefonu taşınmaz. | `"05000000000"` |
| `postal_code` | metin (en çok 10 karakter) · null olabilir | Hayır | İsteğe bağlı posta kodu. | `"34710"` |
| `village` | true/false | Hayır | Adres köydeyse true. | `false` |

## OrderCustomer

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `name` | metin (en çok 200 karakter) | Evet | Müşterinin adı. | `"Örnek Müşteri"` |
| `email` | metin (en çok 200 karakter) | Hayır | Müşterinin e-postası; mevcut müşteri eşleştirmesinde kullanılır. | `"musteri@example.com"` |
| `phone` | metin (en çok 30 karakter) | Hayır | Müşterinin telefonu; mevcut müşteri eşleştirmesinde kullanılır. | `"05000000000"` |

## OrderItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `quantity` | sayı (en çok 100000) veya metin | Evet | Miktar; en çok üç ondalık hane. Adetle satılan üründe tam sayı gerekir. | `"2"` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; baş/son boşluk ve harf farkı kaldırılarak tam eşleşir. | `"KUPA-MAVI"` |
| `unit_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | İsteğe bağlı TRY birim fiyatı; orders.price eylem izni gerekir. Yoksa markanın kampanya dahil fiyatı kullanılır. | `"120.00"` |
| `variant` | metin · null olabilir | Hayır | var_ dış kimliği; variant veya sku alanından tam biri gerekir. | `"var_1234567890abcdef1234567890abcdef"` |

## OrdersExportFilters

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at_from` | tarih-saat · null olabilir | Hayır | Başlangıç zamanı dahil; saat dilimli RFC 3339 gönderin. | `"2026-10-16T09:00:00Z"` |
| `created_at_to` | tarih-saat · null olabilir | Hayır | Bitiş zamanı hariç; saat dilimli RFC 3339 gönderin. | `"2026-10-17T09:00:00Z"` |
| `customer` | metin · null olabilir | Hayır | Siparişin bağlı olduğu cus_ müşteri kimliği; yalnız sort=-created_at ile kullanılabilir. Başka markanın müşterisi marka sınırlı anahtara görünmez. | `"cus_1234567890abcdef1234567890abcdef"` |
| `number` | metin · null olabilir | Hayır | Siparişin görünen sekiz haneli numarası; kaynak kimliği değildir. | `"48273910"` |
| `sort` | metin (seçenekler: updated_at, -created_at) | Hayır | updated_at: son değişiklikten ileri; -created_at: en yeni sipariş önce. Sıra değişirse yeni sayfalama başlatın. | `"-created_at"` |
| `status` | metin (seçenekler: pending, payment_pending, confirmed, processing, shipped, delivered, cancelled, refunded) · null olabilir | Hayır | Sipariş durumu eşitlik süzgeci. payment_pending eski değerdir: 19 Ekim 2026'dan beri hiçbir sipariş bu durumda açılmaz, süzgeç boş sonuç verir; ödemesi beklenen sipariş payment_state=awaiting ya da partial taşır. | `"confirmed"` |
| `store` | metin · null olabilir | Hayır | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `updated_at_from` | tarih-saat · null olabilir | Hayır | Başlangıç zamanı dahil; saat dilimli RFC 3339 gönderin. | `"2026-10-16T09:00:00Z"` |
| `updated_at_to` | tarih-saat · null olabilir | Hayır | Bitiş zamanı hariç; saat dilimli RFC 3339 gönderin. | `"2026-10-17T09:00:00Z"` |

## OrdersExportInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `format` | metin (seçenekler: jsonl, csv) | Evet | jsonl: satır başına JSON nesnesi; csv: her hücresi JSON değeri olan CSV. | `"jsonl"` |
| `mode` | sabit "consistent_snapshot" | Evet | consistent_snapshot: bütün kayıtlar aynı anın tutarlı görünümüdür. | `"consistent_snapshot"` |
| `resource` | sabit "orders" | Evet | Dışa aktarılacak kaynak; aynı kaynağın okuma kapsamı gerekir. | `"orders"` |
| `filters` | nesne (OrdersExportFilters) | Hayır | Kaynağın liste süzgeçleri; limit, cursor ve include desteklenmez. |  |

## Package

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `boxes` | liste: nesne (Box) (en çok 99 öğe) | Evet | Gerçek ölçülmüş koliler; toplam en çok 99 koli. |  |
| `version` | metin (en çok 32 karakter) · null olabilir | Hayır | Fiyat yanıtındaki package_version; verilirse değişen koli bilgisi reddedilir. | `"0123456789abcdef"` |

## Page_Attempt_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Attempt) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Category_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Category) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Coupon_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Coupon) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Customer_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Customer) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Delivery_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Delivery) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Endpoint_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Endpoint) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_History_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (History) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Invoice_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Invoice) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Level_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Level) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Line_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Line) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Location_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Location) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Movement_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Movement) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Order_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Order) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_ProductBrand_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (ProductBrand) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Product_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Product) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Return_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Return) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Shipment_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Shipment) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_StorePrice_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (StorePrice) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Store_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Store) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## Page_Variant_

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Variant) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |

## PatchCoupon

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `categories` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | cat_ kimlikleri; alt kategoriler dahil. [] bütün ürünlerde geçerli yapar. |  |
| `code` | metin (en çok 40 karakter) · null olabilir | Hayır | Kupon kodu; panelin Türkçe harf ve boşluk normalleştirmesi uygulanır. | `"MERHABA10"` |
| `discount_type` | metin (seçenekler: percentage, fixed) · null olabilir | Hayır | Yüzde veya sabit TRY tutarı; null temizler. | `"percentage"` |
| `discount_value` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Yüzde oranı veya TRY tutarı; ondalık metin, null temizler. | `"10.00"` |
| `exclude_discounted` | true/false · null olabilir | Hayır | İndirimli/kampanyalı ürünlere uygulanmayacaksa true. | `false` |
| `first_order_only` | true/false · null olabilir | Hayır | Yalnız ilk siparişte geçerliyse true. | `false` |
| `free_shipping` | true/false · null olabilir | Hayır | Kargo da ücretsizse true. | `false` |
| `max_uses` | tam sayı (en az 1; en çok 2147483647) · null olabilir | Hayır | Toplam kullanım sınırı; null sınırsız. | `100` |
| `max_uses_per_customer` | tam sayı (en az 1; en çok 2147483647) · null olabilir | Hayır | Kişi başına kullanım sınırı; null sınırsız. | `1` |
| `min_order` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Kupona uygun ürünlerin en az TRY tutarı; null kaldırır. | `"100.00"` |
| `status` | metin (seçenekler: active, inactive) · null olabilir | Hayır | active açık, inactive kapalı. | `"active"` |
| `valid_from` | metin (en çok 35 karakter) · null olabilir | Hayır | Panel gibi markanın yerel günü veya dakikası; YYYY-MM-DD ya da ISO tarih/saat. null sınırı kaldırır. | `"2026-10-16"` |
| `valid_until` | metin (en çok 35 karakter) · null olabilir | Hayır | Bitiş günü/dakikası dahildir; saat dilimli ISO zaman markanın saatine çevrilir. null sınırsız. | `"2026-12-31T23:59"` |

## PatchCustomer

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `address` | nesne (CustomerAddress) · null olabilir | Hayır | Müşterinin adresi; null adresi kaldırır. personal_data:write gerekir. |  |
| `email` | metin (en çok 320 karakter) · null olabilir | Hayır | E-posta; null veya boş metin alanı temizler. personal_data:write gerekir. | `"musteri@example.com"` |
| `invoice` | nesne (CustomerInvoice) · null olabilir | Hayır | Fatura bilgisi; null kaldırır. personal_data:write gerekir. |  |
| `marketing_consent` | true/false · null olabilir | Hayır | Pazarlama izni: true var, false yok, null bilinmiyor. personal_data:write gerekir. | `false` |
| `name` | metin (en çok 500 karakter) · null olabilir | Hayır | Yeni müşteri adı; null olamaz. Gönderilmeyen alan korunur. personal_data:write gerekir. | `"Örnek Müşteri Yeni"` |
| `note` | metin (en çok 10000 karakter) · null olabilir | Hayır | İç not; null veya boş metin kaldırır. internal_notes:write gerekir. | `"Teslimden önce bilgi verin."` |
| `phone` | metin (en çok 50 karakter) · null olabilir | Hayır | Telefon; null veya boş metin alanı temizler. personal_data:write gerekir. | `"05000000000"` |

## PatchOrder

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `add_items` | liste: nesne (OrderItem) (en çok 50 öğe) · null olabilir | Hayır | Marka fiyatıyla eklenecek kalemler; burada unit_price desteklenmez. |  |
| `allow_waiting` | true/false | Hayır | Eklenen kalemin eksik adedi mal gelince gönderilsin. | `false` |
| `customer_note` | metin (en çok 2000 karakter) · null olabilir | Hayır | Müşteri notu; boş metin kaldırır, personal_data:write gerekir. | `"Teslimden önce arayın."` |
| `delivery_day` | tarih · null olabilir | Hayır | Yeni teslim günü; null günü kaldırır. Gönderilmeyen alan değişmez. | `"2026-10-17"` |
| `items` | liste: nesne (ChangeItem) (en çok 100 öğe) · null olabilir | Hayır | Yalnız değişen satırlar; panelin kargo/fatura/ödeme ve stok kilitleri geçerlidir. |  |
| `note` | metin (en çok 2000 karakter) · null olabilir | Hayır | İç not; boş metin kaldırır, internal_notes:write gerekir. | `"Paket kontrol edildi."` |
| `refund_amount` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Para dönen düzeltmede gördüğünüz iade tutarı; money_out:write gerekir. Kart iadesi panelin mevcut yoluyla yürür. | `"120.00"` |
| `restore_items` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | Çıkarılmış lin_ satırlarını kayıtlı adet/fiyatla geri ekler. |  |
| `shipping_address` | nesne (OrderAddress) · null olabilir | Hayır | Yeni teslimat adresi; personal_data:write gerekir. Müşteri kartının adresi değiştirilmez. |  |

## PatchProduct

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `barcode` | metin (en çok 100 karakter) · null olabilir | Hayır | Barkod; işletmede canlı seçenekler arasında tekil. null temizler. | `"8690000000001"` |
| `brand` | metin · null olabilir | Hayır | Mevcut brd_ ürün markası; null bağı kaldırır. Satıcının sto_ markasıyla karıştırmayın. | `null` |
| `categories` | liste: metin (en çok 100 öğe) · null olabilir | Hayır | Mevcut cat_ kategori kimlikleri; [] bağları kaldırır. Yeni kategori açmaz. |  |
| `compare_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Üstü çizili fiyat; null kaldırır. Üründe satış fiyatından yüksek olmalıdır. | `"150.00"` |
| `cost` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Alış maliyeti; costs:write gerekir. Panel gibi KDV hariç, muaf işletmede KDV dahil saklanır; null kaldırır. | `"80.00"` |
| `description` | metin (en çok 50000 karakter) · null olabilir | Hayır | Ürün açıklaması; null kaldırır. | `"Seramik kupa, 300 ml."` |
| `images` | liste: metin (en çok 2000 karakter) (en çok 12 öğe) · null olabilir | Hayır | En çok 12 http/https görsel URL’si; [] galeriyi boşaltır. Panelin güvenli kopyalama kuyruğu kullanılır. |  |
| `made_to_order` | true/false · null olabilir | Hayır | Sipariş üzerine hazırlanırsa true; mevcut stok korunur. | `false` |
| `name` | metin (en çok 500 karakter) · null olabilir | Hayır | Ürün adı; gönderilmezse korunur, null olamaz. | `"Seramik Kupa"` |
| `price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | TRY satış fiyatı; ondalık metin. null ürünün fiyatını kaldırır, seçenekte ürün fiyatına döner. | `"120.00"` |
| `short_description` | metin (en çok 1000 karakter) · null olabilir | Hayır | Kısa açıklama; null kaldırır. | `"Seramik kupa"` |
| `sku` | metin (en çok 255 karakter) · null olabilir | Hayır | Stok kodu; işletmede canlı seçenekler arasında tekil. null temizler. | `"KUPA-MAVI"` |
| `status` | metin (seçenekler: active, draft, inactive) · null olabilir | Hayır | Satış durumu; arşiv için ayrı eylemi kullanın. Fiyatsız ürün satışa açılamaz. | `"active"` |
| `tax_rate` | sayı (en az 0; en çok 100) veya metin · null olabilir | Hayır | Yüzde KDV oranı; panelin vergi sınıfı doğrulaması kullanılır. | `"20"` |
| `unit` | metin (en çok 20 karakter) · null olabilir | Hayır | Satış birimi; panelin miktar doğrulaması kullanılır. | `"adet"` |
| `weight` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | Kilogram cinsinden ağırlık; null kaldırır. | `"0.350"` |

## PatchVariant

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `barcode` | metin (en çok 100 karakter) · null olabilir | Hayır | Barkod; işletmede canlı seçenekler arasında tekil. null temizler. | `"8690000000001"` |
| `compare_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Üstü çizili fiyat; null kaldırır. Üründe satış fiyatından yüksek olmalıdır. | `"150.00"` |
| `cost` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | Alış maliyeti; costs:write gerekir. Panel gibi KDV hariç, muaf işletmede KDV dahil saklanır; null kaldırır. | `"80.00"` |
| `images` | liste: metin (en çok 2000 karakter) (en çok 12 öğe) · null olabilir | Hayır | En çok 12 http/https görsel URL’si; [] galeriyi boşaltır. Panelin güvenli kopyalama kuyruğu kullanılır. |  |
| `made_to_order` | true/false · null olabilir | Hayır | Sipariş üzerine hazırlanırsa true; mevcut stok korunur. | `false` |
| `name` | metin (en çok 500 karakter) · null olabilir | Hayır | Seçeneğin görünen adı; gönderilmezse korunur. | `"Mavi"` |
| `options` | liste: nesne (CatalogOption) (en çok 20 öğe) · null olabilir | Hayır | Seçeneğin ad/değer çiftleri; gönderilmezse korunur. |  |
| `price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | TRY satış fiyatı; ondalık metin. null ürünün fiyatını kaldırır, seçenekte ürün fiyatına döner. | `"120.00"` |
| `price_rule` | nesne (PriceRule) · null olabilir | Hayır | Ürün fiyatından TL veya yüzde farkı; null ürünle aynı fiyat demektir. |  |
| `sku` | metin (en çok 255 karakter) · null olabilir | Hayır | Stok kodu; işletmede canlı seçenekler arasında tekil. null temizler. | `"KUPA-MAVI"` |
| `weight` | sayı (en az 0; en çok 100000) veya metin · null olabilir | Hayır | Kilogram cinsinden ağırlık; null kaldırır. | `"0.350"` |

## Payment

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | metin | Evet | İşlem tutarı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `channel` | metin | Evet | Satış veya tahsilat kanalı. | `"bank"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; col_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"col_1234567890abcdef1234567890abcdef"` |
| `kind` | metin | Evet | Tahsilat veya iade işlem türü. | `"payment"` |
| `settled_at` | tarih-saat · null olabilir | Evet | Kesinleşme zamanı; RFC 3339 UTC. Değer yoksa null. | `"2026-10-16T09:00:00Z"` |
| `status` | metin | Evet | Tahsilat/geri ödeme durumu. | `"succeeded"` |
| `test` | true/false | Evet | Deneme işlemi ise true; gerçek para hareketiyle karıştırmayın. | `false` |
| `type` | metin (seçenekler: collection, refund) | Evet | collection: tahsilat; refund: geri ödeme. | `"collection"` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |

## PaymentPart

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | sayı (en az 0; en çok 10000000) veya metin | Evet | Gerçekten alınan tutar, TRY; ondalık metin. | `"120.00"` |
| `method` | metin (seçenekler: cash, pos, bank) | Evet | cash: nakit; pos: elle alınan kart; bank: havale. | `"cash"` |

## Payments

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `data` | liste: nesne (Payment) | Evet | Bu sayfanın görünür kayıtları; boş liste de geçerli bir sayfadır. |  |
| `has_more` | true/false | Evet | Taranacak başka sayfa varsa true; olaylarda boş data ile de true olabilir. | `false` |
| `next_cursor` | metin · null olabilir | Evet | Sonraki sayfa için aynen gönderilecek opak imleç; kaynak listesi bittiyse null. | `null` |
| `summary` | nesne (MoneySummary) | Evet | Siparişin bütün tahsilat ve iadelerinden hesaplanan para özeti; yalnız bu sayfanın toplamı değildir. |  |

## PreviewItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `item` | metin | Evet | İade edilecek lin_ kalemi. | `"lin_1234567890abcdef1234567890abcdef"` |
| `quantity` | metin | Evet | İade miktarı; kalemin biriminde ondalık metin. | `"1.000"` |
| `unit` | metin | Evet | Miktarın birimi. | `"adet"` |

## PriceRule

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `kind` | metin (seçenekler: tl, percent) | Evet | Ürün fiyatına eklenecek farkın birimi. | `"tl"` |
| `value` | sayı (en az -10000000; en çok 10000000) veya metin | Evet | Fiyat farkı; negatif değer indirimdir. Son fiyat ortak fiyat kuralıyla doğrulanır. | `"20.00"` |

## ProblemDetail

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `code` | metin | Evet | Programatik karar için kararlı hata kodu; metni ayrıştırmayın. | `"validation_error"` |
| `detail` | metin | Evet | Hatanın Türkçe açıklaması. | `"İstek alanlarını kontrol edin."` |
| `errors` | liste: nesne (FieldError) | Evet | Alan düzeyindeki doğrulama sorunları; genel hatada boş liste. |  |
| `request_id` | metin | Evet | Destek için X-Request-ID ile aynı istek takip kimliği. | `"req_ornek_20261016"` |
| `status` | tam sayı (en az 400; en çok 599) | Evet | HTTP yanıt durum kodu. | `422` |
| `title` | metin | Evet | HTTP durumunun kısa standart adı. | `"Unprocessable Entity"` |
| `type` | metin | Evet | Kararlı hata türü URI değeri. | `"urn:siparis:problem:validation_error"` |
| `current_amount` | metin · null olabilir | Hayır | amount_changed hatasında güncel TRY iade tutarı. | `"120.00"` |
| `current_quantity` | metin · null olabilir | Hayır | Yalnız stock_changed hatasında kilit altında okunan güncel depo miktarı; sayılmayan stokta null. | `"9.000"` |
| `existing_customer` | metin · null olabilir | Hayır | Yalnız customer_exists hatasında eşleşen mevcut cus_ müşteri kimliği. | `"cus_1234567890abcdef1234567890abcdef"` |
| `existing_order` | metin · null olabilir | Hayır | Yalnız duplicate_external_reference hatasında daha önce açılan ord_ siparişi. | `"ord_1234567890abcdef1234567890abcdef"` |
| `existing_product` | metin · null olabilir | Hayır | code_taken veya external_reference_conflict hatasında görünür mevcut prd_ kaydı. | `"prd_1234567890abcdef1234567890abcdef"` |
| `existing_variant` | metin · null olabilir | Hayır | code_taken veya external_reference_conflict hatasında görünür mevcut var_ kaydı. | `"var_1234567890abcdef1234567890abcdef"` |
| `refund_amount` | metin · null olabilir | Hayır | Yalnız refund_confirm hatasında teyit edilmesi gereken TRY iade tutarı. | `"100.00"` |

## Product

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `brand` | metin · null olabilir | Evet | Ürün markası kimliği (brd_ ve 32 küçük onaltılık karakter). | `"brd_1234567890abcdef1234567890abcdef"` |
| `code` | metin · null olabilir | Evet | Ürün kodu. | `"KUPA-001"` |
| `compare_price` | metin · null olabilir | Evet | Karşılaştırma fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"150.00"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Evet | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `description` | metin · null olabilir | Evet | Kaynağın açıklama metni. | `"Seramik kupa, 300 ml."` |
| `id` | metin | Evet | Kaynağın dış kimliği; prd_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"prd_1234567890abcdef1234567890abcdef"` |
| `images` | liste: metin | Evet | Ürün görsellerinin sıralı HTTPS adresleri. |  |
| `kind` | metin | Evet | Ürün türü; ör. standard: tek ürün, bundle: paket. | `"standard"` |
| `made_to_order` | true/false | Evet | Sipariş üzerine hazırlanırsa true; sayılmayan stoktan önceliklidir. | `false` |
| `maximum_quantity` | metin · null olabilir | Evet | En çok sipariş miktarı; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"100.000"` |
| `minimum_quantity` | metin · null olabilir | Evet | En az sipariş miktarı; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"1.000"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Seramik Kupa"` |
| `pool_unit` | metin · null olabilir | Evet | Ortak stok havuzunun birimi. | `"adet"` |
| `preparation` | metin · null olabilir | Evet | Sipariş üzerine hazırlama süresinin açıklaması. | `"3 iş günü"` |
| `price` | metin · null olabilir | Evet | Satış fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `quantity_step` | metin · null olabilir | Evet | Sipariş miktarının artış adımı; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"1.000"` |
| `short_description` | metin · null olabilir | Evet | Ürünün kısa açıklaması. | `"Seramik kupa"` |
| `slug` | metin · null olabilir | Evet | Adreslerde kullanılan kısa ad. | `"ornek-kupa"` |
| `status` | metin | Evet | Kaynağın işlem durumu. | `"active"` |
| `tax_rate` | metin · null olabilir | Evet | Yüzde cinsinden vergi oranı; ondalık metin. | `"20.00"` |
| `tax_status` | metin (seçenekler: standard, exempt) | Evet | standard: KDV mükellefi; exempt: vergiden muaf. | `"standard"` |
| `unit` | metin | Evet | Ürünün satış miktarı birimi. | `"adet"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `categories` | liste: nesne (Category) · null olabilir | Hayır | include=categories ile eklenen görünür kategoriler. |  |
| `cost` | metin · null olabilir | Hayır | Maliyet; yalnız costs:read ile görünür; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"80.00"` |
| `store_prices` | liste: nesne (StorePrice) · null olabilir | Hayır | include=store_prices ile eklenen kayıtlı marka fiyatları; kampanya fiyatı değildir. |  |
| `variants` | liste: nesne (Variant) · null olabilir | Hayır | include=variants ile eklenen seçenekler. |  |

## ProductBrand

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; brd_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"brd_1234567890abcdef1234567890abcdef"` |
| `logo` | metin · null olabilir | Evet | Ürün markasının logo adresi. | `"https://example.com/logo.png"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Örnek Üretici"` |
| `revision` | tam sayı | Evet | Kaydın revizyonu; If-Match için ETag ile birlikte kullanılır. | `1` |
| `slug` | metin · null olabilir | Evet | Adreslerde kullanılan kısa ad. | `"ornek-kupa"` |
| `sort_order` | tam sayı | Evet | Panel ve vitrindeki sırası; küçük değer önce gelir. | `0` |
| `status` | metin | Evet | Kaynağın işlem durumu. | `"active"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |

## ProductsExportFilters

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Hayır | true arşivdeki ve kapalı kayıtları da içerir; varsayılan false. | `false` |
| `status` | metin (seçenekler: active, draft, inactive) · null olabilir | Hayır | Durum eşitlik süzgeci; desteklenen değerler şemada listelenir. | `"active"` |
| `store` | metin · null olabilir | Hayır | Marka dış kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `updated_after` | tarih-saat · null olabilir | Hayır | Başlangıç dahil; saat dilimli RFC 3339 zamanı. | `"2026-10-16T09:00:00Z"` |
| `updated_before` | tarih-saat · null olabilir | Hayır | Bitiş hariç; saat dilimli RFC 3339 zamanı. | `"2026-10-17T09:00:00Z"` |

## ProductsExportInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `format` | metin (seçenekler: jsonl, csv) | Evet | jsonl: satır başına JSON nesnesi; csv: her hücresi JSON değeri olan CSV. | `"jsonl"` |
| `mode` | sabit "consistent_snapshot" | Evet | consistent_snapshot: bütün kayıtlar aynı anın tutarlı görünümüdür. | `"consistent_snapshot"` |
| `resource` | sabit "products" | Evet | Dışa aktarılacak kaynak; aynı kaynağın okuma kapsamı gerekir. | `"products"` |
| `filters` | nesne (ProductsExportFilters) | Hayır | Kaynağın liste süzgeçleri; limit, cursor ve include desteklenmez. |  |

## QuoteCarrier

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `available` | true/false | Evet | Ücret, adres ve bakiye yönünden gönderim uygunsa true; açılışta yeniden denetlenir. | `true` |
| `cod_fee` | metin · null olabilir | Evet | Ücrete dahil kapıda tahsilat bedeli, TRY; bilinmiyorsa null. | `"29.90"` |
| `code` | metin | Evet | Gönderi açarken carrier alanına gönderilecek firma kodu. | `"YURTICI"` |
| `detail` | metin · null olabilir | Evet | Engelin Türkçe açıklaması; yoksa null. | `null` |
| `fee` | metin · null olabilir | Evet | Bu fiziksel gönderinin TRY ücreti; bilinen kapıda tahsilat bedeli dahil. null ise açılamaz. | `"124.80"` |
| `name` | metin | Evet | Kargo firmasının adı. | `"Yurtiçi Kargo"` |
| `note` | metin · null olabilir | Evet | Varsa kapıda ödeme bedeli uyarısı. | `null` |
| `problem_code` | metin · null olabilir | Evet | Gönderim engelinin kararlı kodu; yoksa null. | `null` |

## QuoteInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `merge_orders` | liste: metin (en çok 99 öğe) | Hayır | Aynı marka, alıcı, adres ve depodaki diğer ord_ siparişleri; birleştirme açık seçimdir. |  |
| `package` | nesne (Package) · null olabilir | Hayır | Yalnız bu sorgu için ölçüler; sorgu siparişi değiştirmez. Açarken aynı ölçüleri gönderin. |  |

## ReadyOrder

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `notified` | sabit true | Evet | Müşteriye hazır olduğu bildirildiyse true; bu uç bildirim göndermez. | `true` |
| `expected_status` | metin (en çok 30 karakter) · null olabilir | Hayır | Gördüğünüz sipariş durumu; kilit altında farklıysa 409 status_mismatch. | `"confirmed"` |
| `reason` | metin (en çok 1000 karakter) | Hayır | İşlemin gerekçesi; correct-status ve başka kanalda bildirilen satışın iptali için zorunlu. | `"Müşteri teslim aldı."` |

## ReceiptLine

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `quantity` | sayı (en az 0; en çok 100000000) veya metin | Evet | İşlenecek miktar; en çok üç ondalık hane, adet biriminde tam sayı. | `"2"` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; baş/son boşluk ve harf farkı kaldırılarak tam eşleşir. | `"KUPA-MAVI"` |
| `unit_price` | sayı (en az 0; en çok 999999999) veya metin · null olabilir | Hayır | TRY birim alış fiyatı; costs:write gerekir. KDV dahil/hariç seçimi belge üzerindedir; ürünün KDV oranı kullanılır. | `"120.00"` |
| `variant` | metin · null olabilir | Hayır | var_ seçenek kimliği; variant veya sku alanından tam biri gerekir. Ortak stokta havuzun var_ kimliğini kullanın. | `"var_1234567890abcdef1234567890abcdef"` |

## ReceiveOrderPayment

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `expected_due` | sayı (en az 0; en çok 10000000) veya metin | Evet | İşlemden önce gördüğünüz kalan tutar; değişmişse işlem yapılmaz. | `"120.00"` |
| `parts` | liste: nesne (PaymentPart) (en çok 20 öğe) | Evet | Alınan gerçek ödemeler; panelin aynı tahsilat servisine yazılır. |  |
| `expected_status` | metin (en çok 30 karakter) · null olabilir | Hayır | Gördüğünüz sipariş durumu; kilit altında farklıysa 409 status_mismatch. | `"confirmed"` |
| `reason` | metin (en çok 1000 karakter) | Hayır | İşlemin gerekçesi; correct-status ve başka kanalda bildirilen satışın iptali için zorunlu. | `"Müşteri teslim aldı."` |

## ReceiveStock

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `lines` | liste: nesne (ReceiptLine) (en çok 500 öğe) | Evet | Gelen seçenekler, miktarları ve isteğe bağlı alış fiyatları. |  |
| `location` | metin | Evet | İşlemin loc_ depo kimliği; /locations listesinden seçin. | `"loc_1234567890abcdef1234567890abcdef"` |
| `external_reference` | nesne (StockReference) · null olabilir | Hayır | Dış belge numarasını grant ad alanında tekilleştirir; çakışma 409 external_reference_conflict. |  |
| `invoice_date` | tarih · null olabilir | Hayır | Fatura tarihi; gelecekte olamaz, numara varsa ve tarih yoksa markanın bugünü. costs:write gerekir. | `"2026-10-16"` |
| `invoice_number` | metin (en çok 50 karakter) · null olabilir | Hayır | Tedarikçi fatura numarası; costs:write gerekir. | `"TEST2026000000001"` |
| `note` | metin (en çok 300 karakter) · null olabilir | Hayır | İç açıklama; internal_notes:write gerekir, okumak için internal_notes:read gerekir. | `"Depoda kontrol edildi."` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `"sto_1234567890abcdef1234567890abcdef"` |
| `supplier` | metin · null olabilir | Hayır | Mevcut sup_ tedarikçi kimliği; costs:write gerekir. Atlanırsa kendi stoğunuzdur; yeni tedarikçi panelden açılır. | `"sup_1234567890abcdef1234567890abcdef"` |
| `vat_included` | true/false · null olabilir | Hayır | Alış fiyatı KDV dahilse true; costs:write gerekir. Atlanırsa işletmenin panel varsayılanı kullanılır. | `false` |

## RefundInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Hayır | İsteğe bağlı TRY tutarı; boşsa panelin önerisi. Kalan tahsilatı aşamaz. | `"120.00"` |
| `items` | liste: nesne (ReturnItem) (en çok 200 öğe) | Hayır | İade kalemleri; boşsa yalnız para iadesidir ve amount zorunludur. |  |
| `money_returned` | true/false | Hayır | Parayı gerçekten elle geri verdiyseniz true. Çevrimiçi kartta false bırakın; sağlayıcı sonucu beklenir. | `false` |
| `notify_customer` | true/false | Hayır | İade e-postasını müşteriye gönder. | `true` |
| `reason` | metin (en çok 200 karakter) | Hayır | İade nedeni; kişisel bilgi yazmayın. | `"Müşteri ürünü iade etti"` |
| `received_condition` | metin (seçenekler: sound, damaged) · null olabilir | Hayır | Fiziksel teslim onayı. Fire için damaged ve restock=false birlikte gerekir. | `"sound"` |
| `refund_distribution` | nesne (Distribution-Input) · null olabilir | Hayır | Değişim/ayrılan siparişte önizlemenin kart ve elle ödeme dağılımı; oluştururken aynen gönderin. |  |
| `refund_method` | metin (seçenekler: cash, pos, iban) · null olabilir | Hayır | Panelin izin verdiği elle iade yolu; çevrimiçi karta iade otomatik belirlenir. | `null` |
| `refund_parts` | liste: nesne (RefundPart) (en çok 20 öğe) · null olabilir | Hayır | Elle geri verilen parçalar; toplam iade tutarına eşit, money_returned=true olmalı. | `null` |
| `restock` | true/false · null olabilir | Hayır | Stoğa geri ekleme seçimi. Boşsa panel/AI varsayılanı: iade edilemez veya hasarlı ürün eklenmez. false tek başına fire yazmaz. | `null` |

## RefundPart

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | sayı (en az 0; en çok 10000000) veya metin | Evet | Gerçekten geri verilen tutar, TRY; ondalık metin. | `"120.00"` |
| `method` | metin (seçenekler: cash, pos, bank) | Evet | cash: nakit; pos: POS cihazından kart iadesi; bank: havale. | `"cash"` |

## RefundPreview

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | metin | Evet | İade edilecek TRY tutarı; expected_amount olarak gönderin. | `"120.00"` |
| `completes` | true/false | Evet | Bu işlem siparişi tam iade durumuna geçirecekse true. | `true` |
| `items` | liste: nesne (RefundPreviewItem) | Evet | Doğrulanmış iade kalemleri ve uygulanacak stok seçimi. |  |
| `order` | metin | Evet | İadesi önizlenen ord_ siparişi. | `"ord_1234567890abcdef1234567890abcdef"` |
| `refund_distribution` | nesne (Distribution-Output) · null olabilir | Evet | Değişim/ayrılan siparişte onaylanması gereken kart ve elle ödeme tutarları. |  |
| `refund_method` | metin · null olabilir | Evet | Paranın yolu: card, cash, iban, pos veya split; belirlenmemişse null. | `"iban"` |
| `remaining` | metin | Evet | İade edilebilecek kalan TRY tutarı. | `"120.00"` |
| `shipping_included` | true/false | Evet | Panel hesabı kalan kargo bedelini içeriyorsa true. | `true` |
| `suggested_amount` | metin | Evet | Panelin önerdiği TRY tutarı. | `"120.00"` |
| `warnings` | liste: metin | Evet | Panelin kart bekleme ve stoğa geri almama uyarıları. |  |
| `currency` | sabit "TRY" | Hayır | Tutarların para birimi. | `"TRY"` |

## RefundPreviewItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `item` | metin | Evet | İade edilecek lin_ kalemi. | `"lin_1234567890abcdef1234567890abcdef"` |
| `quantity` | metin | Evet | İade miktarı; kalemin biriminde ondalık metin. | `"1.000"` |
| `restock` | true/false | Evet | Bu kalem iade edildiğinde satılabilir stoğa geri eklenecekse true. | `true` |
| `unit` | metin | Evet | Miktarın birimi. | `"adet"` |

## RefundResult

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `amount` | metin | Evet | İadenin TRY tutarı; tamamı ödenmiş anlamına gelmez. | `"120.00"` |
| `card_status` | metin (seçenekler: pending, blocked, unknown, failed) · null olabilir | Evet | Kart iadesinin bekleyen/belirsiz/hatalı durumu; sorun yoksa null. | `"pending"` |
| `id` | metin | Evet | İade işleminin ret_ kimliği; ödeme hareketinin rfd_ kimliğinden ayrıdır. | `"ret_1234567890abcdef1234567890abcdef"` |
| `items` | liste: nesne (PreviewItem) | Evet | İade kalemleri; yalnız para iadesinde boş. |  |
| `money_returned` | true/false | Evet | Bu iadenin parası geri verilmişse true. | `false` |
| `order` | metin | Evet | Ürünlerin ait olduğu ord_ siparişi. | `"ord_1234567890abcdef1234567890abcdef"` |
| `remaining_amount` | metin | Evet | Bu iadenin henüz geri verilmemiş TRY tutarı; kart bekliyorsa elle ödeme yapmayın. | `"120.00"` |
| `restock` | true/false | Evet | Bu iadede stoğa geri ekleme seçilmişse true. | `true` |
| `currency` | sabit "TRY" | Hayır | İadenin para birimi. | `"TRY"` |
| `payments` | nesne (Payments) · null olabilir | Hayır | Ödeme listesi ve güncel para özeti; yalnız payments:read ile görünür. Değişimden devreden bedel ortak hesaba dahildir. |  |

## Replay

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `event` | metin | Evet | Olay kimliği (evt_ ve 32 küçük onaltılık karakter). | `"evt_1234567890abcdef1234567890abcdef"` |

## Return

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; ret_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"ret_1234567890abcdef1234567890abcdef"` |
| `kind` | metin | Evet | İade veya değişim türü. Değerler: return, exchange, money. Türkçe karşılıkları: https://developer.siparis.app/referans#iade-turleri. | `"return"` |
| `refund_amount` | metin · null olabilir | Evet | İade tutarı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `requested_at` | tarih-saat | Evet | Talep zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `source` | metin | Evet | Kaydın oluşturulduğu kanal veya uygulama. | `"panel"` |
| `status` | metin | Evet | İade/değişim talebinin durumu. Değerler: requested, approved, declined, code_sent, arrived, refund_pending, refunded, exchanged, closed, exchange_cancelled. Türkçe karşılıkları: https://developer.siparis.app/referans#iade-durumlari. | `"requested"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `reason` | metin · null olabilir | Hayır | İşlemin nedeni. | `"sale"` |

## ReturnDetail

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; ret_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"ret_1234567890abcdef1234567890abcdef"` |
| `items` | liste: nesne (PreviewItem) | Evet | Talep edilen kalemler ve miktarlar. |  |
| `kind` | metin | Evet | İade veya değişim türü. | `"return"` |
| `order` | metin | Evet | Talebin ord_ siparişi. | `"ord_1234567890abcdef1234567890abcdef"` |
| `refund_amount` | metin · null olabilir | Evet | İade tutarı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `requested_at` | tarih-saat | Evet | Talep zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `source` | metin | Evet | Kaydın oluşturulduğu kanal veya uygulama. | `"panel"` |
| `status` | metin | Evet | İade/değişim talebinin durumu. | `"requested"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `decision_note` | metin · null olabilir | Hayır | Karar notu; personal_data:read gerekir. | `null` |
| `note` | metin · null olabilir | Hayır | Müşteri notu; personal_data:read gerekir. | `null` |
| `reason` | metin · null olabilir | Hayır | İşlemin nedeni. | `"sale"` |
| `want` | metin · null olabilir | Hayır | Değişimde istenen; personal_data:read gerekir. | `null` |

## ReturnItem

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `item` | metin | Evet | Sipariş kaleminin lin_ dış kimliği. | `"lin_1234567890abcdef1234567890abcdef"` |
| `quantity` | sayı (en çok 100000) veya metin | Evet | İade miktarı; kalemin biriminde, en çok üç ondalık hane. | `"1"` |

## ReverseStock

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; API belgesinde özgün marka kullanılır, diğer belgelerde çok marka varsa seçin. | `null` |

## Rotation

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `overlap_hours` | tam sayı (en az 1; en çok 168) | Hayır | Eski webhook sırrının da geçerli kalacağı saat sayısı; varsayılan 24, 1–168 saat. | `24` |

## Shipment

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `carrier` | metin · null olabilir | Evet | Kargo firmasının kodu. | `"YURTICI"` |
| `cod_amount` | metin · null olabilir | Evet | Kapıda tahsil edilecek tutar; sipariş alt kaynağında siparişin payı, tek gönderi okumasında fiziksel toplam; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `collected_amount` | metin · null olabilir | Evet | Kargoda tahsil edilen tutar; sipariş alt kaynağında siparişin payı, tek gönderi okumasında fiziksel toplam; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `combined` | true/false | Evet | Gönderi birden fazla sipariş içeriyorsa true; sipariş alt kaynağı payı, tek gönderi okuması toplamı verir. | `false` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `delivered_at` | tarih-saat · null olabilir | Evet | Teslim zamanı; RFC 3339 UTC. Değer yoksa null. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; shp_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"shp_1234567890abcdef1234567890abcdef"` |
| `shipping_fee` | metin · null olabilir | Evet | Müşteriden alınan kargo ücreti; sipariş alt kaynağında siparişin payı, tek gönderi okumasında fiziksel toplam; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `status` | metin · null olabilir | Evet | Kargo firmasının gönderi durumu; pending açılış sonucu bekleniyor, failed gönderi açılamadı. Firmadan bağımsız okumak için state. Değerler: pending, failed, created, NEW, READY_TO_SHIP, SHIPPED, OUT_FOR_DELIVERY, DELIVERED, COMPLETED, NEEDS_SUPPORT, DELAYED, RETURNING, RETURNED, LOST, DELETED, cancelled. Türkçe karşılıkları: https://developer.siparis.app/referans#gonderi-durumlari. | `"created"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `barcode` | metin · null olabilir | Hayır | Gönderi barkodu; personal_data:read gerekir. | `null` |
| `cancellation_status` | metin · null olabilir | Hayır | İptal isteğinin pending, unknown, succeeded veya failed durumu; kargonun durumu kesin sonuçtan sonra değişir. | `"pending"` |
| `cod_cost` | metin · null olabilir | Hayır | Kapıda ödeme maliyeti; costs:read gerekir; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"5.00"` |
| `cod_state` | metin · null olabilir | Hayır | Kapıda ödeme tahsilatının kargo firmasından bağımsız ortak durumu; kapıda ödemesiz gönderide ve tanınmayan kodda null. Değerler: pending, collected, settled, settled_direct, not_collected. Türkçe karşılıkları: https://developer.siparis.app/referans#kapida-odeme-durumlari. | `"collected"` |
| `cod_status` | metin · null olabilir | Hayır | Kapıda ödeme tahsilat durumu; cod_state ile aynı değer (önceki ad). | `"collected"` |
| `currency` | sabit "TRY" | Hayır | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `error_code` | metin · null olabilir | Hayır | Gönderi açılamadıysa kararlı hata kodu; yeni gönderi öncesi hatayı giderin. | `null` |
| `return_cost` | metin · null olabilir | Hayır | Dönüş kargo maliyeti; costs:read gerekir; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"0.00"` |
| `shipping_cost` | metin · null olabilir | Hayır | Kargo maliyeti; costs:read gerekir; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"40.00"` |
| `state` | metin · null olabilir | Hayır | Gönderinin kargo firmasından bağımsız ortak durumu; açılış beklerken (status pending), açılamadıysa (failed) ve firmanın tanınmayan kodunda null. Değerler: draft, ready, in_transit, delivered, returning, returned, lost, cancelled. Türkçe karşılıkları: https://developer.siparis.app/referans#gonderi-ortak-durumlari. | `"ready"` |
| `tracking_code` | metin · null olabilir | Hayır | Kargo takip kodu; personal_data:read gerekir. | `"TEST-TAKIP-001"` |

## ShipmentQuote

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `boxes` | liste: nesne (Box) | Evet | Hesapta kullanılan koliler; ağırlık kg, ölçüler cm. |  |
| `carriers` | liste: nesne (QuoteCarrier) | Evet | Panelin açık firma seçenekleri ve ücretleri. |  |
| `cod_amount` | metin · null olabilir | Evet | Kurye tarafından tahsil edilecek TRY tutarı; kapora düşülür, ortak gönderide üyelerin kalanları toplanır. | `"120.00"` |
| `cod_type` | metin (seçenekler: cash, card) · null olabilir | Evet | Kapıda nakit veya kart; kapıda ödeme yoksa null. | `"cash"` |
| `default_carrier` | metin · null olabilir | Evet | Panelin varsayılan firma kodu. | `"YURTICI"` |
| `order` | metin | Evet | Fiyat sorulan ord_ siparişi. | `"ord_1234567890abcdef1234567890abcdef"` |
| `package_version` | metin | Evet | Kalıcı koli düzeltmesinde kullanılabilecek görülen sürüm. | `"0123456789abcdef"` |
| `package_warning` | metin · null olabilir | Evet | Ölçüsü eksik ürünler için panelin uyarısı. | `null` |
| `payment_warning` | metin · null olabilir | Evet | Kapıda ödeme dışındaki kalan ödeme uyarısı. | `null` |
| `currency` | sabit "TRY" | Hayır | Ücretlerin para birimi. | `"TRY"` |

## StockLine

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `quantity` | sayı (en az 0; en çok 100000000) veya metin | Evet | İşlenecek miktar; en çok üç ondalık hane, adet biriminde tam sayı. | `"2"` |
| `sku` | metin (en çok 200 karakter) · null olabilir | Hayır | Stok kodu; baş/son boşluk ve harf farkı kaldırılarak tam eşleşir. | `"KUPA-MAVI"` |
| `variant` | metin · null olabilir | Hayır | var_ seçenek kimliği; variant veya sku alanından tam biri gerekir. Ortak stokta havuzun var_ kimliğini kullanın. | `"var_1234567890abcdef1234567890abcdef"` |

## StockReference

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin (en çok 200 karakter) | Evet | Kendi sisteminizdeki belge numarası; bu API bağlantısında tekildir. | `"MAL-2026-001"` |
| `namespace` | metin · null olabilir | Hayır | Ad alanı kalıcı grt_ bağlantı kimliğidir; atlanabilir, başka ad alanı seçilemez. | `null` |

## Store

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `active` | true/false | Evet | Kayıt etkinse true. | `true` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `id` | metin | Evet | Kaynağın dış kimliği; sto_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"sto_1234567890abcdef1234567890abcdef"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Örnek Marka"` |
| `slug` | metin | Evet | Adreslerde kullanılan kısa ad. | `"ornek-kupa"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |

## StorePrice

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `compare_price` | metin · null olabilir | Evet | Karşılaştırma fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"150.00"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Evet | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `price` | metin · null olabilir | Evet | Satış fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `product` | metin | Evet | Ürün kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `store` | metin | Evet | Marka kimliği (sto_ ve 32 küçük onaltılık karakter). | `"sto_1234567890abcdef1234567890abcdef"` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `variant` | metin · null olabilir | Evet | Seçenek kimliği (var_ ve 32 küçük onaltılık karakter). | `"var_1234567890abcdef1234567890abcdef"` |

## StorePriceInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `compare_price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Evet | Markanın üstü çizili fiyatı; null katalog değerini devralır. İki fiyat da null ise marka fiyat satırı kalkar. | `"140.00"` |
| `price` | sayı (en az 0; en çok 10000000) veya metin · null olabilir | Evet | Markanın TRY satış fiyatı; null katalog fiyatını devralır. | `"110.00"` |
| `variant` | metin · null olabilir | Hayır | İsteğe bağlı var_ kimliği; null veya atlanırsa ürünün marka fiyatı. Tekrar anahtarının gövde özetine dahildir. | `null` |

## Supplier

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `id` | metin | Evet | Kaynağın dış kimliği; sup_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"sup_1234567890abcdef1234567890abcdef"` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Örnek Tedarikçi"` |

## TaxonomyAction

Arşiv eylemlerine boş JSON gönderilir.

## TransferStock

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `lines` | liste: nesne (StockLine) (en çok 500 öğe) | Evet | Taşınacak seçenekler ve pozitif miktarları; kaynak depo bakiyesini aşamaz. |  |
| `location` | metin | Evet | İşlemin loc_ depo kimliği; /locations listesinden seçin. | `"loc_1234567890abcdef1234567890abcdef"` |
| `to_location` | metin | Evet | Hedef loc_ depo kimliği; kaynak location alanından farklı olmalıdır. | `"loc_abcdef1234567890abcdef1234567890"` |
| `note` | metin (en çok 300 karakter) · null olabilir | Hayır | İç açıklama; internal_notes:write gerekir, okumak için internal_notes:read gerekir. | `"Depoda kontrol edildi."` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `"sto_1234567890abcdef1234567890abcdef"` |

## UnchangedCount

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `changed` | sabit false | Evet | Güncel miktar sayımla aynı; ortak servis belge açmadı. | `false` |

## Variant

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Evet | Arşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir. | `false` |
| `barcode` | metin · null olabilir | Evet | Ürünün veya seçeneğin barkodu. | `"8690000000001"` |
| `compare_price` | metin · null olabilir | Evet | Karşılaştırma fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"150.00"` |
| `created_at` | tarih-saat | Evet | Oluşturulma zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `currency` | sabit "TRY" | Evet | Para birimi; v1 tutarları Türk lirasıdır. | `"TRY"` |
| `expired` | true/false | Evet | Seçenek emekli edilmişse true. | `false` |
| `id` | metin | Evet | Kaynağın dış kimliği; var_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz. | `"var_1234567890abcdef1234567890abcdef"` |
| `is_default` | true/false | Evet | Varsayılan seçenek veya depo ise true. | `true` |
| `made_to_order` | true/false | Evet | Sipariş üzerine hazırlanırsa true; sayılmayan stoktan önceliklidir. | `false` |
| `name` | metin | Evet | Kaydın görünen adı. | `"Mavi"` |
| `options` | liste: nesne (Option) | Evet | Seçeneğin ad/değer özellikleri. |  |
| `pool_quantity` | metin · null olabilir | Evet | Seçeneğin ortak stoktan kullandığı miktar; birimi ilgili ürün/depo alanında verilen ondalık metin. | `"1.000"` |
| `price` | metin · null olabilir | Evet | Satış fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"120.00"` |
| `product` | metin | Evet | Ürün kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `sku` | metin · null olabilir | Evet | Stok takip kodu; eşitlik araması normalize edilerek yapılır. | `"KUPA-MAVI"` |
| `stock_uncounted` | true/false | Evet | Stok sayılmıyorsa true; stok miktarı null sunulur. | `false` |
| `updated_at` | tarih-saat | Evet | Son değişiklik zamanı; RFC 3339 UTC. | `"2026-10-16T09:00:00Z"` |
| `cost` | metin · null olabilir | Hayır | Maliyet; yalnız costs:read ile görünür; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin. | `"80.00"` |

## VariantsExportFilters

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `archived` | true/false | Hayır | true arşivdeki ve kapalı kayıtları da içerir; varsayılan false. | `false` |
| `barcode` | metin · null olabilir | Hayır | Normalize edilmiş barkodla tam eşitlik; sku da verilirse ikisi eşleşir. | `"8690000000001"` |
| `product` | metin · null olabilir | Hayır | Ürün dış kimliği (prd_ ve 32 küçük onaltılık karakter). | `"prd_1234567890abcdef1234567890abcdef"` |
| `sku` | metin · null olabilir | Hayır | Normalize edilmiş stok koduyla tam eşitlik; barcode da verilirse ikisi eşleşir. | `"KUPA-MAVI"` |

## VariantsExportInput

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `format` | metin (seçenekler: jsonl, csv) | Evet | jsonl: satır başına JSON nesnesi; csv: her hücresi JSON değeri olan CSV. | `"jsonl"` |
| `mode` | sabit "consistent_snapshot" | Evet | consistent_snapshot: bütün kayıtlar aynı anın tutarlı görünümüdür. | `"consistent_snapshot"` |
| `resource` | sabit "variants" | Evet | Dışa aktarılacak kaynak; aynı kaynağın okuma kapsamı gerekir. | `"variants"` |
| `filters` | nesne (VariantsExportFilters) | Hayır | Kaynağın liste süzgeçleri; limit, cursor ve include desteklenmez. |  |

## WriteOffStock

| Alan | Tür | Zorunlu | Açıklama | Örnek |
| --- | --- | --- | --- | --- |
| `lines` | liste: nesne (StockLine) (en çok 500 öğe) | Evet | Azalan seçenekler ve pozitif miktarları. |  |
| `location` | metin | Evet | İşlemin loc_ depo kimliği; /locations listesinden seçin. | `"loc_1234567890abcdef1234567890abcdef"` |
| `reason` | metin (seçenekler: broken, lost, other, defective, fitting, sample, expired) | Evet | Panelin neden kodu: broken, lost, other her sektörde; defective/fitting/sample giyimde, expired gıda/kozmetikte. other için not zorunlu. | `"broken"` |
| `note` | metin (en çok 300 karakter) · null olabilir | Hayır | İç açıklama; internal_notes:write gerekir, okumak için internal_notes:read gerekir. | `"Depoda kontrol edildi."` |
| `store` | metin · null olabilir | Hayır | sto_ marka kimliği; tek markada veya marka sınırlı anahtarda atlanabilir. | `"sto_1234567890abcdef1234567890abcdef"` |
