İçeriğe geç

Ücretsiz araç · Dosya tarayıcıdan çıkmaz

MT940 çözümleyici: dosyayı yapıştırın, hareket tablosu çıksın

MT940, bankaların hesap ekstresini gönderdiği düz metin biçimidir; alanlar :20:, :61:, :86: gibi etiketlerle kodlanmıştır ve aralarında ayraç yoktur. Dosyanızı aşağıya yapıştırın ya da sürükleyin: açılış ve kapanış bakiyesi, hesap, ekstre numarası ve tarih–valör–yön–tutar–işlem kodu–açıklama kolonlu hareket tablosu sağdaki kâğıtta belirir, CSV olarak iner. Araç ayrıca bakiye denetimi yapar: açılış + alacaklar − borçlar kapanışa eşit değilse farkı hesaplar ve hangi satırın çift ya da eksik olabileceğini işaretler.

1 ekstre, 8 hareket çözümlendi. Bakiye denetimi tamam.

Kutu, aşağıdaki örnek dosyayla dolu gelir. Üzerine kendi dosyanızı yapıştırın; tablo yazdıkça yenilenir. Metin sunucuya gönderilmez.

Dosyayı buraya sürükleyin

.sta · .940 · .mt940 · .txt — dosya tarayıcınızda okunur, yüklenmez

Dosyadan okunan alanlar

:20:
Ekstre referansı 260316EKS00047
:25:
Hesap TR090099900000006297561234
:28C:
Ekstre no / parça 00047/00001
Para birimi TRY
:60F:
Açılış bakiyesi 148.250,75 TRY · 16.03.2026
:61:
Hareket sayısı 8 satır (4 alacak, 4 borç)
:62F:
Kapanış bakiyesi 170.649,96 TRY · 16.03.2026
:64:
Kullanılabilir bakiye 165.649,96 TRY

MT940 · Hesap ekstresi

TR090099900000006297561234

Ekstre referansı: 260316EKS00047  ·  Ekstre no: 00047/00001

BAKİYE TUTUYOR

:60F:

Açılış bakiyesi

148.250,75 TRY

16.03.2026 tarihli

:61:

Hareket

8 satır

4 alacak · 4 borç

:62F:

Kapanış bakiyesi

170.649,96 TRY

16.03.2026 tarihli

# Valör İşlem Yön Tutar Kod Referans
1 16.03.2026 16.03.2026 AlacakC 48.250,00 NTRF Havale / transfer TAH-2026-0417 // GB26031600011

:61: ek bilgi GELEN HAVALE

:86: GELEN HAVALE/ AYDIN TICARET LTD STI/ TR33 XXXX XXXX XXXX XXXX 4471/ ACIKLAMA: 2026-0417 NOLU FATURA TAHSILATI

2 16.03.2026 16.03.2026 BorçD 12.500,00 NTRF Havale / transfer ODM-2026-0288 // GB26031600024

:86: GIDEN EFT/ BORA GIDA SAN VE TIC AS/ TR64 XXXX XXXX XXXX XXXX 9012/ ACIKLAMA: 2026/318 NOLU FATURA ODEMESI

3 16.03.2026 16.03.2026 BorçD 1.180,50 NCHG Masraf ve komisyon MSR-2026-0288 // GB26031600025

:86: EFT MASRAFI VE BSMV/ ODM-2026-0288 ISLEMINE AIT

4 16.03.2026 16.03.2026 AlacakC 9.750,00 NMSC Diğer (sınıflandırılmamış) POS-2026-0311 // GB26031600038

:86: POS HAKEDIS ALACAGI/ 11.03.2026 TARIHLI 42 ADET ISLEM

5 16.03.2026 16.03.2026 BorçD 25.000,00 NTRF Havale / transfer MAA-2026-0003 // GB26031600042

:86: TOPLU MAAS ODEMESI/ 14 PERSONEL/ MART 2026 DONEMI

6 12.03.2026 16.03.2026 AlacakC 3.412,60 NINT Faiz FAZ-2026-0022 // GB26031600051

:86: VADELI HESAP FAIZ TAHAKKUKU/ 12.03.2026 VADE TARIHLI

7 12.03.2026 16.03.2026 BorçD 512,89 NTAX Vergi ve stopaj STP-2026-0022 // GB26031600052

:86: FAIZ STOPAJI/ FAZ-2026-0022 ISLEMINE AIT

8 16.03.2026 16.03.2026 Borç iptaliRD 180,00 NCHG Masraf ve komisyon IAD-2026-0019 // GB26031600066

:86: HATALI ALINAN HAVALE MASRAFI IADESI/ 09.03.2026 TARIHLI KAYIT

Bakiye denetimi

148.250,75 + 61.592,60 − 39.193,39 = 170.649,96

Açılış bakiyesi + alacaklar − borçlar, kapanış bakiyesine birebir eşit.

:64: kullanılabilir bakiye: 165.649,96 TRY (16.03.2026)

Ekrandaki ekstre yazdırılabilir: “Yazdır” düğmesi sayfanın geri kalanını değil yalnızca bu kâğıdı basar. Örnek dosya uydurmadır — nasıl üretildiği aşağıda yazıyor.

MT940 nedir?

Kısa cevap

MT940, bankaların bir hesabın gün sonu ekstresini gönderdiği standart SWIFT mesajıdır: açılış bakiyesini, gün içindeki hareketleri ve kapanış bakiyesini etiketlenmiş düz metin olarak taşır.

Dosya bir tablo değil, bir mesajdır. Her alan satır başındaki :20: gibi bir etiketle başlar; etiketin içeriği alanın türüne göre sabit uzunluklu parçalara bölünür ve bu parçaların arasında virgül, sekme ya da noktalı virgül gibi bir ayraç bulunmaz. Bir MT940 dosyasını Excel’e “ayraçla böl” diyerek aktarmak bu yüzden işe yaramaz: sınırları uzunluk ve karakter türü belirler.

Uzantısı bankaya göre .sta, .940, .mt940 ya da .txt olabilir; içerik hepsinde aynıdır. Dosyayı kurumsal internet şubesinden indirebilir, bankanın SFTP kanalından alabilir ya da bir entegrasyon üzerinden otomatik çekebilirsiniz. Sözlükteki MT940 tanımı terimi tek cümlede özetler; bu sayfa ise dosyayı fiilen açar.

MT940’ın ISO 20022 tarafındaki karşılığı camt.053 mesajıdır; gün içi rapor için camt.052, tekil bildirim için camt.054 kullanılır. Bankaların XML tabanlı bu biçimlere geçişi kurum kurum ilerlediği için aynı şirket bir bankadan MT940, diğerinden camt.053 alabiliyor. Hangi biçimi aldığınızı bankanızın entegrasyon dokümanından teyit edin.

Etiket tablosu: hangi alan neyi taşır?

Kısa cevap

Bir MT940 ekstresinde dört alan zorunludur — :20: referans, :25: hesap, :28C: ekstre numarası, :60F: açılış ve :62F: kapanış bakiyeleri — hareketler ise tekrar eden :61: satırlarında, açıklamaları da onları izleyen :86: alanlarında taşınır.

“Biçim” kolonundaki gösterim SWIFT’in alan tanımı dilidir: 6!n tam altı rakam, 16x en çok on altı serbest karakter, 15d ondalıklı tutar, 1!a tek harf demektir. Köşeli parantez içindeki parçalar isteğe bağlıdır.

Etiket Alan Biçim Zorunlu mu? Örnek değer Hangi kolona düşer Ne anlatır
:20: İşlem referans numarası Transaction Reference Number 16x Zorunlu 260316EKS00047 Ekstre künyesi Bankanın bu ekstre mesajına verdiği tekil referans. Aynı dosyayı iki kez aldığınızda mükerrer kaydı yakalamanın ilk dayanağıdır.
:21: İlgili referans Related Reference 16x İsteğe bağlı NONREF Ekstre künyesi Bu ekstrenin cevap verdiği önceki mesajın referansı. Çoğu gün sonu ekstresinde ya hiç bulunmaz ya da NONREF yazar.
:25: Hesap tanımı Account Identification 35x Zorunlu TR090099900000006297561234 Hesap Ekstrenin ait olduğu hesap. Türkiye’de genellikle IBAN yazılır; bazı bankalar şube–hesap numarası biçimini ya da başına BIC eklenmiş hâlini gönderir.
:28C: Ekstre numarası / sıra numarası Statement Number / Sequence Number 5n[/5n] Zorunlu 00047/00001 Ekstre no Bölü işaretinden önceki sayı ekstrenin sıra numarası, sonraki sayı ise aynı ekstrenin kaçıncı parçası olduğudur. Uzun bir gün birkaç mesaja bölündüğünde ikinci sayı 00002, 00003 diye ilerler.
:60F: / :60M: Açılış bakiyesi Opening Balance 1!a6!n3!a15d Zorunlu C260316TRY148250,75 Açılış bakiyesi Sırasıyla borç/alacak işareti (C ya da D), YYMMDD tarih, üç harfli para birimi ve tutar. Açılış tarafında F harfi “first”, yani ekstrenin ilk parçasının açılışıdır; M harfi “intermediate”, ara parçanın devrettiği bakiyedir. (Kapanış tarafında aynı F harfi “final” anlamına gelir.)
:61: Hareket satırı Statement Line 6!n[4!n]2a[1!a]15d1!a3!c16x[//16x][CRLF34x] İsteğe bağlı, tekrar eder 2603160316C48250,00NTRFTAH-2026-0417//GB26031600011 Valör, işlem tarihi, yön, tutar, kod, referans Ekstrenin her hareketi bir :61: satırıdır. Alanlar arasında ayraç yoktur; sınırları uzunluk ve karakter türü belirler. Satırın altındaki ikinci satır varsa ek bilgi alanıdır (en çok 34 karakter).
:86: Hesap sahibine bilgi Information to Account Owner 6*65x İsteğe bağlı GELEN HAVALE/ AYDIN TICARET LTD STI/ ... Açıklama Bir önceki :61: satırının serbest metin açıklaması: karşı taraf adı, IBAN, ödeme açıklaması. En çok altı satır, satır başına 65 karakter. İçindeki alt alan düzeni SWIFT tarafından STANDARTLAŞTIRILMAMIŞTIR, bankaya göre değişir.
:62F: / :62M: Kapanış bakiyesi Closing Balance (Booked Funds) 1!a6!n3!a15d Zorunlu C260316TRY170649,96 Kapanış bakiyesi Açılış bakiyesiyle aynı biçimdedir ve kaydedilmiş (booked) bakiyeyi verir. Bakiye denetiminin sağ tarafı budur: açılış + alacaklar − borçlar bu sayıya eşit olmalıdır.
:64: Kullanılabilir kapanış bakiyesi Closing Available Balance 1!a6!n3!a15d İsteğe bağlı C260316TRY165649,96 Kullanılabilir bakiye Hesapta görünen değil, o an gerçekten kullanılabilen tutar. :62F: ile arasındaki fark bloke tutarlardan ve valörü gelmemiş alacaklardan doğar; ikisinin farklı olması hata değildir.
:65: İleri tarihli kullanılabilir bakiye Forward Available Balance 1!a6!n3!a15d İsteğe bağlı, tekrar eder C260317TRY168000,00 İleri tarihli bakiye Valörü ileri tarihli hareketler dikkate alındığında o gün hesapta kullanılabilir olacak tutar. Her ileri tarih için ayrı bir satır gelebilir.

Kaynak: SWIFT Standards, MT Category 9 — MT940 Customer Statement Message alan tanımları. Etiket listesi mesajın tamamını değil, hesap ekstresinde fiilen karşılaşacağınız alanları kapsar.

:61: satırının anatomisi

Kısa cevap

:61: satırında alanlar arasında ayraç yoktur; sınırları yalnızca uzunluk ve karakter türü belirler — altı rakam valör, dört rakam işlem tarihi, harf(ler) yön işareti, sonraki rakamlar tutar.

Aşağıdaki şema örnek dosyanın ilk hareket satırını parçalarına ayırır. Aynı satır dosyada tek bir kesintisiz dizi olarak durur; renkli kutular yalnızca anlatım içindir, dosyada böyle bir işaret yoktur.

:61: tek satır, ayraçsız 1 260316 2 0316 3 C 5 48250,00 6 NTRF 7 TAH-2026-0417 8 //GB26031600011 1. Valör tarihi 2. İşlem tarihi 3. Yön 5. Tutar 6. İşlem tip kodu 7. Müşteri referansı 8. Banka referansı

Şemadaki satır: 2603160316C48250,00NTRFTAH-2026-0417//GB26031600011 — örnek dosyanın 1 numaralı hareketi.

# Alt alan Örnekteki değer Biçim Zorunlu mu? Ne anlatır
1 Valör tarihi 260316 6!n Zorunlu YYMMDD. Paranın faiz ve bakiye açısından hesaba girdiği tarih.
2 İşlem (kayıt) tarihi 0316 4!n İsteğe bağlı MMDD — yıl yoktur, valör tarihinden türetilir. Kaydın bankanın defterine düştüğü gün.
3 Borç/alacak işareti C 2a Zorunlu C, D, RC ya da RD. Tutar her zaman pozitiftir; yönü yalnızca bu işaret söyler.
4 Fon kodu yok 1!a İsteğe bağlı Para birimi kodunun üçüncü harfi (TRY → Y). Örnek satırda yok; varsa işaretle tutar arasına girer.
5 Tutar 48250,00 15d Zorunlu Ondalık ayracı VİRGÜLDÜR ve zorunludur; binlik ayracı kullanılmaz.
6 İşlem tip kodu NTRF 1!a3!c Zorunlu İlk karakter S, N ya da F olur. N + üç karakter işlem türünü, S + üç hane kaydı doğuran SWIFT mesaj tipini verir.
7 Müşteri referansı TAH-2026-0417 16x Zorunlu Hesap sahibinin göreceği referans. Referans yoksa NONREF yazılır.
8 Banka referansı //GB26031600011 [//16x] İsteğe bağlı İki bölü işaretinden sonra bankanın kendi işlem numarası. Bankaya soru sorarken kullanacağınız numara budur.

Yön kodları: tutar pozitif, yön ayrı

MT940’ta tutar hiçbir zaman eksi işaretli yazılmaz; yönü yalnızca borç/alacak işareti söyler. Bu işaret iki karakterlik bir alandır ve C ile D dışında iptal kayıtlarını da taşır. Yalnızca ilk karaktere bakan bir aktarım RC’yi alacak, RD’yi borç sayar — oysa ikisi de ters kayıttır ve etkileri tam tersidir.

Kod Anlamı İngilizcesi Bakiyeye etkisi Ne zaman görülür
C Alacak Credit Bakiyeyi artırır Hesaba para girişi: gelen havale, tahsilat, faiz.
D Borç Debit Bakiyeyi azaltır Hesaptan para çıkışı: giden transfer, masraf, vergi.
RC Alacak iptali Reversal of Credit Bakiyeyi AZALTIR Daha önce yazılmış bir alacağın geri alınması. İşareti C ile karıştırıp artı yönde toplayan bir aktarım, bakiyeyi tutarın iki katı kadar şişirir.
RD Borç iptali Reversal of Debit Bakiyeyi ARTIRIR Daha önce yazılmış bir borcun geri alınması: hatalı kesilen masrafın iadesi gibi.
EC Beklenen alacak Expected Credit Henüz kesinleşmedi MT942 ara raporlarında görülür; kaydedilmiş değil beklenen bir harekettir.
ED Beklenen borç Expected Debit Henüz kesinleşmedi EC’nin borç tarafındaki karşılığı; yine MT942’ye özgüdür.

İşlem tip kodu ne söyler?

İşlem tip kodu dört karakterdir ve ilk karakteri kodun türünü belirler. N ile başlıyorsa ardından gelen üç karakter işlem türüdür: NTRF havale/transfer, NCHG masraf ve komisyon, NINT faiz, NTAX vergi ve stopaj, NMSC sınıflandırılmamış diğer hareketler. S ile başlıyorsa ardından gelen üç hane kaydı doğuran SWIFT mesaj tipidir: S103 bir MT103 mesajından doğan hareket demektir. F ile başlayan kodlar da standartta yer alır ve seyrek kullanılır.

Kod listesi bankadan bankaya genişleyebilir. Bu araç tanımadığı bir kodu tahmin etmez: kodu olduğu gibi gösterir, açıklama satırını boş bırakır. Tanımadığınız bir kodun karşılığını çalıştığınız bankanın entegrasyon dokümanından teyit edin — kod eşleştirmesini yanlış kuran bir muhasebe aktarımı, hareketleri yıllarca yanlış hesaba yazar.

Bakiye denetimi: eşitlik tutmuyorsa ne oldu?

Kısa cevap

Eksiksiz bir MT940 ekstresinde şu eşitlik her zaman sağlanır: :60F: açılış bakiyesi + alacaklar − borçlar = :62F: kapanış bakiyesi. Tutmuyorsa ya bir satır çift kopyalanmıştır, ya bir satır aktarımda düşmüştür, ya da elinizdeki dosya kapanış bakiyesi taşımayan bir MT942’dir.

Bu araç dosyayı okuduktan sonra eşitliği kendisi kurar ve sonucu kâğıdın üstüne damga olarak basar. Aşağıda örnek dosyanın adım adım yürütülmüş hâli var: her satırdan sonra bakiyenin nereye geldiği görünüyor. Tutarlar pozitif yazılır; yön ayrı kolondadır.

# Satır Yön Tutar Bakiyeye etkisi Yürüyen bakiye
:60F: açılış bakiyesi 148.250,75
1 NTRF · Havale / transfer TAH-2026-0417 Alacak (C) 48.250,00 +48.250,00 196.500,75
2 NTRF · Havale / transfer ODM-2026-0288 Borç (D) 12.500,00 −12.500,00 184.000,75
3 NCHG · Masraf ve komisyon MSR-2026-0288 Borç (D) 1.180,50 −1.180,50 182.820,25
4 NMSC · Diğer (sınıflandırılmamış) POS-2026-0311 Alacak (C) 9.750,00 +9.750,00 192.570,25
5 NTRF · Havale / transfer MAA-2026-0003 Borç (D) 25.000,00 −25.000,00 167.570,25
6 NINT · Faiz FAZ-2026-0022 Alacak (C) 3.412,60 +3.412,60 170.982,85
7 NTAX · Vergi ve stopaj STP-2026-0022 Borç (D) 512,89 −512,89 170.469,96
8 NCHG · Masraf ve komisyon IAD-2026-0019 Borç iptali (RD) 180,00 +180,00 170.649,96
:62F: kapanış bakiyesi (dosyada yazan) 170.649,96

Eşitlik

148.250,75  +  61.592,60  −  39.193,39  =  170.649,96

Dosyada yazan kapanış bakiyesi de 170.649,96 olduğu için fark sıfırdır; ekstre eksiksizdir. Alacak toplamı dört satırdan (48.250,00 + 9.750,00 + 3.412,60 + 180,00), borç toplamı dört satırdan (12.500,00 + 1.180,50 + 25.000,00 + 512,89) gelir. Dikkat: 8 numaralı satır RD, yani bir borcun iptali; tutarı alacak toplamına girer.

Fark çıktığında araç ne yapar?

Fark, kapanış bakiyesi ile hesaplanan bakiyenin arasındaki sayıdır. Araç bu farkın işaretli karşılığını dosyadaki her satırın etkisiyle karşılaştırır. Örneğin 3 numaralı satır (Masraf ve komisyon, 1.180,50 borç) dosyaya ikinci kez yapıştırılmış olsun:

  1. 1 Hesaplanan kapanış 1.180,50 azalır: 170.649,96 → 169.469,46.
  2. 2 Dosyadaki :62F: değişmez ve 170.649,96 olarak kalır.
  3. 3 Fark = 170.649,96 − 169.469,46 = 1.180,50.
  4. 4 Araç, etkisi tam olarak −1.180,50 olan satırları arar ve ikisini de bulur: birbirinin kopyası olan iki masraf satırı.
  5. 5 Her iki satır tabloda sarıyla işaretlenir ve “çift kayıt şüphesi” notu düşülür.

Fark hiçbir satırın etkisiyle eşleşmiyorsa araç bunu da söyler: “dosyada görünmeyen, şu tutarda ve şu yönde bir hareket var” der. Bu iki durumu ayırmak önemlidir, çünkü çözümleri farklıdır: çift kayıtta fazlalık silinir, eksik kayıtta bankadan dosyanın tamamı yeniden istenir.

Denetim yapılamayan iki durum

  • Kapanış bakiyesi yok. Dosya bir MT942 ara raporu olabilir; MT942 kapanış bakiyesi taşımaz. Araç bu durumda :34F:, :13D:, :90C: ve :90D: alanlarını arar ve bulursa dosyanın tipini söyler.
  • Ekstre parçalara bölünmüş. Uzun bir gün birkaç mesaja bölündüğünde ara parçalar :60M: ve :62M: etiketlerini taşır. Eşitlik her parçanın kendi içinde sağlanır; tek parçayı bütün ekstre sanmak yanlış fark üretir. :28C: ekstre sıra numarasındaki ikinci sayı kaçıncı parçada olduğunuzu söyler.

MT940, MT942, MT950 ve MT941 farkı

Kısa cevap

MT940 gün sonu ekstresidir ve kapanış bakiyesi içerir; MT942 gün içi ara rapordur ve kapanış bakiyesi içermez; MT950 aynı yapıdadır ama :86: açıklama alanı yoktur; MT941 ise yalnızca bakiye bildirir, hareket satırı taşımaz.

Mesaj Adı Kapanış bakiyesi Hareket satırı Açıklama alanı Ne zaman üretilir Pratikte önemi
MT940 Müşteri hesap ekstresi Customer Statement Message Var (:62F: / :62M:) Var (:61:) Var (:86:) Gün sonunda, kesinleşmiş kayıtlarla Şirketin muhasebe ve nakit tarafında kullandığı asıl dosya budur.
MT942 Ara hareket raporu Interim Transaction Report YOK Var (:61:) Var (:86:) Gün içinde, belirli aralıklarla Kapanış bakiyesi taşımaz; onun yerine :34F: alt limit ve :90C:/:90D: adet–toplam alanları bulunur. “Bakiye tutmuyor” denen durumların bir bölümü, MT942 dosyasında olmayan bir bakiyenin aranmasıdır.
MT941 Bakiye raporu Balance Report Var YOK Var (:86:) Talep üzerine ya da tanımlı saatlerde Hareket satırı içermez; yalnızca bakiye bildirir. Hareket bekleyip bakiye alan bir aktarım bu dosyayı “boş” sanır.
MT950 Hesap ekstresi (kurumlar arası) Statement Message Var Var (:61:) YOK Gün sonunda Yapısı MT940’a çok benzer ama :86: açıklama alanı bulunmaz; bankalar arası muhabir hesap ekstresi için kullanılır. Bir şirket MT950 aldığında karşı taraf adını ve ödeme açıklamasını göremez.

Bu tablo “bakiye tutmuyor” diye gelen soruların büyük bölümünü tek başına çözer. Gün içinde çalışan bir aktarım MT942 alıyorsa kapanış bakiyesi aramamalı, gün sonunda MT940 ile mutabık kalmalıdır. MT950 alan bir şirket ise karşı taraf adını ve ödeme açıklamasını hiçbir zaman göremez; bu bir eksiklik değil, mesajın tanımı gereğidir.

Kaynak: SWIFT Standards, MT Category 9 — MT940 Customer Statement Message, MT941 Balance Report, MT942 Interim Transaction Report ve MT950 Statement Message mesaj tanımları.

Örnek MT940 dosyası

Aşağıdaki dosya uydurmadır: Uydurma bir şirketin 16 Mart 2026 tarihli TL hesabı. Gerçek bir şirkete ait değildir ve herhangi bir sektör ortalaması iddiası taşımaz. Hesap IBAN’ının kontrol hanesi doğru hesaplanmıştır ama banka kodu bilerek gerçek bir bankaya ait değildir — örnek belli bir bankanın biçimini temsil etmesin diye böyle seçildi. Karşı taraf IBAN’ları anonimleştirilmiştir.

Dosyada Türkçe karakter yoktur ve bu bir eksiklik değildir: SWIFT’in izin verdiği karakter kümesinde “ş, ğ, ı, ö, ü, ç” bulunmaz, bu yüzden bankalar açıklamaları ASCII’ye indirerek yazar.

:20:260316EKS00047
:25:TR090099900000006297561234
:28C:00047/00001
:60F:C260316TRY148250,75
:61:2603160316C48250,00NTRFTAH-2026-0417//GB26031600011
GELEN HAVALE
:86:GELEN HAVALE/ AYDIN TICARET LTD STI/ TR33 XXXX XXXX XXXX XXXX 4471/ ACIKLAMA: 2026-0417 NOLU FATURA TAHSILATI
:61:2603160316D12500,00NTRFODM-2026-0288//GB26031600024
:86:GIDEN EFT/ BORA GIDA SAN VE TIC AS/ TR64 XXXX XXXX XXXX XXXX 9012/ ACIKLAMA: 2026/318 NOLU FATURA ODEMESI
:61:2603160316D1180,50NCHGMSR-2026-0288//GB26031600025
:86:EFT MASRAFI VE BSMV/ ODM-2026-0288 ISLEMINE AIT
:61:2603160316C9750,00NMSCPOS-2026-0311//GB26031600038
:86:POS HAKEDIS ALACAGI/ 11.03.2026 TARIHLI 42 ADET ISLEM
:61:2603160316D25000,00NTRFMAA-2026-0003//GB26031600042
:86:TOPLU MAAS ODEMESI/ 14 PERSONEL/ MART 2026 DONEMI
:61:2603120316C3412,60NINTFAZ-2026-0022//GB26031600051
:86:VADELI HESAP FAIZ TAHAKKUKU/ 12.03.2026 VADE TARIHLI
:61:2603120316D512,89NTAXSTP-2026-0022//GB26031600052
:86:FAIZ STOPAJI/ FAZ-2026-0022 ISLEMINE AIT
:61:2603160316RD180,00NCHGIAD-2026-0019//GB26031600066
:86:HATALI ALINAN HAVALE MASRAFI IADESI/ 09.03.2026 TARIHLI KAYIT
:62F:C260316TRY170649,96
:64:C260316TRY165649,96
-
Örneği araca yükle

Metin kutusu zaten bu örnekle dolu gelir; kendi dosyanızı yapıştırdıktan sonra örneğe dönmek için bu düğmeyi kullanın.

Dosyada ne var, satır satır

  • İlk dört satır ekstrenin künyesidir: referans, hesap, ekstre numarası ve açılış bakiyesi.
  • Ardından sekiz hareket gelir. Her hareket bir :61: satırı, altında da açıklamasını taşıyan bir :86: satırıdır.
  • Birinci hareketin :61: satırının altında etiketsiz bir satır daha var: “GELEN HAVALE”. Bu, :61: alanının en çok 34 karakterlik ek bilgi parçasıdır ve :86: ile karıştırılmamalıdır.
  • Altıncı ve yedinci hareketlerde valör 12 Mart, işlem tarihi 16 Mart’tır. Vadeli hesap faizi ve onun stopajı geriye dönük valörlenmiştir; bu ayrım gerçek dosyalarda sık görülür.
  • Sekizinci hareket RD işaretlidir: daha önce kesilmiş bir masrafın iadesi. Borç iptali olduğu için bakiyeyi artırır.
  • Sondan bir önceki satır :62F: kapanış bakiyesi, son satır ise :64: kullanılabilir bakiyedir. İkisinin farkı bloke tutardan doğar ve hata değildir.
  • Dosya tek başına bir tire (-) satırıyla biter; bu, mesaj bloğunun sonunu gösterir.

Sık yapılan çözümleme hataları

Aşağıdakiler kendi ayrıştırıcısını yazan ekiplerin ve hazır aktarım araçlarının en sık takıldığı sekiz noktadır. Her biri sessizce yanlış sonuç üretir; yani hata mesajı almazsınız, sadece rakam tutmaz.

1 Satır sonu CRLF mi LF mi?

Belirti:
Dosya doğru görünüyor ama çözümleyici “etiket bulunamadı” diyor.
Nedeni:
MT940 dosyaları genellikle CRLF (\r\n) ile üretilir. Dosya bir metin düzenleyiciden geçtiğinde ya da kopyala-yapıştır yapıldığında satır sonu LF’ye döner, bazen tek başına CR kalır. Etiketi satır BAŞINDA arayan bir okuyucu bu durumda hiçbir şey bulamaz.
Çözümü:
Bu araç üç biçimi de kabul eder: metni okumadan önce \r\n ve tek CR, LF’ye çevrilir. Kendi aktarımınızı yazıyorsanız satır sonunu normalleştirmeden ayrıştırmaya başlamayın.

2 :86: açıklaması ikinci satıra taşınca kayboluyor

Belirti:
Açıklamanın yalnızca ilk 65 karakteri tabloya geliyor.
Nedeni:
:86: alanı en çok altı satır olabilir ve devam satırları etiketsizdir. “Satır satır oku, başındaki etikete bak” diye yazılmış bir okuyucu devam satırlarını tanımadığı için atar.
Çözümü:
Bir alan, bir sonraki “:” etiketine kadar sürer. Etiketsiz satır, açık olan son alanın devamıdır. Aynı kural :61: satırının altındaki 34 karakterlik ek bilgi alanı için de geçerlidir.

3 Tutarda ondalık ayracı virgüldür

Belirti:
48250,00 tutarı 4.825.000 ya da 48 olarak okunuyor.
Nedeni:
SWIFT tutar biçiminde ondalık ayracı virgüldür ve binlik ayracı yoktur. Virgülü binlik ayracı sanan ya da parseFloat gibi noktayı bekleyen bir dönüşüm sayıyı sessizce bozar.
Çözümü:
Virgülü ondalık ayracı olarak alın. Bu araç ayrıca dışa aktarılmış dosyalarda görülen “1.180,50” ve “1180.50” sapmalarını da doğru okur; iki ayraç birden varsa sondaki ondalık kabul edilir.

4 RD ve RC yön kodları ters toplanıyor

Belirti:
Bakiye, bir iptal kaydının tutarının iki katı kadar sapıyor.
Nedeni:
İşaret alanı iki karakterdir ve C/D dışında RC ile RD de alır. Yalnızca ilk karaktere bakan bir okuyucu RC’yi alacak, RD’yi borç sayar — oysa ikisi de ters kayıttır ve etkileri tam tersidir.
Çözümü:
RD bakiyeyi artırır, RC azaltır. Bu araç dört işareti de ayrı ayrı tanır ve tabloda “borç iptali / alacak iptali” diye gösterir.

5 İki haneli yıl ve yılsız işlem tarihi

Belirti:
Ocak ayındaki ekstrede bazı hareketler bir yıl ileri ya da geri görünüyor.
Nedeni:
Valör tarihi YYMMDD (6 hane), işlem tarihi ise MMDD (4 hane) yazılır; işlem tarihinde yıl bilgisi hiç yoktur. Yılı doğrudan valörden kopyalayan bir okuyucu, 31 Aralık’ta kaydedilip 1 Ocak valörlü bir hareketi bir yıl ileri taşır.
Çözümü:
İşlem tarihinin yılı valörden türetilir, ama ay farkı altıdan büyükse yıl kaydırılır. İki haneli yıl için bu araç 00–99 aralığını 2000–2099 olarak yorumlar; standart yüzyılı tanımlamaz.

6 Türkçe karakterler ve dosya kodlaması

Belirti:
Açıklamalarda “Ş” yerine bozuk karakterler çıkıyor.
Nedeni:
SWIFT’in x karakter kümesinde Türkçe harfler yoktur; bankalar açıklamaları ASCII’ye indirerek yazar (“ŞİRKETİ” yerine “SIRKETI”). Buna rağmen bazı dışa aktarımlar windows-1254 baytları taşır ve UTF-8 sanılarak okunduğunda bozulur.
Çözümü:
Bu araç yüklediğiniz dosyayı önce katı UTF-8 olarak çözmeyi dener, başarısız olursa windows-1254’e düşer. Metni doğrudan yapıştırdığınızda bu sorun zaten oluşmaz.

7 İşlem tip kodu standarda uymuyor

Belirti:
Referans kolonunda referansın başına dört harf yapışmış görünüyor.
Nedeni:
İşlem tip kodu 1!a3!c biçimindedir ve ilk karakteri S, N ya da F olmak zorundadır. Bazı üretimlerde bu alan boş bırakılır ya da farklı bir harfle başlar; kodu körlemesine dört karakter sayan bir okuyucu referansın başını yer.
Çözümü:
Bu araç kodu yalnızca S/N/F ile başlıyorsa ayırır. Uymuyorsa kodu boş bırakır, satıra not düşer ve kalan metnin tamamını referans olarak gösterir — tahmin etmez.

8 Dosyanın başındaki {1:…}{2:…}{4: blokları

Belirti:
İlk etiket bulunamıyor ya da ilk satır bozuk okunuyor.
Nedeni:
MT mesajları bazen SWIFT blok çerçevesiyle birlikte gelir: başta {1:} temel başlık, {2:} uygulama başlığı, {4:} metin bloğu; sonda -} bitişi. Ekstre alanları bu çerçevenin İÇİNDEDİR.
Çözümü:
Bu araç blok çerçevesini temizler ve içerideki alanları okur. Çerçeveli ya da çerçevesiz dosya farketmez.

Dosyanız nereye gidiyor?

Kısa cevap

Hiçbir yere. Çözümleme tamamen tarayıcınızda yapılır; dosya sunucuya gönderilmez ve tarayıcı deposuna da yazılmaz.

Bu vaat bir niyet beyanı değil, kodun kendisinde garanti altına alınmış bir kısıttır. Aracın betiğinde fetch, XMLHttpRequest, WebSocket ve sendBeacon çağrısı yoktur; dosya yalnızca tarayıcının yerel FileReader arayüzüyle okunur. Betiğin otomatik testi bu kısıtı ayrıca doğrular: bu çağrılardan biri koda girerse test kırmızıya döner ve araç yayına çıkmaz.

Bir adım daha ileri gidiyoruz: bu araç localStorage de kullanmaz. Diğer araçlarımızda girdiğiniz veriler kolaylık olsun diye tarayıcınızın yerel deposunda saklanır; bir hesap ekstresi ise müşteri adı, IBAN ve ödeme açıklaması taşır. Ortak kullanılan bir bilgisayarda böyle bir dosyanın sayfa kapandıktan sonra da durması istenmez. Bu yüzden metin kutusunun içeriği sayfayı yenilediğinizde kaybolur; çalışmanızı CSV olarak indirin.

CSV dosyası da tarayıcıda üretilir: satırlar bellekte birleştirilir, bir Blob nesnesine yazılır ve indirme bağlantısı yerel olarak oluşturulur. İndirme sırasında da hiçbir sunucuya istek gitmez.

Sık sorulan sorular

MT940 nedir?

MT940, bankaların bir hesabın gün sonu ekstresini standart bir metin biçiminde gönderdiği SWIFT mesaj tipidir. Bir günün açılış bakiyesini, o gün gerçekleşen hareketleri ve kapanış bakiyesini, alanları iki nokta arasına yazılmış etiketlerle (:20:, :25:, :60F:, :61:, :86:, :62F:) kodlanmış hâlde taşır. Muhasebe ve ERP yazılımları banka ekstresini çoğunlukla bu biçimde okur.

MT940 dosyası nasıl açılır?

MT940 düz metin dosyasıdır; uzantısı .sta, .940, .txt ya da .mt940 olabilir ve herhangi bir metin düzenleyiciyle açılır. Ama düz metin olarak açmak işe yaramaz, çünkü alanlar arasında ayraç yoktur ve sınırları uzunluk belirler. Okunur bir tabloya çevirmek için dosyayı bu sayfadaki araca yapıştırın; hareketler tarih, valör, yön, tutar, işlem kodu ve açıklama kolonlarına ayrılır.

MT940 ile MT942 arasındaki fark nedir?

MT940 gün sonu ekstresidir ve kapanış bakiyesi içerir; MT942 gün içi ara rapordur ve kapanış bakiyesi İÇERMEZ. MT942’de :62F: yerine :34F: alt limit ve :90C:/:90D: adet–toplam alanları bulunur. Bu yüzden bir MT942 dosyasında bakiye aramak sonuçsuz kalır; “bakiye tutmuyor” denen durumların bir bölümünün nedeni budur.

MT950 ile MT940 arasındaki fark nedir?

MT950’de :86: açıklama alanı bulunmaz. İki mesajın alan yapısı büyük ölçüde aynıdır, ama MT950 bankalar arası muhabir hesap ekstresi için kullanıldığından hesap sahibine yönelik serbest metin açıklaması taşımaz. Elinizdeki dosyada karşı taraf adı ve ödeme açıklaması hiç yoksa aldığınız şey MT940 değil MT950 olabilir.

MT940 dosyasını Excel’e nasıl aktarırım?

Dosyayı bu sayfadaki araca yapıştırıp “CSV indir” düğmesine basın. İnen dosya noktalı virgül ayraçlı ve UTF-8 kodludur; Excel, LibreOffice Calc ve Google E-Tablolar’da doğrudan açılır. Kolonlar sıra, valör, işlem tarihi, yön, tutar, para birimi, işlem kodu, müşteri referansı, banka referansı ve :86: açıklamasıdır. Dosya tarayıcınızda üretilir, hiçbir sunucuya gönderilmez.

:61: satırındaki alanlar hangi sırayla gelir?

Sırayla: valör tarihi (YYMMDD, 6 hane), isteğe bağlı işlem tarihi (MMDD, 4 hane), borç/alacak işareti (C, D, RC ya da RD), isteğe bağlı fon kodu (1 harf), tutar (ondalık ayracı virgül), işlem tip kodu (S/N/F + 3 karakter), müşteri referansı (en çok 16 karakter) ve iki bölü işaretinden sonra banka referansı. Satırın altında etiketsiz bir satır varsa o da en çok 34 karakterlik ek bilgi alanıdır.

MT940 işlem kodları ne anlama gelir?

İşlem tip kodunun ilk karakteri kodun türünü söyler: N ile başlıyorsa ardından gelen üç karakter işlem türüdür (NTRF havale, NCHG masraf, NINT faiz, NTAX vergi, NMSC sınıflandırılmamış gibi), S ile başlıyorsa ardından gelen üç hane kaydı doğuran SWIFT mesaj tipidir (S103 → MT103). Kod listesi bankadan bankaya genişleyebilir; tanımadığınız bir kodun karşılığını çalıştığınız bankaya sorun, tahmin etmeyin.

Valör tarihi ile işlem tarihi neden farklı olur?

Valör, paranın faiz ve bakiye hesabında geçerli sayıldığı tarihtir; işlem tarihi ise kaydın bankanın defterine düştüğü gündür. Faiz tahakkuku, geç saatte gelen transferler ve hafta sonuna denk gelen işlemlerde bu ikisi ayrışır. MT940’ta valör 6 haneli (YYMMDD) yazılır, işlem tarihi ise 4 hanelidir (MMDD) ve yıl bilgisi taşımaz.

Açılış bakiyesi + hareketler neden kapanış bakiyesine eşit çıkmıyor?

En sık üç neden vardır: dosya bir MT942 ara raporudur ve kapanış bakiyesi zaten yoktur; ekstre birden çok parçaya bölünmüştür ve elinizdeki parça :60M:/:62M: ara bakiyeleriyle gelmiştir; ya da bir hareket satırı çift kopyalanmış veya aktarımda düşmüştür. Bu araç farkı hesaplar ve farkın tutarı bir satırın etkisine eşitse o satırı çift kayıt şüphesiyle işaretler.

:62F: ile :64: neden farklı tutar gösteriyor?

Bu bir hata değildir. :62F: kaydedilmiş (booked) kapanış bakiyesidir; :64: ise o an gerçekten kullanılabilen bakiyedir. Aradaki fark bloke tutarlardan, valörü ileri tarihli alacaklardan ve benzeri kısıtlardan doğar. Nakit planlaması yapan taraf için anlamlı olan çoğu zaman :64: değeridir.

:86: alanındaki karşı taraf adını ve IBAN’ı ayrıştırabilir misiniz?

Güvenilir biçimde hayır. :86: serbest metin alanıdır ve içindeki alt alan düzeni SWIFT tarafından standartlaştırılmamıştır; her banka kendi ayracını ve sırasını kullanır. Bu araç :86: içeriğini ham hâliyle gösterir ve tabloya olduğu gibi taşır. Karşı taraf adını alan bazında ayırmak, ancak çalıştığınız bankanın kendi düzeni doğrulanarak yazılabilir.

MT940 hâlâ kullanılıyor mu, yerine ne geldi?

MT940 yaygın olarak kullanılmaya devam ediyor; ISO 20022 tarafındaki karşılığı camt.053 (gün sonu hesap ekstresi) mesajıdır ve gün içi rapor için camt.052, bildirim için camt.054 kullanılır. Bankaların XML tabanlı bu biçimlere geçişi kurum kurum ilerliyor, bu yüzden aynı şirket bir bankadan MT940, diğerinden camt.053 alabiliyor. Hangi biçimi aldığınızı bankanızın entegrasyon dokümanından teyit edin.

Hangi bankalar MT940 veriyor?

Bu bankaya göre değişir ve tek bir liste vermek doğru olmaz. Bir bankanın MT940 üretip üretmediği, hangi periyotta gönderdiği, dosyayı nasıl ilettiği (kurumsal internet şubesi, SFTP, web servis) ve geriye dönük kaç günlük veri verdiği kurumdan kuruma farklıdır. Doğru cevabı bankanızın kurumsal müşteri temsilcisinden ya da entegrasyon dokümanından alın.

Yüklediğim dosya sunucuya gidiyor mu?

Hayır. Çözümleme tamamen tarayıcınızda yapılır: sayfa hiçbir ağ isteği atmaz (fetch, XMLHttpRequest, WebSocket ve sendBeacon kullanılmaz) ve dosya tarayıcı deposuna da yazılmaz — localStorage bile kullanılmaz. Sayfayı yenilediğinizde yapıştırdığınız metin kaybolur. Bu vaat kodun kendisinde garanti altına alınmıştır ve otomatik testte ayrıca aranır.

Sayfadaki örnek dosya gerçek bir şirkete mi ait?

Hayır. Örnek, aracı boş ekranla karşılaşmadan denemeniz için uydurulmuştur. Hesap IBAN’ının kontrol hanesi doğrudur ama banka kodu bilerek gerçek bir bankaya ait değildir; örnek belli bir bankanın biçimini temsil etmesin diye böyle seçilmiştir. Karşı taraf IBAN’ları anonimleştirilmiştir ve tutarlar herhangi bir sektör ortalaması iddiası taşımaz.

Bu dosyayı her ay elle indirmek yerine

MT940’ı indirip çevirmek yerine hareketleri otomatik çekelim

MerkeziHesap şirketinizin banka hesaplarına salt-okunur bağlanır, hesap hareketlerini belirlenen aralıklarla kendiliğinden çeker ve kasa raporu ile nakit akış grafiğini üretir. Bu sayfadaki çözümleme, ürünün banka bağlantı katmanında zaten yaptığı işin küçük bir vitrinidir. Bağlantıda para transferi yetkisi talep edilmez; erişim yalnızca okumadır.

Kaynaklar ve güncelleme

  • SWIFT Standards, MT Category 9 (Cash Management and Customer Status). Etiketler, alan sıraları ve biçim gösterimleri MT940 Customer Statement Message, MT941 Balance Report, MT942 Interim Transaction Report ve MT950 Statement Message tanımlarından alınmıştır. Standart yıllık olarak gözden geçirildiği için sayfada sürüm numarası verilmemiştir.
  • ISO 20022 nakit yönetimi mesajları. camt.052 (gün içi rapor), camt.053 (gün sonu hesap ekstresi) ve camt.054 (borç/alacak bildirimi) karşılıkları bu mesaj ailesinden alınmıştır.
  • Sayfadaki örnek dosya uydurmadır. Banka politikası, süre ya da kapsam iddiası içermez. Bir bankanın MT940 verip vermediği, hangi periyotta gönderdiği ve geriye dönük kaç günlük veri sunduğu kurumdan kuruma değişir; doğru cevabı bankanızın entegrasyon dokümanından alın.

Son güncelleme: . Araç, çözümleme katmanı otomatik testten geçirilerek yayına alındı.

İlgili sayfalar