NetSuiteāte Depozito / Avans Tahsilat Yƶnetimi: 340ātan 120āye Otomatik Virman, Fatura Kapatma ve Kur DeÄerleme (Detaylı Rehber)
- abdullah susuz
- 17 Åub
- 5 dakikada okunur
BirƧok Åirkette sahada gƶrdüÄümüz standart senaryo Åu:
MüÅteriden ƶnce ƶdeme (depozito/avans)Ā geliyor.
Muhasebe bu tahsilatı 340 (Alınan SipariŠAvansları / Depozitolar) benzeri hesaplarda tutuyor.
Sonra satıŠfaturası kesilince bu avansı 120 (Alıcılar) tarafına virmanlayıp faturayla kapatmak gerekiyor.
Kur farkı olan iÅlemlerde iÅ daha da uzuyor:
tahsilat kuru, fatura kuru, ay sonu deÄerleme kuruĀ ve oluÅan farklarā¦
Bu yazıda NetSuite tarafında bu yapıyı sürdürülebilir ve otomatikĀ hale getirmenin mantıÄını, muhasebe etkisini ve kurguyu adım adım anlatıyorum.

1) İÅin Muhasebe MantıÄı: Neyi, Ne Zaman, Hangi Kurla TaÅıyoruz?
Bu yapıda 3 temel olay var:
A) Depozito/Avans Tahsilatı GeldiÄinde
Para bankaya girer.
Muhasebe etkisi (ƶrnek):
102 Banka (BorƧ)
340 Avanslar (Alacak)
NetSuiteāte bu āCustomer Deposit / Customer Paymentā gibi standart akıÅlarla yapılabilir; ancak bazı Åirketlerde süreƧ/kurgu/yerel ihtiyaƧ nedeniyle bu avans āprepaymentā gibi standart modülle deÄil, manuel/entegrasyonla 340āa alınmıŠolabilir. Sizdeki senaryo da bu: mevcut düzeni bozmayacaÄız.
B) Fatura KesildiÄinde
Fatura GL etkisi genellikle:
120 Alıcılar (BorƧ)
600/391 vb. (Alacak)
Ama burada āmüÅteri zaten ƶdemiÅtiā dediÄimiz noktaya geliyoruz. Yani 120āde alacak oluÅtu ama tahsilat 340āta bekliyor.
Ćƶzüm:
Fatura kesildiÄi an, 340ātaki avansın fatura tutarı kadar kısmını 120āye virmanlamak.
Muhasebe virman kaydı:
340 (BorƧ)
120 (Alacak)
Bu kayıt sonrası 120āde fatura borcu ile 120āye gelen āalacak virmanā birbirini kapatabilecek hale gelir.
C) Faturayı Kapatma (Apply / Match)
Son adımda NetSuiteāte faturanın kapatılması gerekir. İki yƶntem vardır:
Payment üzerinden faturayı kapatmak (Apply)
Journal ile kapatmakĀ (NetSuiteāde āJournal Applyā mantıÄı ā hesap türleri ve ayarlara baÄlı)
Sizin ihtiyacınız āotomatikā olduÄu iƧin tipik yaklaÅım:
Fatura oluÅunca virman jurnalını üret,
Ardından āapplyā iÅlemini otomatikleÅtir (script ile) veya yapıyı āfatura ƶdeme eÅleÅtirmesiā Åeklinde kurgula.
2) NetSuiteāte SaÄlam Bir Kurgunun Temel TaÅları
Bu iÅin düzgün ƧalıÅması iƧin 4 yapı taÅını netleÅtirmek lazım:
2.1. Depozito / Avansın Faturaya BaÄlanma Anahtarı
Sahada en Ƨok hata buradan Ƨıkar.
BaÄlantı anahtarı seƧenekleri:
Sales Order numarası
Fatura üzerindeki sipariŠreferansı (created from / custom field)
MüÅteri + Proje + DƶnemĀ gibi kombinasyon
External IDĀ (entegrasyon varsa)
Ćneri: āfatura üzerinde bulunan sipariÅ numarasıā sizde anahtar gibi duruyor. En saÄlamı:
Tahsilat kaydında (340āa atan) hangi SO / hangi iÅ / hangi referansĀ olduÄunu net tutmak
Fatura üzerinde aynı referansı taÅımak
2.2. GL Hesaplarının NetliÄi (340/120) ve Ćoklu Defter (varsa)
NetSuite multi-book kullanılıyorsa bu virmanın hangi bookāta oluÅacaÄı, hangi subsidiaryāde ƧalıÅacaÄı ƶnemlidir.
340 ve 120 aynı subsidiary / aynı book mantıÄında mı?
Intercompany var mı?
Tek hesap planı mı, subsidiary bazlı farklı hesap mı?
Bunlar net deÄilse script doÄru jurnal üretse bile ākapanıÅā tarafında muhasebe itirazı gelir.
2.3. Para Birimi ve Kur MantıÄı
Kur farkı konusu ikiye ayrılır:
İÅlem anındaki kurĀ (tahsilat, fatura)
Ay sonu deÄerleme kuruĀ (revaluation)
Bunları ayrı ele almak gerekir.
2.4. Otomasyonun āİdempotentā Olması
Bu kelime kritik: Aynı faturaya script 2 kere ƧalıÅırsa 2 kere jurnal basmamalı.
Bu yüzden:
Fatura üzerinde āVirman OluÅturulduā flagāi
OluÅan jurnal internal idāsi fatura body fieldāına yazılır
Yeniden ƧalıÅırsa aynı kaydı bulur, ikinciyi üretmez
3) Otomasyon AkıÅı: Fatura Kesilince Ne Olacak?
Burada en temiz senaryo:
Fatura (Invoice) oluÅturulur / onaylanır (status)
Script invoiceāu yakalar (UE afterSubmit veya Scheduled/MapReduce)
Fatura tutarı + para birimi + referans (SO no) alınır
İlgili müÅterinin 340āta bekleyen avansları bulunur
Toplam avans >= fatura tutarı ise:
340ā120 virman journal oluÅtur
Journalāı invoiceāa referansla baÄla
Apply/Close adımını ƧalıÅtır
Avans < fatura tutarı ise:
Kısmi virman yap (isteniyorsa)
Kalan tutar 120āde aƧık kalsın
Uyarı / log / görev üret
āAvansları bulmaā yaklaÅımı
Avanslar sistemde nasıl tutuluyor?
EÄer avanslar āCustomer Paymentā ile giriliyor ama GL 340āa gidiyorsa, aramada ādeposit/prepaymentā yerine āpayment transaction + GL impactā tarafı incelenir.
EÄer avanslar āJournal Entryā ile 340āa alınıyorsa, o journalālar filtrelenir.
En saÄlıklı yƶntem: Avansı yaratan kayıtta mutlaka bir āreference fieldā taÅımak (SO No / Project / External Ref).
4) KapanıŠİÅlemi: Journal ile Fatura Kapanır mı?
Bu sorunun cevabı NetSuiteāte ākurguyaā baÄlı.
Standart yaklaÅım: PaymentĀ transactionāı üzerinden Invoice āapplyā edilir.
Journal doÄrudan āapplyā edilmez (klasik muhasebe mantıÄında da jurnal bir ƶdeme deÄildir).
Ancak bazı hesap tipleri ve ayarlarla āJournal Applicationā benzeri kapatma davranıÅları kurgulanabilir.
Sizin senaryoda hedef:
MüÅteri ƶdeme iÅlemi zaten ā340ātaā
Biz 340āı 120āye taÅırken ƶdeme gibi davranmak istiyoruz
Bu yüzden 2 yaklaÅım var:
YaklaÅım 1 (Muhasebe aƧısından en temiz):
Customer Payment/Depositāı doÄru mantıkla kullanmakĀ ve invoice applyāı standarttan yapmak.
Ama siz āmevcut yapıyı koruyacaÄızā dediÄiniz iƧin bunu deÄiÅtirmiyoruz.
YaklaÅım 2 (Mevcut yapıya uyumlu):
340ā120 virman journal üret
Sonra invoiceāu kapatmak iƧin:
ya ikinci bir āCustomer Paymentā yaratıp apply etmek (sanal ƶdeme)
ya da mevcut deposit/payment kaydını invoiceāa baÄlamak (script ile)
En pratik olan genelde:
invoice oluÅtuÄunda, āapplicationā iÅlemini otomatik yapan bir script.
5) Kur DeÄerleme (Revaluation) İÅin Neresinde?
Kur deÄerleme iki yerde karÅımıza Ƨıkar:
5.1. Tahsilat ile Fatura Arasındaki Kur Farkı
Ćrnek:
Avans 1.1000 kurla geldi
Fatura 1.1500 kurla kesildi
Burada 340āta bekleyen tutar ve faturanın 120 etkisi farklı kurdan olduÄu iƧin virman sırasında kur farkı doÄabilir.
Bu farkın muhasebeleÅmesi iƧin 2 seƧenek var:
Virmanı fatura kurundan yaparsın, aradaki farkı ākur farkıā hesaplarına atarsın
Virmanı avans kurundan yaparsın, fatura aƧık kalır ve kapanıÅta fark oluÅur
Hangi yƶntem doÄru?
Åirketin muhasebe politikası + denetim yaklaÅımı + yerel uygulamalar belirler.
Türkiyeāde pratikte ƧoÄu firma:
Ćdeme ve fatura farklı kurdan ise aradaki farkı kur farkı gelir/giderĀ olarak muhasebeleÅtirir.
5.2. Ay Sonu DeÄerleme (Unrealized FX)
Ay kapanıÅında 120āde aƧık bakiye varsa deÄerleme yapılır.
Ama siz otomasyonla faturayı kapatıyorsanız, 120 aƧık kalmayacaÄı iƧin deÄerleme etkisi azalır.
Asıl soru:
340 hesabı da dƶvizli bakiye tutuyor mu?
Ay sonu 340 iƧin de revaluation gerekiyor mu?
EÄer 340 dƶvizli aƧık bakiye taÅıyorsa:
340 da revaluationāa tabi olabilir (hesap tipine ve muhasebe yaklaÅımına gƶre)
NetSuiteāte revaluation genelde AR/AP hesaplarına odaklıdır; ama hesap bazlı revaluation kurguları ayrıca ele alınır.
Bu yüzden iyi bir tasarımda:
340āta dƶvizli bakiye kalmaması hedeflenir (mümkünse)
Ya da 340 iƧin de kur deÄerleme kuralı netleÅtirilir
6) Kenar Senaryolar (GerƧek Hayatın Zor Kısmı)
Bu otomasyon en Ƨok Åu durumlarda patlar; baÅtan tasarlamak gerekir:
6.1. Kısmi Avans + Kısmi Fatura
Avans 5.000 USD
Fatura 8.000 USD
Ne yapacaÄız?
5.000 USDālik kısmı 340ā120 virman
Kalan 3.000 USD invoice aƧık
Bu durumda script:
āavailable depositā mantıÄıyla kısmi virman yapmalı
ve bir sonraki tahsilatta kalan kısmı kapatacak Åekilde ƧalıÅabilmeli
6.2. Bir Avans ile Birden Fazla Fatura
Avans tek, faturalar parƧalı
Burada avansı āallocationā yapmanız gerekir:
Avansın kalan bakiyesi izlenmeli
Hangi faturaya ne kadar gittiÄi loglanmalı
Genelde bu noktada bir ācustom record: deposit allocation ledgerā mantıÄı Åart olur.
6.3. İade / Credit Memo
Fatura kesildi, kapandı, sonra iade oldu.
340āa geri mi atılacak?
MüÅteriye nakit iade mi?
Sonraki faturaya mı sayılacak?
Bu senaryoları tasarlamazsanız otomasyon bir ay sonra āmuhasebe kabusuā olur.
6.4. Subsidiary / Intercompany
Avans bir subsidiaryāde, fatura baÅka subsidiaryādeyse:
intercompany due to/from gerekir
düz 340ā120 virmanı yetmez
7) Minexa YaklaÅımı: Bu İŠNeden āScript Yazdım Bittiā DeÄil?
Bu tip otomasyonlar sadece kod deÄil:
Muhasebe politikası
Kur yƶnetimi
Referans anahtarı tasarımı
Denetlenebilir kayıt izi (audit trail)
Hata yƶnetimi (re-run, rollback, log)
ile birlikte bir āmini ürünā gibi tasarlanmalı.
İyi bir Ƨƶzümde mutlaka Åunlar olur:
Fatura üzerinde āAvans Bulundu / Virman Yapıldı / Kapatıldıā statüleri
OluÅan journal ve payment referansları
Hata olursa kullanıcıya aƧıklayan log + e-posta bildirim
Tekrar ƧalıÅtırınca Ƨift kayıt basmayan idempotent yapı