zilverline-mt940 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.document +5 -0
- data/.gitignore +52 -0
- data/.ruby-version +1 -0
- data/CHANGELOG +56 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +26 -0
- data/LICENSE.txt +20 -0
- data/README.md +75 -0
- data/Rakefile +9 -0
- data/lib/mt940.rb +10 -0
- data/lib/mt940/bank_statement.rb +13 -0
- data/lib/mt940/banks/abnamro.rb +76 -0
- data/lib/mt940/banks/ing.rb +84 -0
- data/lib/mt940/banks/rabobank.rb +770 -0
- data/lib/mt940/banks/triodos.rb +20 -0
- data/lib/mt940/base.rb +165 -0
- data/lib/mt940/structured_format.rb +16 -0
- data/lib/mt940/transaction.rb +23 -0
- data/lib/mt940/version.rb +3 -0
- data/mt940.gemspec +32 -0
- data/spec/fixtures/abnamro.txt +41 -0
- data/spec/fixtures/abnamro_structured.txt +54 -0
- data/spec/fixtures/ing.txt +24 -0
- data/spec/fixtures/ing_structured.txt +31 -0
- data/spec/fixtures/rabobank.txt +140 -0
- data/spec/fixtures/rabobank_mt940_structured.txt +48 -0
- data/spec/fixtures/rabobank_mt940_structured_dutch_tax.txt +10 -0
- data/spec/fixtures/rabobank_mt940_structured_multi_line.txt +14 -0
- data/spec/fixtures/rabobank_mt940_structured_savings_account.txt +11 -0
- data/spec/fixtures/rabobank_mt940_structured_to_savings_account.txt +10 -0
- data/spec/fixtures/rabobank_with_debet_previous_balance.txt +6 -0
- data/spec/fixtures/triodos.txt +14 -0
- data/spec/fixtures/two_accounts.txt +29 -0
- data/spec/fixtures/unknown.txt +22 -0
- data/spec/mt940_abnamro_spec.rb +244 -0
- data/spec/mt940_base_spec.rb +48 -0
- data/spec/mt940_ing_spec.rb +227 -0
- data/spec/mt940_rabobank_spec.rb +376 -0
- data/spec/mt940_triodos_spec.rb +58 -0
- data/spec/mt940_two_accounts_spec.rb +49 -0
- data/spec/spec_helper.rb +4 -0
- metadata +137 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
class MT940::Triodos < MT940::Base
|
2
|
+
|
3
|
+
def self.determine_bank(*args)
|
4
|
+
self if args[0].match(/^:20:/) && args[1] && args[1].match(/^:25:TRIODOSBANK/)
|
5
|
+
end
|
6
|
+
|
7
|
+
def parse_tag_86
|
8
|
+
if !@tag86 && @line.match(/^:86:\s?(.*)\Z/m)
|
9
|
+
@tag86 = true
|
10
|
+
temp_description = $1.gsub(/\n/, ' ').gsub(/>\d{2}/, '').strip
|
11
|
+
if temp_description.match(/^\d+(\d{9})(.*)$/)
|
12
|
+
@transaction.contra_account = $1.rjust(9, '000000000')
|
13
|
+
@transaction.description = $2.strip
|
14
|
+
else
|
15
|
+
@transaction.description = temp_description
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/lib/mt940/base.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
module MT940
|
2
|
+
|
3
|
+
class Base
|
4
|
+
|
5
|
+
MT_940_TAG_LINE = /^:(\d{2}(F|C)?):/
|
6
|
+
|
7
|
+
attr_accessor :bank, :opening_balance, :opening_date
|
8
|
+
|
9
|
+
def self.parse_mt940(file)
|
10
|
+
file = File.open(file) if file.is_a?(String)
|
11
|
+
if file.is_a?(File) || file.is_a?(Tempfile)
|
12
|
+
first_line = file.readline
|
13
|
+
second_line = file.readline unless file.eof?
|
14
|
+
klass = determine_bank(first_line, second_line)
|
15
|
+
file.rewind
|
16
|
+
instance = klass.new(file)
|
17
|
+
file.close
|
18
|
+
instance.parse
|
19
|
+
else
|
20
|
+
raise ArgumentError.new('No file is given!')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def parse
|
25
|
+
@tag86 = false
|
26
|
+
@lines.each do |line|
|
27
|
+
@line = line
|
28
|
+
@line.match(MT_940_TAG_LINE) ? send("parse_tag_#{$1}".to_sym) : parse_line
|
29
|
+
end
|
30
|
+
@bank_statements
|
31
|
+
end
|
32
|
+
|
33
|
+
protected
|
34
|
+
def parse_description_after_tag(description_parts, tag)
|
35
|
+
description_start_index = description_parts.index { |part| part == tag }
|
36
|
+
if description_start_index
|
37
|
+
description_parts[description_start_index + 1].gsub(/\r|\n/, '')
|
38
|
+
else
|
39
|
+
''
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def self.determine_bank(*args)
|
47
|
+
Dir.foreach(File.dirname(__FILE__) + '/banks/') do |file|
|
48
|
+
if file.match(/\.rb$/)
|
49
|
+
klass = eval(file.gsub(/\.rb$/, '').capitalize)
|
50
|
+
bank = klass.determine_bank(*args)
|
51
|
+
return bank if bank
|
52
|
+
end
|
53
|
+
end
|
54
|
+
self
|
55
|
+
end
|
56
|
+
|
57
|
+
def initialize(file)
|
58
|
+
@bank_statements = {}
|
59
|
+
@transactions = []
|
60
|
+
@bank = self.class.to_s.split('::').last
|
61
|
+
@bank = 'Unknown' if @bank == 'Base'
|
62
|
+
temp_lines = file.readlines
|
63
|
+
@lines = []
|
64
|
+
index_of_temp_lines = 0
|
65
|
+
index_in_lines = 0
|
66
|
+
while index_of_temp_lines < temp_lines.size do
|
67
|
+
line = temp_lines[index_of_temp_lines].encode('UTF-8', 'binary', :invalid => :replace, :undef => :replace) # remove invalid chars
|
68
|
+
if mt_940_start_line?(line)
|
69
|
+
@lines << line
|
70
|
+
index_in_lines+=1
|
71
|
+
else
|
72
|
+
@lines[index_in_lines-1] += line
|
73
|
+
end
|
74
|
+
index_of_temp_lines+=1
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def mt_940_start_line?(line)
|
79
|
+
line.match /^:?\d{2}(\D?|\d?):?.*$/
|
80
|
+
end
|
81
|
+
|
82
|
+
def parse_tag_25
|
83
|
+
@line.gsub!('.', '')
|
84
|
+
case @line
|
85
|
+
when /^:\d{2}:NL/
|
86
|
+
@bank_account_iban = @line[4, 18]
|
87
|
+
@bank_account = @bank_account_iban.strip.split(//).last(10).join.sub(/^[0]*/,"")
|
88
|
+
@is_structured_format = true
|
89
|
+
when /^:\d{2}:\D*(\d*)/
|
90
|
+
@bank_account = $1.gsub(/\D/, '').gsub(/^0+/, '')
|
91
|
+
@is_structured_format = false
|
92
|
+
else
|
93
|
+
raise "Unknown format for tag 25: #{@line}"
|
94
|
+
end
|
95
|
+
@bank_statements[@bank_account] ||= []
|
96
|
+
@tag86 = false
|
97
|
+
end
|
98
|
+
|
99
|
+
def parse_tag_28
|
100
|
+
@bank_statement = BankStatement.new([], @bank_account, @bank_account_iban, 0, nil, nil)
|
101
|
+
@bank_statements[@bank_account] << @bank_statement
|
102
|
+
end
|
103
|
+
|
104
|
+
alias_method :parse_tag_28C, :parse_tag_28
|
105
|
+
|
106
|
+
def parse_tag_60F
|
107
|
+
@currency = @line[12..14]
|
108
|
+
balance_date = parse_date(@line[6..11])
|
109
|
+
|
110
|
+
type = @line[5] == 'D' ? -1 : 1
|
111
|
+
amount = @line[15..-1].gsub(",", ".").to_f * type
|
112
|
+
@bank_statement.previous_balance = Balance.new(amount, balance_date, @currency)
|
113
|
+
end
|
114
|
+
|
115
|
+
def parse_tag_62F
|
116
|
+
@currency = @line[12..14]
|
117
|
+
balance_date = parse_date(@line[6..11])
|
118
|
+
|
119
|
+
type = @line[5] == 'D' ? -1 : 1
|
120
|
+
amount = @line[15..-1].gsub(",", ".").to_f * type
|
121
|
+
|
122
|
+
@bank_statement.new_balance = Balance.new(amount, balance_date, @currency)
|
123
|
+
@tag86 = false
|
124
|
+
end
|
125
|
+
|
126
|
+
def parse_tag_61
|
127
|
+
if @line.match(/^:61:(\d{6})(C|D)(\d+),(\d{0,2})/)
|
128
|
+
type = $2 == 'D' ? -1 : 1
|
129
|
+
@transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank, :currency => @currency)
|
130
|
+
@transaction.date = parse_date($1)
|
131
|
+
@bank_statement.transactions << @transaction
|
132
|
+
@tag86 = false
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def parse_tag_86
|
137
|
+
if !@tag86 && @line.match(/^:86:\s?(.*)\Z/m)
|
138
|
+
@tag86 = true
|
139
|
+
@transaction.description = $1.gsub(/\n/, ' ').gsub(/>\d{2}/, '').strip
|
140
|
+
parse_contra_account
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def parse_line
|
145
|
+
if @tag86 && @transaction.description
|
146
|
+
@transaction.description.lstrip!
|
147
|
+
@transaction.description += ' ' + @line.gsub(/\n/, ' ').gsub(/>\d{2}\s*/, '').gsub(/\-XXX/, '').gsub(/-$/, '').strip
|
148
|
+
@transaction.description.strip!
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def parse_date(string)
|
153
|
+
Date.new(2000 + string[0..1].to_i, string[2..3].to_i, string[4..5].to_i) if string
|
154
|
+
end
|
155
|
+
|
156
|
+
def parse_contra_account
|
157
|
+
end
|
158
|
+
|
159
|
+
#Fail silently
|
160
|
+
def method_missing(*args)
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module MT940::StructuredFormat
|
2
|
+
def parse_line
|
3
|
+
super unless @skip_parse_line
|
4
|
+
end
|
5
|
+
|
6
|
+
def read_all_description_lines!
|
7
|
+
@skip_parse_line = true
|
8
|
+
index = @lines.index(@line)
|
9
|
+
@lines[index+1..-1].each do |line|
|
10
|
+
break if line.match MT940::Base::MT_940_TAG_LINE
|
11
|
+
@transaction.description.lstrip!
|
12
|
+
@transaction.description += line.gsub(/\n/, '').gsub(/>\d{2}\s*/, '').gsub(/\-XXX/, '').gsub(/-$/, '').strip
|
13
|
+
@transaction.description.strip!
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module MT940
|
2
|
+
|
3
|
+
class Transaction
|
4
|
+
|
5
|
+
attr_accessor :bank_account, :bank_account_iban, :contra_account, :contra_account_iban, :amount, :type, :description, :contra_account_owner, :date, :bank, :currency
|
6
|
+
|
7
|
+
def initialize(attributes = {})
|
8
|
+
@bank_account = attributes[:bank_account]
|
9
|
+
@bank_account_iban = attributes[:bank_account_iban]
|
10
|
+
@bank = attributes[:bank]
|
11
|
+
@amount = attributes[:amount]
|
12
|
+
@type = attributes[:type]
|
13
|
+
@description = attributes[:description]
|
14
|
+
@date = attributes[:date]
|
15
|
+
@contra_account = attributes[:contra_account]
|
16
|
+
@contra_account_iban = attributes[:contra_account_iban]
|
17
|
+
@contra_account_owner = attributes[:contra_account_owner]
|
18
|
+
@currency = attributes[:currency]
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/mt940.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
$:.push File.expand_path('../lib', __FILE__)
|
4
|
+
require 'mt940/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = 'zilverline-mt940'
|
8
|
+
s.version = MT940::VERSION
|
9
|
+
s.authors = ['Lars Vonk', 'Michael Franken']
|
10
|
+
s.description = %q{An extended MT940 parser with implementations for Dutch banks. Based on basic parser from http://github.com/dovadi/mt940}
|
11
|
+
s.summary = %q{MT940 parser}
|
12
|
+
s.email = %q{lvonk@zilverline.com mfranken@zilverline.com}
|
13
|
+
|
14
|
+
s.homepage = %q{https://github.com/zilverline/mt940}
|
15
|
+
s.licenses = ['MIT']
|
16
|
+
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
'LICENSE.txt',
|
19
|
+
'README.md'
|
20
|
+
]
|
21
|
+
|
22
|
+
s.rubyforge_project = 'mt940'
|
23
|
+
|
24
|
+
s.add_development_dependency 'rspec'
|
25
|
+
s.add_development_dependency 'rake'
|
26
|
+
|
27
|
+
s.files = `git ls-files`.split(/\n/)
|
28
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split(/\n/)
|
29
|
+
s.executables = `git ls-files -- bin/*`.split(/\n/).map{ |f| File.basename(f) }
|
30
|
+
s.require_paths = ['lib']
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
ABNANL2A
|
2
|
+
940
|
3
|
+
ABNANL2A
|
4
|
+
:20:ABN AMRO BANK NV
|
5
|
+
:25:517852257
|
6
|
+
:28:19321/1
|
7
|
+
:60F:C110522EUR3236,28
|
8
|
+
:61:1105240524D9,N192NONREF
|
9
|
+
:86:GIRO 428428 KPN - DIGITENNE BETALINGSKENM. 000000042188659
|
10
|
+
5314606715 BETREFT FACTUUR D.D. 20-05-2011
|
11
|
+
INCL. 1,44 BTW
|
12
|
+
:61:1105210523D11,59N426NONREF
|
13
|
+
:86:BEA NR:XXX1234 21.05.11/12.54 DIRCKIII FIL2500 KATWIJK,PAS999
|
14
|
+
:61:1105230523D11,63N426NONREF
|
15
|
+
:86:BEA NR:XXX1234 23.05.11/09.08 DIGROS FIL1015 KATWIJK Z,PAS999
|
16
|
+
:61:1105220523D11,8N426NONREF
|
17
|
+
:86:BEA NR:XXX1234 22.05.11/14.25 MC DONALDS A44 LEIDEN,PAS999
|
18
|
+
:61:1105210523D13,45N426NONREF
|
19
|
+
:86:BEA NR:XXX1234 21.05.11/12.09 PRINCE FIL. 55 KATWIJK Z,PAS999
|
20
|
+
:61:1105210523D15,49N426NONREF
|
21
|
+
:86:BEA NR:XXX1234 21.05.11/12.55 DIRX FIL6017 KATWIJK ZH ,PAS999
|
22
|
+
|
23
|
+
:61:1105210523D107,N426NONREF
|
24
|
+
:86:BEA NR:XXX1234 21.05.11/12.04 HANS ANDERS OPT./056 KAT,PAS999
|
25
|
+
:61:1105220523D141,48N426NONREF
|
26
|
+
:86:BEA NR:XXX1234 22.05.11/13.45 MYCOM DEN HAAG S-GRAVEN,PAS999
|
27
|
+
:62F:C110523EUR876,84
|
28
|
+
-
|
29
|
+
ABNANL2A
|
30
|
+
940
|
31
|
+
ABNANL2A
|
32
|
+
:20:ABN AMRO BANK NV
|
33
|
+
:25:517852257
|
34
|
+
:28:19322/1
|
35
|
+
:60F:C110523EUR2876,84
|
36
|
+
:61:1105240524D9,49N426NONREF
|
37
|
+
:86:BEA NR:XXX1234 24.05.11/09.18 PETS PLACE KATWIJK KATWI,PAS999
|
38
|
+
:61:1105240524D15,N426NONREF
|
39
|
+
:86:52.89.39.882 MYCOM DEN HAAG S-GRAVEN,PAS999
|
40
|
+
:62F:C110524EUR1849,75
|
41
|
+
-
|
@@ -0,0 +1,54 @@
|
|
1
|
+
ABNANL2A
|
2
|
+
940
|
3
|
+
ABNANL2A
|
4
|
+
:20:ABN AMRO BANK NV
|
5
|
+
:25:123212321
|
6
|
+
:28:1301/1
|
7
|
+
:60F:C140112EUR10000,9
|
8
|
+
:61:1401110113D5,1N426NONREF
|
9
|
+
:86:BEA NR:MA1402 11.01.14/12.00 XXX XX XXXXXX AMSTERDAM ,PAS123
|
10
|
+
:61:1401130113D10,N426NONREF
|
11
|
+
:86:BEA NR:NND130 13.01.14/11.00 XXXXX 99 XXXXXX BV AMSTE,PAS123
|
12
|
+
:61:1401130113D10,N658NONREF
|
13
|
+
:86:/TRTP/SEPA OVERBOEKING/IBAN/NL25ABNA0987654321/BIC/ABNANL2A/NAME/
|
14
|
+
FOOBAR/REMI/SAVINGS/EREF/NOTPROVIDED/ORDP//ID/20
|
15
|
+
3798473
|
16
|
+
:62F:C140113EUR9980,9
|
17
|
+
-
|
18
|
+
ABNANL2A
|
19
|
+
940
|
20
|
+
ABNANL2A
|
21
|
+
:20:ABN AMRO BANK NV
|
22
|
+
:25:123212321
|
23
|
+
:28:2701/1
|
24
|
+
:60F:C140124EUR9980,9
|
25
|
+
:61:1401260127D4,N944NONREF
|
26
|
+
:86:SEPA IDEAL IBAN: NL70ABNA0888888888
|
27
|
+
BIC: ABNANL2A NAAM: NS GROEP INZAKE NSR IDEA
|
28
|
+
OMSCHRIJVING: 4851430136 0030000 735822580 NS E-TICKET(S)
|
29
|
+
KENMERK: 26-01-2014 18:14 003000 0735822580
|
30
|
+
:61:1401250127D1000,N422NONREF
|
31
|
+
:86:54.49.42.108 ABC BOOM KK
|
32
|
+
|
33
|
+
:61:1401260127D1000,N946NONREF
|
34
|
+
:86:SEPA ACCEPTGIROBETALING IBAN: NL86INGB0002445588
|
35
|
+
BIC: INGBNL2A NAAM: BELASTINGDIENST
|
36
|
+
BETALINGSKENM.: 1234567890098876 ID DEBITEUR: 777777777
|
37
|
+
:61:1401260127D1000,N946NONREF
|
38
|
+
:86:SEPA ACCEPTGIROBETALING IBAN: NL86INGB0002445588
|
39
|
+
BIC: INGBNL2A NAAM: BELASTINGDIENST
|
40
|
+
BETALINGSKENM.: 1234567890098876 ID DEBITEUR: 777777777
|
41
|
+
:61:1401260127D1000,N946NONREF
|
42
|
+
:86:SEPA ACCEPTGIROBETALING IBAN: NL86INGB0002445588
|
43
|
+
BIC: INGBNL2A NAAM: BELASTINGDIENST
|
44
|
+
BETALINGSKENM.: 1234567890098876 ID DEBITEUR: 777777777
|
45
|
+
:61:1401260127D1000,N946NONREF
|
46
|
+
:86:SEPA ACCEPTGIROBETALING IBAN: NL86INGB0002445588
|
47
|
+
BIC: INGBNL2A NAAM: BELASTINGDIENST
|
48
|
+
BETALINGSKENM.: 1234567890098876 ID DEBITEUR: 777777777
|
49
|
+
:61:1401260127D1000,N946NONREF
|
50
|
+
:86:SEPA ACCEPTGIROBETALING IBAN: NL86INGB0002445588
|
51
|
+
BIC: INGBNL2A NAAM: BELASTINGDIENST
|
52
|
+
BETALINGSKENM.: 1234567890098876 ID DEBITEUR: 777777777
|
53
|
+
:62F:C140127EUR3976,9
|
54
|
+
-
|
@@ -0,0 +1,24 @@
|
|
1
|
+
0000 01INGBNL2AXXXX00001
|
2
|
+
0000 01INGBNL2AXXXX00001
|
3
|
+
940 00
|
4
|
+
:20:MPBZ
|
5
|
+
:25:0001234567
|
6
|
+
:28C:000
|
7
|
+
:60F:C100722EUR0,00
|
8
|
+
:61:100722D25,03NOV NONREF
|
9
|
+
:86: RC AFREKENING BETALINGSVERKEER
|
10
|
+
BETREFT REKENING 4715589 PERIODE: 01-10-2010 / 31-12-2010
|
11
|
+
ING Bank N.V. tarifering ING
|
12
|
+
:61:100722D3,03NOV NONREF
|
13
|
+
:86:0111111111 GPSEOUL SPOEDBETALING MPBZS1016000047 GPSEOUL
|
14
|
+
:61:100722D1,11NGT TMG TANGO
|
15
|
+
:86:0111111111 ING iDEAL KN: TMG TANGO TRANSACTIENR 0050000534527978 10062010 15:32 TMG TANGO ING Bank inzake GPKyoto
|
16
|
+
:61:100722D20,00NGM NONREF
|
17
|
+
:86:0111111111 ABN AMRO BANK>AMSTERDAM 22072010 09:57 002 5595781
|
18
|
+
:61:100722D1,10NGT NONREF
|
19
|
+
:86:0111111111 GPPeking 170000001AC
|
20
|
+
:61:100722C3,68NVZ NONREF
|
21
|
+
:86: EJ46GREENP100610T1456 CLIEOP TMG GPHONGKONG AMSTERDAM
|
22
|
+
:62F:C100723EUR3,47
|
23
|
+
:86:D000004C000002D25,24C28,71
|
24
|
+
-XXX
|
@@ -0,0 +1,31 @@
|
|
1
|
+
0000 01INGBNL2AXXXX00001
|
2
|
+
0000 01INGBNL2AXXXX00001
|
3
|
+
940 00
|
4
|
+
:20:MPBZ
|
5
|
+
:25:0001234567
|
6
|
+
:28C:000
|
7
|
+
:60F:C130630EUR500,00
|
8
|
+
:61:130701D10,00NDV NONREF
|
9
|
+
:86: RC afrekening betalingsverkeer
|
10
|
+
Factuurnr. 123456 Betreft rekening 12.34.567
|
11
|
+
Periode: 01-04-2013 / 30-06-2013
|
12
|
+
:61:130701C300,00NOV NONREF
|
13
|
+
:86:0001234567 VAN Zkl Kwartaal Spaarrekening
|
14
|
+
:61:130701D400,00NGT EREF
|
15
|
+
:86:NL57ABNA0987654321 ABNANL2A J AAP NOTPROVIDED kilometervergoed
|
16
|
+
ing 2e kwartaal 2013
|
17
|
+
:61:130702D6,00NGT EREF
|
18
|
+
:86:NL57ABNA0987654321 ABNANL2A J AAP / FOO B.V. NOTPROVIDED parkeren
|
19
|
+
:61:130715D7000,00NGT 8850426741301240
|
20
|
+
:86:NL86INGB0002445588 INGBNL2A BELASTINGDIENST BTW 2e kwartaal 2013
|
21
|
+
SCOR/CUR/8850426741301240
|
22
|
+
:61:130715C400,00NOV NONREF
|
23
|
+
:86:0001234567 VAN Zkl Kwartaal Spaarrekening
|
24
|
+
:61:130930D100,00NGT EREF
|
25
|
+
:86:NL57ABNA0987654321 ABNANL2A J AAP kilometervergoeding 3e kwart
|
26
|
+
aal
|
27
|
+
:62F:C131001EUR400,00
|
28
|
+
:64:C131001EUR300,00
|
29
|
+
:65:C130630EUR200,00
|
30
|
+
:86:D000046C000017D10000,18C20000,00
|
31
|
+
-XXX
|
@@ -0,0 +1,140 @@
|
|
1
|
+
:940:
|
2
|
+
:20:940A121001
|
3
|
+
:25:2121.21.211EUR
|
4
|
+
:28:00000/00
|
5
|
+
:60F:C120928EUR000000017431,67
|
6
|
+
:61:121001D000000000050,00N0701313131319 J. DOE
|
7
|
+
:86:Incasso deposit Savings Account
|
8
|
+
:62F:C121001EUR000000017381,67
|
9
|
+
:20:940A121002
|
10
|
+
:25:2121.21.211EUR
|
11
|
+
:28:00000/00
|
12
|
+
:60F:C121001EUR000000017381,67
|
13
|
+
:62F:C121002EUR000000017381,67
|
14
|
+
:20:940A121003
|
15
|
+
:25:2121.21.211EUR
|
16
|
+
:28:00000/00
|
17
|
+
:60F:C121002EUR000000017381,67
|
18
|
+
:62F:C121003EUR000000017381,67
|
19
|
+
:20:940A121004
|
20
|
+
:25:2121.21.211EUR
|
21
|
+
:28:00000/00
|
22
|
+
:60F:C121003EUR000000017381,67
|
23
|
+
:61:121001D000000000030,25N093NONREF Kosten
|
24
|
+
:86:Periode 01-07-2012 t/m 30-09-2012
|
25
|
+
:62F:C121004EUR000000017351,42
|
26
|
+
:20:940A121005
|
27
|
+
:25:2121.21.211EUR
|
28
|
+
:28:00000/00
|
29
|
+
:60F:C121004EUR000000017351,42
|
30
|
+
:62F:C121005EUR000000017351,42
|
31
|
+
:20:940A121008
|
32
|
+
:25:2121.21.211EUR
|
33
|
+
:28:00000/00
|
34
|
+
:60F:C121005EUR000000017351,42
|
35
|
+
:61:121008D000000000190,14N0600101000731 INSURRANCE
|
36
|
+
:86:BETALINGSKENM. 490022201282
|
37
|
+
:86:ARBEIDS ONG. VERZ. 00333333333
|
38
|
+
:86:PERIODE 06.10.2012 - 06.11.2012
|
39
|
+
:62F:C121008EUR000000017161,28
|
40
|
+
:20:940A121009
|
41
|
+
:25:2121.21.211EUR
|
42
|
+
:28:00000/00
|
43
|
+
:60F:C121008EUR000000017161,28
|
44
|
+
:62F:C121009EUR000000017161,28
|
45
|
+
:20:940A121010
|
46
|
+
:25:2121.21.211EUR
|
47
|
+
:28:00000/00
|
48
|
+
:60F:C121009EUR000000017161,28
|
49
|
+
:62F:C121010EUR000000017161,28
|
50
|
+
:20:940A121011
|
51
|
+
:25:2121.21.211EUR
|
52
|
+
:28:00000/00
|
53
|
+
:60F:C121010EUR000000017161,28
|
54
|
+
:62F:C121011EUR000000017161,28
|
55
|
+
:20:940A121012
|
56
|
+
:25:2121.21.211EUR
|
57
|
+
:28:00000/00
|
58
|
+
:60F:C121011EUR000000017161,28
|
59
|
+
:62F:C121012EUR000000017161,28
|
60
|
+
:20:940A121015
|
61
|
+
:25:2121.21.211EUR
|
62
|
+
:28:00000/00
|
63
|
+
:60F:C121012EUR000000017161,28
|
64
|
+
:61:121014D000000000037,50N0710121212122 NEWPAPER
|
65
|
+
:86:L20129999 741
|
66
|
+
:61:121014D000000000037,50N0710121212122 NEWPAPER
|
67
|
+
:86:L20119999 741
|
68
|
+
:62F:C121015EUR000000017086,28
|
69
|
+
:20:940A121016
|
70
|
+
:25:2121.21.211EUR
|
71
|
+
:28:00000/00
|
72
|
+
:60F:C121015EUR000000017086,28
|
73
|
+
:62F:C121016EUR000000017086,28
|
74
|
+
:20:940A121017
|
75
|
+
:25:2121.21.211EUR
|
76
|
+
:28:00000/00
|
77
|
+
:60F:C121016EUR000000017086,28
|
78
|
+
:61:121017D000000000088,06N0710454545454 Accountant
|
79
|
+
:86:factuur 201232621
|
80
|
+
:61:121017C000000012100,00N1270987654321 COMPANY B.V.
|
81
|
+
:86:Invoice
|
82
|
+
:62F:C121017EUR000000029098,22
|
83
|
+
:20:940A121018
|
84
|
+
:25:2121.21.211EUR
|
85
|
+
:28:00000/00
|
86
|
+
:60F:C121017EUR000000029098,22
|
87
|
+
:62F:C121018EUR000000029098,22
|
88
|
+
:20:940A121019
|
89
|
+
:25:2121.21.211EUR
|
90
|
+
:28:00000/00
|
91
|
+
:60F:C121018EUR000000029098,22
|
92
|
+
:61:121019D000000004019,23N5090767676767 J. DOE EO
|
93
|
+
:86:salaris
|
94
|
+
:62F:C121019EUR000000025078,99
|
95
|
+
:20:940A121022
|
96
|
+
:25:2121.21.211EUR
|
97
|
+
:28:00000/00
|
98
|
+
:60F:C121019EUR000000025078,99
|
99
|
+
:62F:C121022EUR000000025078,99
|
100
|
+
:20:940A121023
|
101
|
+
:25:2121.21.211EUR
|
102
|
+
:28:00000/00
|
103
|
+
:60F:C121022EUR000000025078,99
|
104
|
+
:62F:C121023EUR000000025078,99
|
105
|
+
:20:940A121024
|
106
|
+
:25:2121.21.211EUR
|
107
|
+
:28:00000/00
|
108
|
+
:60F:C121023EUR000000025078,99
|
109
|
+
:62F:C121024EUR000000025078,99
|
110
|
+
:20:940A121025
|
111
|
+
:25:2121.21.211EUR
|
112
|
+
:28:00000/00
|
113
|
+
:60F:C121024EUR000000025078,99
|
114
|
+
:61:121025D000000003076,00N084P002445588 Belastingdienst
|
115
|
+
:86:BETALINGSKENM. 2828282828282828
|
116
|
+
:62F:C121025EUR000000022002,99
|
117
|
+
:20:940A121026
|
118
|
+
:25:2121.21.211EUR
|
119
|
+
:28:00000/00
|
120
|
+
:60F:C121025EUR000000022002,99
|
121
|
+
:61:121026D000000005327,00N084P002445588 Belastingdienst
|
122
|
+
:86:BETALINGSKENM. 3838383838383838
|
123
|
+
:61:121026D000000010000,00N0716666666666 J. DOE Holding B.V.
|
124
|
+
:62F:C121026EUR000000006675,99
|
125
|
+
:20:940A121029
|
126
|
+
:25:2121.21.211EUR
|
127
|
+
:28:00000/00
|
128
|
+
:60F:C121026EUR000000006675,99
|
129
|
+
:62F:C121029EUR000000006675,99
|
130
|
+
:20:940A121030
|
131
|
+
:25:2121.21.211EUR
|
132
|
+
:28:00000/00
|
133
|
+
:60F:C121029EUR000000006675,99
|
134
|
+
:62F:C121030EUR000000006675,99
|
135
|
+
:20:940A121031
|
136
|
+
:25:2121.21.211EUR
|
137
|
+
:28:00000/00
|
138
|
+
:60F:C121030EUR000000006675,99
|
139
|
+
:62F:C121031EUR000000006675,99
|
140
|
+
|