Muhasebede Manuel Veri Girişini Bitiren Akıllı PDF Fatura İşleme Hattı
Günde onlarca veya ayda binlerce tedarikçi faturası alan şirketlerde en büyük operasyonel darboğaz fatura girişleridir. Farklı tedarikçilerin kendi ERP sistemlerinden çıkardığı PDF faturaların her biri farklı bir görsel mizanpaja, farklı tablo yerleşimine ve farklı yazı tiplerine sahiptir.
Muhasebe uzmanları saatlerce PDF belgesini bir ekranda, ERP ekranını diğer ekranda açarak fatura numarasını, VKN'yi, 20-30 satırlık ürün kalemlerini, tevkifat kesintilerini ve KDV oranlarını elle kopyalayıp yapıştırır. İnsan yorgunluğuna bağlı yapılan tek bir basamak hatası bile şirketlerin KDV beyannamelerinde uyuşmazlığa, haksız KDV iadesi cezalarına ve tedarikçi cari mutabakatlarında haftalar süren hesap krizlerine yol açar.
PDF fatura veri işleme otomasyonu geliştiren Appsoni; kurumsal e-posta gelen kutusundan (IMAP/Graph API) veya SFTP klasöründen PDF'leri otomatik toplayan, yapay zeka destekli OCR motoruyla satır satır veriyi yapılandıran ve kurumsal ERP'nize hatasız işleyen güvenli veri işleme boru hatları (data pipelines) inşa eder.

PDF Fatura İşleme ve ERP Aktarım Mimarisi
Uçtan uca tasarladığımız fatura işleme boru hattı 5 kademeli güvenlik ve doğrulama katmanından oluşur:
[Fatura Kaynakları] (E-posta Gelen Kutusu / Web Portalı / SFTP Klasörü / Tarayıcı)
│
▼
[Belge Alma, Ayrıştırma ve Ön İşleme Katmanı]
├─ Hash Kontrolü: sha256_dosya_hash (Mükerrer Belge Önleme)
├─ Belge Türü Doğrulama: PDF, TIFF, JPEG ayrıştırma
└─ Görüntü İyileştirme: Deskew, Denoise, Otomatik Döndürme (90/180/270°)
│
▼
[Çok Katmanlı OCR ve LLM Tablo Çıkarım Motoru]
├─ Başlık Alanları: VKN, Unvan, Fatura No, ETTN, Fatura Tarihi, Vade
├─ Satır Kalemleri: Stok Adı, Miktar, Birim, Birim Fiyat, İskonto, KDV
└─ Dip Toplamlar: Matrah, KDV Tutarı, Tevkifat Tutarı, Genel Toplam
│
▼
[İş Kuralı ve Mevzuat Denetim Motoru]
├─ Matematiksel Sağlama: Satır Toplamı == Dip Toplam (±0.05 TL Tolerans)
├─ GİB Tevkifat Matrisi Kontrolü (601-627 kodları ve oran doğrulama)
├─ ERP Tedarikçi Cari Eşleme (VKN -> Cari Hesap Kartı)
└─ Akıllı Stok Kod Eşleme: Fuzzy Matching & Vektörel Benzerlik
│
▼
[Kalite Kapısı & ERP Aktarımı]
├─ Güven Skoru >= %95: Otomatik ERP Alış Faturası Girişi (Logo/Mikro/SAP)
└─ Güven Skoru < %95 veya Eşleşmeyen Stok: Muhasebeci Hızlı Onay Paneli
Veri Modeli ve Teknik Şema (50+ Benzersiz Veri Noktası)
Fatura işleme motorunun veritabanı şeması, parametreleri ve denetim kuralları:
| Tablo Adı |
Teknik Alan Adı |
Veri Tipi |
Süreç ve Mevzuat Kuralı Açıklaması |
fatura_belge |
belge_id_uuid |
UUID |
Yüklenen belgenin global benzersiz tekil kimliği |
fatura_belge |
orijinal_dosya_adi |
VARCHAR(255) |
Sisteme gelen PDF dosyasının ham adı |
fatura_belge |
sha256_dosya_hash |
VARCHAR(64) |
Aynı dosyanın ikinci kez işlenmesini önleyen tekil hash |
fatura_belge |
dosya_boyutu_bytes |
INT |
Belge dosya boyutu (Azami limit: 25 MB) |
fatura_belge |
toplam_sayfa_adedi |
INT |
PDF dokümanının sayfa sayısı |
fatura_belge |
belge_gelis_kanali |
VARCHAR(20) |
'IMAP_EMAIL', 'PORTAL_UPLOAD', 'SFTP_WATCHER', 'SCANNER_HOTFOLDER' |
fatura_belge |
belge_isleme_durumu |
VARCHAR(20) |
'KUYRUKTA', 'OCR_CALISIYOR', 'DOGRULANDI', 'ONAY_BEKLIYOR', 'ERP_AKTARILDI' |
fatura_baslik |
tedarikci_vkn_tckn |
VARCHAR(11) |
Tedarikçinin 10 haneli Vergi Kimlik No veya TCKN |
fatura_baslik |
tedarikci_unvan |
VARCHAR(150) |
Tedarikçinin resmi ticari unvanı |
fatura_baslik |
fatura_seri_sira_no |
VARCHAR(16) |
GİB formatında 16 haneli fatura no (ör. 'GIB2026000004128') |
fatura_baslik |
ettn_fatura_guid |
UUID |
Evrensel Tekil Tanımlayıcı (ETTN GUID) |
fatura_baslik |
fatura_tarihi |
DATE |
Faturanın düzenlendiği resmi tarih |
fatura_baslik |
odeme_vadesi_tarihi |
DATE |
Faturada belirtilen son ödeme günü |
fatura_baslik |
para_birimi_iso |
VARCHAR(3) |
'TRY', 'USD', 'EUR' |
fatura_baslik |
fatura_doviz_kuru |
DECIMAL(12,4) |
Faturada belirtilen veya TCMB döviz alış kuru |
fatura_baslik |
toplam_matrah_try |
DECIMAL(18,2) |
KDV hariç toplam vergi matrahı |
fatura_baslik |
toplam_kdv_tutari |
DECIMAL(18,2) |
Faturada tahakkuk eden toplam KDV |
fatura_baslik |
tevkifat_kodu_gib |
VARCHAR(4) |
GİB Tevkifat Kodu (ör. '601', '603', '617') |
fatura_baslik |
tevkifat_tutari |
DECIMAL(18,2) |
Alıcı tarafından tevkif edilen KDV tutarı |
fatura_baslik |
odenecek_genel_toplam |
DECIMAL(18,2) |
Tedarikçiye ödenecek net tutar |
fatura_satir |
satir_id_guid |
UUID |
Fatura satır kaleminin tekil referansı |
fatura_satir |
satir_sira_no |
INT |
Faturadaki satır sıra numarası (1, 2, 3...) |
fatura_satir |
tedarikci_urun_kodu |
VARCHAR(50) |
Tedarikçinin kendi stok kodu |
fatura_satir |
tedarikci_urun_adi |
VARCHAR(255) |
Faturadaki satır metin açıklaması |
fatura_satir |
eslesen_erp_stok_id |
VARCHAR(35) |
Eşleşen kurumsal ERP stok kodu |
fatura_satir |
fatura_miktari |
DECIMAL(12,4) |
Satırdaki teslim edilen miktar |
fatura_satir |
olcu_birimi_iso |
VARCHAR(10) |
'C62' (Adet), 'KGM' (Kilogram), 'MTR' (Metre) |
fatura_satir |
birim_fiyat_tutar |
DECIMAL(18,4) |
Satır birim fiyatı |
fatura_satir |
satir_iskonto_tutari |
DECIMAL(18,2) |
Varsa satır bazlı iskonto tutarı |
fatura_satir |
kdv_orani_yuzde |
INT |
%1, %10, %20 oranları |
fatura_satir |
satir_net_tutari |
DECIMAL(18,2) |
Miktar * Birim Fiyat - İskonto |
ocr_denetim |
ocr_motoru_adi |
VARCHAR(25) |
'TESSERACT_OCR_V5', 'AWS_TEXTRACT', 'CUSTOM_LAYOUTLM' |
ocr_denetim |
karakter_guven_skoru |
DECIMAL(5,2) |
OCR algılama güven skoru (%0.00 - %100.00) |
ocr_denetim |
bounding_box_koordinat |
VARCHAR(50) |
Metnin sayfadaki piksel koordinatları (X1,Y1,X2,Y2) |
ocr_denetim |
matematiksel_dogrulama |
BOOLEAN |
Kalem toplamları ile dip toplam uyumlu mu? |
ocr_denetim |
kurus_sapma_farki |
DECIMAL(6,4) |
Yuvarlama farkı (Azami tolerans: ±0.05 TL) |
erp_kayit_log |
erp_kayit_id |
BIGINT |
ERP aktarım log numarası |
erp_kayit_log |
erp_hedef_tablo |
VARCHAR(30) |
'LG_XXX_INVOICE', 'FATURALAR', 'OINV' |
erp_kayit_log |
erp_olusan_fis_no |
VARCHAR(30) |
ERP sisteminde oluşan resmi fatura fiş no |
erp_kayit_log |
muhasebe_kullanici_id |
INT |
Onayı veren muhasebe sorumlusunun ID'si |
ERP Entegrasyonu ve Veritabanı Tablo Eşleştirmeleri
Sistem, okunan ve onaylanan PDF fatura verilerini doğrudan hedef muhasebe veritabanına yazar:
1. Logo Tiger / Go Entegrasyonu
- Fatura Başlık Tablosu:
LG_XXX_INVOICE (TRCODE: 1 - Satınalma Faturası)
- Fatura Hareket Tablosu:
LG_XXX_STLINE (LINETYPE: 0 Malzeme, 4 Masraf)
- Cari Hesap Kartı:
LG_XXX_CLCARD (TAXNR = tedarikci_vkn_tckn kontrolü)
- Tevkifat Detayları:
LG_XXX_INVOICE tablosundaki DEDUCTIONPART1 ve DEDUCTIONPART2 alanlarına GİB oranlarına göre (ör. 5 ve 10) yazılır.
2. Mikro ERP Entegrasyonu
- Fatura Tabloları:
FATURALAR (Başlık bilgileri) ve STOK_HAREKETLERI (Kalemler).
- Evrak Parametreleri:
cha_kod (Cari Kodu), sth_stok_kod, sth_miktar, sth_vergi_pntr.
- Masraf Faturaları: Malzeme dışındaki genel gider ve hizmet faturaları otomatik olarak
MASRAF_HAREKETLERI tablosuna aktarılır.
3. REST API Gelen Fatura Payload Şablonu
{
"fatura_meta": {
"belge_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"fatura_seri_sira_no": "ABC2026000008412",
"ettn": "c56a4180-65aa-42ec-a945-5fd21dec0538",
"tedarikci_vkn": "9240182741",
"tedarikci_unvan": "Endüstriyel Çelik ve Bağlantı Elemanları San. Tic. Ltd. Şti.",
"fatura_tarihi": "2026-10-24",
"vade_tarihi": "2026-11-24",
"para_birimi": "TRY",
"matrah": 184500.00,
"kdv_tutari": 36900.00,
"tevkifat_orani": "5/10",
"tevkifat_tutari": 18450.00,
"odenecek_tutar": 202950.00
},
"satirlar": [
{
"satir_no": 1,
"tedarikci_stok_adi": "M12 İnox Çelik Somun DIN 934",
"erp_eslesen_stok_kodu": "STK-SMN-INOX-M12",
"miktar": 5000,
"birim": "ADET",
"birim_fiyat": 18.50,
"kdv_orani": 20,
"satir_toplami": 92500.00,
"ocr_guven_skoru": 99.4
}
]
}
Güvenlik, Hata Senaryoları ve Denetim Kuralları
Süreç Kısıtları ve Doğrulama Kuralları:
- Mükerrerlik Kilidi: Aynı VKN ve Fatura Seri Sıra No sistemde daha önce kayıtlıysa fatura anında reddedilir ve
DUPLICATE_INVOICE_REJECTED kaydı oluşturulur.
- Yuvarlama Toleransı: Kalemlerin matrah ve KDV çarpımları ile faturanın basılı dip toplamı arasında en fazla 0.05 TL kuruş farkına izin verilir. Bu fark yasal yuvarlama farkı hesabına yazılır.
- Güven Skoru Eşiği: Kalem bazlı OCR tanıma güven skoru %95'in altında olan faturalar otomatik işlenmez; ilgili satır kırmızı renkle vurgulanarak muhasebe uzmanının önüne getirilir.
Rol Bazlı Sorumluluklar ve Onay Kademeleri:
- Muhasebe Uzmanı: Tanınmayan yeni stok kodlarını ERP kartlarıyla ilk kez eşleştirir ve istisnaları onaylar.
- Muhasebe Müdürü: 250.000 TL üzerindeki faturaların ERP'ye kesin aktarımı öncesinde onay sirkülerini tamamlar.
- Vergi Müşaviri: Tevkifat istisna kodları ve KDV muafiyetlerinin mevzuat parametrelerini periyodik olarak günceller.
İstisna Yönetimi ve Fallback Prosedürleri:
- Faturada yer alan ürün kurumsal ERP'de hiç tanımlı değilse, sistem faturayı reddetmek yerine ilgili satırı geçici olarak 'Açılacak Stok Kartları' havuzuna atar ve Satın Alma departmanına otomatik bildirim gönderir.
- Parolalı veya şifrelenmiş PDF dosyası geldiğinde sistem e-posta göndericisine otomatik yanıt dönerek şifresiz belgenin yeniden iletilmesini talep eder.