zilverline-mt940 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|