Muhasebe modülü, işletme sahibinin satış, gider, cari hesap ve resmi mali tablolarını 5 sade ana sayfa + sekmeler üzerinden tek noktada izleyebileceği tam donanımlı bir paneldir. Çift taraflı muhasebe ilkesine ve çoklu ülke (country pack) mimarisine göre tasarlanmıştır:
- Türkiye paketi (TR_TDHP) — Tek Düzen Hesap Planı, KDV %1/%8/%10/%18/%20 + stopaj, e-fatura/e-arşiv altyapısı.
- Uluslararası paket (INT_GENERIC) — IFRS uyumlu jenerik 4 haneli plan, çoklu satış vergisi (VAT/GST/Sales Tax/Reverse Charge/Zero-rated/Exempt).
Posting (yevmiyeleştirme) motoru sabit hesap kodlarına bağlı değildir; rol bazlı haritalama (account_mappings) sayesinde TR'de TDHP'ye, INT'de jenerik plana otomatik bağlanır.
Temel kavramlar
- Cari hesap: Müşteri, tedarikçi, personel veya diğer karşı taraflar. Her cari kayıt için açılış bakiyesi, kredi limiti, vergi kimliği ve hareket geçmişi tutulur.
- Hesap planı: TR'de TDHP (100, 102, 120, 320, 600, …), INT'de IFRS jenerik (1010, 1020, 1200, 2100, 4000, …) plan otomatik yüklenir.
- Vergi kodları: Sabit
default_vat_rateyerine işletme bazlı çoklutax_codes(KDV, stopaj, zero-rated, reverse-charge, exempt). Faturalartax_code_idüzerinden hesaplanır. - Hesap rolleri:
cash,bank,receivable,payable,revenue,tax_output,tax_input,cogs,expense_default… gibi 21 rolaccount_mappingstablosunda chart_of_accounts'a bağlanır. Posting engine bu rolleri çözümler. - Yevmiye fişi: Her mali olay borç=alacak dengeli kayıt olarak yevmiyeye işlenir. POS adisyonu, fatura veya tahsilat girildiğinde otomatik yevmiye fişi üretilir.
- Dönem kilidi: Mali yıl kapanışı yapıldıktan sonra ilgili dönem değişikliklere kapatılır.
- Üçüncü parti erişim: Muhasebeci, denetçi, kurye, toptancı, matbaa gibi roller scope'lu (
reports.read,transactions.read…) erişim alır. Veri tabanı (partner_access) ve RLS hook'u (accounting_has_partner_access) kullanılır; davet Muhasebe Ayarları → Paylaşım sekmesinden yönetilir.
Sidebar yapısı (5 ana sayfa)
Muhasebe
├── Özet /accounting
├── İşlemler /accounting/transactions
│ └── sekmeler: Satış · Gider · Tahsilat · Çek/Senet · Tekrarlayan
├── Cariler /accounting/contacts
│ └── Cari detay /accounting/contacts/[id]
├── Raporlar /accounting/reports
│ └── sekmeler: Vergi · Gelir Tablosu · Yaşlandırma · Mali Tablolar (Pro) · Defterler (Pro)
└── Muhasebe Ayarları /accounting/settings
└── sekmeler: Genel · Ülke & Vergi · Hesap Planı · Kasa & Banka · Otomasyon · Paylaşım
Gelişmiş rapor sekmeleri (Raporlar → Mali tablolar / Defterler): Mizan, hesaplardan türetilen bilanço özeti ve dönemsel nakit görünümü; yevmiye listesi, fiş detayı ve işlem kaydı (audit) panelden kullanılabilir. Bu çıktılar iç yönetim ve muhasebe ofisi ile paylaşım içindir; resmi tebliğ/beyanname yerine geçmez — hukuki kullanım için yeminli mali müşavir onayı gerekir.
Hangi sekme ne işe yarar?
Özet
Net gelir, toplam gider, net kâr, KDV, nakit akışı KPI'ları ve aylık trend grafiği. Vadesi geçmiş faturalar ve son işlemler tek bakışta.
İşlemler
- Satış: Adisyon, ürün ve ödeme tipi bazlı satış raporları.
- Gider: Hızlı gelir-gider girişi; tax_code, kategori, kasa/banka ve cari ile ilişkilendirme.
- Tahsilat / Tediye: Cari hesap ödeme ve tahsilat akışları (
payments.js) ile listelenir ve işletme süreçlerine bağlanır. - Çek / Senet: Aldığınız ve verdiğiniz çek/senet takibi (
cheques.jsve ilgili tablolar). - Tekrarlayan: Tekrar eden gelir/gider şablonları (
recurring) ve planlı çalıştırma.
Cariler
Müşteri, tedarikçi, personel ve diğer carilerin yönetimi; cari hareket defteri, açılış bakiyesi, kredi limiti, VKN/TCKN, açıklama. Cari detay sayfasında borç/alacak hareketleri ve bakiye akışı görüntülenir.
Raporlar
- Vergi: Aylık KDV/satış vergisi hesaplama (hesaplanan, indirilecek, ödenecek, devreden).
- Gelir Tablosu: Brüt satış, COGS, brüt kâr, faaliyet giderleri, net kâr.
- Yaşlandırma: Müşteri/tedarikçi cari bakiye yaşlandırma raporu (0-30, 31-60, 61-90, 90+).
- Mali tablolar (gelişmiş): Mizan; hesap türlerine göre özet bilanço; seçilen döneme göre nakit/gelir-gider özeti (yönetim içi).
- Defterler (gelişmiş): Yevmiye fişleri listesi ve detay; işlem kaydı (audit) sekmesi ile değişiklik izi.
Muhasebe Ayarları
- Genel: Vergi kimliği (ünvan, VKN/TCKN, vergi dairesi, TR'de MERSİS/Ticaret Sicil/SGK), muhasebe para birimi, ondalık hane, stok değerleme yöntemi, çoklu para birimi, e-fatura, dönem kilidi.
- Ülke & Vergi: Ülke paketi seçimi (TR/INT), hesap planı standardı (otomatik), locale, varsayılan vergi/stopaj oranları, mali yıl başı, vergi kodları CRUD'u (tax_codes).
- Hesap Planı: TR_TDHP veya INT_GENERIC seed sonrası oluşan chart_of_accounts'un görüntülenmesi (Faz 1 read-only; CRUD Faz 2).
- Kasa & Banka: Tanımlı nakit kasaları ve banka hesaplarının görüntülenmesi (Faz 1 read-only; CRUD Faz 2).
- Otomasyon: POS adisyonlarını otomatik yevmiyeleştirme; alış faturalarını otomatik yevmiyeleştirme. Posting engine rol bazlı çalışır (Borç Kasa/Banka — Alacak Gelir + Vergi Çıkışı).
- Paylaşım: Muhasebeci ve diğer roller için e-posta ile davet;
horeca_accounting_partner_accessveaccounting_has_partner_accessile scope bazlı salt okunur erişim. Davet akışı ayarlar sekmesinden yönetilir.
Veri güvenliği ve gizlilik
- Her tablo Row Level Security (RLS) ile işletme bazında izole edilmiştir; başka bir işletme verisine erişmek mümkün değildir.
- Üçüncü parti erişim için
accounting_has_partner_access(business_id, scope)helper'ı tüm RLS politikalarına entegre edilmiştir; davet edilen muhasebeci yalnızca verilen scope'lardaki kayıtları okuyabilir. - Parasal alanlar dört ondalıklı (
NUMERIC(18,4)) tutulur, faturalama ve mizan hesaplarında yuvarlama hatası oluşmaz. - Yevmiye fişlerinde borç-alacak dengesi trigger ile zorunlu kılınır; dengeli olmayan kayıt veritabanına işlenmez.
Yetkilendirme
Personel rolleri için 5 ana muhasebe izni tanımlıdır (Personel → Roller → İzinler ekranında):
accounting— Özetaccounting/transactions— İşlemler (Satış/Gider/Tahsilat/Çek/Tekrarlayan)accounting/contacts— Carileraccounting/reports— Raporlar (Vergi / Gelir tablosu / Yaşlandırma / Gelişmiş mali tablolar ve defterler)accounting/settings— Muhasebe Ayarları
Her izin için ayrı görüntüleme ve düzenleme yetkisi verebilirsiniz; örneğin yalnızca raporları gören ama ayar değiştiremeyen personel rolü oluşturulabilir.
Dışa aktarma
Rapor ekranlarındaki Dışa Aktar butonu üç format sunar:
- Excel (.xlsx) —
exceljsile başlık ve toplam satırları biçimlendirilmiş çok sayfalı çalışma kitapları. - PDF (.pdf) —
@react-pdf/rendererile kurumsal düzenli raporlar. - CSV (.csv) — UTF-8 BOM ile Türkçe karakter uyumlu, Excel ve diğer araçlarda doğrudan açılabilir.
Yol haritası, kabul kriterleri ve metrikler
Birincil persona: İşletme sahibi / operasyon müdürü (günlük ciro, cari, KDV takibi). İkincil persona: Harici muhasebeci (export, yevmiye, rapor salt okunur).
“Yeterli” tanımı (ürün kabulü örneği): Seçilen dönemde özet ve raporların tutarlı görünmesi; dönem kilidi açıkken kilitli tarihe müdahale edilememesi; cari ve raporların Excel/PDF/CSV dışa aktarılabilmesi; kritik hesap rollerinin eşlenmiş olması.
Başarı metrikleri (izlenmesi önerilen): rapor export başarı oranı; yevmiye oluşturma hatası sayısı; dönem kilidi ihlali (DB exception) sayısı; rapor sayfaları TTFB veya istemci tarafı yükleme süresi.
İlk ay senaryosu (özet)
- Muhasebe Ayarları → Genel: Ünvan, vergi kimliği, para birimi, e-belge tercihi ve dönem kilidi.
- Ülke & Vergi: Ülke paketi (TR / uluslararası), vergi kodları, varsayılan oranlar.
- Hesap planı & Kasa/Banka: Seed sonrası hesapları kontrol et; kasa ve banka hesaplarını tanımla.
- Otomasyon: POS ve alış faturası otomatik yevmiye kurallarını aç/kapat.
- İşlemler: Gerçek satış/gider hareketleri geldikten sonra Raporlar → Vergi ile KDV dönemini hesaplat; Gelişmiş sekmelerden mizan/yevmiye ile çapraz kontrol.
Muhasebeciye verilecek paket (checklist)
- Cari listesi ve bakiye (Excel/PDF/CSV).
- Seçilen dönem gelir tablosu ve yaşlandırma exportları.
- Mizan (tarih itibarıyla) ve istenirse yevmiye listesi / fiş detayları.
- Ayarlar özeti: ülke paketi, rapor kilit tarihi (varsa).
- (İleride) e-belge entegrasyonu devreye girdiğinde: portal çıktıları ve platform fişlerinin mutabakat notu.
Kod tarafında adım listesi (panel yolu ve format ipuçları): ACCOUNTANT_BUNDLE_STEPS — src/lib/accounting/accountant-bundle.js.
e-Belge entegrasyonu (taslak mimari)
Üretim kullanımı hukuki ve operasyon onayı gerektirir. Teknik tarafta tipik bileşenler: sağlayıcı API kimliği ve sertifika saklama; GİB veya uluslararası eşdeğer test ortamı; gönderim kuyruğu ve idempotent iş emirleri; webhook veya yoklama ile durum senkronu; hata sınıflandırması ve yeniden deneme; denetim için immutable log.
Faz sıralaması sabiti (ürün / geliştirme planlaması): E_INVOICE_ROADMAP_PHASES — src/lib/accounting/e-invoice-roadmap.js.
Ölçek (çok şube / konsolidasyon)
Tek işletme ve tek vergi kimliği varsayımıyla optimize edilmiştir. Zincir, ayrı tüzel kişiler veya konsolide rapor ihtiyacı ürün kararı ile ayrı roadmap’e alınmalıdır; şema genişletmesi ve RLS politikaları bu karara bağlıdır.
İlgili konular
- Adisyon ve kasa — POS satışları otomatik olarak muhasebe modülüne işlenir.
- Stok ve tedarik — Tedarikçiler muhasebe carisine bağlanır.
- Personel, roller ve yetkiler — Muhasebe izinlerini personele atama.
- Raporlama ve istatistikler — Operasyonel raporlar için.
Lyra asistanı: muhasebe modülü
Panel kökü: /dashboard/workspace/{workspaceSlug}/accounting
Sayfalar (sadeleştirilmiş 5):
- Özet:
/dashboard/workspace/{workspaceSlug}/accounting - İşlemler:
/dashboard/workspace/{workspaceSlug}/accounting/transactions - Cariler:
/dashboard/workspace/{workspaceSlug}/accounting/contacts - Cari detay:
/dashboard/workspace/{workspaceSlug}/accounting/contacts/{contactId} - Raporlar:
/dashboard/workspace/{workspaceSlug}/accounting/reports - Muhasebe Ayarları:
/dashboard/workspace/{workspaceSlug}/accounting/settings
Kullanıcı örnek ifadeleri
- "Bu ayki cirom ne kadar?"
- "Tedarikçimin bana borcunu görmek istiyorum."
- "KDV beyannamesi için rapor lazım."
- "Gider girişi nasıl yapacağım?"
- "Net kârımı nereden görürüm?"
- "Cari hesabımı Excel'e indirmek istiyorum."
- "Muhasebecimi platforma davet edebilir miyim?"
- "İşletmem yurt dışında, hesap planını IFRS'e ayarla."
Not
Modül arayüzü çoklu dil (workspace çevirileri) ile uyumludur. Gelişmiş rapor ve defter sekmeleri canlı veri gösterir; yine de çıktıların resmi beyan olarak kullanılıp kullanılmayacağına yerel mevzuat ve mali müşavir karar verir. Bazı yardımcı ekranlar veya üçüncü parti entegrasyonlar ürün sürümüne göre "Yakında" rozeti taşıyabilir — güncel davranış bu belge ve sürüm notlarıyla hizalanmalıdır.