Zorunlu alanlar
InvoiceNumber: şirkette bu fatura tipi içinde benzersiz, en fazla 20 karakter. Oluştururken"Next"gönderilirse numara ALFATNO seri numarasından otomatik üretilir. Güncellemede"Next"gönderilemez.Date: fatura tarihi. Saat de gönderirseniz fatura saati olarak yazılır, göndermezseniz o anki saat kullanılır.CustomerCode: kullanıcının görebildiği bir cari.CurrencyCode: fatura dövizi.Lines: en az bir satır.
DueDays (vade günü) faturayla birlikte saklanır. ShipmentDefinitionCode (isteğe bağlı) sevkiyat tanımlarından gelir. EInvoiceType (0-5: e-belge değil, e-Fatura, e-Arşiv, e-Arşiv internet, gelen e-Fatura, e-Müstahsil) sizin tarafınızdan verilir ve gönderildiği gibi kaydedilir — API yalnızca aralık kontrolü yapar.
Cariden alınan bilgiler
Faturanın adresi, unvanı, vergi numarası ve vergi dairesi istekte alan olarak yer almaz. Bunlar, faturanın kaydedildiği anda cariden kopyalanır (carinin fatura adresi varsa o, yoksa ilk adresi) ve cari sonradan değişse bile faturada sabit kalır — bu yüzden yalnızca yanıtlarda görünürler (Address, CustomerTitle, TaxNumber, TaxOffice). Güncellemede bu değerler yalnızca CustomerCode değiştiyse yeniden hesaplanır; değişmediyse mevcut değerler korunur.
Satırlar
ProductCodeveUnitCodezorunludur. Birim, ürünün kendi birimlerinden biri olmalıdır (ana birimi ya da 2./3. birimi).Quantitysıfırdan büyük olmalı;UnitPricenegatif olamaz.Discounts, satırın indirim oranlarının listesidir, sırasıyla art arda uygulanır.LineGroupNameisteğe bağlıdır, satır grupları tanımından gelir.WarehouseNamezorunludur ve şirketin depolarından biri olmalıdır: her satır her zaman bir depo hareketi taşır (aşağıya bakınız).WithholdingNumerator/WithholdingDenominatortevkifat payını/paydasını tanımlar; API bunlardan veVatAmount’tanWithheldVatAmount’ı hesaplar.AdditionalTaxCode1-3/AdditionalTaxRate1-3/AdditionalTaxAmount1-3/AdditionalTaxBase1-3üç bağımsız slotta gönderildiği gibi kaydedilir.
MainUnitQuantity, Quantity’nin ürünün ana birimine çevrilmiş halidir; irsaliye satırlarıyla aynı hesaplama: UnitCode ana birimse miktarın kendisi, değilse birimin çarpanına bölünmüş hali.
Depo hareketi, Lot ve seri no takibi
İrsaliyeden farklı olarak fatura kendisi bir depo fişi değildir, ama her satır her zaman bir tane taşır: API, faturanın arkasında otomatik bir depo fişi (alış faturasında giriş hareketi) ve ürünün stok tipine göre irsaliyenin gerektireceği aynı Lot ya da seri no girdilerini üretir — satırdakiLots ya da SerialNumbers, irsaliye kurallarının birebir aynısıyla (Lot izlenen bir ürün LotNo/Quantity/UnitCode ister, FIFO/LIFO/FEFO bir ürünün giriş girdileri yeni lot oluşturur, seri izlenen bir ürünün girdileri yeni seri no kaydeder). Bu depo fişi tamamen dahili bir uygulama detayıdır: yanıtta dönmez ve irsaliye numara serilerini tüketmez.
Güncellemede satırın kimliği
İrsaliye satırı gibi, bir fatura satırının ürettiği depo hareketi, Lot/seri no girdileri ve sipariş bağlantısı kaydı satırın kendi ID’sine referans verir; bu yüzden “bütün satırları sil, yenilerini yaz” mantığı bu referansları koparır. Bunun yerine, irsaliyedeki gibi satırların istekte gönderildiği sıra, güncellemede kimliklerini belirler: istektekii. sıradaki satır, o anda i. sırada olan mevcut satırla aynı kabul edilir ve ürettiği kayıtlar onunla birlikte taşınır. Öncekinden daha az satır göndermek sondaki satırları kaldırır, daha fazla göndermek sona yeni satırlar ekler.
Sipariş ve irsaliye bağlantısı
Bir fatura satırının ürettiği depo hareketi, tıpkı bir irsaliye satırı gibi bir sipariş satırına bağlantı taşıyabilir; API satırın miktarının bağlı sipariş satırının kalan miktarını aşmadığını kontrol eder. Noyax uygulamasında var olan bir irsaliyeden aktarılarak oluşturulmuş bir fatura satırı (kendi depo hareketini üretmek yerine) bu bağlantıyı korur: bu API böyle bir aktarım oluşturmaz, ama böyle bir bağlantısı olan mevcut bir faturayı güncellerseniz miktarı bağlı irsaliye satırına göre kontrol edilir.Cari hareket
Her alış faturası koşulsuz olarak bir cari hareket kaydı oluşturur (alacak, çünkü alış faturası şirketin tedarikçiye olan borcunu artırır) — Sipariş’in isteğe bağlıCreateCustomerMovement’ının aksine burada bir seçenek yoktur. Bu hareket bir tahsilat/ödeme ile zaten kapatılmışsa faturanın carisi, tutarı ve dövizi artık değiştirilemez ve fatura silinemez (3015).
Ek yapılandırılmış alanlar
Fatura, daha az sık karşılaşılan senaryolar (ihracat, kamu, SGK, ilaç/tıbbi cihaz, Hal) için bir dizi tamamen isteğe bağlı ek alan kabul eder. Bunların hiçbiri API tarafından doğrulanmaz ya daProfileId/InvoiceTypeCode ile herhangi bir şekilde eşleştirilmez: ne gönderirseniz olduğu gibi kaydedilir ve döner; kendi ProfileId’nize uygun olanları göndermek sizin sorumluluğunuzdadır.
Başlık: DeliveryInfo (ihracat teslimat adresi ve şartları), PaymentMeans (ödeme yöntemleri), ReferencedDespatches (faturanın referans verdiği irsaliyeler), CustomerIdentitySchemes (ek cari kimlik numaraları, ör. MUSTERINO, TICARETSICILNO), PublicSectorSpendingUnit (ödemeyi yapacak kamu harcama birimi) ve SgkInfo (SGK fatura detayları).
Satır: ExportInfo (satırın ihracat teslimat/paketleme detayları), MedicineDeviceInfo (ilaç/tıbbi cihaz takip satırları), HalInfo (hal künye bilgisi) ve ProductInfo (model, marka, menşei ülke ve diğer tanımlayıcılar).
Paylaşım
SharingCode faturayı kimlerin görebileceğini sınırlar: boşsa herkes görür, doluysa kullanıcının paylaşım kodlarından biri olmalıdır. Kullanıcının göremediği faturalar 404 döner.