sepa 0.0.15 → 0.0.16
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 +7 -7
- data/README.md +2 -1
- data/lib/sepa/base.rb +2 -0
- data/lib/sepa/direct_debit_order.rb +5 -4
- data/lib/sepa/payments_initiation/pain00800104/direct_debit_transaction_information.rb +2 -0
- data/lib/sepa/payments_initiation/pain00800104/remittance_information_choice.rb +9 -0
- data/lib/sepa/version.rb +1 -1
- data/spec/sepa/direct_debit_order_spec.rb +16 -7
- data/spec/sepa/expected_customer_direct_debit_initiation_v02_with_remittance_information.xml +304 -0
- metadata +87 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
5
|
-
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: edd5c07cd152f52e2d13b0d3cd2a00f95b40bba4
|
4
|
+
data.tar.gz: 093bbd122e64de202f074c905bb2edd48b224b92
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d9740f6b8caea5a9bd4564f59deedbcd1519bda122c1e18623bcf1d358e24e8e37812a0c20835e4eb53ba6bcefed9e990c4f900e382aa5c5cdf54421ea8bc88b
|
7
|
+
data.tar.gz: 51e20a22ec96071c1ed5bfcf45bd301e0c1373a840d422fb980304d7d2ef57662ac00f46180897a09265556dd3b40b1bca4179154cd284a7dfa28b66e51a60ea
|
data/README.md
CHANGED
@@ -75,6 +75,7 @@ software to send the file. Or perhaps you can upload it via their website.
|
|
75
75
|
|
76
76
|
## History
|
77
77
|
|
78
|
+
0.0.16 BigDecimal to avoid floating-point rounding errors (w/thanks to @joostkuif), support RemittanceInformation (w/thanks to @TheConstructor)
|
78
79
|
0.0.15 Ruby 1.8.7 compatibility
|
79
80
|
|
80
81
|
## Contributing
|
@@ -90,4 +91,4 @@ Other message types are totally welcome.
|
|
90
91
|
## Contributors
|
91
92
|
|
92
93
|
Author: [Conan Dalton](http://www.conandalton.net), aka [conanite](https://github.com/conanite)
|
93
|
-
With thanks to [corny](https://github.com/corny), [TheConstructor](https://github.com/TheConstructor)
|
94
|
+
With thanks to [corny](https://github.com/corny), [TheConstructor](https://github.com/TheConstructor), [joostkuif](https://github.com/joostkuif)
|
data/lib/sepa/base.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
+
require 'bigdecimal'
|
2
3
|
module Sepa
|
3
4
|
class Base
|
4
5
|
include Aduki::Initializer
|
@@ -20,6 +21,7 @@ module Sepa
|
|
20
21
|
def normalize str
|
21
22
|
return str if str.is_a? Fixnum
|
22
23
|
return ("%.2f" % str) if str.is_a? Float
|
24
|
+
return ("%.2f" % str) if str.is_a? BigDecimal
|
23
25
|
replacements = {
|
24
26
|
'à' => 'a', 'é' => 'e', 'è' => 'e',
|
25
27
|
'û' => 'u', 'î' => 'i', 'ô' => 'o', 'ü' => 'u', 'ï' => 'i', 'ö' => 'o',
|
@@ -244,10 +244,10 @@ class Sepa::DirectDebitOrder
|
|
244
244
|
class MandateInformation < Struct.new(:identification, :signature_date, :sequence_type); end
|
245
245
|
|
246
246
|
class DirectDebit
|
247
|
-
attr_accessor :debtor, :debtor_account, :end_to_end_id, :amount, :currency, :mandate_info
|
247
|
+
attr_accessor :debtor, :debtor_account, :end_to_end_id, :amount, :currency, :mandate_info, :remittance_information
|
248
248
|
|
249
|
-
def initialize debtor, debtor_account, end_to_end_id, amount, currency, mandate_info
|
250
|
-
@debtor, @debtor_account, @end_to_end_id, @amount, @currency, @mandate_info = debtor, debtor_account, end_to_end_id, amount, currency, mandate_info
|
249
|
+
def initialize debtor, debtor_account, end_to_end_id, amount, currency, mandate_info, remittance_information = nil
|
250
|
+
@debtor, @debtor_account, @end_to_end_id, @amount, @currency, @mandate_info, @remittance_information = debtor, debtor_account, end_to_end_id, amount, currency, mandate_info, remittance_information
|
251
251
|
end
|
252
252
|
|
253
253
|
def sequence_type
|
@@ -260,7 +260,8 @@ class Sepa::DirectDebitOrder
|
|
260
260
|
"#{prefix}.instructed_amount" => ("%.2f" % amount),
|
261
261
|
"#{prefix}.instructed_amount_currency" => "EUR",
|
262
262
|
"#{prefix}.direct_debit_transaction.mandate_related_information.mandate_identification" => mandate_info.identification,
|
263
|
-
"#{prefix}.direct_debit_transaction.mandate_related_information.date_of_signature" => mandate_info.signature_date
|
263
|
+
"#{prefix}.direct_debit_transaction.mandate_related_information.date_of_signature" => mandate_info.signature_date,
|
264
|
+
"#{prefix}.remittance_information.unstructured_remittance_information" => remittance_information
|
264
265
|
}
|
265
266
|
hsh = hsh.merge debtor.to_properties("#{prefix}.debtor", opts)
|
266
267
|
hsh = hsh.merge debtor_account.to_properties("#{prefix}.debtor", opts)
|
@@ -5,6 +5,7 @@ require "sepa/payments_initiation/pain00800104/payment_type_information"
|
|
5
5
|
require "sepa/payments_initiation/pain00800104/direct_debit_transaction"
|
6
6
|
require "sepa/payments_initiation/pain00800104/purpose_choice"
|
7
7
|
require "sepa/payments_initiation/pain00800104/regulatory_reporting"
|
8
|
+
require "sepa/payments_initiation/pain00800104/remittance_information_choice"
|
8
9
|
|
9
10
|
class Sepa::PaymentsInitiation::Pain00800104::DirectDebitTransactionInformation < Sepa::Base
|
10
11
|
definition "Provides information on the individual transaction(s) included in the message."
|
@@ -22,6 +23,7 @@ class Sepa::PaymentsInitiation::Pain00800104::DirectDebitTransactionInformation
|
|
22
23
|
attribute :instruction_for_creditor_agent, "InstrForCdtrAgt"
|
23
24
|
attribute :purpose , "Purp" , Sepa::PaymentsInitiation::Pain00800104::PurposeChoice
|
24
25
|
attribute :regulatory_reporting , "RgltryRptg" , :[], Sepa::PaymentsInitiation::Pain00800104::RegulatoryReporting
|
26
|
+
attribute :remittance_information , "RmtInf" , Sepa::PaymentsInitiation::Pain00800104::RemittanceInformationChoice
|
25
27
|
|
26
28
|
attr_accessor :instructed_amount_currency
|
27
29
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class Sepa::PaymentsInitiation::Pain00800104::RemittanceInformationChoice < Sepa::Base
|
2
|
+
attribute :unstructured_remittance_information , "Ustrd"
|
3
|
+
# don't think this is commonly used; would probably need a class
|
4
|
+
attribute :structured_remittance_information , "Strd"
|
5
|
+
|
6
|
+
def empty?
|
7
|
+
[unstructured_remittance_information, structured_remittance_information].compact == []
|
8
|
+
end
|
9
|
+
end
|
data/lib/sepa/version.rb
CHANGED
@@ -5,24 +5,24 @@ require "time"
|
|
5
5
|
|
6
6
|
describe Sepa::DirectDebitOrder do
|
7
7
|
|
8
|
-
def order sepa_identifier_class
|
8
|
+
def order sepa_identifier_class, remittance_information = false
|
9
9
|
bank_account0 = Sepa::DirectDebitOrder::BankAccount.new "FRZIZIPAPARAZZI345789", "FRZZPPKOOKOO"
|
10
10
|
debtor0 = Sepa::DirectDebitOrder::Party.new "DALTON/CONANMR", "64, Livva de Getamire", nil, "30005", "RENNES", "France", "Conan DALTON", "01234567890", "conan@dalton.sepa.i.hope.this.works"
|
11
11
|
mandate0 = Sepa::DirectDebitOrder::MandateInformation.new("mandate-id-0", Date.parse("2010-11-18"), "RCUR")
|
12
|
-
dd00 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13789 PVT 3", 1231.31, "EUR", mandate0
|
13
|
-
dd01 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13791 PVT 3", 1133.33, "EUR", mandate0
|
12
|
+
dd00 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13789 PVT 3", 1231.31, "EUR", mandate0, remittance_information ? "Transaction 3" : nil
|
13
|
+
dd01 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13791 PVT 3", 1133.33, "EUR", mandate0, remittance_information ? "We take your money" : nil
|
14
14
|
|
15
15
|
bank_account1 = Sepa::DirectDebitOrder::BankAccount.new "FRQUIQUIWIGWAM947551", "FRQQWIGGA"
|
16
16
|
debtor1 = Sepa::DirectDebitOrder::Party.new "ADAMS/SAMUELMR", "256, Livva de Getamire", nil, "75048", "BERLIN", "Germany", "Samuel ADAMS", "09876543210", "samuel@adams.sepa.i.hope.this.works"
|
17
17
|
mandate1 = Sepa::DirectDebitOrder::MandateInformation.new("mandate-id-1", Date.parse("2012-01-19"), "FRST")
|
18
|
-
dd10 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13790 PVT 3", 1732.32, "EUR", mandate1
|
19
|
-
dd11 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13792 PVT 3", 1034.34, "EUR", mandate1
|
18
|
+
dd10 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13790 PVT 3", 1732.32, "EUR", mandate1, remittance_information ? "An important transaction" : nil
|
19
|
+
dd11 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13792 PVT 3", 1034.34, "EUR", mandate1, remittance_information ? "Thank you, for the money" : nil
|
20
20
|
|
21
21
|
bank_account2 = Sepa::DirectDebitOrder::BankAccount.new " FR QU IQ UI WI GW\tAM 947 551 ", "FRQQWIGGA"
|
22
22
|
debtor2 = Sepa::DirectDebitOrder::Party.new "Mr. James Joyce", "512, Livva de Meet Agir", nil, "75099", "LONDON", "Angleterre", "Johann S. BACH", "09876543210", "js@bach.sepa.i.hope.this.works"
|
23
23
|
mandate2 = Sepa::DirectDebitOrder::MandateInformation.new("mandate-id-2", Date.parse("2013-06-08"), "RCUR")
|
24
|
-
dd20 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13793 PVT 3", 1935.35, "EUR", mandate2
|
25
|
-
dd21 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13794 PVT 3", 1236.36, "EUR", mandate2
|
24
|
+
dd20 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13793 PVT 3", 1935.35, "EUR", mandate2, remittance_information ? "Another one" : nil
|
25
|
+
dd21 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13794 PVT 3", 1236.36, "EUR", mandate2, remittance_information ? "Final transaction" : nil
|
26
26
|
|
27
27
|
sepa_now = Time.local(1992, 2, 28, 18, 30, 0, 0, 0)
|
28
28
|
Time.stub(:now).and_return sepa_now
|
@@ -46,6 +46,15 @@ describe Sepa::DirectDebitOrder do
|
|
46
46
|
xml.should == expected
|
47
47
|
end
|
48
48
|
|
49
|
+
it "should produce v02 xml corresponding to the given inputs with unstructured remittance information" do
|
50
|
+
o = order Sepa::DirectDebitOrder::PrivateSepaIdentifier, true
|
51
|
+
xml = o.to_xml :pain_008_001_version => "02"
|
52
|
+
xml = check_doc_header_02 xml
|
53
|
+
expected = File.read(File.expand_path("../expected_customer_direct_debit_initiation_v02_with_remittance_information.xml", __FILE__))
|
54
|
+
expected.force_encoding(Encoding::UTF_8) if expected.respond_to? :force_encoding
|
55
|
+
xml.should == expected
|
56
|
+
end
|
57
|
+
|
49
58
|
it "should produce v04 xml corresponding to the given inputs" do
|
50
59
|
o = order Sepa::DirectDebitOrder::PrivateSepaIdentifier
|
51
60
|
xml = o.to_xml :pain_008_001_version => "04"
|
@@ -0,0 +1,304 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Document>
|
3
|
+
<CstmrDrctDbtInitn>
|
4
|
+
<GrpHdr>
|
5
|
+
<MsgId>MSG0001</MsgId>
|
6
|
+
<CreDtTm>1992-02-28T18:30:00Z</CreDtTm>
|
7
|
+
<NbOfTxs>6</NbOfTxs>
|
8
|
+
<CtrlSum>8303.01</CtrlSum>
|
9
|
+
<InitgPty>
|
10
|
+
<Nm>SOFTIFY SARL</Nm>
|
11
|
+
</InitgPty>
|
12
|
+
</GrpHdr>
|
13
|
+
<PmtInf>
|
14
|
+
<PmtInfId>MONECOLE_PAYMENTS_20130703-FRST</PmtInfId>
|
15
|
+
<PmtMtd>DD</PmtMtd>
|
16
|
+
<NbOfTxs>2</NbOfTxs>
|
17
|
+
<CtrlSum>2766.66</CtrlSum>
|
18
|
+
<PmtTpInf>
|
19
|
+
<SvcLvl>
|
20
|
+
<Cd>SEPA</Cd>
|
21
|
+
</SvcLvl>
|
22
|
+
<LclInstrm>
|
23
|
+
<Cd>CORE</Cd>
|
24
|
+
</LclInstrm>
|
25
|
+
<SeqTp>FRST</SeqTp>
|
26
|
+
</PmtTpInf>
|
27
|
+
<ReqdColltnDt>2013-07-10</ReqdColltnDt>
|
28
|
+
<Cdtr>
|
29
|
+
<Nm>Mon Ecole</Nm>
|
30
|
+
<PstlAdr>
|
31
|
+
<Ctry>FR</Ctry>
|
32
|
+
<AdrLine>3, Livva de Getamire</AdrLine>
|
33
|
+
<AdrLine>75022 Paris</AdrLine>
|
34
|
+
</PstlAdr>
|
35
|
+
</Cdtr>
|
36
|
+
<CdtrAcct>
|
37
|
+
<Id>
|
38
|
+
<IBAN>FRGOOGOOYADDA9999999</IBAN>
|
39
|
+
</Id>
|
40
|
+
</CdtrAcct>
|
41
|
+
<CdtrAgt>
|
42
|
+
<FinInstnId>
|
43
|
+
<BIC>FRGGYELLOW99</BIC>
|
44
|
+
</FinInstnId>
|
45
|
+
</CdtrAgt>
|
46
|
+
<ChrgBr>SLEV</ChrgBr>
|
47
|
+
<CdtrSchmeId>
|
48
|
+
<Id>
|
49
|
+
<PrvtId>
|
50
|
+
<Othr>
|
51
|
+
<Id>FR123ZZZ010203</Id>
|
52
|
+
<SchmeNm>
|
53
|
+
<Prtry>SEPA</Prtry>
|
54
|
+
</SchmeNm>
|
55
|
+
</Othr>
|
56
|
+
</PrvtId>
|
57
|
+
</Id>
|
58
|
+
</CdtrSchmeId>
|
59
|
+
<DrctDbtTxInf>
|
60
|
+
<PmtId>
|
61
|
+
<EndToEndId>MONECOLE REG F13790 PVT 3</EndToEndId>
|
62
|
+
</PmtId>
|
63
|
+
<InstdAmt Ccy="EUR">1732.32</InstdAmt>
|
64
|
+
<DrctDbtTx>
|
65
|
+
<MndtRltdInf>
|
66
|
+
<MndtId>mandate-id-1</MndtId>
|
67
|
+
<DtOfSgntr>2012-01-19</DtOfSgntr>
|
68
|
+
</MndtRltdInf>
|
69
|
+
</DrctDbtTx>
|
70
|
+
<DbtrAgt>
|
71
|
+
<FinInstnId>
|
72
|
+
<BIC>FRQQWIGGA</BIC>
|
73
|
+
</FinInstnId>
|
74
|
+
</DbtrAgt>
|
75
|
+
<Dbtr>
|
76
|
+
<Nm>ADAMS/SAMUELMR</Nm>
|
77
|
+
<PstlAdr>
|
78
|
+
<Ctry>DE</Ctry>
|
79
|
+
<AdrLine>256, Livva de Getamire</AdrLine>
|
80
|
+
<AdrLine>75048 BERLIN</AdrLine>
|
81
|
+
</PstlAdr>
|
82
|
+
</Dbtr>
|
83
|
+
<DbtrAcct>
|
84
|
+
<Id>
|
85
|
+
<IBAN>FRQUIQUIWIGWAM947551</IBAN>
|
86
|
+
</Id>
|
87
|
+
</DbtrAcct>
|
88
|
+
<RmtInf>
|
89
|
+
<Ustrd>An important transaction</Ustrd>
|
90
|
+
</RmtInf>
|
91
|
+
</DrctDbtTxInf>
|
92
|
+
<DrctDbtTxInf>
|
93
|
+
<PmtId>
|
94
|
+
<EndToEndId>MONECOLE REG F13792 PVT 3</EndToEndId>
|
95
|
+
</PmtId>
|
96
|
+
<InstdAmt Ccy="EUR">1034.34</InstdAmt>
|
97
|
+
<DrctDbtTx>
|
98
|
+
<MndtRltdInf>
|
99
|
+
<MndtId>mandate-id-1</MndtId>
|
100
|
+
<DtOfSgntr>2012-01-19</DtOfSgntr>
|
101
|
+
</MndtRltdInf>
|
102
|
+
</DrctDbtTx>
|
103
|
+
<DbtrAgt>
|
104
|
+
<FinInstnId>
|
105
|
+
<BIC>FRQQWIGGA</BIC>
|
106
|
+
</FinInstnId>
|
107
|
+
</DbtrAgt>
|
108
|
+
<Dbtr>
|
109
|
+
<Nm>ADAMS/SAMUELMR</Nm>
|
110
|
+
<PstlAdr>
|
111
|
+
<Ctry>DE</Ctry>
|
112
|
+
<AdrLine>256, Livva de Getamire</AdrLine>
|
113
|
+
<AdrLine>75048 BERLIN</AdrLine>
|
114
|
+
</PstlAdr>
|
115
|
+
</Dbtr>
|
116
|
+
<DbtrAcct>
|
117
|
+
<Id>
|
118
|
+
<IBAN>FRQUIQUIWIGWAM947551</IBAN>
|
119
|
+
</Id>
|
120
|
+
</DbtrAcct>
|
121
|
+
<RmtInf>
|
122
|
+
<Ustrd>Thank you, for the money</Ustrd>
|
123
|
+
</RmtInf>
|
124
|
+
</DrctDbtTxInf>
|
125
|
+
</PmtInf>
|
126
|
+
<PmtInf>
|
127
|
+
<PmtInfId>MONECOLE_PAYMENTS_20130703-RCUR</PmtInfId>
|
128
|
+
<PmtMtd>DD</PmtMtd>
|
129
|
+
<NbOfTxs>4</NbOfTxs>
|
130
|
+
<CtrlSum>5536.35</CtrlSum>
|
131
|
+
<PmtTpInf>
|
132
|
+
<SvcLvl>
|
133
|
+
<Cd>SEPA</Cd>
|
134
|
+
</SvcLvl>
|
135
|
+
<LclInstrm>
|
136
|
+
<Cd>CORE</Cd>
|
137
|
+
</LclInstrm>
|
138
|
+
<SeqTp>RCUR</SeqTp>
|
139
|
+
</PmtTpInf>
|
140
|
+
<ReqdColltnDt>2013-07-10</ReqdColltnDt>
|
141
|
+
<Cdtr>
|
142
|
+
<Nm>Mon Ecole</Nm>
|
143
|
+
<PstlAdr>
|
144
|
+
<Ctry>FR</Ctry>
|
145
|
+
<AdrLine>3, Livva de Getamire</AdrLine>
|
146
|
+
<AdrLine>75022 Paris</AdrLine>
|
147
|
+
</PstlAdr>
|
148
|
+
</Cdtr>
|
149
|
+
<CdtrAcct>
|
150
|
+
<Id>
|
151
|
+
<IBAN>FRGOOGOOYADDA9999999</IBAN>
|
152
|
+
</Id>
|
153
|
+
</CdtrAcct>
|
154
|
+
<CdtrAgt>
|
155
|
+
<FinInstnId>
|
156
|
+
<BIC>FRGGYELLOW99</BIC>
|
157
|
+
</FinInstnId>
|
158
|
+
</CdtrAgt>
|
159
|
+
<ChrgBr>SLEV</ChrgBr>
|
160
|
+
<CdtrSchmeId>
|
161
|
+
<Id>
|
162
|
+
<PrvtId>
|
163
|
+
<Othr>
|
164
|
+
<Id>FR123ZZZ010203</Id>
|
165
|
+
<SchmeNm>
|
166
|
+
<Prtry>SEPA</Prtry>
|
167
|
+
</SchmeNm>
|
168
|
+
</Othr>
|
169
|
+
</PrvtId>
|
170
|
+
</Id>
|
171
|
+
</CdtrSchmeId>
|
172
|
+
<DrctDbtTxInf>
|
173
|
+
<PmtId>
|
174
|
+
<EndToEndId>MONECOLE REG F13789 PVT 3</EndToEndId>
|
175
|
+
</PmtId>
|
176
|
+
<InstdAmt Ccy="EUR">1231.31</InstdAmt>
|
177
|
+
<DrctDbtTx>
|
178
|
+
<MndtRltdInf>
|
179
|
+
<MndtId>mandate-id-0</MndtId>
|
180
|
+
<DtOfSgntr>2010-11-18</DtOfSgntr>
|
181
|
+
</MndtRltdInf>
|
182
|
+
</DrctDbtTx>
|
183
|
+
<DbtrAgt>
|
184
|
+
<FinInstnId>
|
185
|
+
<BIC>FRZZPPKOOKOO</BIC>
|
186
|
+
</FinInstnId>
|
187
|
+
</DbtrAgt>
|
188
|
+
<Dbtr>
|
189
|
+
<Nm>DALTON/CONANMR</Nm>
|
190
|
+
<PstlAdr>
|
191
|
+
<Ctry>FR</Ctry>
|
192
|
+
<AdrLine>64, Livva de Getamire</AdrLine>
|
193
|
+
<AdrLine>30005 RENNES</AdrLine>
|
194
|
+
</PstlAdr>
|
195
|
+
</Dbtr>
|
196
|
+
<DbtrAcct>
|
197
|
+
<Id>
|
198
|
+
<IBAN>FRZIZIPAPARAZZI345789</IBAN>
|
199
|
+
</Id>
|
200
|
+
</DbtrAcct>
|
201
|
+
<RmtInf>
|
202
|
+
<Ustrd>Transaction 3</Ustrd>
|
203
|
+
</RmtInf>
|
204
|
+
</DrctDbtTxInf>
|
205
|
+
<DrctDbtTxInf>
|
206
|
+
<PmtId>
|
207
|
+
<EndToEndId>MONECOLE REG F13791 PVT 3</EndToEndId>
|
208
|
+
</PmtId>
|
209
|
+
<InstdAmt Ccy="EUR">1133.33</InstdAmt>
|
210
|
+
<DrctDbtTx>
|
211
|
+
<MndtRltdInf>
|
212
|
+
<MndtId>mandate-id-0</MndtId>
|
213
|
+
<DtOfSgntr>2010-11-18</DtOfSgntr>
|
214
|
+
</MndtRltdInf>
|
215
|
+
</DrctDbtTx>
|
216
|
+
<DbtrAgt>
|
217
|
+
<FinInstnId>
|
218
|
+
<BIC>FRZZPPKOOKOO</BIC>
|
219
|
+
</FinInstnId>
|
220
|
+
</DbtrAgt>
|
221
|
+
<Dbtr>
|
222
|
+
<Nm>DALTON/CONANMR</Nm>
|
223
|
+
<PstlAdr>
|
224
|
+
<Ctry>FR</Ctry>
|
225
|
+
<AdrLine>64, Livva de Getamire</AdrLine>
|
226
|
+
<AdrLine>30005 RENNES</AdrLine>
|
227
|
+
</PstlAdr>
|
228
|
+
</Dbtr>
|
229
|
+
<DbtrAcct>
|
230
|
+
<Id>
|
231
|
+
<IBAN>FRZIZIPAPARAZZI345789</IBAN>
|
232
|
+
</Id>
|
233
|
+
</DbtrAcct>
|
234
|
+
<RmtInf>
|
235
|
+
<Ustrd>We take your money</Ustrd>
|
236
|
+
</RmtInf>
|
237
|
+
</DrctDbtTxInf>
|
238
|
+
<DrctDbtTxInf>
|
239
|
+
<PmtId>
|
240
|
+
<EndToEndId>MONECOLE REG F13793 PVT 3</EndToEndId>
|
241
|
+
</PmtId>
|
242
|
+
<InstdAmt Ccy="EUR">1935.35</InstdAmt>
|
243
|
+
<DrctDbtTx>
|
244
|
+
<MndtRltdInf>
|
245
|
+
<MndtId>mandate-id-2</MndtId>
|
246
|
+
<DtOfSgntr>2013-06-08</DtOfSgntr>
|
247
|
+
</MndtRltdInf>
|
248
|
+
</DrctDbtTx>
|
249
|
+
<DbtrAgt>
|
250
|
+
<FinInstnId>
|
251
|
+
<BIC>FRQQWIGGA</BIC>
|
252
|
+
</FinInstnId>
|
253
|
+
</DbtrAgt>
|
254
|
+
<Dbtr>
|
255
|
+
<Nm>Mr. James Joyce</Nm>
|
256
|
+
<PstlAdr>
|
257
|
+
<AdrLine>512, Livva de Meet Agir</AdrLine>
|
258
|
+
<AdrLine>75099 LONDON</AdrLine>
|
259
|
+
</PstlAdr>
|
260
|
+
</Dbtr>
|
261
|
+
<DbtrAcct>
|
262
|
+
<Id>
|
263
|
+
<IBAN>FRQUIQUIWIGWAM947551</IBAN>
|
264
|
+
</Id>
|
265
|
+
</DbtrAcct>
|
266
|
+
<RmtInf>
|
267
|
+
<Ustrd>Another one</Ustrd>
|
268
|
+
</RmtInf>
|
269
|
+
</DrctDbtTxInf>
|
270
|
+
<DrctDbtTxInf>
|
271
|
+
<PmtId>
|
272
|
+
<EndToEndId>MONECOLE REG F13794 PVT 3</EndToEndId>
|
273
|
+
</PmtId>
|
274
|
+
<InstdAmt Ccy="EUR">1236.36</InstdAmt>
|
275
|
+
<DrctDbtTx>
|
276
|
+
<MndtRltdInf>
|
277
|
+
<MndtId>mandate-id-2</MndtId>
|
278
|
+
<DtOfSgntr>2013-06-08</DtOfSgntr>
|
279
|
+
</MndtRltdInf>
|
280
|
+
</DrctDbtTx>
|
281
|
+
<DbtrAgt>
|
282
|
+
<FinInstnId>
|
283
|
+
<BIC>FRQQWIGGA</BIC>
|
284
|
+
</FinInstnId>
|
285
|
+
</DbtrAgt>
|
286
|
+
<Dbtr>
|
287
|
+
<Nm>Mr. James Joyce</Nm>
|
288
|
+
<PstlAdr>
|
289
|
+
<AdrLine>512, Livva de Meet Agir</AdrLine>
|
290
|
+
<AdrLine>75099 LONDON</AdrLine>
|
291
|
+
</PstlAdr>
|
292
|
+
</Dbtr>
|
293
|
+
<DbtrAcct>
|
294
|
+
<Id>
|
295
|
+
<IBAN>FRQUIQUIWIGWAM947551</IBAN>
|
296
|
+
</Id>
|
297
|
+
</DbtrAcct>
|
298
|
+
<RmtInf>
|
299
|
+
<Ustrd>Final transaction</Ustrd>
|
300
|
+
</RmtInf>
|
301
|
+
</DrctDbtTxInf>
|
302
|
+
</PmtInf>
|
303
|
+
</CstmrDrctDbtInitn>
|
304
|
+
</Document>
|
metadata
CHANGED
@@ -1,73 +1,94 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sepa
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Conan Dalton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
15
14
|
name: builder
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: "0"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
23
20
|
type: :runtime
|
24
|
-
version_requirements: *id001
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: aduki
|
27
21
|
prerelease: false
|
28
|
-
|
29
|
-
requirements:
|
30
|
-
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: aduki
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
31
34
|
type: :runtime
|
32
|
-
version_requirements: *id003
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: countries
|
35
35
|
prerelease: false
|
36
|
-
|
37
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: countries
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
38
45
|
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
46
|
+
- !ruby/object:Gem::Version
|
40
47
|
version: 0.9.3
|
41
48
|
type: :runtime
|
42
|
-
version_requirements: *id004
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: rspec
|
45
49
|
prerelease: false
|
46
|
-
|
47
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
48
52
|
- - ~>
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version:
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.9.3
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.9'
|
51
62
|
type: :development
|
52
|
-
version_requirements: *id005
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: rspec_numbering_formatter
|
55
63
|
prerelease: false
|
56
|
-
|
57
|
-
requirements:
|
58
|
-
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.9'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec_numbering_formatter
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
59
76
|
type: :development
|
60
|
-
|
61
|
-
|
62
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: ' Generate ISO20022 XML messages. Implements a subset of pain.008.001.02
|
84
|
+
and pain.008.001.04 CustomerDirectDebitInitiation for now. WARNING: NO WARRANTY,
|
85
|
+
USE AT YOUR OWN RISK AND PERIL. '
|
86
|
+
email:
|
63
87
|
- conan@conandalton.net
|
64
88
|
executables: []
|
65
|
-
|
66
89
|
extensions: []
|
67
|
-
|
68
90
|
extra_rdoc_files: []
|
69
|
-
|
70
|
-
files:
|
91
|
+
files:
|
71
92
|
- .gitignore
|
72
93
|
- .rspec
|
73
94
|
- Gemfile
|
@@ -104,6 +125,7 @@ files:
|
|
104
125
|
- lib/sepa/payments_initiation/pain00800104/purpose_choice.rb
|
105
126
|
- lib/sepa/payments_initiation/pain00800104/regulatory_authority.rb
|
106
127
|
- lib/sepa/payments_initiation/pain00800104/regulatory_reporting.rb
|
128
|
+
- lib/sepa/payments_initiation/pain00800104/remittance_information_choice.rb
|
107
129
|
- lib/sepa/payments_initiation/pain00800104/service_level_choice.rb
|
108
130
|
- lib/sepa/payments_initiation/pain00800104/structured_regulatory_reporting.rb
|
109
131
|
- lib/sepa/payments_initiation/pain00800104/tax_authorisation.rb
|
@@ -120,38 +142,42 @@ files:
|
|
120
142
|
- spec/sepa/direct_debit_properties.yml
|
121
143
|
- spec/sepa/expected-simple.xml
|
122
144
|
- spec/sepa/expected_customer_direct_debit_initiation_v02.xml
|
145
|
+
- spec/sepa/expected_customer_direct_debit_initiation_v02_with_remittance_information.xml
|
123
146
|
- spec/sepa/expected_customer_direct_debit_initiation_v04.xml
|
124
147
|
- spec/sepa/expected_customer_direct_debit_initiation_v04_with_org_id.xml
|
125
148
|
- spec/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation_spec.rb
|
126
149
|
- spec/spec_helper.rb
|
127
150
|
homepage: https://github.com/conanite/sepa
|
128
|
-
licenses:
|
151
|
+
licenses:
|
129
152
|
- MIT
|
130
153
|
metadata: {}
|
131
|
-
|
132
154
|
post_install_message:
|
133
155
|
rdoc_options: []
|
134
|
-
|
135
|
-
require_paths:
|
156
|
+
require_paths:
|
136
157
|
- lib
|
137
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
-
requirements:
|
139
|
-
-
|
140
|
-
|
141
|
-
|
142
|
-
|
158
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - '>='
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '>='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
143
168
|
requirements: []
|
144
|
-
|
145
169
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
170
|
+
rubygems_version: 2.1.11
|
147
171
|
signing_key:
|
148
172
|
specification_version: 4
|
149
|
-
summary:
|
150
|
-
|
173
|
+
summary: 'pain.008.001.04 and pain.008.001.02 CustomerDirectDebitInitiation ISO20022
|
174
|
+
XML. WARNING: NO WARRANTY, USE AT YOUR OWN RISK AND PERIL.'
|
175
|
+
test_files:
|
151
176
|
- spec/sepa/direct_debit_order_spec.rb
|
152
177
|
- spec/sepa/direct_debit_properties.yml
|
153
178
|
- spec/sepa/expected-simple.xml
|
154
179
|
- spec/sepa/expected_customer_direct_debit_initiation_v02.xml
|
180
|
+
- spec/sepa/expected_customer_direct_debit_initiation_v02_with_remittance_information.xml
|
155
181
|
- spec/sepa/expected_customer_direct_debit_initiation_v04.xml
|
156
182
|
- spec/sepa/expected_customer_direct_debit_initiation_v04_with_org_id.xml
|
157
183
|
- spec/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation_spec.rb
|