GST fatura veri modeli temelleri: uyumlu faturalar oluşturmak ve mutabakatı kolaylaştırmak için minimum alanlar, HSN yönetimi ve yönetici ekranları.

Çoğu GST fatura problemi “karmaşık vergi” sorunu değildir. Eksik veya tutarsız veri sorunlarıdır. Bir denetim, fatura satılanla, kime, nerede sağlandığı ve verginin nasıl hesaplandığıyla net şekilde bağlanamadığında başarısız olur.
Yaygın tetikleyicilerden biri HSN’in eksik, güncel olmayan veya yanlış seviyede uygulanmış olmasıdır. Ekipler HSN’i ürüne ekleyebilir, ancak fatura satırı farklı bir SKU adı veya varyantından oluşturulduğunda HSN nihai belgeye hiç yansımayabilir. Diğer sık sorun, vergi bölmesinin yanlış yapılmasıdır: "yer teslimi" nakliye adresinden tahmin edilip gerekli durum kodları saklanmadığı için IGST yerine CGST+SGST (veya tam tersi) alınması gibi.
Finans ekipleri bunu hemen hisseder. Mutabakat günlük bir temizlik işine dönüşür: fatura toplamları siparişle eşleşmez, sipariş ödeme ağ geçidi mutabakatıyla eşleşmez ve iadeler manuel not zincirine dönüşür. Satır kalemleri arasındaki küçük yuvarlama farkları bile fatura PDF’i, GST raporları ve defterler arasında uyumsuzluk yaratabilir.
En çok uyuşmazlık yaratan desenler şunlardır:
GST fatura veri modelinin amacı basittir: her sayının daha sonra yeniden üretilebilmesi ve açıklanabilmesi için sipariş, ürün, taraf, vergi, fatura ve kredi notu alanlarının minimum setini saklayın. Küçük tutun, ama vergi türünü, oranını ve raporlamayı belirleyen yasal öneme sahip alanları atmayın.
GST faturalarının kolay oluşturulması ve sonradan mutabakatının kolay olması için küçük bir nesne setiyle başlayın ve her birinin tek bir iş yapmasını sağlayın. Temiz bir GST fatura veri modeli çok sayıda tabloya sahip olmaktan daha çok, gerçeklerin zaman içinde sabit tutulmasıyla ilgilidir.
Çoğu ekip için ilk günde gereken temel kayıtlar şunlardır:
Bir Fatura Siparişten ayrı olmalıdır. Siparişler değişebilir (adres düzenlenir, ürünler iptal edilir, kısmi teslimat). Faturalar değişmemeli. Numaralandırma, tarih ve toplamlar sabit olmalı; birileri siparişi sonradan güncellediği için “kayma” yaşamamalıdır.
Vergi doğruluğu için kilit nokta Satır Kalemleridir. Her sipariş satırı (ve sonrasında her fatura satırı) o belirli ürün için tam miktar, birim fiyatı, indirim ve vergi dökümünü tutmalıdır. HSN/SAC ve GST oranları burada uygulanır.
Finans ekiplerinin işini kolaylaştıran bir ayrıntı: anlık görüntüleri saklayın. Fatura oluşturduğunuzda ürün açıklamasını, HSN/SAC, vergi oranını ve fiyatlamayı fatura satırlarına kopyalayın. Güncel ürün ana kaynağına güvenmeyin; oranlar ve isimler değişir.
Erken eklemeye değer olan seçenekler arasında İadeler, Geri Ödemeler ve Kredi Notları ayrı kayıtlar olarak yer alır. Örnek: iki öğelik bir siparişten bir öğe iade edilirse, orijinal fatura satırına referans veren bir kredi notu istersiniz; ödeme iadesi kaydı ise gateway işlemine referans verir. Bunları açık nesneler olarak tutmak ay sonu “manuel düzeltmeleri” önler.
Bunu Koder.ai içinde inşa ediyorsanız, her nesneyi önce basit bir ekran (oluştur, görüntüle, düzenle) olarak ele alın; sonra anlık görüntüler ve satır düzeyi alanlar hazır olduktan sonra fatura üretimini ekleyin.
HSN (mal için) ve SAC (hizmet için) sadece “fatura-detayı” değildir. Ürün veya hizmet tanımında başlar ve fatura düzenlenirken her fatura satırına kopyalanır. Bu, karışık sepetleri doğru tutar ve denetimleri kolaylaştırır çünkü her satır kendi başına açıklanabilir olur.
Pratik minimum veri modeli şöyle olabilir:
HSN/SAC’i Ürün üzerine koymak yönetim ekibinizin bunu tek bir yerden sürdürmesini sağlar. Fatura satırına kopyalamak geçmiş faturaları kararlı kılar. Ürün daha sonra değişse bile fatura satış anında doğru olanı gösterir. Bu, mutabakatta kırılmayan bir GST fatura veri modelinin özü.
HSN depolaması için basit tutun: kod gerekli, açıklama isteğe bağlı, ve bir effective_from tarihi değişiklik geçmişi istiyorsanız isteğe bağlıdır. Çoğu ekip her satırda açıklamaya ihtiyaç duymaz, fakat istisnaları kontrol ederken finans için yardımcı olabilir.
Karışık sepetler normaldir: bir faturada birden fazla satır ve dolayısıyla birden fazla HSN/SAC kodu olabilir. Bir faturaya tek bir kod zorlamayın. Toplamlar fatura düzeyinde toplanır, sınıflandırma satır düzeyinde kalır.
Değişiklik yönetimi insanların başını ağrıtır. Küçük bir kural seti kullanın:
Yönetim ekranı açısından, Ürün vergi alanlarını düzenlemek için tek bir yere ihtiyaç vardır; faturada yakalandığını doğrulamak için fatura satırlarında salt okunur bir görünüm yeterlidir. Eğer bu ekranları hızla kuruyorsanız, Koder.ai gibi araçlar bu modelden temel CRUD sayfaları ve veri tablolarını minimal eforla üretebilir.
Bir GST fatura veri modeli en sık taraf detaylarında başarısız olur. Alıcı veya satıcının kimliği biraz bile yanlışsa, faturanız kağıt üzerinde geçerli olsa bile iadeler ve mutabakat sırasında sorun olur.
"Satıcı", "alıcı" ve "teslimat adresi"ni ayrı taraflar olarak ele alarak başlayın, bunlar aynı kişi olsa bile. Bu, müşteri farklı bir teslimat adresi eklediğinde veya birden fazla GST kaydı ile satış yaptığınızda sonradan yapılan geçici çözümleri önler.
Sıkıcı ve açık alanlar tutun. Genelde faturada ve raporlarda ihtiyaç duyulanlar şunlardır:
Eyaleti hem insan okunur isim hem de eyalet kodu olarak saklayın; çünkü raporlama ve yer teslimi kuralları genellikle koda dayanır.
Siparişte hem fatura hem gönderim adresini yakalayın; sadece müşteri profiline bağlı kalmayın. Profiller değişir; faturalar değişmemeli.
Yer teslimini faturada (fatura oluşturma anında) belirli bir eyalet kodu olarak saklayın. Sonradan "yeniden hesaplama" yapmayın. Kuralınız "gönderim adresi" ise, o sonucu ve kararı verirken kullanılan eyaleti saklayın. Bu denetimleri ve anlaşmazlıkları kolaylaştırır.
B2B için alıcı GSTIN genelde zorunludur ve girişte uzunluk ve format doğrulanmalıdır. B2C için GSTIN boş kalabilir, ancak CGST/SGST veya IGST uygulanıp uygulanmayacağını belirlemek için tam bir adres ve eyalet gerekir.
Çoğu sistem için işe yarayan basit kural: alıcı GSTIN girildiyse B2B, yoksa B2C olarak değerlendirin. İstisnalar gerekiyorsa, açık bir customer_type alanı saklayın.
Birden fazla GST kaydı olan şube veya birimleriniz varsa, "Satıcı Varlığı"nı kendi kaydı olarak modelleyin; her birinin kendi GSTIN ve adresi olsun. Her sipariş kesinlikle bir satıcı varlığına referans vermeli ve her fatura bu detayları kopyalamalı; böylece geçmiş faturalar satıcı adresi sonradan değişse bile doğru kalır.
Koder.ai gibi araçlar bu kayıtlar için yönetim formlarını hızlıca üretebilir; kilit yapı: ayrı satıcı varlığı, fatura oluşturma zamanında anlık görüntüler ve açık bir yer teslimi eyalet kodu.
En yaygın ayrım basittir: eğer yer teslimi tedarikçiyle aynı eyaletteyse vergi CGST + SGST’dir. Farklı eyalet ise IGST uygulanır. Sisteminiz "sonradan toplamdan yeniden hesaplamamalı" çünkü küçük farklar (yuvarlama, indirim, kargo) uyuşmazlıklara yol açar.
En azından vergi rakamlarını fatura satır düzeyinde saklayın, sadece fatura başlığı değil. Böylece faturadaki her kuru açıklayabilir ve ürüne, HSN’e ve gelire geri eşleyebilirsiniz.
Bir fatura satırı için pratik minimum alanlar:
İndirimler sistemleri karıştıran yerdir. Tek bir kural belirleyin ve net saklayın. İndirimler vergiden önce fiyatı azaltıyorsa (ürün indirimleri ve kuponlar için tipik), orijinal brüt tutarı, indirim tutarını ve ortaya çıkan vergilendirilebilir değeri saklayın. Sipariş düzeyi kupon varsa, genelde her satıra oransal olarak paylaştırın ve her satırın ayrılmış indirimini saklayın ki vergi hesabı açıklanabilir olsun.
Yuvarlama tutarlı olmalı ve kaydedilmelidir. Satır düzeyinde mi yoksa sadece fatura düzeyinde mi yuvarlama yapacağınıza karar verin, sonra basılı olan yuvarlanmış sonuçları saklayın. Birçok ekip vergiyi satır başına hesaplar, 2 ondalığa yuvarlar, toplar ve sonra tam ödenecek tutarı yakalamak için invoice_rounding_adjustment alanı uygular.
Kargo ve elleçleme gizli eklemeler olmamalı. Bunları kendi HSN/hizmet kodu ve vergi oranı kuralları olan ayrı bir fatura satırı olarak ele alın. Örneğin, iki ürün ve bir kargo ücreti olan bir sipariş üç satır olur; her biri saklanmış vergilendirilebilir değere ve vergi bileşen tutarına sahip olur; bu finans mutabakatını kolaylaştırır.
Vergi hesaplandıktan sonra fatura halen geçerli, denetlenebilir ve sonradan mutabakatı kolay olacak "belge" alanlarına ihtiyaç duyar. GST fatura veri modelinde fatura başlığını yasal bir kayıt gibi ele alın: ürün veya müşteri verileri gelecekte değişse bile sabit olmalıdır.
Başlangıç olarak başlık temelleri: fatura numarası, düzenleme tarihi (faturadaki tarih), fatura türü (vergi faturası, ihracat, B2B, B2C vb.) ve para birimi. Çoğunlukla INR ile fatura kesilse bile para birimini saklamak ihracat veya çoklu para birimli pazar yerleri için karmaşıklıkları önler.
Numaralandırma takımı insanları yakar. Bir seri veya önek saklayın (örneğin “FY25-INV-”), mali yılı saklayın ve veritabanı seviyesinde benzersizliği zorunlu kılın. Yönetimde seri başına "sonraki numara" kontrollerini saklayın ki iki yönetici aynı numarayı aynı anda veremesin.
Toplamlar açıkça saklanmalı, sadece türetilmiş olmamalı. Ara toplam (vergilendirilebilir değer), toplam vergi, genel toplam ve ayrı bir round-off miktarı saklayın. Satır öğelerinden sonradan yeniden hesaplarsanız, küçük bir kural değişikliği eski faturaların dosyalanan beyannamesiyle eşleşmeyi durdurabilir.
Durumlar gerçek yaşam döngüsünü yansıtmalı ve gerektiğinde kaydı kilitlemeli:
Son olarak oluşturulmuş artefakt metadata’sını saklayın: PDF şablon versiyonu, oluşturma zaman damgası ve dosya kimliği. Bir hash isteğe bağlıdır ama PDF’in değiştirilmediğini kanıtlamanız gerektiğinde faydalıdır.
Örnek: bir destek görevlisi bir şablon güncellemesinden sonra PDF’i yeniden oluşturursa, fatura toplamları ve numarası aynı kalmalı; ancak saklanan şablon versiyonu PDF düzeninin neden farklı göründüğünü açıklar.
Temiz GST faturası istiyorsanız, fatura ekranında başlamayın. Onu besleyen yönetim sayfalarıyla başlayın. İyi bir GST fatura veri modeli, bu girdiler kontrol altında ve tutarlı olduğunda küçük kalır.
Ürün ana kaydı çoğu gelecekteki uyuşmazlığın başladığı yerdir, bu yüzden katı tutun. Her SKU’nun tam olarak bir varsayılan HSN (hizmetler için SAC), ayrıca bir varsayılan GST oranı ve yalnızca belirli tarihler için geçerli istisnaları olmalıdır.
Pratik bir ürün ekranı genelde şunları ister:
Bir "hesap makinesi" UI’sinden kaçının. Bunun yerine sisteminizin tutarlı uygulayabileceği girdileri saklayın: oran tabloları, uyguladığınız yer teslimi kuralları ve intra-state vs inter-state kararını nasıl verdiğiniz (genelde tedarikçi eyaleti ile gönderim eyaletinin karşılaştırılmasıyla).
Vergi ekranını: kategori/HSN grubuna göre vergi oranları, geçerli tarihleri ve alıcı geçerli bir GSTIN sağladığında ne yapılacağı gibi girdilere odaklı tutun.
Müşteri ekranı GSTIN ve doğrulama durumunu, ayrıca varsayılan fatura ve gönderim adreslerini yakalamalı. Kullanıcıların serbest metin eyalet girmesine izin vermeyin; "KA" ile "Karnataka"nın iki farklı değer olmaması için kontrollü bir liste kullanın.
Şirket profil ekranınız da aynı derecede önemli: yasal isim, GSTIN, kayıtlı adres ve fatura serisi ayarları (önek, sonraki numara ve mali yıl sınırları). Bunları izinlerle kilitleyin çünkü değişiklikler gelecekteki tüm belgeleri etkiler.
Karmaşık bir sisteme ihtiyacınız yok ama bir iz olmalı. HSN/SAC, GST oranları, fatura serisi veya şirket GSTIN değişikliklerini kim değiştirdiğini, eski ve yeni değeri, zaman damgasını ve nedeniyle birlikte kaydedin.
Koder.ai gibi araçlarla bu ekranları kurarken denetim kaydı ve geçerli tarihleri ilk gün birinci sınıf alanlar olarak ele alın. Erken eklenmesi az maliyetlidir ve finans incelemelerinde saatler kazandırır.
Uyumlu bir fatura süslü formatlardan daha çok, doğru anlarda doğru gerçekleri dondurmaktır. GST fatura veri modelinizi bu akış etrafında tasarlarsanız, finans işi basit bir eşleşme olur, haftalık bir soruşturmaya dönüşmez.
Vergiyi hesaplamadan önce bir sipariş anlık görüntüsü kilitleyin: ürünler, miktarlar, birim fiyatlar, indirimler, kargo/elleçleme ücretleri, müşteri GSTIN (varsa), fatura ve gönderim adresleri ve yer teslimi sinyalleri. Bu anlık görüntüü ürün fiyatı veya HSN eşleştirmesi sonradan değişse bile değişmemeli.
Vergileri hesaplayın ve anlık görüntüden fatura satırları oluşturun. Her fatura satırı HSN/SAC, vergi oranı(ları), vergilendirilebilir değer ve o anda kullanılan vergi tutarlarını kopyalamalı; sonradan canlı arama yapmasın.
Fatura numarasını ve düzenleme tarihini atayın, sonra faturayı düzenlenmiş olarak işaretleyin. Bu noktadan sonra fatura kaydında fiyat, vergi oranları, HSN kodları ve adresler gibi finansal alanlarda düzenlemeleri engelleyin. İzin verilecekse, sadece finansal olmayan notlar ve iç etiketlere sınırlayın.
İhraç edilmiş faturadan PDF/print görünümünü oluşturun, sonra raporlayacağınız nihai toplamları saklayın: vergilendirilebilir toplam, CGST/SGST/IGST toplamları, yuvarlama ve genel toplam. Ek güvenlik isterseniz belge versiyonu veya checksum saklayın ki basılı çıktı saklanan sayılarla eşleştiğini kanıtlayabilesiniz.
İhraç sonrası değişiklikler kurallara göre olmalı, düzeltme yoluyla değil:
Bu akışı yönetim ekranlarınıza (Koder.ai tarzı Planlama Modu, inşa etmeden önce adımları haritalamak için faydalıdır) entegre ederseniz, ekibiniz faturaları hızla oluştururken mutabakatı bozmamış olur.
Ödemeler siparişte tek bir "ödenmiş/ödenmemiş" bayrağı olarak işlendiğinde mutabakat karışır. Ödemeleri ve iadeleri sipariş ve faturaya işaret eden ayrı kayıtlar olarak tutun ki finans banka mutabakatlarını tarihi değiştirmeden eşleyebilsin.
Bir fatura düzenlendikten sonra sabit kalmalıdır. Müşteri kısmen öder veya sonradan iade olursa, bu hareketi ödeme veya iade girişi olarak kaydedin; faturanın toplamını değiştirmeyin.
Mutabakatı kolay yapan minimum alanlar:
Müşteri bir ürünü iade ederse faturayı "azaltmayın." Orijinal faturaya bağlantılı bir kredi notu düzenleyin. Fatura sicili temiz kalır ve iade ödemesi kredi notuna bağlanır.
Finansa şu soruyu cevaplayan tek bir ekran verin: ne düzenlendi, ne ödendi, ne açık kalıyor ve ne iptal edildi. Yaşlandırma (0-7, 8-30, 31-60, 60+ gün) ve ilgili ödeme/iadelere drill-down içermeli.
Her ay çoğu ekibin ihtiyaç duyduğu dışa aktarımlar:
Örnek: bir sipariş Rs 10,000 ise, bugün Rs 6,000 ödenmiş ve gelecek hafta Rs 4,000 ödenecek. Fatura Rs 10,000 olarak kalır. Finans görünümü bakiye olarak Rs 4,000 gösterir; ikinci tahsilat gelene kadar açık görünür, sonra tamamen ödenmiş olarak işaretlenir; ihraç edilmiş belge değiştirilmez.
Çoğu GST fatura sorunu “vergi mantığı” değil; kayıt tutma sorunudur: PDF üzerindeki sayılar finans dışa aktarımlarıyla eşleşmez veya fatura aylar sonra açıklanamaz.
İlk tuzak sadece görüntüleme anında GST hesaplamaktır. Her seferinde CGST/SGST/IGST hesaplıyorsanız, bir oran değişikliği, yuvarlama kuralı değişikliği veya hata düzeltmesi sonrası farklı sonuçlar alırsınız. Fatura düzenlenirken kullanılan hesaplanmış vergi dökümünü saklayın; girdileri de saklasanız bile.
İkinci tuzak düzenlenmiş faturaya düzenlemeye izin vermektir. Bir fatura kesinleştiğinde değişiklikler kredi notu veya yeniden düzenleme akışı ile olmalı; aksi halde "müşteri PDF’i ile defterler neden farklı?" tartışmaları çıkar.
GST fatura veri modelinde en sık görülen uyuşmazlık desenleri:
Hızlı bir örnek: Karnataka’daki bir müşteriye satıyorsunuz, ancak gönderim adresi Maharashtra. Sisteminiz fatura için yer teslimini fatura eyaletinden yanlışlıkla alırsa CGST+SGST tahsil edebilir; ayrıca vergiyi canlı yeniden hesaplarsanız, bu hata sessizce "düzelir" ve finans elinizdeki düzenlenmiş belge ile kayıtların farklı olmasına neden olur.
Yönetim ekranlarını (özel veya Koder.ai gibi bir platformla) oluştururken küçük koruma önlemleri ekleyin: düzenlenmiş faturaları kilitleyin, hesaplanan vergi türünün yanında yer teslimi girdilerini gösterin ve düzenleme anında kullanılan HSN, oran ve yuvarlamanın değişmez bir anlık görüntüsünü tutun.
Bir faturayı müşteriye göndermeden veya "düzenlendi" olarak işaretlemeden önce hızlı bir dizi kontrol çalıştırın. Küçük hataların daha sonra büyük mutabakat baş ağrılarına dönüşmesinin yeri burasıdır. GST fatura veri modelinizi inşa ediyorsanız, bu kontrolleri hem doğrulama kurallarınıza hem de yönetim UI’sine yerleştirmek faydalıdır.
Basit bir örnek: müşteri ödeme sonrası gönderim adresini güncelliyor ve eyalet değişiyor. Aynı fatura numarasıyla yeni vergiyle tekrar düzenlerseniz, sicil ve ödeme kayıtları artık eşleşmez. Daha güvenli yaklaşım orijinal faturayı değişmez tutmak ve ayarlama belgesi üretmektir.
Sonraki adımlar: önce ekranları ve doğrulamaları uygulayın, sonra yinelemeye gidin. Koder.ai’de Planlama Modu ile kayıtları ve yönetim ekranlarını (HSN/SAC eşleştirmesiyle ürünler, müşteri/GSTIN detayları, vergi kuralları ve faturalar) çizin. Uygulamayı üretin, birkaç gerçek siparişi uçtan uca test edin, sonra anlık görüntüler ve rollback ile iş akışını güvenli şekilde rafine edin. Daha derin özelleştirme veya inceleme gerektiğinde, kaynak kodu dışa aktarın ve normal geliştirme sürecinizle ilerleyin.