Modülün amacı
Müşteriyi tanıma (KYC) ve MASAK uyumu: müşteri kimlik/evrak toplama, belge kuralları ve süre takibi, belge kararı (kabul/ret), müşteri portalı (davet + kendi kendine yükleme), yasaklı kişi/şirket sorgusu ve işlem anında zorunlu evrak kapısı. Üç ayrı katman vardır ve karıştırılmamalıdır:
| Katman | Nedir | Gerçeklik |
|---|---|---|
AifaUyum ürünü (aifauyum/uyum) |
ASP.NET .asmx web servisleri (uyum.asmx, uyumclient.asmx) + tek sayfa index.html + Android APK (WebView, MRZ OCR); merkez DB AifaGlobalScan; sürüm 1.1.0 → 2.12.1 (2026-09-09), 34 sürüm notu |
SOURCE_IMPLEMENTED [SOURCE_CODE:aifauyum/uyum/App_Code/*.vb; DOCUMENT:OKUBENI-KURULUM.txt] |
KYC.* şeması ERPGOLDV2 içinde |
9 tablo, 18 view, FK'lı; AifaUyum betikleriyle (Kyc.Firma.sql, Kyc.MusteriTani.sql, Kyc.Portal.sql…) kurulur |
Dev DB'ye 2026-09-10 kuruldu; müşteri DB'sinde varlığı UNKNOWN (GAP-KYC-PRODUCTION); "9 FK var" cümlesi üretim özelliği değildir (CTR-036) |
| ERP çekirdeğindeki evrak kapısı ve MASAK sorgusu | Cari.AcceptTransaction satır 170: Cari.GetGerekliEvraklar eksikse ROLLBACK; fatura penceresinde AmlScan/OptimalScan yasaklı sorgusu |
SOURCE_IMPLEMENTED — AifaUyum'dan bağımsız, DOCUMENTS DB / Genel.Dosyalar'a bakar |
Hangi müşteri tipleri kullanır
Mevzuat gereği kimlik tespiti yapan tüm yükümlüler: Döviz bürosu (yetkili müessese — e-döviz belgesi kimlik zorunluluğu, MASAK bildirimi), Kuyumcu, Toptancı, Rafineri, Sarraf (SECTOR_KNOWLEDGE; mevzuat eşikleri için GAP-MEVZUAT — bkz. Bilinmeyenler). VARIANT_MATRIX: KYC.* şeması KYC_VARIANT "● (dağıtım UNKNOWN)". Hangi CUST-id'lerde AifaUyum kurulu olduğu bilinmiyor; sahada 457 hesabın 456'sında vergi no boş gözlendi (INT-KYC-AIFAUYUM).
Ana kavramlar
Evrak / uyum (KYC), Hukuki kod, Hesap türü, İstatistik kodu, E-döviz belgesi, Perakende ekranı (isimsiz hesap 7.000 TL sınırı). AifaUyum terimleri (ERP sözlüğünde yok — GAP): firma bağı (merkez ↔ müşteri DB eşlemesi, FirmaBaglari), portal daveti, belge kararı, MRZ (kimlik makine-okunur bölge), evrak kapısı, onay kuyruğu (KYC.vOnayKuyrugu), süre takibi (KYC.vSureTakibi, vYaklasanSureler). Kavram sözlüğü [Projects: kyc-veri-modeli, aifauyum-kyc-modulu] proje notlarındadır.
Menü konumu
ERP ana menüsünde KYC düğmesi yoktur (MENU_TREE). AifaUyum tarayıcıdan (index.html; personel konsolu, müşteri portalı üçüncü ekran) ve tabletten (APK, varsayılan sunucu kyc.aifasoft.com/uyum.asmx) kullanılır [DOCUMENT:OKUBENI-KURULUM.txt]. ERP tarafındaki ilgili düğmeler: Tanımlamalar › Sistem Tanimlari › Zorunlu Belgeler (DOKUMANKATEGORI → FrmDokumanEkle); hesap kartı Hesap İşlemleri İçin Doküman Belgesi (FrmCariHesapEkle); MASAK sorgusu FrmEFaturaBas içinden.
Ekranlar
| Ekran | Sınıf | Yaşam döngüsü | Bir cümle |
|---|---|---|---|
| MasakForm | MasakForm |
ACTIVE_RARE | Fatura penceresinden çağrılan yasaklı sorgu sonucu; "Bu Firma Masak Yasaklısıdır" |
| Zorunlu Belgeler | FrmDokumanEkle |
ACTIVE_NORMAL | Dosya kategorisi başına zorunlu evrak tanımı (Cari.DosyaBilgileri) |
| DOKUMAN EKLE / DokumanList | AddDokuman / DokumanList |
ORPHAN_CANDIDATE / ACTIVE_RARE | Hesaba evrak yükleme; yazdığı Genel.Dosyalar canlı DB'de yok (DOCUMENTS DB'de) |
| AifaUyum personel konsolu, müşteri portalı, kamera/MRZ sekmesi | index.html (tek sayfa) |
— (ERP dışı) | Hesap arama (HesapAra 2.10.0), evrak isteme, belge kararı, davet, kamera zoom 1×–3× (2.12.1) |
| FrmCariHesapEkle | FrmCariHesapEkle |
ACTIVE_CRITICAL | Hesap kartı: dosya kategorisi, hukuki kod, TC/vergi no (MOD-CARI) |
ErpPosV2'deki MrzEdit / MrzKit.MrzParser kimlik MRZ okuma kontrolleri MOD-POS'ta.
Ana iş akışları
WF-KYC-EVRAK-ISTE-AIFAUYUM (müşteriden evrak isteme ve belge kararı — AifaUyum), WF-KYC-EVRAK-KAPISI-TETIK (işlem anında zorunlu evrak kontrolü — tetikleyici, "BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR"), WF-MASAK-YASAKLI-SORGULAMA (AmlScan/OptimalScan). Bağlantılı: WF-EFATURA-GONDER, WF-EBELGE-LIMIT-GUNCELLEME, WF-PERAKENDE-SATIS.
Kullanılan tablolar
KYC.* (ERPGOLDV2 dev-time; 08_Database/INDEX.md kurulum sütunu "INST-ERPGOLDV2 (dev)", 0 satır):
| Tablo | Sınıf | Rol |
|---|---|---|
| KYC.Firmalar | INDIRECTLY_USED | Firma/hesap bağı (HesapId), portal durumu |
| KYC.MusteriTani | INDIRECTLY_USED | Müşteri tanıma formu (2.7.0'da HesapId kolonu uygulama tarafından eklenir) |
| KYC.Dokumanlar, KYC.BelgeTurleri, KYC.BelgeKurallari | INDIRECTLY_USED | Yüklenen belgeler, tür ve kural (hangi hesap türüne hangi belge, süre) |
| KYC.KararIzleri, KYC.IlgiliKisiler | INDIRECTLY_USED | Belge kararı izi; yetkili/ilgili kişiler |
| KYC.PortalIzleri, KYC.GozdenAyar | MANUAL_REVIEW | Portal oturum/davet izi; gözden geçirme ayarı |
ERP çekirdeği: Cari.Hesaplar (HukukiKod, DosyaKategori, TC/VergiNo), Cari.DosyaBilgileri (12 satır — zorunlu evrak tanımı), Genel.Dosyalar_ / Genel.Dokumanlar, Genel.Yetkililer. Merkez DB AifaGlobalScan (dbo.Companies, PortalSessions, PortalDavetleri, FirmaBaglari) wiki tablo kataloğunda yok — ERP dışı.
Kullanılan fonksiyon / SP / view / trigger'lar
- View'lar (18,
KYC.v*): vHesapListesi, vHesapKimlik, vKimlikNo, vGereksinimler, vKurallar, vEksikler, vEksikTurleri, vGecerliDokumanlar, vOnayKuyrugu, vSureTakibi, vYaklasanSureler, vPortalDurum, vPortalHesaplar, vKararIzleri, vBildirim, vSonHareketler - ERP çekirdeği: Cari.GetGerekliEvraklar (tetik içinde çağrılır), Cari.FindTaxInfo, Genel.EvrakListesi, Genel.DokumanIzinDetay; trigger Cari.AcceptTransaction (evrak kapısı, satır 170).
KYCşemasında SP/trigger yok;POS.EvrakKapisiDurumvb.POS.*fonksiyonları GENERATED_PROPOSAL (MOD-POS).
Raporlar
RPT-33 Evrak Listesi (Genel.EvrakListesi), RPT-87 / RPT-88 Evrak Kontrol Raporu (Reports.EvrakKontrolRaporu — gerekli/eksik evrak, kalan gün). AifaUyum'un kendi listeleri (onay kuyruğu, yaklaşan süreler, portal durumu) KYC.v* görünümleridir; ERP rapor menüsünde kaydı yok.
Entegrasyonlar
INT-KYC-AIFAUYUM (BOTH, HIGH — .asmx JSON, merkez AifaGlobalScan, CORS için Global.asax), INT-MASAK-AMLSCAN (AmlScan.dll / OptimalScan API), INT-DOCUMENTS-DB (evrak dosyaları — tetik çözümleyemezse hiçbir işlem yazılamaz), INT-EFATURA (kimlik zorunluluğu), INT-POS-ERPPOSV2 (MRZ kimlik okuma), INT-SMS-EMAIL (portal daveti — GSM zorunlu 2.10.0).
Ayarlar
CFG-KYC-PORTALAKTIF (AifaGlobalScan.dbo.Companies.PortalAktif, varsayılan kapalı → "Bu firma için portal kapalı."), CFG-KYC-WEBCONFIG (pakette yalnız web.config.ORNEK; merkez bağlantı dizesi gizli), CFG-AMLSCAN-INI (%appdata%\DijitalFatura\AmlScan.ini), CFG-HESAP-DOSYAKATEGORI, CFG-HESAP-HUKUKIKOD, CFG-SUBE-EBELGETCKNCONTROL, CFG-HARD-PERAKENDE-7000. Sistem.Settings'te KYC kolonu yok; CFG-POS-KIMLIK-TESPIT GENERATED_PROPOSAL.
İş kuralları
07_BusinessRules/INDEX.md'te MOD-KYC'ye atanmış kural yok; WF-KYC-EVRAK-KAPISI-TETIK'in andığı BR-EVRAK-001 makalesi mevcut değil (GAP). Geçerli çekirdek kurallar: BR-FATURA-001 vergi no 10 / TC 11 hane, BR-FATURA-006 MASAK sorgusu, BR-KASA-008 aynı VergiNo/TC ile ikinci hesap açılamaz, BR-YETKI-004 hesap erişimi loglanır, BR-PERAKENDE-002 3000 USD onayı, BR-DEVIR-001 hesap türleri. Enum: Dokuman.tDosyaTipi, FrmFaturaBas.tKimlikTipi, MrzDocumentType. AifaUyum belge kuralları veri tabanlıdır (KYC.BelgeKurallari), kodlanmış kural makalesi yok.
Sık sorunlar
Ticket temalarında ayrı KYC teması yok; MASAK/kimlik çağrıları PRB-FATURA-000 içinde. Playbook: PB-062 "Bu Firma Masak Yasaklısıdır" / OptimalScan, PB-017 faturada isim/TC gelmiyor, PB-019 resmi işlem limiti ve kimlik zorunluluğu, PB-044 evrak eksik → işlem butonları yok. Süreç: PROC-209 ERP OptimalScan entegrasyonu. AifaUyum tipik arızaları (INT-KYC-AIFAUYUM): portal kapalı, eski Global.asax → APK "Sunucuya bağlanılamadı", Baglar.sql TaxNo boş/mükerrer, web.config paketle ezilmesi.
Bilinen kusurlar
H-150 "Bu Firma Masak Yasaklısıdır", H-143 isim/TC gelmiyor, H-146 vergi/TC hane kontrolü, H-151 e-döviz kimlik zorunluluğu/limitler, H-085 isimsiz hesap 7000 TL. AifaUyum: 2.11.2 Android 11+'da açılışta çökme (2.11.3'te düzeltildi), 2.11.0 yanlış varsayılan sunucu yolu [DOCUMENT:OKUBENI-KURULUM.txt]. Teknik borç: TD-28 sabit kodlanmış MASAK eşikleri, TD-05 gömülü kimlik bilgileri. Çelişki: CTR-036 (FK'lar üretim özelliği gibi anlatılmış).
Müşteri varyasyonları
- Hiçbir müşteri şemasında (
MüşteriŞemasıD,MüşteriŞemasıA,MüşteriŞemasıB,MüşteriŞemasıC) KYC nesnesi yok.KYC.*yalnız dev DB'de (ERPGOLDV2, 2026-09-10 05:50); KUYUMCU'da 1 FK var, KYC'ye ait olup olmadığı incelenmedi (CTR-036). - AifaUyum firma başına merkezden açılır (
PortalAktif); hangi CUST-id'lerin lisanslı olduğu bilinmiyor (GAP-CUSTOMER-IDENTITY). - Evrak kapısı (DOCUMENTS DB) tüm kurulumlarda tetikleyicide vardır; DOCUMENTS DB'si olmayan müşteride işlem kaydı sessizce başarısız olur (WF-KYC-EVRAK-KAPISI-TETIK).
Kritik kod parçaları
AifaUyum (aifauyum/uyum/App_Code): AifaScan.Web.Merkez (Giris/OturumCoz — merkez oturum), AifaScan.Web.UyumPortal (DavetUret/DavetGiris), AifaScan.Web.FirmaBag (firma ↔ müşteri DB bağı), AifaScan.Web.Guvenlik, AifaScan.MusteriTaniYazici (KYC.MusteriTani yazımı, HesapId ALTER); MASAK: AmlScan.AmlScan, AmlScan.OptimalScan.OptimalScan, ApiSettings; ERP: Cari.DosyaBilgileri, FindTaxInfo, DijitalFatura.Helpers.TCKimlikNoKontrol; SQL betikleri Kyc.Firma.sql (bölüm 63), Kyc.Firma.Kimlik.sql (bölüm 6), AifaGlobalScan.Baglar.sql.
İlgili eğitimler
TRN-038 cari hesap kartı (kimlik alanları, dosya kategorisi), TRN-040 resmi işlem, TRN-050 Log ve Şüpheli İşlemler sekmeleri, TRN-063 uyarı mesajları sözlüğü. AifaUyum kullanıcı eğitimi yok; kurulum bilgisi OKUBENI-KURULUM.txt A–F ve J bölümleri (GAP: eğitim konusu yazılmadı). MASAK mevzuat notları proje dokümanı masak-mevzuat-notlari'ndadır (GAP-MEVZUAT).
Kaynaklar
SOURCE_CODE:aifauyum/uyum/App_Code/Merkez.vb, UyumPortal.vb, FirmaBag.vb, MusteriTaniYazici.vb; aifauyum/uyum/Kyc.Firma.sql:63; Kyc.Firma.Kimlik.sql:6 · DOCUMENT:aifauyum/OKUBENI-KURULUM.txt (A–F, J); SURUM-NOTU-1.1.0…2.12.1 (34) · DB_OBJECT:Cari.AcceptTransaction satır 170; Cari.GetGerekliEvraklar · DB_QUERY: KYC.* 0 satır, dev DB 2026-09-10 05:50 · DERIVED: INT-KYC-AIFAUYUM, INT-MASAK-AMLSCAN, WF-KYC-* · GOVERNANCE: GAP-KYC-PRODUCTION, CTR-036.
Bilinmeyenler
- GAP-KYC-PRODUCTION:
KYC.*şeması herhangi bir üretim müşteri DB'sinde var mı? Kapatmak için en az bir müşteri DB'sindesys.schemassorgusu (salt okunur) gerekir; öncelik HIGH. - CTR-036: "9 FK, hepsi KYC'de" ifadesi dev-time kurulumdan; üretim ERPGOLD'da FK yoktur (KUYUMCU'daki 1 FK incelenecek).
- GAP:
BR-EVRAK-001kuralı iş akışında anılıyor ama makalesi yok; evrak kapısı kuralı BR olarak yazılmalı. - GAP-MEVZUAT: kimlik tespiti eşikleri, MASAK bildirim tutarları ve belge saklama süreleri için wiki'de kaynak+tarih yok; kesin hüküm verilmez.
- GAP: AifaUyum lisanslı müşteri listesi, tablet/kamera donanım gereksinimleri ve merkez
AifaGlobalScanDB'nin tablo kataloğu wiki'de yok. - GAP:
KYC.*fonksiyon/view makalelerininrealityalanıSOURCE_IMPLEMENTED; tablo makaleleri "dev" işaretli — tutarlılık için view'lar da dev-time olarak işaretlenmeli (CTR adayı).
