Importformaten
This content is not available in your language yet.
Muntar leest zes bestandsformaten. Welk van de zes het is, bepaalt de app aan de signatuur van het bestand, niet aan de bestandsnaam en niet met een AI. Past de signatuur bij geen van de zes, dan volgt de melding “Onbekend bestandsformaat” met de eerste regel erbij.
Herkenning
Link naar de kop “Herkenning”| Bron | Bestand | Waaraan Muntar hem herkent |
|---|---|---|
| Rabobank-CSV | Transacties downloaden (CSV) | kopregel begint met IBAN/BBAN,Munt,BIC,Volgnr,Datum |
| Rabobank-CSV, Engelse export | Transacties downloaden (CSV) | kopregel begint met IBAN/BBAN,Ccy,BIC,Seq No,Date |
| DEGIRO | Account.csv | kopregel begint met Datum,Tijd,Valutadatum,Product,ISIN,Omschrijving |
| QIF | .qif | eerste regel is een !Type:-regel |
| OFX en QFX | .ofx, .qfx | een OFXHEADER:-regel, een <?OFX ...?>-prolog of een <OFX>-element |
| CAMT | .xml | een Document-element met BkToCstmrStmt, BkToCstmrAcctRpt of BkToCstmrDbtCdtNtfctn erin |
| MT940 en MT942 | .sta, .940, .txt | een :20:- én een :61:-veld aan het begin van een regel, of een SWIFT-blokheader {1: |
Aanhalingstekens en een byte order mark tellen niet mee bij de herkenning. Bij DEGIRO mag de kopregel ook puntkomma’s gebruiken in plaats van komma’s.
Bij de drie CSV-bronnen kijkt Muntar alleen naar regel 1. Bij de andere drie kan dat niet: een CAMT begint met een XML-declaratie, een OFX 1.x met een blok instellingsregels, en een MT940 soms met een SWIFT-blokheader. Daar wordt dus het begin van het bestand bekeken, en niet alleen de eerste regel.
Op de versie wordt níet gecontroleerd via de namespace van een CAMT: die verschilt per bank en per schemaversie. Muntar kijkt naar de structuur, dus zowel camt.053.001.02 als .001.08 gaat door dezelfde parser.
CAMT: welke velden Muntar leest
Link naar de kop “CAMT: welke velden Muntar leest”| Pad in het bestand | Wordt |
|---|---|
Acct/Id/IBAN, anders Acct/Id/Othr/Id |
de rekening waar het afschrift bij hoort |
Acct/Ccy |
de valuta van de rekening; wijkt een regel daarvan af, dan volgt een waarschuwing |
Bal met OPBD of PRCD |
het beginsaldo |
Bal met CLBD |
het eindsaldo |
Ntry/Amt en Ntry/Amt@Ccy |
het bedrag en de valuta |
Ntry/CdtDbtInd |
de richting: DBIT is eraf, CRDT is erbij. Iets anders is een fout |
Ntry/RvslInd |
een terugboeking; het teken wordt omgekeerd |
Ntry/Sts |
alleen BOOK wordt gelezen; PDNG wordt overgeslagen met een waarschuwing |
Ntry/BookgDt/Dt of /DtTm |
de boekdatum. Bij een DtTm blijven de tijd en de zone buiten beschouwing |
Ntry/ValDt |
de valutadatum, als die van de boekdatum verschilt |
Ntry/AcctSvcrRef |
de sleutel van de regel, eerste keus |
NtryDtls/TxDtls/Refs/TxId |
de sleutel, tweede keus |
NtryDtls/TxDtls/Refs/EndToEndId |
de sleutel, laatste keus. NOTPROVIDED wordt genegeerd |
RltdPties/Cdtr bij een afschrijving, /Dbtr bij een bijschrijving |
de naam van de tegenpartij. Zowel Cdtr/Nm als Cdtr/Pty/Nm |
RltdPties/CdtrAcct/Id/IBAN of /DbtrAcct/Id/IBAN |
de IBAN van de tegenpartij |
RmtInf/Ustrd (mag meerdere keren) |
de omschrijving |
Ntry/AddtlNtryInf |
de omschrijving als er geen Ustrd is |
RmtInf/Strd/CdtrRefInf/Ref |
de omschrijving als die twee er ook niet zijn |
BkTxCd/Prtry/Cd, anders BkTxCd/Domn/Fmly/SubFmlyCd |
de transactiecode van de bank |
AmtDtls/InstdAmt/Amt en /CcyXchg/XchgRate |
het oorspronkelijke bedrag en de koers bij vreemde valuta |
Een bedrag in CAMT heeft altijd een punt als decimaalteken en nooit een duizendtalscheiding; dat schrijft de standaard voor. 1.234 is daar dus één euro en 234 duizendsten, anders dan in een Nederlandse CSV. Een bedrag zonder Ccy-attribuut is een fout en geen aanname.
Ontbreekt een begin- of eindsaldo, of telt het beginsaldo plus de mutaties niet op tot het eindsaldo, dan blijft “saldo na” bij elke regel leeg en volgt een waarschuwing met beide bedragen erin. De hele Ntry blijft als brontekst bewaard, met het pad als naam.
MT940 en MT942: welke velden Muntar leest
Link naar de kop “MT940 en MT942: welke velden Muntar leest”| Veld | Wordt |
|---|---|
:20: |
het begin van een nieuw afschrift in het bestand |
:25: |
de rekening. Het IBAN wordt uit de tekst gehaald, een BIC en een valuta ernaast mogen |
:28C: of :28: |
het afschriftnummer, onderdeel van de sleutel als de bank geen referentie geeft |
:60F: en :60M: |
het beginsaldo. Bij een afschrift over meerdere pagina’s telt de eerste |
:62F: en :62M: |
het eindsaldo. Daar telt de laatste |
:61: |
de transactieregel, zie hieronder |
:86: |
de toelichting bij de vorige :61:, zie hieronder |
:90C: en :90D: |
MT942-totalen. Daar valt geen lopend saldo uit af te leiden |
De opbouw van :61: is vast: valutadatum JJMMDD, optioneel een boekdatum MMDD, dan C, D, RC of RD, optioneel een fondsletter, het bedrag met komma-decimaal, een transactiecode van vier tekens, de referentie van de rekeninghouder, en na // de referentie van de bank.
D is geld eraf. RC en RD zijn een storno en keren de oorspronkelijke richting om: RD is dus geld erbij. Staat er alleen een boekdatum MMDD zonder jaar, dan komt het jaar van de valutadatum; rond de jaarwisseling schuift dat jaar mee, zodat een boeking van 2 januari bij een valutadatum van 31 december in het nieuwe jaar valt.
:86: komt in drie vormen en Muntar herkent ze alle drie.
| Vorm | Voorbeeld | Wat eruit komt |
|---|---|---|
| SEPA-slashtags | /TRTP/.../NAME/.../REMI/... |
REMI of EREF is de omschrijving, NAME of CNTP de tegenpartij, IBAN zijn rekening |
| Duitse subvelden | ?00...?20...?32... |
?20 t/m ?29 en ?60 t/m ?63 is de omschrijving, ?32 en ?33 de tegenpartij, ?31 zijn rekening |
| Vrije tekst | alles wat niet op de twee hierboven lijkt | de hele tekst is de omschrijving |
Een waarde loopt tot de volgende bekende slashtag, niet tot de volgende schuine streep: een omschrijving mag zelf een streep bevatten. Loopt :86: over meerdere regels door, dan worden die aan elkaar geplakt zónder spatie ertussen, want het formaat knipt op 65 tekens en niet op woordgrenzen.
De sleutel van een regel is de referentie van de bank als die er is en niet NONREF. Anders het afschriftnummer, de positie binnen dat afschrift, en een korte hash over datum, bedrag en omschrijving. Die twee delen samen: alleen het volgnummer zou bij een ander exportvenster verschuiven, alleen de hash zou twee identieke bedragen op één dag als dubbel zien.
OFX en QFX: welke velden Muntar leest
Link naar de kop “OFX en QFX: welke velden Muntar leest”Beide schrijfwijzen gaan door dezelfde parser. In de oudere (OFX 1.x) worden bladtags niet gesloten; de regel die dat oplost is dat een tag met tekst er direct achter een waarde is en een tag zonder tekst een omhulsel.
| Veld | Wordt |
|---|---|
CURDEF |
de valuta van de rekening |
BANKACCTFROM/ACCTID of CCACCTFROM/ACCTID |
de rekening. Is het geen IBAN (een creditcardnummer), dan kies je zelf de rekening |
STMTTRN/DTPOSTED, anders DTUSER |
de boekdatum. Tijd en tijdzone blijven erbuiten |
STMTTRN/DTUSER of DTAVAIL |
de valutadatum |
STMTTRN/TRNAMT |
het bedrag, met teken zoals het er staat |
STMTTRN/FITID |
de sleutel van de regel |
STMTTRN/MEMO |
de omschrijving |
STMTTRN/NAME of PAYEE/NAME |
de tegenpartij, en de omschrijving als er geen MEMO is |
STMTTRN/TRNTYPE |
het soort regel volgens de bank |
CURRENCY/CURSYM |
de valuta van deze regel, als die van CURDEF afwijkt |
ORIGCURRENCY/CURSYM en /CURRATE |
de oorspronkelijke valuta en de koers |
LEDGERBAL/BALAMT en /DTASOF |
het eindsaldo en de datum waarop dat gold |
CURRATE is volgens de standaard de factor van de oorspronkelijke munt naar de valuta van de rekening, dus het oorspronkelijke bedrag is TRNAMT gedeeld door CURRATE. Is die koers nul of onleesbaar, dan blijft alleen het bedrag in de rekeningvaluta staan, met een waarschuwing.
OFX kent geen beginsaldo. Geldt DTASOF op of ná de laatste transactie, dan rekent Muntar het lopende saldo van achter naar voren terug. Geldt het eerder, dan blijft “saldo na” leeg met een waarschuwing. Ontbreekt de FITID, dan valt de sleutel terug op rekening, positie, datum en bedrag, met een waarschuwing dat dubbelen dan minder zeker herkend worden.
Een bestand met alleen een beleggingsafschrift (INVSTMTRS) wordt geweigerd. Staat dat naast een bankrekening, dan wordt het beleggingsdeel overgeslagen met een waarschuwing.
QIF: hoe het gelezen wordt
Link naar de kop “QIF: hoe het gelezen wordt”QIF heeft geen kolomkop maar een !Type:-regel, en die is verplicht in het formaat. !Type:Bank, !Type:CCard, !Type:Cash en !Type:Oth A worden gelezen; !Type:Invst is een beleggingsexport en wordt geweigerd.
| Regel | Wordt |
|---|---|
D |
de datum |
T of U |
het bedrag |
P |
de tegenpartij, en de omschrijving als er geen M is |
M |
de omschrijving. Meerdere M-regels worden aan elkaar geplakt met een spatie |
N |
de transactiecode |
^ |
het einde van een record |
De datumvolgorde staat in QIF niet vast. Muntar leidt uit het HELE bestand af of de dag of de maand voorop staat: staat er ergens een getal boven de twaalf op de eerste plek, dan is het dag-eerst. Spreekt het bestand zichzelf tegen, dan wordt het geweigerd. Blijkt het er niet uit, dan gaat Muntar uit van dag-eerst en zegt hij dat erbij.
Een QIF draagt geen IBAN en geen referentie per regel. De rekening kies je dus zelf, en de sleutel is een hash over de positie in het bestand, de datum, het bedrag, de tegenpartij en de omschrijving. Die positie zit er bewust in: twee keer 3,50 bij dezelfde bakker op dezelfde dag zijn twee echte transacties.
Codering, scheidingsteken en getallen
Link naar de kop “Codering, scheidingsteken en getallen”| Onderwerp | Wat Muntar doet |
|---|---|
| Codering | Eerst strikt UTF-8. Lukt dat niet, dan ISO-8859-1. Een byte order mark wordt weggehaald. |
| Scheidingsteken | Rabobank: altijd de komma. DEGIRO: puntkomma als de kopregel buiten aanhalingstekens geen komma bevat, anders de komma. |
| Velden | Volgens RFC 4180: aanhalingstekens rond een veld, een dubbel aanhalingsteken als ontsnapping, en regeleindes binnen aanhalingstekens. |
| Bedragen | Komma-decimaal met punt-duizendtal (-1.234,56), of punt-decimaal met komma-duizendtal (-1,234.56), of kaal met een punt (-1234.56). Een euroteken en spaties worden genegeerd. |
| Aantallen | Alleen bij DEGIRO, uit de omschrijving. Punten in het gehele deel zijn duizendtallen: 1.500 is 1500 stuks. |
| Datums | Rabobank: JJJJ-MM-DD of DD-MM-JJJJ. DEGIRO: DD-MM-JJJJ. Amerikaanse notatie met maand vooraan wordt niet gelezen. Een onmogelijke datum als 31-02-2026 geeft een fout. |
Rabobank: verplichte kolommen
Link naar de kop “Rabobank: verplichte kolommen”Ontbreekt een van deze kolomnamen in de kopregel, dan volgt “Kolom {column} ontbreekt”. De waarde per regel mag wel leeg zijn. Kolommen worden op naam gezocht, niet op positie, dus een extra kolom in de export breekt niets.
| Kolom | Engelse kop | Waarvoor Muntar hem gebruikt |
|---|---|---|
| IBAN/BBAN | IBAN/BBAN | De rekening waar de regel bij hoort |
| Munt | Ccy | De valuta van de regel |
| Volgnr | Seq No | Samen met de IBAN de sleutel van de regel, en daarmee de dubbelencontrole |
| Datum | Date | De boekdatum |
| Rentedatum | Value Date | De valutadatum, wordt bewaard |
| Bedrag | Amount | Het bedrag, met teken |
| Saldo na trn | Bal After Bkng | Het saldo na de regel, voor de saldocheck |
| Tegenrekening IBAN/BBAN | Counterpty IBAN/BBAN | De IBAN van de tegenpartij, voor het herkennen van overboekingen en voor regels |
| Naam tegenpartij | Name Counterpty | De naam van de tegenpartij, en de terugval als de omschrijving leeg blijft |
| Code | Code | De transactiecode van de bank, wordt bewaard |
| Omschrijving-1 | Description-1 | Deel van de omschrijving |
| Omschrijving-2 | Description-2 | Deel van de omschrijving |
| Omschrijving-3 | Description-3 | Deel van de omschrijving |
| Reden retour | Reasoncode | Komt bij een storno achter de omschrijving |
Rabobank: optionele kolommen
Link naar de kop “Rabobank: optionele kolommen”Deze drie levert de bank alleen bij een transactie in een andere valuta. De kolomnaam mag ontbreken.
| Kolom | Engelse kop | Waarvoor Muntar hem gebruikt |
|---|---|---|
| Oorspr munt | Instr Ccy | De oorspronkelijke valuta; is hij gevuld, dan krijgt de regel de markering “Vreemde valuta” |
| Oorspr bedrag | Instr Amt | Het bedrag in die valuta |
| Koers | Rate | De gebruikte koers |
Rabobank: hoe een regel wordt gelezen
Link naar de kop “Rabobank: hoe een regel wordt gelezen”| Onderdeel | Regel |
|---|---|
| Omschrijving | Omschrijving-1, -2 en -3 achter elkaar, met enkele spaties ertussen |
| Pasgegevens | Begint Omschrijving-2 met “Pas:”, eventueel met een punt ervoor, dan valt dat hele veld weg uit de omschrijving. Het blijft in de brontekst staan |
| Storno | Is “Reden retour” gevuld, dan komt [retour: ...] achter de omschrijving |
| Lege omschrijving | Dan wordt de naam van de tegenpartij de omschrijving |
| Volgorde | De regels worden op datum gezet, oudste eerst; bij dezelfde datum blijft de volgorde uit het bestand staan |
DEGIRO: verplichte kolommen
Link naar de kop “DEGIRO: verplichte kolommen”| Kolom | Waarvoor Muntar hem gebruikt |
|---|---|
| Datum | De boekdatum |
| Tijd | De volgorde binnen een dag, en de sleutel van de regel |
| Valutadatum | De valutadatum |
| Product | De naam van het fonds, en de tegenpartijnaam |
| ISIN | De identificatie van het fonds |
| Omschrijving | Het soort regel, en bij een koop ook het aantal en de prijs |
| Mutatie | De valuta van het bedrag |
| Saldo | De valuta van het saldo |
De bedragen zelf staan in de naamloze kolom direct rechts van “Mutatie” en direct rechts van “Saldo”. Muntar leest ze daar. Alle overige kolommen blijven ongewijzigd als brontekst bewaard; een kolom zonder kop krijgt daarin de naam kolom met het nummer erachter.
Een export heeft geen stabiel regelnummer, dus de sleutel van een regel is een korte hash over datum, tijd, product, ISIN, omschrijving, valuta, bedrag en saldo. Staan er twee volledig identieke regels in hetzelfde bestand, dan krijgt de tweede er een volgnummer achter. In het bestand staat de nieuwste regel bovenaan; Muntar zet ze om naar oudste eerst.
DEGIRO: hoe de omschrijving wordt gelezen
Link naar de kop “DEGIRO: hoe de omschrijving wordt gelezen”De omschrijving in een DEGIRO-export is altijd Nederlands, ook als je de website in een andere taal gebruikt. Muntar leest hem in deze volgorde en stopt bij de eerste die past.
| De omschrijving | Wordt gelezen als |
|---|---|
Koop <aantal> @ <prijs> <VALUTA> |
Koop van een belegging |
Verkoop <aantal> @ <prijs> <VALUTA> |
Verkoop. Die krijgt de markering “Nog niet ondersteund” en wordt niet geboekt |
| Begint met “Dividendbelasting” | Dividendbelasting |
| Begint met “Dividend” | Dividend |
| Bevat “transactiekosten”, “aansluitingskosten”, “externe kosten”, “transactiebelasting” of “kosten” | Kosten |
| Bevat “terugstorting” of “withdrawal” | Opname |
| Bevat “storting” of “deposit” | Storting |
| Begint met “rente”, of bevat “interest” | Rente |
| Bevat “valuta debitering” of “valuta creditering” | Valutawissel |
| Bevat “wijziging isin”, “fusie”, “spin-off”, “conversie” of “verrekening” | Wijziging in het fonds |
| Alles wat overblijft | Overig |
Grenzen en waarschuwingen
Link naar de kop “Grenzen en waarschuwingen”| Onderwerp | Wat er gebeurt |
|---|---|
| Bestandsgrootte | Groter dan 10 MB wordt geweigerd |
| Bewaartijd van een upload | Een geüpload bestand blijft 24 uur staan zolang je de toewijzing nog niet hebt afgerond |
| Bestand zonder regels onder de kop | “Het bestand is leeg” |
| Regel met een ander aantal kolommen dan de kop | De regel wordt overgeslagen, met een waarschuwing die het aantal kolommen noemt |
| Lege valutakolom | De regel gaat door als EUR, met een waarschuwing |
| DEGIRO-regel zonder bedrag | De regel wordt overgeslagen, met een waarschuwing |
| Onleesbare datum, bedrag of aantal | Het hele bestand wordt geweigerd met “Regel {lineNo} is onleesbaar” en de kolom erbij |
| Beschadigde XML (CAMT, OFX 2.x) | Het hele bestand wordt geweigerd met “Het bestand is beschadigd” en de reden erbij |
| CAMT of MT940 met meerdere rekeningen | Een waarschuwing met het aantal en de IBAN’s; per rekening een aparte import |
| CAMT met nog niet geboekte regels | Die worden overgeslagen, met een waarschuwing die het aantal noemt |
| CAMT met een gebundelde betaling | Eén regel met het totaal, met een waarschuwing die het aantal noemt |
| Saldo dat niet aansluit | “Saldo na” blijft leeg en er volgt een waarschuwing met beide bedragen |
Waarschuwingen breken het inlezen niet af. Je ziet ze boven de review onder “Waarschuwingen uit het bestand”.