# E-Faturacım Servis API Kullanımı Servisler `POST /api/v1/{slug}` adresinden JSON gövde ile çağrılır; session kullanılmaz. `GET /api/v1` kayıtlı servisleri, `GET /api/v1/{slug}` tek bir servisin dokümanını döndürür. Ortak yanıt zarfı: `{"basarili": bool, "mesaj": string, "veri": mixed}`. ## Kimlik Doğrulama `login` dışındaki servisler giriş gerektirir; aşağıdaki servis tablosunun **Giriş** sütunu her servis için bunu ayrıca gösterir. İki yol vardır: **1. Bearer** — `login` servisinden alınan GUID. Başlıkla ya da gövdeyle gönderilebilir: ``` Authorization: Bearer 9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a ``` ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a" } ``` **2. Basic auth** — kullanıcı adı alanı `musteri|kullanici` biçiminde birleştirilir: ``` Authorization: Basic base64("demo|ali:gizli123") ``` Aynı bilgiler gövdeyle de gönderilebilir: ```json { "musteri": "demo", "kullanici": "ali", "sifre": "gizli123" } ``` Basic auth ile yapılan ilk çağrıda cihaza bağlı olmayan bir bearer üretilir ve sonraki istekler bunun üzerinden yürür; doğrulama sonucu 600 saniye önbelleklenir. ## Durum Kodları | Kod | Anlamı | |---|---| | 200 | Başarılı | | 401 | Kimlik doğrulama başarısız ya da eksik | | 403 | Yetki yok (ör. yetkili olmadığınız firma) | | 404 | Servis ya da kayıt bulunamadı | | 422 | Parametre doğrulama hatası (`veri.hatalar` alanında ayrıntı) | | 429 | Çok fazla istek | | 503 | Entegratör veritabanına ulaşılamıyor | ## Servisler | Slug | Servis | Giriş | Açıklama | |---|---|---|---| | `login` | Login | — | Müşteri kodu, kullanıcı adı ve şifre ile kimlik doğrulaması yapar. Her deneme loglanır; art arda hatalı denemelerde aşamalı bekletme (en fazla 30 sn) uygulanır. | | `listLogins` | Login Listesi | gerekli | Kullanıcının aktif girişlerini (cihaz/bearer kayıtlarını) en fazla 100 kayıt olacak şekilde listeler. Bearer değerleri maskeli gösterilir; her kaydın "logout" alanı, logoutFrom servisine parametre olarak gönderilebilecek md5(bearer) değeridir. Giriş gerektirir (bearer ya da basic auth). | | `logoutFrom` | Çıkış (Logout) | gerekli | Kullanıcının giriş (bearer) kayıtlarını siler: tüm cihazlardan, kullanılan cihazdan ya da listLogins servisinin verdiği logout (md5) değerine karşılık gelen cihazdan. Giriş gerektirir (bearer ya da basic auth). | | `firmaSecim` | Firma Seçim | gerekli | Oturumun (bearer kaydının) çalışma firmasını seçer. Kullanıcı yalnızca yetkili olduğu firmaları seçebilir; seçim bearer kaydının secilen_firma alanına yazılır ve sonraki isteklerde geçerli olur. Giriş gerektirir (bearer ya da basic auth). | | `ping` | Ping | gerekli | Servisin ayakta olduğunu ve kimlik doğrulamasının çalıştığını test eder. Giriş gerektirir (bearer ya da basic auth). | | `profil` | Profil | gerekli | Giriş yapan kullanıcının bilgilerini ve yetkili olduğu etiketleri (WORKLABEL), firmaları (mükellefler) ve müşterileri listeler. Giriş gerektirir (bearer ya da basic auth). | | `status` | Durum | gerekli | Sistem sağlık durumunu döndürür (ana sayfadaki verinin aynısı: Redis, veritabanları, replika gecikmeleri ve web servisleri). Sonuç 60 sn önbelleklidir. Giriş gerektirir (bearer ya da basic auth). | | `fatura_listesi` | Fatura Listesi | gerekli | Kullanıcının yetkili olduğu etiketlere (WORKLABEL) ait belgeleri listeler. Giriş gerektirir (bearer ya da basic auth). Belge tipi zorunludur; gelen_efatura, giden_efatura gibi özel servisler bu servisin belge tipi sabitlenmiş halleridir. Belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur ve bir aralık en fazla 40 gün olabilir; 16 haneli belge_no ya da ettn ile tam eşleşme araması yapılıyorsa tarih aralığı istenmez. | | `gelen_efatura` | Gelen E-Fatura Listesi | gerekli | Kullanıcının yetkili olduğu etiketlere gelen e-faturaları listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. | | `giden_efatura` | Giden E-Fatura Listesi | gerekli | Kullanıcının yetkili olduğu etiketlerden gönderilen e-faturaları listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. | | `gelen_eirsaliye` | Gelen E-İrsaliye Listesi | gerekli | Kullanıcının yetkili olduğu etiketlere gelen e-irsaliyeleri listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. | | `giden_eirsaliye` | Giden E-İrsaliye Listesi | gerekli | Kullanıcının yetkili olduğu etiketlerden gönderilen e-irsaliyeleri listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. | | `giden_earsiv` | Giden E-Arşiv Listesi | gerekli | Kullanıcının yetkili olduğu etiketlerden düzenlenen e-arşiv faturalarını listeler. E-müstahsil makbuzları bu listeye girmez, giden_mustahsil servisinden alınır. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. | | `giden_mustahsil` | Giden E-Müstahsil Listesi | gerekli | Kullanıcının yetkili olduğu etiketlerden düzenlenen e-müstahsil makbuzlarını listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. | | `arsivlenen_dosyalar` | Arşivlenen Dosyalar | gerekli | Kullanıcının yetkili olduğu firmalara ait arşivlenmiş dosya kayıtlarını sayfalı listeler. Giriş gerektirir (bearer ya da basic auth). Her kaydın altındaki dosyaların adı, boyutu ve özeti de döner; dosya içeriği için arsivlenen_dosya_indir servisi kullanılır. | | `arsivlenen_dosya_indir` | Arşivlenen Dosya İndir | gerekli | Arşivlenmiş tek bir dosyanın içeriğini base64 olarak döndürür. Giriş gerektirir (bearer ya da basic auth). Dosya, kullanıcının yetkili olduğu bir firmanın arşivinde ve verilen arşiv kaydına bağlı olmalıdır. 64 MB üzerindeki dosyalarda 413 döner; dosya boyutu arsivlenen_dosyalar servisinde önceden görülebilir. | | `edefter_arsiv_firmalari` | E-Defter Arşivi Firmaları | gerekli | Kullanıcının e-defter arşivinde gezebileceği firmaları (mükellefleri) listeler. Giriş gerektirir (bearer ya da basic auth). Bu listedeki kapsam diğer servislerden farklıdır: erişim OINT_USER.roleArchive yetkisi, kullanıcının müşterisine bağlı mükellefler ve OINT_USER.taxNrArchive VKN kısıtından türer — etiket (WORKLABEL) yetkisi aranmaz. Klasör ve dosya servisleri yalnızca buradaki firma referanslarını kabul eder. | | `edefter_arsiv_klasorleri` | E-Defter Arşivi Klasörleri | gerekli | Bir firmanın e-defter arşiv klasörlerini (dönemlerini) listeler; her klasör için dosya sayısı ve kontör toplamı döner. Klasör adı YYYYAA biçimindedir, dönem yıl/ay olarak da ayrıştırılır. Giriş gerektirir (bearer ya da basic auth). Firma, edefter_arsiv_firmalari listesinde olmalıdır; sorgu yalnızca doğrulanmış firmanın taxHolder_reference değeriyle çalışır. | | `edefter_arsiv_dosyalari` | E-Defter Arşivi Dosyaları | gerekli | Bir firmanın e-defter arşiv dosyalarını listeler (berat, kebir, defter raporu). Klasör, dosya adı ve GUID ile daraltılabilir. Giriş gerektirir (bearer ya da basic auth). Firma, edefter_arsiv_firmalari listesinde olmalıdır; her sorgu doğrulanmış firmanın taxHolder_reference değeriyle kısıtlanır, dolayısıyla GUID araması da başka bir firmanın dosyasına erişemez. Dosya içeriği bu servisle indirilemez. | | `ayarlari_goster` | Ayarları Göster | gerekli | Firma geneli ya da kullanıcı bazlı e-fatura ayarlarını döndürür (eski sistemdeki Ayarlar ekranının karşılığı). Önce yerel kayıt okunur; yoksa eski sistemdeki ayarlara, o da yoksa varsayılan değerlere düşülür (yanıttaki kaynak alanı: yerel / eski_sistem / varsayilan). Firma geneli okumada seri_efatura ve seri_earsiv boşsa mükellef kaydındaki seriler kullanılır. Giriş gerektirir (bearer ya da basic auth). | | `ayarlari_kaydet` | Ayarları Kaydet | gerekli | Firma geneli ya da kullanıcı bazlı e-fatura ayarlarını kaydeder (eski sistemdeki Ayarlar ekranının karşılığı). Yalnızca istekte gönderilen alanlar güncellenir; boş gönderilen alan temizlenir. Kayıt yerel veritabanına yazılır — eski sistemdeki ayarlar değişmez. Firma serileri (seri_efatura / seri_earsiv) de yerel ayarlarda tutulur; mükellef kaydındaki seriler salt okunur olduğundan güncellenmez. Giriş gerektirir (bearer ya da basic auth). | | `xslt_listesi` | XSLT Listesi | gerekli | Firmanın XSLT tasarımlarını listeler: yeni sisteme yüklenen yerel tasarımlar (kaynak: yerel) ve eski sistemde kayıtlı tasarımlar (kaynak: eski, salt okunur) birlikte döner. Ayarlardaki xslt_* alanlarında yalnızca yerel tasarımlar seçilebilir; eski bir tasarım xslt_duzenle servisinin kopyala işlemiyle yerele alınabilir. id verilirse tek tasarım, base64 içeriğiyle döner. Giriş gerektirir (bearer ya da basic auth). | | `xslt_duzenle` | XSLT Düzenle | gerekli | Firmanın yerel XSLT tasarımlarını yönetir: ekle, guncelle, sil ve eski sistemdeki bir tasarımı yerele almak için kopyala. Eski sistem kayıtları salt okunurdur, yalnızca yerel tasarımlar düzenlenebilir. Bir firmada en fazla 20 yerel tasarım tutulur; içerik en fazla 1 MB olabilir ve geçerli bir XSLT (xsl:stylesheet / xsl:transform) olmalıdır. Silinen tasarıma referans veren ayar alanları varsayılan tasarıma (0) çekilir. Giriş gerektirir (bearer ya da basic auth). | | `kontor_durumu` | Kontör Durumu | gerekli | Firmanın bağlı olduğu müşteri hesabının güncel kontör durumunu döndürür (eski sistemdeki Finans → Kontör ekranının karşılığı). Kalan kontör OINT_ACCTOTAL toplamlarından (yüklenen - harcanan), kullanım kırılımı OINT_ACCMONTHLYUSAGE tablosundan hesaplanır; aylık kullanım ve kontörün tahmini kaç gün yeteceği de yanıttadır (son 12 ayın kırılımı yalnızca son_12_ay_goster=true verilirse döner). Sonuç müşteri bazında cache'te tutulur; cache_ttl parametresi (sn, varsayılan 300, en az 30, en fazla 86400) verinin kabul edilen en fazla yaşını belirler; veri bundan eskiyse yeniden hesaplanır (hesaplama zamanı yanıttaki hesaplama_zamani alanındadır). Okuma kontör sunucusundan yapılır (kontör tabloları canlı ana veritabanında tutulmaz). Giriş gerektirir (bearer ya da basic auth). | --- ## `POST /api/v1/login` # Login Müşteri kodu, kullanıcı adı ve şifre ile kimlik doğrulaması yapar. Her deneme loglanır; art arda hatalı denemelerde aşamalı bekletme (en fazla 30 sn) uygulanır. ## Parametreler - **musteri** (string, zorunlu): Müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, zorunlu): Kullanıcı adı. Örnek: `"ali"` - **sifre** (string, zorunlu): Kullanıcı şifresi. Loglara asla yazılmaz. Örnek: `"gizli123"` - **cihaz_guid** (string, isteğe bağlı): İstek yapan cihazın benzersiz kimliği (GUID). Örnek: `"550e8400-e29b-41d4-a716-446655440000"` - **cihaz_adi** (string, isteğe bağlı): İstek yapan cihazın insan okunur adı. Örnek: `"Ali - iPhone 15"` ## Örnek İstek ```json { "musteri": "demo", "kullanici": "ali", "sifre": "gizli123", "cihaz_guid": "550e8400-e29b-41d4-a716-446655440000", "cihaz_adi": "Ali - iPhone 15" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Giriş başarılı", "veri": { "guid": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "user_reference": 12345, "kullanici": "ali", "ad": "Ali Yılmaz", "eposta": "ali@ornek.com", "musteri": "demo", "musteri_unvan": "Demo Firma A.Ş.", "rol": 1 } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Müşteri kodu, kullanıcı adı veya şifre hatalı.", "veri": null } ``` --- ## `POST /api/v1/listLogins` # Login Listesi Kullanıcının aktif girişlerini (cihaz/bearer kayıtlarını) en fazla 100 kayıt olacak şekilde listeler. Bearer değerleri maskeli gösterilir; her kaydın "logout" alanı, logoutFrom servisine parametre olarak gönderilebilecek md5(bearer) değeridir. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Giriş listesi", "veri": { "adet": 1, "kayitlar": [ { "bearer": "9b2f****5b6a", "logout": "a3f5c9e17b2d4680a3f5c9e17b2d4680", "cihaz_guid": "550e8400-e29b-41d4-a716-446655440000", "aktif": true, "olusturma": "2026-07-12 10:00:00", "son_kullanim": "2026-07-12 12:30:00" } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Kimlik doğrulama gerekli: bearer (header ya da payload) veya basic auth.", "veri": null } ``` --- ## `POST /api/v1/logoutFrom` # Çıkış (Logout) Kullanıcının giriş (bearer) kayıtlarını siler: tüm cihazlardan, kullanılan cihazdan ya da listLogins servisinin verdiği logout (md5) değerine karşılık gelen cihazdan. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **hedef** (string, zorunlu): Çıkış hedefi: 'all' tüm cihazlardan çıkar, 'current' kullanılan bearer kaydını siler, listLogins yanıtındaki 'logout' (md5) değeri verilirse ilgili bearer silinir. Örnek: `"current"` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "hedef": "current" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Mevcut cihazdan çıkış yapıldı", "veri": { "silinen": 1 } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Verilen hedefe ait giriş kaydı bulunamadı.", "veri": null } ``` --- ## `POST /api/v1/firmaSecim` # Firma Seçim Oturumun (bearer kaydının) çalışma firmasını seçer. Kullanıcı yalnızca yetkili olduğu firmaları seçebilir; seçim bearer kaydının secilen_firma alanına yazılır ve sonraki isteklerde geçerli olur. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **firma_reference** (integer, zorunlu): Seçilecek firmanın (mükellefin) referansı — profil servisindeki firmalar[].reference değeri. Örnek: `42` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 42 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Firma seçildi", "veri": { "secilen_firma": { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş." } } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Bu firma için yetkiniz yok ya da firma bulunamadı.", "veri": null } ``` --- ## `POST /api/v1/ping` # Ping Servisin ayakta olduğunu ve kimlik doğrulamasının çalıştığını test eder. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Pong", "veri": { "pong": true, "zaman": "2026-07-12 12:00:00", "user_reference": 12345 } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Kimlik doğrulama gerekli: bearer (header ya da payload) veya basic auth.", "veri": null } ``` --- ## `POST /api/v1/profil` # Profil Giriş yapan kullanıcının bilgilerini ve yetkili olduğu etiketleri (WORKLABEL), firmaları (mükellefler) ve müşterileri listeler. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Profil bilgileri", "veri": { "kullanici": { "user_reference": 12345, "kullanici": "ali", "ad": "Ali Yılmaz", "eposta": "ali@ornek.com", "rol": 1, "musteri": "demo", "musteri_unvan": "Demo Bilişim A.Ş." }, "etiketler": [ { "reference": 501, "tip": 0, "tip_adi": "E-Fatura", "pk": "urn:mail:demopk@ornekfirma.com.tr", "gb": "urn:mail:demogb@ornekfirma.com.tr", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş.", "gib_durumu": 1, "gib_durumu_adi": "Kayıtlı", "firma_reference": 42 } ], "firmalar": [ { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş.", "musteri_reference": 7 } ], "musteriler": [ { "reference": 7, "kod": "demo", "unvan": "Demo Bilişim A.Ş." } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Kimlik doğrulama gerekli: bearer (header ya da payload) veya basic auth.", "veri": null } ``` --- ## `POST /api/v1/status` # Durum Sistem sağlık durumunu döndürür (ana sayfadaki verinin aynısı: Redis, veritabanları, replika gecikmeleri ve web servisleri). Sonuç 60 sn önbelleklidir. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Sistem durumu", "veri": { "checked_at": "2026-07-12 12:00:00", "redis": { "status": "ok", "latency_ms": 0.4, "error": null }, "databases": { "mysql": { "label": "Yerel Servis (efaturacim_servis)", "status": "ok", "latency_ms": 1.2 }, "fkm_bursa": { "label": "FKM Bursa (replika)", "status": "ok", "lag_seconds": 0, "lag_human": "eşzamanlı" } }, "web_services": { "ws": { "label": "ws.orkestra.com.tr", "status": "ok", "http_status": 200 } } } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Kimlik doğrulama gerekli: bearer (header ya da payload) veya basic auth.", "veri": null } ``` --- ## `POST /api/v1/fatura_listesi` # Fatura Listesi Kullanıcının yetkili olduğu etiketlere (WORKLABEL) ait belgeleri listeler. Giriş gerektirir (bearer ya da basic auth). Belge tipi zorunludur; gelen_efatura, giden_efatura gibi özel servisler bu servisin belge tipi sabitlenmiş halleridir. Belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur ve bir aralık en fazla 40 gün olabilir; 16 haneli belge_no ya da ettn ile tam eşleşme araması yapılıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tipi** (string, zorunlu): Listelenecek belge tipi: gelen_efatura, giden_efatura, gelen_eirsaliye, giden_eirsaliye, giden_earsiv, giden_mustahsil. Örnek: `"gelen_efatura"` - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **cevap** (string, isteğe bağlı): Uygulama yanıtı durumu: bekleyen, kabul, red. Yalnızca e-fatura ve e-irsaliye tiplerinde geçerlidir. Örnek: `"bekleyen"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tipi": "gelen_efatura", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Gelen E-Fatura listesi", "veri": { "belge_tipi": "gelen_efatura", "belge_tipi_adi": "Gelen E-Fatura", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 987654, "belge_no": "ABC2026000000123", "ettn": "3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 10:32:11", "para_birimi": "TRY", "tutar": 11800, "belge_turu": 1, "belge_turu_adi": "Satış", "profil": 1, "profil_adi": "Temel Fatura", "yon": 1, "yon_adi": "Gelen Fatura", "gonderen_vkn": "1234567890", "gonderen_unvan": "Örnek Ticaret A.Ş.", "alici_vkn": "9876543210", "alici_unvan": "Demo Bilişim A.Ş.", "cevap_durumu": 1, "cevap_durumu_adi": "Cevap Bekliyor", "islenme_durumu": 1, "kaynak_etiket": "urn:mail:defaultpk@ornekfirma.com.tr", "etiket_reference": 501, "zarf_reference": 445566, "zarf_gib_kodu": 1300, "zarf_gib_durumu": 5, "zarf_gib_mesaji": "Basarili", "boyut": 18422 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/gelen_efatura` # Gelen E-Fatura Listesi Kullanıcının yetkili olduğu etiketlere gelen e-faturaları listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **cevap** (string, isteğe bağlı): Uygulama yanıtı durumu: bekleyen, kabul, red. Örnek: `"bekleyen"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Gelen E-Fatura listesi", "veri": { "belge_tipi": "gelen_efatura", "belge_tipi_adi": "Gelen E-Fatura", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 987654, "belge_no": "ABC2026000000123", "ettn": "3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 10:32:11", "para_birimi": "TRY", "tutar": 11800, "belge_turu": 1, "belge_turu_adi": "Satış", "profil": 1, "profil_adi": "Temel Fatura", "yon": 1, "yon_adi": "Gelen Fatura", "gonderen_vkn": "1234567890", "gonderen_unvan": "Örnek Ticaret A.Ş.", "alici_vkn": "9876543210", "alici_unvan": "Demo Bilişim A.Ş.", "cevap_durumu": 1, "cevap_durumu_adi": "Cevap Bekliyor", "islenme_durumu": 1, "kaynak_etiket": "urn:mail:defaultpk@ornekfirma.com.tr", "etiket_reference": 501, "zarf_reference": 445566, "zarf_gib_kodu": 1300, "zarf_gib_durumu": 5, "zarf_gib_mesaji": "Basarili", "boyut": 18422 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/giden_efatura` # Giden E-Fatura Listesi Kullanıcının yetkili olduğu etiketlerden gönderilen e-faturaları listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **cevap** (string, isteğe bağlı): Uygulama yanıtı durumu: bekleyen, kabul, red. Örnek: `"bekleyen"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Giden E-Fatura listesi", "veri": { "belge_tipi": "giden_efatura", "belge_tipi_adi": "Giden E-Fatura", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 987654, "belge_no": "ABC2026000000123", "ettn": "3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 10:32:11", "para_birimi": "TRY", "tutar": 11800, "belge_turu": 1, "belge_turu_adi": "Satış", "profil": 1, "profil_adi": "Temel Fatura", "yon": 1, "yon_adi": "Gelen Fatura", "gonderen_vkn": "1234567890", "gonderen_unvan": "Örnek Ticaret A.Ş.", "alici_vkn": "9876543210", "alici_unvan": "Demo Bilişim A.Ş.", "cevap_durumu": 1, "cevap_durumu_adi": "Cevap Bekliyor", "islenme_durumu": 1, "kaynak_etiket": "urn:mail:defaultpk@ornekfirma.com.tr", "etiket_reference": 501, "zarf_reference": 445566, "zarf_gib_kodu": 1300, "zarf_gib_durumu": 5, "zarf_gib_mesaji": "Basarili", "boyut": 18422 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/gelen_eirsaliye` # Gelen E-İrsaliye Listesi Kullanıcının yetkili olduğu etiketlere gelen e-irsaliyeleri listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **cevap** (string, isteğe bağlı): Uygulama yanıtı durumu: bekleyen, kabul, red. Örnek: `"bekleyen"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Gelen E-İrsaliye listesi", "veri": { "belge_tipi": "gelen_eirsaliye", "belge_tipi_adi": "Gelen E-İrsaliye", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 987654, "belge_no": "ABC2026000000123", "ettn": "3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 10:32:11", "para_birimi": "TRY", "tutar": 11800, "belge_turu": 1, "belge_turu_adi": "Satış", "profil": 1, "profil_adi": "Temel Fatura", "yon": 1, "yon_adi": "Gelen Fatura", "gonderen_vkn": "1234567890", "gonderen_unvan": "Örnek Ticaret A.Ş.", "alici_vkn": "9876543210", "alici_unvan": "Demo Bilişim A.Ş.", "cevap_durumu": 1, "cevap_durumu_adi": "Cevap Bekliyor", "islenme_durumu": 1, "kaynak_etiket": "urn:mail:defaultpk@ornekfirma.com.tr", "etiket_reference": 501, "zarf_reference": 445566, "zarf_gib_kodu": 1300, "zarf_gib_durumu": 5, "zarf_gib_mesaji": "Basarili", "boyut": 18422 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/giden_eirsaliye` # Giden E-İrsaliye Listesi Kullanıcının yetkili olduğu etiketlerden gönderilen e-irsaliyeleri listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **cevap** (string, isteğe bağlı): Uygulama yanıtı durumu: bekleyen, kabul, red. Örnek: `"bekleyen"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Giden E-İrsaliye listesi", "veri": { "belge_tipi": "giden_eirsaliye", "belge_tipi_adi": "Giden E-İrsaliye", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 987654, "belge_no": "ABC2026000000123", "ettn": "3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 10:32:11", "para_birimi": "TRY", "tutar": 11800, "belge_turu": 1, "belge_turu_adi": "Satış", "profil": 1, "profil_adi": "Temel Fatura", "yon": 1, "yon_adi": "Gelen Fatura", "gonderen_vkn": "1234567890", "gonderen_unvan": "Örnek Ticaret A.Ş.", "alici_vkn": "9876543210", "alici_unvan": "Demo Bilişim A.Ş.", "cevap_durumu": 1, "cevap_durumu_adi": "Cevap Bekliyor", "islenme_durumu": 1, "kaynak_etiket": "urn:mail:defaultpk@ornekfirma.com.tr", "etiket_reference": 501, "zarf_reference": 445566, "zarf_gib_kodu": 1300, "zarf_gib_durumu": 5, "zarf_gib_mesaji": "Basarili", "boyut": 18422 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/giden_earsiv` # Giden E-Arşiv Listesi Kullanıcının yetkili olduğu etiketlerden düzenlenen e-arşiv faturalarını listeler. E-müstahsil makbuzları bu listeye girmez, giden_mustahsil servisinden alınır. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Giden E-Arşiv listesi", "veri": { "belge_tipi": "giden_earsiv", "belge_tipi_adi": "Giden E-Arşiv", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 123456, "belge_no": "ARS2026000000045", "ettn": "7d1c9e2b-5a3f-42c8-9b6d-0e4a1f7c8b2d", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 09:15:44", "teslim_tarihi": "2026-07-14 09:16:02", "para_birimi": "TRY", "tutar": 2360, "vergi_tutari": 360, "odenecek_tutar": 2360, "belge_turu": 1, "belge_turu_adi": "Satış", "gonderen_vkn": "9876543210", "gonderen_unvan": "Demo Bilişim A.Ş.", "alici_vkn": "11111111111", "alici_unvan": "Ayşe Yılmaz", "gonderim_durumu": 3, "gonderim_durumu_adi": "Gönderildi", "iptal_durumu": 0, "iptal_durumu_adi": "İptal Yok", "iptal_tarihi": null, "gonderim_yontemi": 1, "satis_yontemi": 1, "eposta": "ayse@ornek.com", "hata_mesaji": null, "etiket_reference": 503, "boyut": 9214 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/giden_mustahsil` # Giden E-Müstahsil Listesi Kullanıcının yetkili olduğu etiketlerden düzenlenen e-müstahsil makbuzlarını listeler. Giriş gerektirir (bearer ya da basic auth). Filtreler ve kurallar fatura_listesi servisiyle aynıdır: belge tarihi ya da gönderim tarihi aralıklarından en az biri zorunludur (aralık en fazla 40 gün), 16 haneli belge_no ya da ettn ile tam eşleşme aranıyorsa tarih aralığı istenmez. ## Parametreler - **belge_tarihi_baslangic** (string, isteğe bağlı): Belge tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Saat verilmezse gün başı kabul edilir. Örnek: `"2026-07-01"` - **belge_tarihi_bitis** (string, isteğe bağlı): Belge tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-07-31"` - **gonderim_tarihi_baslangic** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının başlangıcı. Örnek: `"2026-07-01"` - **gonderim_tarihi_bitis** (string, isteğe bağlı): Gönderim/alım (kayıt) tarihi aralığının bitişi. Örnek: `"2026-07-31"` - **belge_no** (string, isteğe bağlı): Belge numarası (docCode). 16 hane verilirse tam eşleşme aranır ve tarih aralığı zorunlu olmaz; daha kısa değerlerde içinde geçen araması yapılır ve tarih aralığı gerekir. Örnek: `"ABC2026000000123"` - **ettn** (string, isteğe bağlı): Belgenin ETTN değeri (docGuid). Tam eşleşme aranır, tarih aralığı zorunlu olmaz. Örnek: `"3f2b8c1a-9d4e-4f77-b3a1-6c5d4e3f2b1a"` - **gonderen** (string, isteğe bağlı): Gönderen filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"1234567890"` - **alici** (string, isteğe bağlı): Alıcı filtresi. 10/11 haneli rakam verilirse VKN/TCKN tam eşleşmesi, aksi halde unvan içinde geçen araması yapılır. Örnek: `"Örnek Ticaret"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) etiketlerinde ara. Verilmezse kullanıcının yetkili olduğu tüm etiketler taranır. Örnek: `42` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "belge_tarihi_baslangic": "2026-07-01", "belge_tarihi_bitis": "2026-07-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Giden E-Müstahsil listesi", "veri": { "belge_tipi": "giden_mustahsil", "belge_tipi_adi": "Giden E-Müstahsil", "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 123456, "belge_no": "ARS2026000000045", "ettn": "7d1c9e2b-5a3f-42c8-9b6d-0e4a1f7c8b2d", "belge_tarihi": "2026-07-14 00:00:00", "gonderim_tarihi": "2026-07-14 09:15:44", "teslim_tarihi": "2026-07-14 09:16:02", "para_birimi": "TRY", "tutar": 2360, "vergi_tutari": 360, "odenecek_tutar": 2360, "belge_turu": 1, "belge_turu_adi": "Satış", "gonderen_vkn": "9876543210", "gonderen_unvan": "Demo Bilişim A.Ş.", "alici_vkn": "11111111111", "alici_unvan": "Ayşe Yılmaz", "gonderim_durumu": 3, "gonderim_durumu_adi": "Gönderildi", "iptal_durumu": 0, "iptal_durumu_adi": "İptal Yok", "iptal_tarihi": null, "gonderim_yontemi": 1, "satis_yontemi": 1, "eposta": "ayse@ornek.com", "hata_mesaji": null, "etiket_reference": 503, "boyut": 9214 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Belge tarihi ya da gönderim tarihi aralığından en az biri zorunludur. 16 haneli belge_no ya da ettn ile arama yapıyorsanız tarih aralığı gerekmez.", "veri": null } ``` --- ## `POST /api/v1/arsivlenen_dosyalar` # Arşivlenen Dosyalar Kullanıcının yetkili olduğu firmalara ait arşivlenmiş dosya kayıtlarını sayfalı listeler. Giriş gerektirir (bearer ya da basic auth). Her kaydın altındaki dosyaların adı, boyutu ve özeti de döner; dosya içeriği için arsivlenen_dosya_indir servisi kullanılır. ## Parametreler - **kategori** (string, isteğe bağlı): Arşiv kategorisi (docCat) tam eşleşmesi: muhasebe, edefter, efatura, genel, sql, evrak. Örnek: `"edefter"` - **belge_adi** (string, isteğe bağlı): Dosya adı içinde geçen arama (docName). Örnek: `"berat"` - **aciklama** (string, isteğe bağlı): Açıklama içinde geçen arama. Örnek: `"2026\/01 dönemi"` - **yukleme_tarihi_baslangic** (string, isteğe bağlı): Yükleme tarihi aralığının başlangıcı (YYYY-AA-GG ya da YYYY-AA-GG SS:DD:SS). Örnek: `"2026-01-01"` - **yukleme_tarihi_bitis** (string, isteğe bağlı): Yükleme tarihi aralığının bitişi. Saat verilmezse gün sonu (23:59:59) kabul edilir. Örnek: `"2026-01-31"` - **firma_reference** (integer, isteğe bağlı): Yalnızca bu firmanın (mükellefin) arşivinde ara. Verilmezse yetkili olunan tüm firmalar taranır. Örnek: `42` - **dosyalari_getir** (boolean, isteğe bağlı): Her kaydın altındaki dosyaların dökümü de dönsün mü (varsayılan true). false verilirse yalnızca başlık bilgileri döner. Örnek: `true` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "kategori": "edefter", "yukleme_tarihi_baslangic": "2026-01-01", "yukleme_tarihi_bitis": "2026-01-31", "page": 1, "pageSize": 50 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Arşivlenen dosyalar", "veri": { "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "kayitlar": [ { "reference": 58120, "firma_reference": 42, "musteri_reference": 7, "kategori": "edefter", "kategori_adi": "E-Defter", "aciklama": "2026/01 dönemi beratları", "belge_adi": "1234567890-202601-Y-0000.zip ; 1234567890-202601-K-0000.zip", "dosya_adedi": 2, "boyut": 5242880, "boyut_okunabilir": "5,00 MB", "kontor": 5, "yukleme_tarihi": "2026-02-10 14:22:31", "belge_tarihi": "2026-02-10 14:22:31", "dosyalar": [ { "id": 91234, "ad": "1234567890-202601-Y-0000.zip", "boyut": 3145728, "boyut_okunabilir": "3,00 MB", "ozet": "a3f1c9e2b5d47a8c0e6f1b2d3c4a5e6f", "tarih": "2026-02-10 14:22:31" } ] } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Bu firma için yetkiniz yok ya da firma bulunamadı.", "veri": null } ``` --- ## `POST /api/v1/arsivlenen_dosya_indir` # Arşivlenen Dosya İndir Arşivlenmiş tek bir dosyanın içeriğini base64 olarak döndürür. Giriş gerektirir (bearer ya da basic auth). Dosya, kullanıcının yetkili olduğu bir firmanın arşivinde ve verilen arşiv kaydına bağlı olmalıdır. 64 MB üzerindeki dosyalarda 413 döner; dosya boyutu arsivlenen_dosyalar servisinde önceden görülebilir. ## Parametreler - **arsiv_reference** (integer, zorunlu): Arşiv kaydının referansı — arsivlenen_dosyalar servisindeki kayitlar[].reference değeri. Örnek: `58120` - **dosya_id** (integer, zorunlu): İndirilecek dosyanın kimliği — arsivlenen_dosyalar servisindeki kayitlar[].dosyalar[].id değeri. Örnek: `91234` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "arsiv_reference": 58120, "dosya_id": 91234 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Arşiv dosyası", "veri": { "arsiv_reference": 58120, "firma_reference": 42, "kategori": "edefter", "aciklama": "2026/01 dönemi beratları", "dosya": { "id": 91234, "ad": "1234567890-202601-Y-0000.zip", "boyut": 3145728, "boyut_okunabilir": "3,00 MB", "ozet": "a3f1c9e2b5d47a8c0e6f1b2d3c4a5e6f", "tarih": "2026-02-10 14:22:31", "base64": "UEsDBBQAAAAIA..." } } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Arşiv kaydı bulunamadı ya da bu kayda erişim yetkiniz yok.", "veri": null } ``` --- ## `POST /api/v1/edefter_arsiv_firmalari` # E-Defter Arşivi Firmaları Kullanıcının e-defter arşivinde gezebileceği firmaları (mükellefleri) listeler. Giriş gerektirir (bearer ya da basic auth). Bu listedeki kapsam diğer servislerden farklıdır: erişim OINT_USER.roleArchive yetkisi, kullanıcının müşterisine bağlı mükellefler ve OINT_USER.taxNrArchive VKN kısıtından türer — etiket (WORKLABEL) yetkisi aranmaz. Klasör ve dosya servisleri yalnızca buradaki firma referanslarını kabul eder. ## Parametreler - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a" } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "E-defter arşivi firmaları", "veri": { "firmalar": [ { "reference": 3057, "kod": "ORNEK", "vkn": "1751012715", "unvan": "Örnek Firma A.Ş." } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "E-defter arşivi için yetkiniz yok.", "veri": null } ``` --- ## `POST /api/v1/edefter_arsiv_klasorleri` # E-Defter Arşivi Klasörleri Bir firmanın e-defter arşiv klasörlerini (dönemlerini) listeler; her klasör için dosya sayısı ve kontör toplamı döner. Klasör adı YYYYAA biçimindedir, dönem yıl/ay olarak da ayrıştırılır. Giriş gerektirir (bearer ya da basic auth). Firma, edefter_arsiv_firmalari listesinde olmalıdır; sorgu yalnızca doğrulanmış firmanın taxHolder_reference değeriyle çalışır. ## Parametreler - **firma_reference** (integer, zorunlu): Klasörleri listelenecek firmanın referansı — edefter_arsiv_firmalari servisindeki firmalar[].reference değeri. Örnek: `3057` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 3057 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "E-defter arşivi klasörleri", "veri": { "firma": { "reference": 3057, "kod": "ORNEK", "vkn": "1751012715", "unvan": "Örnek Firma A.Ş." }, "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "klasorler": [ { "reference": 18491, "ad": "202604", "donem_yil": 2026, "donem_ay": 4, "olusturma_tarihi": "2026-06-27 09:45:15", "grup_tipi": 1, "dogrulama_sonucu": 0, "dosya_sayisi": 5, "kontor": 1 } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Bu firmanın e-defter arşivine erişim yetkiniz yok.", "veri": null } ``` --- ## `POST /api/v1/edefter_arsiv_dosyalari` # E-Defter Arşivi Dosyaları Bir firmanın e-defter arşiv dosyalarını listeler (berat, kebir, defter raporu). Klasör, dosya adı ve GUID ile daraltılabilir. Giriş gerektirir (bearer ya da basic auth). Firma, edefter_arsiv_firmalari listesinde olmalıdır; her sorgu doğrulanmış firmanın taxHolder_reference değeriyle kısıtlanır, dolayısıyla GUID araması da başka bir firmanın dosyasına erişemez. Dosya içeriği bu servisle indirilemez. ## Parametreler - **firma_reference** (integer, zorunlu): Dosyaları listelenecek firmanın referansı — edefter_arsiv_firmalari servisindeki firmalar[].reference değeri. Örnek: `3057` - **klasor_reference** (integer, isteğe bağlı): Yalnızca bu klasördeki (dönemdeki) dosyaları getir. Klasör verilen firmaya ait olmalıdır. Örnek: `18491` - **dosya_adi** (string, isteğe bağlı): Dosya adı içinde geçen arama. Örnek: `"202604"` - **guid** (string, isteğe bağlı): Dosyanın GUID değeri, tam eşleşme. Sonuç yine firmanın arşiviyle sınırlıdır — başka firmanın GUID değeri sonuç döndürmez. Örnek: `"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"` - **page** (integer, isteğe bağlı): Sayfa numarası (1 tabanlı, varsayılan 1). Örnek: `1` - **pageSize** (integer, isteğe bağlı): Sayfa başına kayıt sayısı (varsayılan 50, en fazla 200). Örnek: `50` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 3057, "klasor_reference": 18491 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "E-defter arşivi dosyaları", "veri": { "firma": { "reference": 3057, "kod": "ORNEK", "vkn": "1751012715", "unvan": "Örnek Firma A.Ş." }, "sayfa": 1, "sayfa_boyutu": 50, "devamVar": false, "dosyalar": [ { "reference": 174574, "ad": "GIB-1751012715-202604-YB-000000.xml", "guid": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "defter_turu": "YB", "defter_turu_adi": "Yevmiye Beratı", "klasor_reference": 18491, "klasor_adi": "202604", "donem_yil": 2026, "donem_ay": 4, "olusturma_tarihi": "2026-06-27 09:45:15", "boyut": 8142, "acik_boyut": 23584, "acik_boyut_okunabilir": "23,03 KB", "kontor": 1, "ozet": "e3b0c44298fc1c149afbf4c8996fb924", "gib_durumu": 10, "gib_durumu_adi": "Yüklendi", "gib_yukleme_tarihi": "2026-06-27 10:02:44", "gib_belge_id": "GIB-20260627-000123" } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Klasör bulunamadı ya da bu firmaya ait değil.", "veri": null } ``` --- ## `POST /api/v1/ayarlari_goster` # Ayarları Göster Firma geneli ya da kullanıcı bazlı e-fatura ayarlarını döndürür (eski sistemdeki Ayarlar ekranının karşılığı). Önce yerel kayıt okunur; yoksa eski sistemdeki ayarlara, o da yoksa varsayılan değerlere düşülür (yanıttaki kaynak alanı: yerel / eski_sistem / varsayilan). Firma geneli okumada seri_efatura ve seri_earsiv boşsa mükellef kaydındaki seriler kullanılır. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **firma_reference** (integer, isteğe bağlı): Ayarları okunacak firmanın (mükellefin) referansı. Verilmezse oturumun seçili firması kullanılır. Örnek: `42` - **kullanici_bazli** (boolean, isteğe bağlı): true verilirse giriş yapan kullanıcının kullanıcı bazlı firma ayarları okunur; varsayılan firma geneli ayarlardır. Örnek: `false` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 42, "kullanici_bazli": false } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Firma ayarları", "veri": { "firma": { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş." }, "kullanici_bazli": false, "kaynak": "yerel", "ayarlar": { "unvan": "Örnek Firma A.Ş.", "vergi_dairesi": "Osmangazi", "street": "Örnek Mah. Deneme Cad. No: 1", "building": null, "ilce": "Osmangazi", "il": "Bursa", "postakodu": "16000", "email": "muhasebe@ornek.com", "web": "https://www.ornek.com", "tel": "0224 000 00 00", "ticaretsicil": "123456", "mersis": "0123456789000001", "earsiv_webshop": null, "earsiv_shipagent": null, "earsiv_shipvkn": null, "smtp_server": "smtp.ornek.com", "smtp_port": "587", "smtp_user": "efatura@ornek.com", "smtp_pass": "gizli", "smtp_from": "efatura@ornek.com", "eposta_sablonu": null, "seri_efatura": "ABC", "seri_earsiv": "ARS", "seri_ihracat": null, "seri_irsaliye": null, "seri_cirsaliye": null, "seri_emustahsil": null, "xslt_efatura": 3, "xslt_earsiv": 0, "xslt_ihracat": 0, "xslt_irsaliye": 0, "xslt_mustahsil": 0, "fatura_tipi": "temel", "fatura_tipi_adi": "Temel Fatura", "earsiv_metod": null, "earsiv_metod_adi": null, "earsiv_dagitim": "ELEKTRONIK", "earsiv_dagitim_adi": "Elektronik", "earsiv_odeme": null, "earsiv_odeme_adi": null, "imzali_pdf": 0, "imzali_pdf_adi": "Hazırlama", "sms": 0, "sms_adi": "Varsayılan", "islendi_metodu": 0, "islendi_metodu_adi": "Varsayılan", "web_pdf": 0, "web_pdf_adi": "Standart", "line_extension": 0, "line_extension_adi": "Standart" }, "xslt_tasarimlari": [ { "id": 3, "aciklama": "Kurumsal E-Fatura Tasarımı" } ], "secenekler": { "fatura_tipi": { "temel": "Temel Fatura", "ticari": "Ticari Fatura", "ihracat": "İhracat Faturası", "yb": "Yolcu Beraberi Eşya Faturası" }, "earsiv_metod": { "MAGAZA": "Mağaza", "INTERNET": "İnternet" }, "earsiv_dagitim": { "KAGIT": "Kağıt", "ELEKTRONIK": "Elektronik" }, "earsiv_odeme": { "kk": "Kredi Kartı / Banka Kartı", "eft": "EFT / Havale", "kapida": "Kapıda Ödeme", "araci": "Ödeme Aracısı", "diger": "Diğer" }, "imzali_pdf": [ "Hazırlama", "İmzalı PDF Kullan" ], "sms": [ "Varsayılan", "Gönderme", "Gönder", "Özel Şablonla Gönder" ], "islendi_metodu": [ "Varsayılan", "Yazdırıldığında İşlendi Olarak İşaretle", "İşaretleme Yapma" ], "web_pdf": [ "Standart", "Portal", "Servis" ], "line_extension": [ "Standart", "Brüt" ] } } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Bu firma için yetkiniz yok ya da firma bulunamadı.", "veri": null } ``` ## Seçim Alanları - **fatura_tipi**: `temel` = Temel Fatura, `ticari` = Ticari Fatura, `ihracat` = İhracat Faturası, `yb` = Yolcu Beraberi Eşya Faturası - **earsiv_metod**: `MAGAZA` = Mağaza, `INTERNET` = İnternet - **earsiv_dagitim**: `KAGIT` = Kağıt, `ELEKTRONIK` = Elektronik - **earsiv_odeme**: `kk` = Kredi Kartı / Banka Kartı, `eft` = EFT / Havale, `kapida` = Kapıda Ödeme, `araci` = Ödeme Aracısı, `diger` = Diğer - **imzali_pdf**: `0` = Hazırlama, `1` = İmzalı PDF Kullan - **sms**: `0` = Varsayılan, `1` = Gönderme, `2` = Gönder, `3` = Özel Şablonla Gönder - **islendi_metodu**: `0` = Varsayılan, `1` = Yazdırıldığında İşlendi Olarak İşaretle, `2` = İşaretleme Yapma - **web_pdf**: `0` = Standart, `1` = Portal, `2` = Servis - **line_extension**: `0` = Standart, `1` = Brüt --- ## `POST /api/v1/ayarlari_kaydet` # Ayarları Kaydet Firma geneli ya da kullanıcı bazlı e-fatura ayarlarını kaydeder (eski sistemdeki Ayarlar ekranının karşılığı). Yalnızca istekte gönderilen alanlar güncellenir; boş gönderilen alan temizlenir. Kayıt yerel veritabanına yazılır — eski sistemdeki ayarlar değişmez. Firma serileri (seri_efatura / seri_earsiv) de yerel ayarlarda tutulur; mükellef kaydındaki seriler salt okunur olduğundan güncellenmez. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **firma_reference** (integer, isteğe bağlı): Ayarları kaydedilecek firmanın (mükellefin) referansı. Verilmezse oturumun seçili firması kullanılır. Örnek: `42` - **kullanici_bazli** (boolean, isteğe bağlı): true verilirse giriş yapan kullanıcının kullanıcı bazlı firma ayarları kaydedilir; varsayılan firma geneli ayarlardır. Örnek: `false` - **unvan** (string, isteğe bağlı): Fatura üzerinde görünecek firma ünvanı. Örnek: `"Örnek Firma A.Ş."` - **vergi_dairesi** (string, isteğe bağlı): Firma vergi dairesi. Örnek: `"Osmangazi"` - **street** (string, isteğe bağlı): Adres satır 1. Örnek: `"Örnek Mah. Deneme Cad. No: 1"` - **building** (string, isteğe bağlı): Adres satır 2. - **ilce** (string, isteğe bağlı): Adres ilçe. Örnek: `"Osmangazi"` - **il** (string, isteğe bağlı): Adres il. Örnek: `"Bursa"` - **postakodu** (string, isteğe bağlı): Adres posta kodu. Örnek: `"16000"` - **email** (string, isteğe bağlı): Firma e-posta adresi. Örnek: `"muhasebe@ornek.com"` - **tel** (string, isteğe bağlı): Firma telefonu. Örnek: `"0224 000 00 00"` - **web** (string, isteğe bağlı): Firma web sitesi. Örnek: `"https:\/\/www.ornek.com"` - **ticaretsicil** (string, isteğe bağlı): Ticaret sicil numarası. Örnek: `"123456"` - **mersis** (string, isteğe bağlı): Mersis numarası. Örnek: `"0123456789000001"` - **xslt_efatura** (integer, isteğe bağlı): E-fatura XSLT tasarımı (xslt_listesi servisindeki yerel tasarım id değeri; 0 = varsayılan tasarım). Örnek: `3` - **xslt_earsiv** (integer, isteğe bağlı): E-arşiv XSLT tasarımı (yerel tasarım id; 0 = varsayılan). Örnek: `0` - **xslt_ihracat** (integer, isteğe bağlı): E-ihracat XSLT tasarımı (yerel tasarım id; 0 = varsayılan). Örnek: `0` - **xslt_irsaliye** (integer, isteğe bağlı): E-irsaliye XSLT tasarımı (yerel tasarım id; 0 = varsayılan). Örnek: `0` - **xslt_mustahsil** (integer, isteğe bağlı): E-müstahsil XSLT tasarımı (yerel tasarım id; 0 = varsayılan). Örnek: `0` - **fatura_tipi** (string, isteğe bağlı): Varsayılan fatura tipi: temel, ticari, ihracat, yb. Boş verilirse temizlenir. Örnek: `"temel"` - **seri_efatura** (string, isteğe bağlı): Varsayılan e-fatura serisi (3 harf). Boş verilirse temizlenir. Örnek: `"ABC"` - **seri_earsiv** (string, isteğe bağlı): Varsayılan e-arşiv serisi (3 harf). Örnek: `"ARS"` - **seri_ihracat** (string, isteğe bağlı): Varsayılan ihracat e-fatura serisi (3 harf). Örnek: `"IHR"` - **seri_irsaliye** (string, isteğe bağlı): Varsayılan e-irsaliye serisi (3 harf). Örnek: `"IRS"` - **seri_cirsaliye** (string, isteğe bağlı): Varsayılan e-irsaliye cevap serisi (3 harf). Örnek: `"CIR"` - **seri_emustahsil** (string, isteğe bağlı): Varsayılan e-müstahsil serisi (3 harf). Örnek: `"MUS"` - **earsiv_metod** (string, isteğe bağlı): Varsayılan e-arşiv satış yeri: MAGAZA, INTERNET. Boş verilirse temizlenir. Örnek: `"INTERNET"` - **earsiv_dagitim** (string, isteğe bağlı): Varsayılan e-arşiv dağıtımı: KAGIT, ELEKTRONIK. Örnek: `"ELEKTRONIK"` - **earsiv_odeme** (string, isteğe bağlı): Varsayılan e-arşiv ödemesi: kk, eft, kapida, araci, diger. Örnek: `"kk"` - **earsiv_webshop** (string, isteğe bağlı): Varsayılan e-arşiv web satış adresi. Örnek: `"www.ornek.com"` - **earsiv_shipagent** (string, isteğe bağlı): Varsayılan e-arşiv kargo firması ünvanı. - **earsiv_shipvkn** (string, isteğe bağlı): Varsayılan e-arşiv kargo firması vergi kimlik numarası. - **smtp_server** (string, isteğe bağlı): E-posta gönderimi için SMTP sunucu adresi. Örnek: `"smtp.ornek.com"` - **smtp_port** (string, isteğe bağlı): SMTP portu. Örnek: `"587"` - **smtp_user** (string, isteğe bağlı): SMTP kullanıcı adı. Örnek: `"efatura@ornek.com"` - **smtp_pass** (string, isteğe bağlı): SMTP şifresi. Örnek: `"gizli"` - **smtp_from** (string, isteğe bağlı): Gönderimlerde görünecek e-posta adresi. Örnek: `"efatura@ornek.com"` - **imzali_pdf** (integer, isteğe bağlı): İmzalı PDF hazırlama: 0 = hazırlama, 1 = imzalı PDF kullan. Örnek: `0` - **sms** (integer, isteğe bağlı): SMS gönderimi: 0 = varsayılan, 1 = gönderme, 2 = gönder, 3 = özel şablonla gönder. Örnek: `0` - **eposta_sablonu** (string, isteğe bağlı): E-posta şablonu anahtarı. - **islendi_metodu** (integer, isteğe bağlı): Fatura işlenme durumu: 0 = varsayılan, 1 = yazdırıldığında işlendi işaretle, 2 = işaretleme yapma. Örnek: `0` - **web_pdf** (integer, isteğe bağlı): Yazdırma seçeneği: 0 = standart, 1 = portal, 2 = servis. Örnek: `0` - **line_extension** (integer, isteğe bağlı): Satır toplam değeri: 0 = standart, 1 = brüt. Örnek: `0` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 42, "unvan": "Örnek Firma A.Ş.", "vergi_dairesi": "Osmangazi", "fatura_tipi": "temel", "seri_efatura": "ABC", "xslt_efatura": 3 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Ayarlar kaydedildi", "veri": { "firma": { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş." }, "kullanici_bazli": false, "kaydedilen_alanlar": [ "unvan", "vergi_dairesi", "fatura_tipi", "seri_efatura", "xslt_efatura" ], "ayarlar": { "unvan": "Örnek Firma A.Ş.", "vergi_dairesi": "Osmangazi", "seri_efatura": "ABC", "fatura_tipi": "temel", "fatura_tipi_adi": "Temel Fatura", "xslt_efatura": 3 } } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "seri_efatura 3 harften oluşmalıdır; sayı veya noktalama işareti kullanmayınız.", "veri": null } ``` ## Seçim Alanları - **fatura_tipi**: `temel` = Temel Fatura, `ticari` = Ticari Fatura, `ihracat` = İhracat Faturası, `yb` = Yolcu Beraberi Eşya Faturası - **earsiv_metod**: `MAGAZA` = Mağaza, `INTERNET` = İnternet - **earsiv_dagitim**: `KAGIT` = Kağıt, `ELEKTRONIK` = Elektronik - **earsiv_odeme**: `kk` = Kredi Kartı / Banka Kartı, `eft` = EFT / Havale, `kapida` = Kapıda Ödeme, `araci` = Ödeme Aracısı, `diger` = Diğer - **imzali_pdf**: `0` = Hazırlama, `1` = İmzalı PDF Kullan - **sms**: `0` = Varsayılan, `1` = Gönderme, `2` = Gönder, `3` = Özel Şablonla Gönder - **islendi_metodu**: `0` = Varsayılan, `1` = Yazdırıldığında İşlendi Olarak İşaretle, `2` = İşaretleme Yapma - **web_pdf**: `0` = Standart, `1` = Portal, `2` = Servis - **line_extension**: `0` = Standart, `1` = Brüt --- ## `POST /api/v1/xslt_listesi` # XSLT Listesi Firmanın XSLT tasarımlarını listeler: yeni sisteme yüklenen yerel tasarımlar (kaynak: yerel) ve eski sistemde kayıtlı tasarımlar (kaynak: eski, salt okunur) birlikte döner. Ayarlardaki xslt_* alanlarında yalnızca yerel tasarımlar seçilebilir; eski bir tasarım xslt_duzenle servisinin kopyala işlemiyle yerele alınabilir. id verilirse tek tasarım, base64 içeriğiyle döner. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **firma_reference** (integer, isteğe bağlı): Tasarımları listelenecek firmanın (mükellefin) referansı. Verilmezse oturumun seçili firması kullanılır. Örnek: `42` - **id** (integer, isteğe bağlı): Tek bir tasarımın içeriğini (base64) almak için tasarım id değeri. Örnek: `3` - **kaynak** (string, isteğe bağlı): id ile birlikte kullanılır: yerel (varsayılan) ya da eski. Listelemede her iki kaynak birlikte döner. Örnek: `"yerel"` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 42 } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "XSLT tasarım listesi", "veri": { "firma": { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş." }, "tasarimlar": [ { "id": 3, "kaynak": "yerel", "aciklama": "Kurumsal E-Fatura Tasarımı", "dosya_adi": "kurumsal.xslt", "boyut": 48210, "eski_id": 0, "zaman": "2026-07-20 14:05:11", "secilebilir": true }, { "id": 812, "kaynak": "eski", "aciklama": "Eski Portal Tasarımı", "dosya_adi": "tasarim2019.xsl", "boyut": 39120, "eski_id": 0, "zaman": "2019-03-08 10:12:45", "secilebilir": false } ] } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Tasarım bulunamadı.", "veri": null } ``` ## Seçim Alanları - **fatura_tipi**: `temel` = Temel Fatura, `ticari` = Ticari Fatura, `ihracat` = İhracat Faturası, `yb` = Yolcu Beraberi Eşya Faturası - **earsiv_metod**: `MAGAZA` = Mağaza, `INTERNET` = İnternet - **earsiv_dagitim**: `KAGIT` = Kağıt, `ELEKTRONIK` = Elektronik - **earsiv_odeme**: `kk` = Kredi Kartı / Banka Kartı, `eft` = EFT / Havale, `kapida` = Kapıda Ödeme, `araci` = Ödeme Aracısı, `diger` = Diğer - **imzali_pdf**: `0` = Hazırlama, `1` = İmzalı PDF Kullan - **sms**: `0` = Varsayılan, `1` = Gönderme, `2` = Gönder, `3` = Özel Şablonla Gönder - **islendi_metodu**: `0` = Varsayılan, `1` = Yazdırıldığında İşlendi Olarak İşaretle, `2` = İşaretleme Yapma - **web_pdf**: `0` = Standart, `1` = Portal, `2` = Servis - **line_extension**: `0` = Standart, `1` = Brüt --- ## `POST /api/v1/xslt_duzenle` # XSLT Düzenle Firmanın yerel XSLT tasarımlarını yönetir: ekle, guncelle, sil ve eski sistemdeki bir tasarımı yerele almak için kopyala. Eski sistem kayıtları salt okunurdur, yalnızca yerel tasarımlar düzenlenebilir. Bir firmada en fazla 20 yerel tasarım tutulur; içerik en fazla 1 MB olabilir ve geçerli bir XSLT (xsl:stylesheet / xsl:transform) olmalıdır. Silinen tasarıma referans veren ayar alanları varsayılan tasarıma (0) çekilir. Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **islem** (string, zorunlu): Yapılacak işlem: ekle, guncelle, sil, kopyala. Örnek: `"ekle"` - **id** (integer, isteğe bağlı): guncelle ve sil işlemlerinde yerel tasarım id değeri. Örnek: `3` - **eski_id** (integer, isteğe bağlı): kopyala işleminde eski sistemdeki tasarımın id değeri (xslt_listesi çıktısında kaynak: eski olan kayıtlar). Örnek: `812` - **aciklama** (string, isteğe bağlı): Tasarım açıklaması (ekle işleminde zorunlu). Örnek: `"Kurumsal E-Fatura Tasarımı"` - **dosya_adi** (string, isteğe bağlı): Tasarımın dosya adı. Örnek: `"kurumsal.xslt"` - **icerik** (string, isteğe bağlı): XSLT içeriği: base64 ya da doğrudan XML metni (ekle işleminde zorunlu). En fazla 1 MB; kök öğe xsl:stylesheet ya da xsl:transform olmalıdır. Örnek: `"PD94bWwgdmVyc2lvbj0iMS4wIj8+..."` - **firma_reference** (integer, isteğe bağlı): Tasarımları yönetilecek firmanın (mükellefin) referansı. Verilmezse oturumun seçili firması kullanılır. Örnek: `42` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 42, "islem": "ekle", "aciklama": "Kurumsal E-Fatura Tasarımı", "dosya_adi": "kurumsal.xslt", "icerik": "PD94bWwgdmVyc2lvbj0iMS4wIj8+..." } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "XSLT tasarımı eklendi", "veri": { "islem": "ekle", "firma": { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş." }, "tasarim": { "id": 3, "kaynak": "yerel", "aciklama": "Kurumsal E-Fatura Tasarımı", "dosya_adi": "kurumsal.xslt", "boyut": 48210, "eski_id": 0, "zaman": "2026-07-20 14:05:11" } } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "icerik bir XSLT değil: kök öğe xsl:stylesheet ya da xsl:transform olmalıdır.", "veri": null } ``` ## Seçim Alanları - **fatura_tipi**: `temel` = Temel Fatura, `ticari` = Ticari Fatura, `ihracat` = İhracat Faturası, `yb` = Yolcu Beraberi Eşya Faturası - **earsiv_metod**: `MAGAZA` = Mağaza, `INTERNET` = İnternet - **earsiv_dagitim**: `KAGIT` = Kağıt, `ELEKTRONIK` = Elektronik - **earsiv_odeme**: `kk` = Kredi Kartı / Banka Kartı, `eft` = EFT / Havale, `kapida` = Kapıda Ödeme, `araci` = Ödeme Aracısı, `diger` = Diğer - **imzali_pdf**: `0` = Hazırlama, `1` = İmzalı PDF Kullan - **sms**: `0` = Varsayılan, `1` = Gönderme, `2` = Gönder, `3` = Özel Şablonla Gönder - **islendi_metodu**: `0` = Varsayılan, `1` = Yazdırıldığında İşlendi Olarak İşaretle, `2` = İşaretleme Yapma - **web_pdf**: `0` = Standart, `1` = Portal, `2` = Servis - **line_extension**: `0` = Standart, `1` = Brüt --- ## `POST /api/v1/kontor_durumu` # Kontör Durumu Firmanın bağlı olduğu müşteri hesabının güncel kontör durumunu döndürür (eski sistemdeki Finans → Kontör ekranının karşılığı). Kalan kontör OINT_ACCTOTAL toplamlarından (yüklenen - harcanan), kullanım kırılımı OINT_ACCMONTHLYUSAGE tablosundan hesaplanır; aylık kullanım ve kontörün tahmini kaç gün yeteceği de yanıttadır (son 12 ayın kırılımı yalnızca son_12_ay_goster=true verilirse döner). Sonuç müşteri bazında cache'te tutulur; cache_ttl parametresi (sn, varsayılan 300, en az 30, en fazla 86400) verinin kabul edilen en fazla yaşını belirler; veri bundan eskiyse yeniden hesaplanır (hesaplama zamanı yanıttaki hesaplama_zamani alanındadır). Okuma kontör sunucusundan yapılır (kontör tabloları canlı ana veritabanında tutulmaz). Giriş gerektirir (bearer ya da basic auth). ## Parametreler - **firma_reference** (integer, isteğe bağlı): Kontör durumu okunacak firmanın (mükellefin) referansı. Verilmezse oturumun seçili firması kullanılır. Kontör, firmanın bağlı olduğu müşteri hesabına aittir. Örnek: `42` - **son_12_ay_goster** (boolean, isteğe bağlı): true verilirse yanıta son 12 ayın kullanım kırılımı (son_12_ay listesi) eklenir. Varsayılan false. Örnek: `false` - **cache_ttl** (integer, isteğe bağlı): Cache'teki verinin kabul edilen en fazla yaşı (saniye). Varsayılan 300; 30 ile 86400 arasına sıkıştırılır. Veri bundan eskiyse yeniden hesaplanır — küçük bir değer güncel veriyi zorlar. Örnek: `300` - **bearer** (string, isteğe bağlı): Bearer GUID (Authorization: Bearer başlığı yerine payload ile de gönderilebilir). Örnek: `"9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a"` - **musteri** (string, isteğe bağlı): Basic auth için müşteri (firma) kodu. Örnek: `"demo"` - **kullanici** (string, isteğe bağlı): Basic auth için kullanıcı adı. Örnek: `"ali"` - **sifre** (string, isteğe bağlı): Basic auth için şifre. Loglara asla yazılmaz. Örnek: `"gizli123"` ## Örnek İstek ```json { "bearer": "9b2f6c1e-0d4a-4a7e-9c3b-1f2e3d4c5b6a", "firma_reference": 42, "son_12_ay_goster": true } ``` ## Örnek Yanıt (olumlu) ```json { "basarili": true, "mesaj": "Kontör durumu", "veri": { "firma": { "reference": 42, "kod": "ORNEK", "vkn": "1234567890", "unvan": "Örnek Firma A.Ş." }, "musteri": { "reference": 7, "kod": "demo", "unvan": "Demo Bilişim A.Ş." }, "kontor": { "kalan": 12345, "yuklenen": 50000, "harcanan": 37655, "aylik_kullanim": 1200, "yillik_kullanim": 14400, "tahmini_gun": 309 }, "kullanim_toplamlari": { "harcanan_kontor": 37655, "efatura": 21000, "earsiv": 14000, "eposta": 9000, "sms": 120, "imzali_pdf": 800, "arsiv_dosyasi": 45, "arsiv_boyutu_mb": 512, "firma_sayisi": 3 }, "son_12_ay": [ { "ay": "2026-06", "harcanan_kontor": 1200, "efatura": 700, "earsiv": 420, "eposta": 300, "sms": 4, "imzali_pdf": 25, "arsiv_dosyasi": 2, "arsiv_boyutu_mb": 16 } ], "hesaplama_zamani": "2026-07-21 13:05:00", "cache_ttl": 300 } } ``` ## Örnek Yanıt (olumsuz) ```json { "basarili": false, "mesaj": "Bu firma için yetkiniz yok ya da firma bulunamadı.", "veri": null } ```