# Değişiklik günlüğü

## 19 Ekim 2026 — `payment_pending` artık üretilmez

Ödeme sipariş durumundan ayrıldı: havale veya kart ödemesi beklenen sipariş `pending` (vitrin) ya da `confirmed` (elle açılan) durumundadır, ödeme `payment_state` (`awaiting`, `partial`) alanındadır. `payment_pending` hiçbir yanıtta yeni değer olarak gelmez; yalnız eski olaylarda (`previous_status`, webhook `changes`) görülür. Girdi daralmadı: `status=payment_pending` süzgeci ve dışa aktarma süzgeci kabul edilir, boş sonuç verir; durum düzeltmede `payment_pending` hedefi 409 döner. [Kodlar ve durumlar](https://developer.siparis.app/referans#siparis-durumlari).

## 19 Ekim 2026 — Gönderide firmadan bağımsız durum

Gönderiye `state` (ortak gönderi durumu: `draft`, `ready`, `in_transit`, `delivered`, `returning`, `returned`, `lost`, `cancelled`) ve `cod_state` (kapıda ödeme tahsilatı: `pending`, `collected`, `settled`, `settled_direct`, `not_collected`) alanları eklendi; `shipment.created`, `shipment.status_changed` ve `shipment.cod_changed` olaylarının `changes` alanı da aynı değerleri taşır. Açılış beklerken, başarısızlıkta ve tanınmayan kodda `null` gelir. Mevcut alanlar değişmedi: `status` ve olaydaki `cod_status` kargo firmasının kodunu aynen taşır; gönderinin `cod_status` alanı önceden de ortak değeri veriyordu, belgesi düzeltildi (önceki belge firmanın kodlarını listeliyordu). Yeni entegrasyonlarda `state` ve `cod_state` kullanın. [Kodlar ve durumlar](https://developer.siparis.app/referans#gonderi-ortak-durumlari).

## 17 Ekim 2026 — Belge düzeni: her uç kendi sayfasında

Belge sitesi işe göre düzenlendi. Menü Başlangıç, kaynaklar (Siparişler, Müşteriler, Ürünler, Stok, Kargo, İade, Fatura, Başka kanaldaki satış, Toplu işler, Kuponlar, Olaylar ve Webhook, Dışa aktarma, Uygulamalar ve MCP, Hesap), Rehberler ve Referans olarak gruplandı; menüde arama (⌘K/Ctrl+K) var. Her uç kendi adresinde: ör. [Sipariş oluştur](https://developer.siparis.app/uc/siparis-olustur); alan tablosu (önce zorunlular), cURL/Python/TypeScript örneği, yanıt ve yalnız o uca özgü hatalar. Ortak hatalar [Hata kodları](https://developer.siparis.app/hatalar#ortak-hatalar), her yanıttaki başlıklar [Genel bakış](https://developer.siparis.app)'tadır. Kodların Türkçe karşılıkları [Kodlar ve durumlar](https://developer.siparis.app/referans) sayfasında. [Postman koleksiyonu](https://developer.siparis.app/postman.json) eklendi. Eski `/uc-basvurusu#...` bağlantıları ucun yeni sayfasına yönlenir. OpenAPI işlemlerinin `summary` alanı kısa Türkçe eylem adıdır; `tags` grubu, `x-purpose` ne zaman kullanılacağını, `x-notes` kuralları verir. İsteğe bağlı kapsamın ne zaman gerektiği `x-scope-conditions` alanındadır; koşulu olmayan okuma kapsamı yalnız yanıttaki alanları açar. Ürün arşivleme, geri getirme ve marka fiyatı uçlarında hiç gerekmeyen `costs:write` ve `inventory:write` isteğe bağlı kapsam listesinden çıktı. Kodlu alanların açıklaması değer listesini içerir; `payment_state` açıklamasındaki yanlış `unpaid` örneği kalktı (değerler: none, awaiting, partial, paid, refund_due, refunded, test). Kodlar sayfası sipariş açarken gönderilebilen ödeme ve teslim kodlarını ayrıca gösterir: `marketplace` yalnız okunur. Uçların davranışı değişmedi.

## 17 Ekim 2026 — Stok belgesi olayları; başka kanal satışı açık

`inventory.document_created` ve `inventory.document_reversed` artık yayımlanıyor: panelden, AI ile veya API'den yapılan mal girişi, sayım, fire, depolar arası taşıma ve ters kayıt olay akışına ve webhook'lara düşer. Olay belge kimliği, türü ve varsa ters kayıt bağını taşır; not, tedarikçi ve maliyet taşımaz. Bu tarihten önceki belgeler için olay üretilmez; belgeyi `GET /v1/inventory/documents/{id}` ile okuyun. [Stok yazmak](https://developer.siparis.app/stok-yazmak).

`POST /v1/external_orders` her ortamda açık; `503 external_orders_unavailable` yanıtı kalktı. [Başka kanaldaki satışı bildirmek](https://developer.siparis.app/dis-satis-bildirmek).

## 16 Ekim 2026 — AI asistanınızı bağlamak

`https://api.siparis.app/mcp` adresinde OAuth ile MCP bağlantısı hazır. Sipariş, müşteri, ürün, stok ve olay okumaları;
sipariş/müşteri/stok/fiyat/gönderi yazmaları aynı API servislerini kullanır. Yazmadan önce 5 dakikalık tek kullanımlık
onay gerekir; iade yalnız önizlenir. MCP ve REST OAuth belirteçlerinin kaynakları ayrıdır; mevcut kaynak belirtmeyen
OAuth bağlantıları `/v1`'de çalışmayı sürdürür. Kalıcı API anahtarları MCP'ye kabul edilmez.
[AI asistanınızı bağlamak](https://developer.siparis.app/mcp).


## 16 Ekim 2026 · Davetli OAuth uygulamaları

OAuth 2.1 Authorization Code + zorunlu PKCE S256, 60 saniyelik tek kullanımlık kod, bir saatlik `sat_`
erişim belirteci ve döndürülen `srt_` yenileme belirteci eklendi. Yeniden kullanım bütün aileyi iptal eder;
mutlak aile ömrü 30 gündür. `/oauth/revoke` ve RFC 8414 metadata hazırdır. `/v1/me` uygulama/kurulum bilgisini
verir; kapsam, marka, tekrar anahtarı ve hız sınırı kurulum grant'ine bağlıdır. Sahip onayı, kırmızı kişisel veri
başlığı, yurt dışı uyarısı, Bağlı uygulamalar ve kurucu davet/askı ekranı eklendi. [Rehber](https://developer.siparis.app/uygulama-yapmak).

## 16 Ekim 2026 · Başka kanaldaki satışın yönetimi

Başka kanalda bildirilen satış gerekçeyle iptal edilebilir, durumu düzeltilebilir ve teslimi kaydedilebilir; stok ve raporlar güncellenir, para işlemi kanalda kalır. Yerel para iadesi doğurmayan iptal/düzeltmede `orders:write` yeterlidir. Kanalın kargoladığı satış müşteri anonimleştirmesini engellemez. Bu satışlara otomatik fatura kesilmez; elle kesim öncesi ikinci belge uyarısı gösterilir.

## 16 Ekim 2026 — Başka kanaldaki satışı bildirmek

`POST /v1/external_orders` sözleşmesi hazır: kesinleşmiş birim fiyatı ve grant + kanal içinde tekil dış sipariş numarası gerekir. Stok pazaryeri kuralıyla düşer; tahsilat kanalda kalır, yerel kasaya ikinci kez yazılmaz. Müşteriye otomatik e-posta/SMS gitmez. Listeler ve dışa aktarma `source=api_external` ile kanal adını taşır; olaylar ve webhook mevcut sipariş yolundadır. Ortamda açılmadan önce `503 external_orders_unavailable` döner. [Başka kanaldaki satışı bildirmek](https://developer.siparis.app/dis-satis-bildirmek).

## 16 Ekim 2026 — İade kararları ve para iadesi

Müşteri iade/değişim talebini okuma ve onay/ret, yan etkisiz iade önizlemesi, görülen tutarla iade oluşturma ve sonucu izleme hazırdır. Para iadesi `returns:write money_out:write`, zorunlu `expected_amount` ve `Idempotency-Key` ister; tutar değişirse `409 amount_changed` güncel tutarı verir. Kodsuz karar ve önizleme `returns:write` ister. Geri gönderim kodu açık seçimle (`return_code=true`), ayrıca `shipments:write` ile açılır; BasitKargo bakiyenizden ücretlidir.

Panelin aynı iade, stok/fire, kargo ve ödeme kuruluşu servisleri kullanılır; stok seçimi belirtilmezse iade edilemez veya hasarlı ürün stoğa eklenmez, önizleme her kalemin seçimini gösterir. Kartta belirsiz sonuç ikinci iade başlatmaz. İade yanıtında `payments:read` varsa A2 para özeti vardır; elle verilen iade `/refunds/{id}/money-returned` ile kaydedilir. İade ve karar e-postası açık seçimle atlanabilir. [İade almak ve para iadesi](https://developer.siparis.app/iade-yapmak).

## 16 Ekim 2026 — Toplu fiyat ve stok güncelleme

- En çok 10.000 satırlık fiyat ve depo sayımı, kalıcı `job_` işi ve sayfalı satır hataları hazır.
- Sayımda `expected` zorunlu; değişmiş stok satırı atlanır. Parçalar yeniden başlatmada iki kez uygulanmaz.
- Ondalık tutarlar iki haneyle saklanır (`"1.500"` = 1,50 TL); fiyat geçmişinde “API toplu güncelleme” görünür.
- Takılan satır `row_timeout` ile atlanır; 1 saat toplam süre veya art arda 20 zaman aşımında iş `timeout` ile biter.
- `job.completed` işi açan bağlantı ve kaynak kapsamlarına bağlı; sahip paneli ve AI aynı iş listesini gösterir.
- [Gönderme, izleme ve hata düzeltme rehberi](https://developer.siparis.app/toplu-guncelleme).

## 16 Ekim 2026 · Fatura kesme, iptal ve belge

Fatura önizleme, kesme, tek fatura okuma, iptal önizleme, iptal ve belge indirme açıldı. Panelin aynı alıcı,
KDV ve uygunluk kuralları kullanılır. Kesme `202 pending` ve kalıcı fatura kimliği döndürür; belirsiz sonuç
aynı ETTN üzerinden sorgulanır. İptal `invoices:write money_out:write`; HTML belge
`invoices:read personal_data:read` ister. Portal gereken iptaller açıklamayla belirtilir; muhasebe kaydı
korunur. `invoice.*` olayları henüz yayımlanmaz; sonuç fatura okuma ucundan izlenir.
[Fatura kesmek ve iptal etmek](https://developer.siparis.app/fatura-kesmek).


## 16 Ekim 2026 — Deneme ortamı

- `sandbox.siparis.app` panel/vitrin ve `api.sandbox.siparis.app/v1` API adresleri eklendi; canlıdan ayrı sentetik veriler kullanılır.
- `spk_test_` anahtarları yalnız deneme ortamında geçer; `/v1/me.environment` değeri `test` olur. Yanlış ortam hataları: `test_key_in_live`, `live_key_in_sandbox`.
- [Deneme ortamında denemek](https://developer.siparis.app/deneme-ortami) rehberi, sahte servis davranışları ve sınırlar eklendi. OpenAPI sunucu listesinde canlı ilk, deneme ikinci sıradadır; deneme ortamının kendi `/v1/openapi.json` belgesinde deneme ilktir.

Bu sayfa `https://api.siparis.app/v1` sözleşmesinin değişikliklerini izler. Güncel alanlar backend’den üretilen [OpenAPI](https://developer.siparis.app/openapi.json) içindedir. Kırıcı sözleşme değişiklikleri yeni ana sürümle duyurulur; istemciler tanımadıkları ek yanıt alanlarını yok sayabilmelidir.

## 16 Ekim 2026 · Gönderi açma, iptal ve SVG etiket

Kargo fiyat sorgusu bütün bağlantı ve markalarda işletme başına 60 saniyede 20 sorguyla sınırlıdır; aşımda `429 quote_rate_limited` ve `Retry-After` gelir. Sorgu bakiyeyi en çok 60 saniyelik önbellekten, gönderi açılışı taze okur; açılış bu sayacı tüketmez. Zaten açılmış birleşik grup için yeni API açılışı `409 shipment_not_allowed` döner; ilk isteğin aynı tekrar anahtarıyla yinelenmesi aynı gönderiyi verir.

Kargo fiyatı sorma, gönderi açma ve iptal `shipments:write` ile hazırdır. Fiyat sorgusu yan etkisiz POST’tur; `Idempotency-Key` gerekmez. Açma ve iptal zorunlu tekrar anahtarıyla panelin aynı kalıcı işini kullanır. 202 yanıtını tek gönderi okumasından izleyin; belirsiz açılış aynı `shp_` kimliğiyle bekler. Etiket `image/svg+xml` döner; çok kolide `page` ile her SVG ayrı indirilir, `X-Label-Pages` toplam etiket sayısını verir; `shipments:read` ve `personal_data:read` birlikte gerekir, önbelleklenmez. Birleştirme, bakiye, kapıda ödeme, depo ve koli kuralları panelle aynıdır. [Kargoya vermek](https://developer.siparis.app/kargo-gondermek).

## 16 Ekim 2026 · KVKK müşteri anonimleştirmesi

`POST /v1/customers/{id}/anonymize` açıldı. `customers:write`, sahibin Özel şablonda ayrıca seçtiği hassas `customers:erase` ve `personal_data:write` kapsamları; zorunlu `Idempotency-Key` ve `confirm="anonymize"` gerekir. Panel/AI ile aynı anonimleştirme servisi kullanılır; açık sipariş engeli `customer_anonymization_blocked` döndürür. İşlem geri alınamaz; sipariş, kesilmiş fatura ve muhasebe kayıtları kalır. Zaten anonim müşteride 200 ve değişiklik yoktur. Mevcut `customer.anonymized` olayı ve webhook kişisel veri içermez; makbuzlar güncel anonim kaydı okur. Eski dışa aktarma dosyalarının erişimi oluşturulmalarından 7 gün sonra kapanır. [KVKK silme isteği](https://developer.siparis.app/musteri-eklemek).

## 16 Ekim 2026 · Kategori, ürün markası ve kupon

Kategori ve ürün markası oluşturma, güncelleme, arşivleme ve geri getirme `products:write` ile açıldı; işletme genelindeki bu kayıtları marka sınırlı bağlantı değiştiremez. Kupon listesi ve ayrıntısı `coupons:read`, yazmaları `coupons:write` ister. Arşiv/geri getirme ayrıca `archive:write` gerektirir. Kupon kimlikleri `cpn_` öneklidir; kod çakışması `coupon_code_taken` döndürür. Paneldeki kategori kapsamı ve kullanım sayıları korunur; kişisel alanlar yayımlanmaz. Üç kayıt türünde de revision/ETag, If-Match ve gövdesiz tekrar makbuzu kullanılır. [Kategori, ürün markası ve kupon yazmak](https://developer.siparis.app/kupon-ve-kategori).

## 16 Ekim 2026 · Ürün, seçenek ve marka fiyatı yazmaları

Ürün oluşturma/güncelleme, seçenek ekleme/güncelleme, ürün ve seçenek arşivi, ürün geri getirme ve marka fiyatı yazımı açıldı. `products:write`; maliyet için `costs:write`, ilk stok için `inventory:write`, arşiv/geri getirme için `archive:write` gerekir. Ürün ve seçenek yanıtları ürün görünümünün içerik ETag’ini taşır; `revision` alanı bulunmaz. Seçenek, kategori ve marka fiyatı değişiklikleri etiketi değiştirir; stok miktarı/sayım durumu ve `updated_at` değişiklikleri değiştirmez. SKU/barkod çakışması `code_taken` ve görünür kod sahibinin kimliğini verir. Dış kimlik grant ad alanında tekildir; bütün yazmalarda gövdesiz tekrar makbuzu kullanılır. Seçenek yaşam döngüsü için dört `variant.*` olayı eklendi. [Ürün eklemek ve güncellemek](https://developer.siparis.app/urun-yazmak).

## 16 Ekim 2026 · Stok belgeleri

Mal girişi, sayım, fire/kayıp, depolar arası taşıma ve belge ters kaydı açıldı. `inventory:write`; alış fiyatı/KDV/tedarikçide ayrıca yeni `costs:write` kapsamı gerekir. Maliyet okumak ayrı `costs:read` kapsamıdır. Sayımda her satırın `expected` değeri zorunludur. Belge yanıtları, ETag, grant ad alanında dış numara ve gövdesiz tekrar makbuzu kullanılır; stok seviyesinin ayrı `revision` alanı vardır. `inventory.document_created` ve `inventory.document_reversed` olayları eklendi. [Stok yazma rehberi](https://developer.siparis.app/stok-yazmak).

## 16 Ekim 2026 · Müşteri yazmaları ve liste kolaylıkları

Müşteri oluşturma, güncelleme, arşivleme ve geri getirme açıldı. Bütün yazmalar Idempotency-Key kullanır; müşteri kartı revision/ETag taşır, If-Match ile korunabilir. Kişisel alanlar personal_data:write, iç not internal_notes:write, arşiv ve geri getirme archive:write ister. Eşleşen kartta customer_exists ve existing_customer döner. KVKK anonimleştirmesi aynı gün ayrı kapsamla açıldı (yukarıdaki kayıt).

Sipariş ve müşteri listelerinde sort=-created_at en yeni kaydı başa getirir; varsayılan updated_at artan sırası korunur. Müşteri araması ham email/phone kabul eder; eski email_key/phone_key parametreleri sürer. orders?customer=cus_...&sort=-created_at müşteriye bağlı siparişleri süzer; customer ile başka sıra veya sort alanının atlanması 422 döndürür. Sıra değiştiğinde eski imleç kullanılamaz.

[Müşteri eklemek](https://developer.siparis.app/musteri-eklemek), [müşterileri bulmak](https://developer.siparis.app/musterileri-bulmak), [siparişleri listelemek](https://developer.siparis.app/siparisleri-listelemek) ve [neler yapabilirim](https://developer.siparis.app/neler-yapabilirim) rehberleri eklendi.
## 16 Ekim 2026 · Sipariş eklemek ve ilerletmek

`POST /orders`, `PATCH /orders/{id}` ve onaylama, hazırlama, hazır bilgisi, teslim, ödeme alındı, iptal ve gerekçeli durum düzeltme eylemleri açıldı. Siparişler `source=api` ile panelin mevcut ticari kurallarından geçer. Sipariş ayrıntısı ve yazma yanıtlarına içerik özetinden güçlü `ETag` eklendi; isteğe bağlı `If-Match` değişmiş siparişte 412 verir. Dış sipariş numarası bağlantıda tekildir. [Sipariş eklemek ve ilerletmek](https://developer.siparis.app/siparis-eklemek) rehberi kopyalanabilir örnekler içerir.

Bütün API yazmalarında `Idempotency-Key` zorunludur; webhook yazmaları da bu kurala dahildir. Tekrarda işlem yeniden yapılmaz; ilk HTTP durumu ve `Location` korunur, `Idempotent-Replayed: true` eklenir. Başarılı yanıt güncel kayıttan ve bağlantının güncel izinleriyle üretilir; dışa aktarma işinin güncel durumu döner. Makbuzda yanıt gövdesi ve kişisel veri tutulmaz; anonimleştirilmiş bilgi geri gelmez. Webhook sırrı A4 sözleşmesindeki gibi yalnız ilk oluşturma/döndürme yanıtında gösterilir; makbuzda saklanmaz ve tekrarda verilmez.

Aynı Idempotency-Key ile tekrarlanan istek, ilk isteğin sonucunu (hata dahil) döndürür; yeni deneme için yeni anahtar kullanın. Dışa aktarma dahil kaydedilen 4xx iş hatalarında makbuz yalnız hata kodunu ve sabit açıklamayı taşır. Anahtar döndürmek makbuzun veya dış numaranın ad alanını değiştirmez. Bağımsız iade uçları da açıldı; iptal panelin mevcut davranışını sürdürür.

## 16 Ekim 2026 · İnsan ve AI için belgeler

Başlangıç, ERP sipariş aktarımı, stok eşitlemesi, ilk dosya ve olay akışı rehberleri; alan açıklamaları ve örnekleri; hata kataloğu; curl/Python/TypeScript uç örnekleri eklendi. Her belge sayfasının `.md` hali, `/llms.txt` dizini ve `/llms-full.txt` tam başvurusu vardır. OpenAPI ve kod örnekleri aynı backend sözleşmesinden gelir.

## 16 Ekim 2026 · Başlangıç dosyaları

Beş kaynak için JSONL/CSV, aynı anın `resume_cursor` değeri, `job.completed` ve güncel yetkiyle dosya indirme açıldı. Dosya erişimi oluşturulmadan 7 gün sonra kapanır; iş ve olay geçmişi kalır.

## 16 Ekim 2026 · Olay akışı ve webhook

Kalıcı `/events` akışı; webhook adresleri, imzalı kurulum denemesi, teslim geçmişi, sır döndürme ve yeniden gönderim açıldı. Olayın kaynağına ait okuma kapsamı gerekir.

## 16 Ekim 2026 · Okuma uçları ve adresler

Sipariş, müşteri, katalog ve stok okuma uçları açıldı. API adresi `https://api.siparis.app/v1`, belge adresi `https://developer.siparis.app`. Platform ve marka adreslerinde `/v1` kullanılmaz.

## 14 Ekim 2026 · İlk sürüm

API anahtarları, kapsam ve marka sınırları, anahtar döndürme/iptal ve `/v1/me` ile bağlantı kimliği açıldı. Deneme ortamı ve yazma uçları sonraki aşamadadır; mevcut sözleşmede sunulmaz.
