worldnet_tps 0.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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rvmrc +1 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +9 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +70 -0
  8. data/Rakefile +6 -0
  9. data/lib/worldnet_tps.rb +12 -0
  10. data/lib/worldnet_tps/const.rb +42 -0
  11. data/lib/worldnet_tps/gateway.rb +71 -0
  12. data/lib/worldnet_tps/gateway.xsd +1909 -0
  13. data/lib/worldnet_tps/request/base.rb +107 -0
  14. data/lib/worldnet_tps/request/payment.rb +89 -0
  15. data/lib/worldnet_tps/request/refund.rb +59 -0
  16. data/lib/worldnet_tps/request/secure_card/registration.rb +71 -0
  17. data/lib/worldnet_tps/request/secure_card/removal.rb +46 -0
  18. data/lib/worldnet_tps/request/secure_card/search.rb +52 -0
  19. data/lib/worldnet_tps/response/error.rb +18 -0
  20. data/lib/worldnet_tps/response/invalid_hash.rb +21 -0
  21. data/lib/worldnet_tps/response/success.rb +25 -0
  22. data/lib/worldnet_tps/version.rb +3 -0
  23. data/lib/worldnet_tps/ws_object.rb +76 -0
  24. data/lib/worldnet_tps/xsd.rb +27 -0
  25. data/spec/fixtures/vcr_cassettes/payment/credit_card/failed.yml +60 -0
  26. data/spec/fixtures/vcr_cassettes/payment/credit_card/success.yml +59 -0
  27. data/spec/fixtures/vcr_cassettes/payment/secure_card/failed.yml +57 -0
  28. data/spec/fixtures/vcr_cassettes/payment/secure_card/success.yml +56 -0
  29. data/spec/fixtures/vcr_cassettes/refund/order_id/failed.yml +47 -0
  30. data/spec/fixtures/vcr_cassettes/refund/order_id/success.yml +46 -0
  31. data/spec/fixtures/vcr_cassettes/refund/unique_ref/failed.yml +47 -0
  32. data/spec/fixtures/vcr_cassettes/refund/unique_ref/success.yml +46 -0
  33. data/spec/fixtures/vcr_cassettes/secure_card/registration/registrarion_failed.yml +49 -0
  34. data/spec/fixtures/vcr_cassettes/secure_card/registration/registration_failed.yml +49 -0
  35. data/spec/fixtures/vcr_cassettes/secure_card/registration/registration_success.yml +48 -0
  36. data/spec/fixtures/vcr_cassettes/secure_card/registration/update_failed.yml +49 -0
  37. data/spec/fixtures/vcr_cassettes/secure_card/registration/update_success.yml +48 -0
  38. data/spec/fixtures/vcr_cassettes/secure_card/registration/update_success_success.yml +48 -0
  39. data/spec/fixtures/vcr_cassettes/secure_card/removal/failed.yml +45 -0
  40. data/spec/fixtures/vcr_cassettes/secure_card/removal/success.yml +44 -0
  41. data/spec/fixtures/vcr_cassettes/secure_card/search/failed.yml +44 -0
  42. data/spec/fixtures/vcr_cassettes/secure_card/search/success.yml +44 -0
  43. data/spec/gateway_spec.rb +42 -0
  44. data/spec/payment_spec.rb +117 -0
  45. data/spec/refund_spec.rb +95 -0
  46. data/spec/secure_card/registration_spec.rb +103 -0
  47. data/spec/secure_card/removal_spec.rb +57 -0
  48. data/spec/secure_card/search_spec.rb +58 -0
  49. data/spec/spec_helper.rb +58 -0
  50. data/spec/xsd_spec.rb +30 -0
  51. data/worldnet_tps.gemspec +28 -0
  52. metadata +205 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 64dec66c2a2606aa52a7a7dfe0f84c835a37577c
4
+ data.tar.gz: 63ec12b8d6595be24fc5e4374ae03fc4a7c70f2a
5
+ SHA512:
6
+ metadata.gz: 68c5602eace61a58d7bdb0cd3c41485ac24befe9913d1ae408532ce0592734950adbd8426529b4c28298521c0a18f3736f6224dedfec3b561f57acf75cab2f10
7
+ data.tar.gz: a8765de23a15d1528b9001715d7a56dd88f0851b7780171eab32113ef21457a21a482f3e56e3796ddea3ed12e3dab7639f4c9fd9cf7afb951418c86316c81522
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm ruby-2.2.0@worldnet_tps --create
@@ -0,0 +1,6 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.0
5
+
6
+
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in worldnettps.gemspec
4
+ gemspec
5
+ group :test do
6
+ # (MIT) Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
7
+ gem 'vcr'
8
+ gem 'webmock'
9
+ end
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Igor Fedoronchuk
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,70 @@
1
+ # Worldnettps
2
+
3
+ Ruby API client for World Net TPS gateway, http://worldnettps.com/
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'worldnettps'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install worldnet_tps
18
+
19
+ ## Usage
20
+
21
+
22
+ ```ruby
23
+
24
+ gateway = WorldnetTps::Gateway.new(currency: 'USD',
25
+ gateway: :worldnet,
26
+ terminal_id: 6003,
27
+ environment: :sandbox,
28
+ shared_secret: 'sandboxUSD')
29
+
30
+
31
+ card_attributes = {
32
+ card_number: '4000060000000006',
33
+ card_type: 'VISA',
34
+ card_expiry: '1234', #december 2034
35
+ cvv: '111',
36
+ card_holder_name: 'John Doe',
37
+ merchant_ref: 'worldnet_tps.gem'
38
+ }
39
+ opearation = gateway.secure_card_registration(card_attributes)
40
+
41
+ result = operation.update! #or operation.create! for new credit card
42
+
43
+ operation.response.body
44
+ #=> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SECURECARDUPDATERESPONSE><MERCHANTREF>worldnet_tps.gem</MERCHANTREF><CARDREFERENCE>2967539209767734</CARDREFERENCE><DATETIME>15-12-2016:15:03:56:521</DATETIME><HASH>70d9929284120c01075eb19e9e1e9fcc</HASH></SECURECARDUPDATERESPONSE>"
45
+
46
+ operation.request.body
47
+ #=> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<SECURECARDUPDATE>\n <MERCHANTREF>worldnet_tps.gem</MERCHANTREF>\n <TERMINALID>6003</TERMINALID>\n <DATETIME>10-12-2016:12:00:00:000</DATETIME>\n <CARDNUMBER>5001650000000000</CARDNUMBER>\n <CARDEXPIRY>1234</CARDEXPIRY>\n <CARDTYPE>MASTERCARD</CARDTYPE>\n <CARDHOLDERNAME>John Doe</CARDHOLDERNAME>\n <HASH>92b659e02301af239ec925373f9c3bb7</HASH>\n <CVV>111</CVV>\n</SECURECARDUPDATE>\n"
48
+
49
+ ```
50
+
51
+ ## Worldnet TPS Documentation
52
+
53
+ https://docs.worldnettps.com/doku.php?id=developer:integrator_guide
54
+
55
+ TODO:
56
+ - XML Requests with eDCC
57
+ - Dynamic Descriptors
58
+ - Pre-Authorisation
59
+ - Unreferenced Refunds
60
+ - XML validation against XSD schema
61
+
62
+ ## Contributing
63
+
64
+
65
+
66
+ 1. Fork it
67
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
68
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
69
+ 4. Push to the branch (`git push origin my-new-feature`)
70
+ 5. Create new Pull Request
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,12 @@
1
+ require 'worldnet_tps/version'
2
+ require 'active_support'
3
+ require 'active_support/core_ext'
4
+ require 'active_support/core_ext/class/attribute'
5
+ require 'active_support/hash_with_indifferent_access'
6
+ require 'digest/md5'
7
+ require 'worldnet_tps/const'
8
+ require 'worldnet_tps/ws_object'
9
+ require 'worldnet_tps/gateway'
10
+ module WorldnetTps
11
+
12
+ end
@@ -0,0 +1,42 @@
1
+ module WorldnetTps
2
+ module Const
3
+ #TERMINALTYPE Y The type of the terminal:
4
+ TERM_MOTO = 1
5
+ TERM_INTERNET = 2 #- eCommerce
6
+
7
+ #TRANSACTIONTYPE Y Normally:
8
+ TRANS_MOTO = 4 #MOTO (Mail Order/Telephone Order)
9
+ TRANS_INTERNET = 7 #eCommerce
10
+ #Recurring Payment Flagging:
11
+ # Specify that this transaction is recurring.
12
+ # This must be accompanied by the RECURRINGTXNREF field or have special permission granted by the Gateway.
13
+ # Not all processors support this transaction type and consultation with the integration team should be carried out
14
+ # prior to configuring recurring payment flagging.
15
+ TRANS_RECURRING = 2
16
+ #For First Data Latvia terminal MOTO transactions:
17
+ # 4 - Telephone Order
18
+ TRANS_TELEPHONE = 4
19
+ # 9 - Mail Order
20
+ TRANS_MAIL = 9
21
+
22
+ #If sending XID & CAVV from non-WorldNet
23
+ #MPI on an Internet transaction use:
24
+ TRANS_NOT_APPLICABLE = 0
25
+ TRANS_SINGLE = 1
26
+ #TRANS_RECURRING = 2 (already defined)
27
+ TRANS_INSTALLMENT = 3
28
+ TRANS_UNKNOWN = 4
29
+ TRANS_3D_SECURED = 5
30
+ #Secure transaction
31
+
32
+ #•6 - The merchant attempted to authenticate the cardholder,
33
+ # but the cardholder cannot or does not participate in 3D-Secure.
34
+ TRANS_NO_3D_SECURED = 6
35
+ #7 - Transaction when payment data was transmitted using SSL
36
+ TRANS_ENCRYPTED = 7
37
+ #8 - Transaction in the clear, or Non
38
+ TRANS_IN_CLEAR_OR_NON = 8
39
+
40
+ SECURECARD = 'SECURECARD'.freeze
41
+ end
42
+ end
@@ -0,0 +1,71 @@
1
+ require_relative 'request/secure_card/registration'
2
+ require_relative 'request/secure_card/removal'
3
+ require_relative 'request/secure_card/search'
4
+ require_relative 'request/payment'
5
+ require_relative 'request/refund'
6
+
7
+ module WorldnetTps
8
+ class Gateway
9
+
10
+ attr_reader :gateway, :environment, :terminal_id, :shared_secret, :currency
11
+
12
+ PRODUCTION_ENVS = [:production, :live]
13
+
14
+ def initialize(attributes)
15
+ @gateway = attributes.fetch(:gateway)
16
+ @environment = attributes.fetch(:environment)
17
+ @terminal_id = attributes.fetch(:terminal_id)
18
+ @shared_secret = attributes.fetch(:shared_secret)
19
+ @currency = attributes.fetch(:currency)
20
+ end
21
+
22
+ def is_test?
23
+ !is_live?
24
+ end
25
+
26
+ def is_live?
27
+ PRODUCTION_ENVS.include? self.environment
28
+ end
29
+
30
+ def secure_card_removal(merchant_ref, card_reference)
31
+ Request::SecureCard::Removal.new(self, merchant_ref, card_reference)
32
+ end
33
+
34
+ def secure_card_search(merchant_ref)
35
+ Request::SecureCard::Search.new(self, merchant_ref)
36
+ end
37
+
38
+ def secure_card_registration(attributes = {})
39
+ Request::SecureCard::Registration.new(self, attributes)
40
+ end
41
+
42
+ def refund(attributes = {})
43
+ Request::Refund.new(self, attributes)
44
+ end
45
+
46
+ def payment(attributes = {})
47
+ Request::Payment.new(self, attributes)
48
+ end
49
+
50
+ def endpoint
51
+ @endpoint ||= begin
52
+ domain = case gateway.to_s.downcase
53
+ when 'cashflows'
54
+ 'cashflows.worldnettps.com'
55
+ else
56
+ 'payments.worldnettps.com'
57
+ end
58
+ domain = "test#{domain}" if is_test?
59
+ "https://#{domain}"
60
+ end
61
+ end
62
+
63
+ #
64
+ #todo: validate agains xsd
65
+ #
66
+ def ws_url
67
+ "#{self.endpoint}/merchant/xmlpayment"
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,1909 @@
1
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
2
+ <xs:element name="ORDERID">
3
+ <xs:simpleType>
4
+ <xs:restriction base="xs:string">
5
+ <xs:minLength value="1"/>
6
+ <xs:maxLength value="12"/>
7
+ </xs:restriction>
8
+ </xs:simpleType>
9
+ </xs:element>
10
+ <xs:element name="TERMINALID">
11
+ <xs:simpleType>
12
+ <xs:restriction base="xs:string">
13
+ <xs:minLength value="1"/>
14
+ <xs:maxLength value="50"/>
15
+ </xs:restriction>
16
+ </xs:simpleType>
17
+ </xs:element>
18
+ <xs:element name="AMOUNT" type="xs:double"/>
19
+ <xs:element name="DATETIME">
20
+ <xs:simpleType>
21
+ <xs:restriction base="xs:string">
22
+ <xs:minLength value="1"/>
23
+ <xs:maxLength value="50"/>
24
+ </xs:restriction>
25
+ </xs:simpleType>
26
+ </xs:element>
27
+ <xs:element name="TRACKDATA">
28
+ <xs:simpleType>
29
+ <xs:restriction base="xs:string">
30
+ <xs:minLength value="16"/>
31
+ <xs:maxLength value="256"/>
32
+ </xs:restriction>
33
+ </xs:simpleType>
34
+ </xs:element>
35
+ <xs:element name="APPLEPAYLOAD">
36
+ <xs:simpleType>
37
+ <xs:restriction base="xs:string">
38
+ <xs:minLength value="128"/>
39
+ <xs:maxLength value="20480"/>
40
+ </xs:restriction>
41
+ </xs:simpleType>
42
+ </xs:element>
43
+ <xs:element name="ANDROIDPAYLOAD">
44
+ <xs:simpleType>
45
+ <xs:restriction base="xs:string">
46
+ <xs:minLength value="128"/>
47
+ <xs:maxLength value="20480"/>
48
+ </xs:restriction>
49
+ </xs:simpleType>
50
+ </xs:element>
51
+ <xs:element name="CARDNUMBER">
52
+ <xs:simpleType>
53
+ <xs:restriction base="xs:string">
54
+ <xs:minLength value="10"/>
55
+ <xs:maxLength value="40"/>
56
+ </xs:restriction>
57
+ </xs:simpleType>
58
+ </xs:element>
59
+ <xs:element name="ENCRYPTEDTRACK">
60
+ <xs:simpleType>
61
+ <xs:restriction base="xs:string">
62
+ <xs:minLength value="32"/>
63
+ </xs:restriction>
64
+ </xs:simpleType>
65
+ </xs:element>
66
+ <xs:element name="KSN">
67
+ <xs:simpleType>
68
+ <xs:restriction base="xs:string">
69
+ <xs:minLength value="5"/>
70
+ <xs:maxLength value="20"/>
71
+ </xs:restriction>
72
+ </xs:simpleType>
73
+ </xs:element>
74
+ <xs:element name="FORMATID">
75
+ <xs:simpleType>
76
+ <xs:restriction base="xs:integer">
77
+ <xs:enumeration value="1"/>
78
+ <xs:enumeration value="3"/>
79
+ <xs:enumeration value="7"/>
80
+ </xs:restriction>
81
+ </xs:simpleType>
82
+ </xs:element>
83
+ <xs:element name="CARDTYPE">
84
+ <xs:simpleType>
85
+ <xs:restriction base="xs:string">
86
+ <xs:minLength value="1"/>
87
+ <xs:maxLength value="50"/>
88
+ </xs:restriction>
89
+ </xs:simpleType>
90
+ </xs:element>
91
+ <xs:element name="CARDEXPIRY">
92
+ <xs:simpleType>
93
+ <xs:restriction base="xs:string">
94
+ <xs:length value="4"/>
95
+ </xs:restriction>
96
+ </xs:simpleType>
97
+ </xs:element>
98
+ <xs:element name="CARDHOLDERNAME">
99
+ <xs:simpleType>
100
+ <xs:restriction base="xs:string">
101
+ <xs:minLength value="0"/>
102
+ <xs:maxLength value="50"/>
103
+ </xs:restriction>
104
+ </xs:simpleType>
105
+ </xs:element>
106
+ <xs:element name="HASH">
107
+ <xs:simpleType>
108
+ <xs:restriction base="xs:string">
109
+ <xs:length value="32"/>
110
+ </xs:restriction>
111
+ </xs:simpleType>
112
+ </xs:element>
113
+ <xs:element name="CURRENCY">
114
+ <xs:simpleType>
115
+ <xs:restriction base="xs:string">
116
+ <xs:length value="3"/>
117
+ </xs:restriction>
118
+ </xs:simpleType>
119
+ </xs:element>
120
+ <xs:element name="AUTOREADY">
121
+ <xs:simpleType>
122
+ <xs:restriction base="xs:string">
123
+ <xs:minLength value="1"/>
124
+ <xs:maxLength value="1"/>
125
+ <xs:enumeration value="Y"/>
126
+ <xs:enumeration value="N"/>
127
+ <xs:enumeration value="C"/>
128
+ </xs:restriction>
129
+ </xs:simpleType>
130
+ </xs:element>
131
+ <xs:element name="EMAIL">
132
+ <xs:simpleType>
133
+ <xs:restriction base="xs:string">
134
+ <xs:minLength value="1"/>
135
+ <xs:maxLength value="50"/>
136
+ </xs:restriction>
137
+ </xs:simpleType>
138
+ </xs:element>
139
+ <xs:element name="CVV">
140
+ <xs:simpleType>
141
+ <xs:restriction base="xs:string">
142
+ <xs:minLength value="3"/>
143
+ <xs:maxLength value="4"/>
144
+ </xs:restriction>
145
+ </xs:simpleType>
146
+ </xs:element>
147
+ <xs:element name="ISSUENO">
148
+ <xs:simpleType>
149
+ <xs:restriction base="xs:string">
150
+ <xs:minLength value="1"/>
151
+ <xs:maxLength value="2"/>
152
+ </xs:restriction>
153
+ </xs:simpleType>
154
+ </xs:element>
155
+ <xs:element name="ADDRESS1">
156
+ <xs:simpleType>
157
+ <xs:restriction base="xs:string">
158
+ <xs:minLength value="0"/>
159
+ <xs:maxLength value="50"/>
160
+ </xs:restriction>
161
+ </xs:simpleType>
162
+ </xs:element>
163
+ <xs:element name="ADDRESS2">
164
+ <xs:simpleType>
165
+ <xs:restriction base="xs:string">
166
+ <xs:minLength value="0"/>
167
+ <xs:maxLength value="50"/>
168
+ </xs:restriction>
169
+ </xs:simpleType>
170
+ </xs:element>
171
+ <xs:element name="POSTCODE">
172
+ <xs:simpleType>
173
+ <xs:restriction base="xs:string">
174
+ <xs:minLength value="1"/>
175
+ <xs:maxLength value="50"/>
176
+ </xs:restriction>
177
+ </xs:simpleType>
178
+ </xs:element>
179
+ <xs:element name="BILLTOFIRSTNAME">
180
+ <xs:simpleType>
181
+ <xs:restriction base="xs:string">
182
+ <xs:minLength value="1"/>
183
+ <xs:maxLength value="60"/>
184
+ </xs:restriction>
185
+ </xs:simpleType>
186
+ </xs:element>
187
+ <xs:element name="BILLTOLASTNAME">
188
+ <xs:simpleType>
189
+ <xs:restriction base="xs:string">
190
+ <xs:minLength value="1"/>
191
+ <xs:maxLength value="60"/>
192
+ </xs:restriction>
193
+ </xs:simpleType>
194
+ </xs:element>
195
+ <xs:element name="AVSONLY">
196
+ <xs:simpleType>
197
+ <xs:restriction base="xs:string">
198
+ <xs:minLength value="1"/>
199
+ <xs:maxLength value="1"/>
200
+ <xs:enumeration value="Y"/>
201
+ <xs:enumeration value="N"/>
202
+ </xs:restriction>
203
+ </xs:simpleType>
204
+ </xs:element>
205
+ <xs:element name="DESCRIPTION">
206
+ <xs:simpleType>
207
+ <xs:restriction base="xs:string">
208
+ <xs:minLength value="1"/>
209
+ <xs:maxLength value="1024"/>
210
+ </xs:restriction>
211
+ </xs:simpleType>
212
+ </xs:element>
213
+ <xs:element name="XID">
214
+ <xs:simpleType>
215
+ <xs:restriction base="xs:string">
216
+ <xs:minLength value="1"/>
217
+ <xs:maxLength value="50"/>
218
+ </xs:restriction>
219
+ </xs:simpleType>
220
+ </xs:element>
221
+ <xs:element name="CAVV">
222
+ <xs:simpleType>
223
+ <xs:restriction base="xs:string">
224
+ <xs:minLength value="1"/>
225
+ <xs:maxLength value="50"/>
226
+ </xs:restriction>
227
+ </xs:simpleType>
228
+ </xs:element>
229
+ <xs:element name="MPIREF">
230
+ <xs:simpleType>
231
+ <xs:restriction base="xs:string">
232
+ <xs:minLength value="20"/>
233
+ <xs:maxLength value="20"/>
234
+ </xs:restriction>
235
+ </xs:simpleType>
236
+ </xs:element>
237
+ <xs:element name="MERCHANTREF">
238
+ <xs:simpleType>
239
+ <xs:restriction base="xs:string">
240
+ <xs:minLength value="1"/>
241
+ <xs:maxLength value="48"/>
242
+ </xs:restriction>
243
+ </xs:simpleType>
244
+ </xs:element>
245
+ <xs:element name="CARDREFERENCE">
246
+ <xs:simpleType>
247
+ <xs:restriction base="xs:string">
248
+ <xs:minLength value="0"/>
249
+ <xs:maxLength value="40"/>
250
+ </xs:restriction>
251
+ </xs:simpleType>
252
+ </xs:element>
253
+ <xs:element name="MOBILENUMBER">
254
+ <xs:simpleType>
255
+ <xs:restriction base="xs:string">
256
+ <xs:minLength value="10"/>
257
+ <xs:maxLength value="20"/>
258
+ </xs:restriction>
259
+ </xs:simpleType>
260
+ </xs:element>
261
+ <!--
262
+ The type of terminal used for the transaction
263
+ 1 = MOTO (Mail Order/Telephone Order)
264
+ 2 = Internet (Card Not Present automatic transaction
265
+ 3 = Card Holder Present
266
+ -->
267
+ <xs:element name="TERMINALTYPE">
268
+ <xs:simpleType>
269
+ <xs:restriction base="xs:int">
270
+ <xs:enumeration value="1"/>
271
+ <xs:enumeration value="2"/>
272
+ <xs:enumeration value="3"/>
273
+ </xs:restriction>
274
+ </xs:simpleType>
275
+ </xs:element>
276
+ <!--
277
+ The transaction type
278
+ 0 = not applicable
279
+ 1 = Single transaction
280
+ 2 = Recurring transaction
281
+ 3 = Installment payment
282
+ 4 = MoTo (To) transaction
283
+ 5 = Fully authenticated transaction 3D Secure txn
284
+ 6 = The merchant attempted to authenticate the cardholder, but the cardholder cannot or does not participate in 3D-Secure.
285
+ 7 = Transaction when payment data was transmitted using SSL encryption, or Channel Encrypted
286
+ 8 = Transaction in the clear, or Non Secure
287
+ 9 = Mo transaction
288
+
289
+ -->
290
+ <xs:element name="TRANSACTIONTYPE">
291
+ <xs:simpleType>
292
+ <xs:restriction base="xs:int">
293
+ <xs:enumeration value="0"/>
294
+ <xs:enumeration value="1"/>
295
+ <xs:enumeration value="2"/>
296
+ <xs:enumeration value="3"/>
297
+ <xs:enumeration value="4"/>
298
+ <xs:enumeration value="5"/>
299
+ <xs:enumeration value="6"/>
300
+ <xs:enumeration value="7"/>
301
+ <xs:enumeration value="8"/>
302
+ <xs:enumeration value="9"/>
303
+ </xs:restriction>
304
+ </xs:simpleType>
305
+ </xs:element>
306
+ <xs:element name="DEVICEID">
307
+ <xs:simpleType>
308
+ <xs:restriction base="xs:string">
309
+ <xs:minLength value="1"/>
310
+ <xs:maxLength value="64"/>
311
+ </xs:restriction>
312
+ </xs:simpleType>
313
+ </xs:element>
314
+ <xs:element name="PHONE">
315
+ <xs:simpleType>
316
+ <xs:restriction base="xs:string">
317
+ <xs:minLength value="6"/>
318
+ <xs:maxLength value="20"/>
319
+ </xs:restriction>
320
+ </xs:simpleType>
321
+ </xs:element>
322
+ <xs:element name="COUNTRY">
323
+ <xs:simpleType>
324
+ <xs:restriction base="xs:string">
325
+ <xs:minLength value="2"/>
326
+ <xs:maxLength value="2"/>
327
+ </xs:restriction>
328
+ </xs:simpleType>
329
+ </xs:element>
330
+ <xs:element name="CITY">
331
+ <xs:simpleType>
332
+ <xs:restriction base="xs:string">
333
+ <xs:minLength value="1"/>
334
+ <xs:maxLength value="128"/>
335
+ </xs:restriction>
336
+ </xs:simpleType>
337
+ </xs:element>
338
+ <xs:element name="REGION">
339
+ <xs:simpleType>
340
+ <xs:restriction base="xs:string">
341
+ <xs:minLength value="1"/>
342
+ <xs:maxLength value="128"/>
343
+ </xs:restriction>
344
+ </xs:simpleType>
345
+ </xs:element>
346
+ <xs:element name="IPADDRESS">
347
+ <xs:simpleType>
348
+ <xs:restriction base="xs:string">
349
+ <xs:minLength value="7"/>
350
+ <xs:maxLength value="15"/>
351
+ </xs:restriction>
352
+ </xs:simpleType>
353
+ </xs:element>
354
+ <xs:simpleType name="UID">
355
+ <xs:restriction base="xs:string">
356
+ <xs:minLength value="10"/>
357
+ <xs:maxLength value="10"/>
358
+ </xs:restriction>
359
+ </xs:simpleType>
360
+ <xs:element name="UNIQUEREF" type="UID"/>
361
+ <xs:element name="SIGNATURE">
362
+ <xs:simpleType>
363
+ <xs:restriction base="xs:string">
364
+ <xs:minLength value="4"/>
365
+ <xs:maxLength value="1600"/>
366
+ </xs:restriction>
367
+ </xs:simpleType>
368
+ </xs:element>
369
+ <xs:element name="CUSTOMFIELD">
370
+ <xs:complexType>
371
+ <xs:simpleContent>
372
+ <xs:extension base="xs:string">
373
+ <xs:attribute name="NAME" type="xs:string"/>
374
+ </xs:extension>
375
+ </xs:simpleContent>
376
+ </xs:complexType>
377
+ </xs:element>
378
+ <xs:element name="PAYMENT">
379
+ <xs:complexType>
380
+ <xs:sequence>
381
+ <xs:element ref="ORDERID"/>
382
+ <xs:element ref="TERMINALID"/>
383
+ <xs:element ref="AMOUNT"/>
384
+ <xs:element ref="DATETIME"/>
385
+ <xs:choice minOccurs="1" maxOccurs="1">
386
+ <xs:element ref="TRACKDATA"/>
387
+ <xs:element ref="CARDNUMBER"/>
388
+ <xs:element ref="DUKPTCARDDETAILS"/>
389
+ <xs:element ref="APPLEPAYLOAD"/>
390
+ <xs:element ref="ANDROIDPAYLOAD"/>
391
+ </xs:choice>
392
+ <xs:element ref="CARDTYPE"/>
393
+ <xs:element ref="CARDEXPIRY" minOccurs="0"/>
394
+ <xs:element ref="CARDHOLDERNAME" minOccurs="0"/>
395
+ <xs:element ref="HASH"/>
396
+ <xs:element ref="CURRENCY"/>
397
+ <xs:element ref="FOREIGNCURRENCYINFORMATION" minOccurs="0"/>
398
+ <xs:element ref="TERMINALTYPE"/>
399
+ <xs:element ref="TRANSACTIONTYPE"/>
400
+ <xs:element ref="AUTOREADY" minOccurs="0"/>
401
+ <xs:element ref="EMAIL" minOccurs="0"/>
402
+ <xs:element ref="CVV" minOccurs="0"/>
403
+ <xs:element ref="ISSUENO" minOccurs="0"/>
404
+ <xs:element ref="ADDRESS1" minOccurs="0"/>
405
+ <xs:element ref="ADDRESS2" minOccurs="0"/>
406
+ <xs:element ref="POSTCODE" minOccurs="0"/>
407
+ <xs:element ref="BILLTOFIRSTNAME" minOccurs="0" maxOccurs="1"/>
408
+ <xs:element ref="BILLTOLASTNAME" minOccurs="0" maxOccurs="1"/>
409
+ <xs:element ref="AVSONLY" minOccurs="0"/>
410
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
411
+ <xs:element ref="XID" minOccurs="0"/>
412
+ <xs:element ref="CAVV" minOccurs="0"/>
413
+ <xs:element ref="MPIREF" minOccurs="0"/>
414
+ <xs:element ref="MOBILENUMBER" minOccurs="0"/>
415
+ <xs:element ref="DEVICEID" minOccurs="0"/>
416
+ <xs:element ref="PHONE" minOccurs="0"/>
417
+ <xs:element ref="CITY" minOccurs="0"/>
418
+ <xs:element ref="REGION" minOccurs="0"/>
419
+ <xs:element ref="COUNTRY" minOccurs="0"/>
420
+ <xs:element ref="IPADDRESS" minOccurs="0"/>
421
+ <xs:element ref="SIGNATURE" minOccurs="0"/>
422
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
423
+ <xs:element name="RECURRINGTXNREF" type="UID" minOccurs="0" maxOccurs="1"/>
424
+ </xs:sequence>
425
+ </xs:complexType>
426
+ </xs:element>
427
+ <xs:element name="RESPONSECODE">
428
+ <xs:simpleType>
429
+ <xs:restriction base="xs:string">
430
+ <xs:minLength value="1"/>
431
+ <xs:maxLength value="2"/>
432
+ </xs:restriction>
433
+ </xs:simpleType>
434
+ </xs:element>
435
+ <xs:element name="RESPONSETEXT">
436
+ <xs:simpleType>
437
+ <xs:restriction base="xs:string">
438
+ <xs:minLength value="1"/>
439
+ <xs:maxLength value="30"/>
440
+ </xs:restriction>
441
+ </xs:simpleType>
442
+ </xs:element>
443
+ <xs:element name="APPROVALCODE">
444
+ <xs:simpleType>
445
+ <xs:restriction base="xs:string">
446
+ <xs:minLength value="0"/>
447
+ <xs:maxLength value="20"/>
448
+ </xs:restriction>
449
+ </xs:simpleType>
450
+ </xs:element>
451
+ <xs:element name="BANKRESPONSECODE">
452
+ <xs:simpleType>
453
+ <xs:restriction base="xs:string">
454
+ <xs:minLength value="1"/>
455
+ <xs:maxLength value="2"/>
456
+ </xs:restriction>
457
+ </xs:simpleType>
458
+ </xs:element>
459
+ <xs:element name="AUTHORIZEDAMOUNT" type="xs:double"/>
460
+ <xs:element name="AVSRESPONSE">
461
+ <xs:simpleType>
462
+ <xs:restriction base="xs:string">
463
+ <xs:minLength value="0"/>
464
+ <xs:maxLength value="10"/>
465
+ </xs:restriction>
466
+ </xs:simpleType>
467
+ </xs:element>
468
+ <xs:element name="CVVRESPONSE">
469
+ <xs:simpleType>
470
+ <xs:restriction base="xs:string">
471
+ <xs:minLength value="0"/>
472
+ <xs:maxLength value="10"/>
473
+ </xs:restriction>
474
+ </xs:simpleType>
475
+ </xs:element>
476
+ <xs:element name="PAYMENTRESPONSE">
477
+ <xs:complexType>
478
+ <xs:sequence>
479
+ <xs:element ref="UNIQUEREF" minOccurs="0" maxOccurs="1"/>
480
+ <xs:element ref="RESPONSECODE"/>
481
+ <xs:element ref="RESPONSETEXT"/>
482
+ <xs:element ref="APPROVALCODE"/>
483
+ <xs:element ref="BANKRESPONSECODE" minOccurs="0"/>
484
+ <xs:element ref="AUTHORIZEDAMOUNT" minOccurs="0"/>
485
+ <xs:element ref="DATETIME"/>
486
+ <xs:element ref="AVSRESPONSE" minOccurs="0"/>
487
+ <xs:element ref="CVVRESPONSE" minOccurs="0"/>
488
+ <xs:element ref="PROCESSINGTERMINAL" minOccurs="0" maxOccurs="1"/>
489
+ <xs:element ref="HASH"/>
490
+ </xs:sequence>
491
+ </xs:complexType>
492
+ </xs:element>
493
+ <xs:element name="ERRORSTRING">
494
+ <xs:simpleType>
495
+ <xs:restriction base="xs:string">
496
+ <xs:minLength value="0"/>
497
+ <xs:maxLength value="1024"/>
498
+ </xs:restriction>
499
+ </xs:simpleType>
500
+ </xs:element>
501
+ <xs:element name="ERRORCODE">
502
+ <xs:simpleType>
503
+ <xs:restriction base="xs:string">
504
+ <xs:minLength value="1"/>
505
+ <xs:maxLength value="5"/>
506
+ </xs:restriction>
507
+ </xs:simpleType>
508
+ </xs:element>
509
+ <xs:element name="ERROR">
510
+ <xs:complexType>
511
+ <xs:sequence>
512
+ <xs:element ref="ERRORCODE" minOccurs="0"/>
513
+ <xs:element ref="ERRORSTRING"/>
514
+ </xs:sequence>
515
+ </xs:complexType>
516
+ </xs:element>
517
+ <!-- This should be used to identify who did the refund -->
518
+ <xs:element name="OPERATOR">
519
+ <xs:simpleType>
520
+ <xs:restriction base="xs:string">
521
+ <xs:minLength value="0"/>
522
+ <xs:maxLength value="128"/>
523
+ </xs:restriction>
524
+ </xs:simpleType>
525
+ </xs:element>
526
+ <xs:element name="REASON">
527
+ <xs:simpleType>
528
+ <xs:restriction base="xs:string">
529
+ <xs:minLength value="0"/>
530
+ <xs:maxLength value="256"/>
531
+ </xs:restriction>
532
+ </xs:simpleType>
533
+ </xs:element>
534
+ <xs:element name="PAREFERENCENUMBER">
535
+ <xs:simpleType>
536
+ <xs:restriction base="xs:string">
537
+ <xs:minLength value="0"/>
538
+ <xs:maxLength value="64"/>
539
+ </xs:restriction>
540
+ </xs:simpleType>
541
+ </xs:element>
542
+ <xs:element name="REFUND">
543
+ <xs:complexType>
544
+ <xs:sequence>
545
+ <xs:choice minOccurs="1" maxOccurs="1">
546
+ <xs:element ref="UNIQUEREF"/>
547
+ <xs:element ref="ORDERID"/>
548
+ </xs:choice>
549
+ <xs:element ref="TERMINALID"/>
550
+ <xs:element ref="AMOUNT"/>
551
+ <xs:element ref="DATETIME"/>
552
+ <xs:element ref="HASH"/>
553
+ <xs:element ref="OPERATOR"/>
554
+ <xs:element ref="REASON"/>
555
+ <xs:element ref="AUTOREADY" minOccurs="0"/>
556
+ </xs:sequence>
557
+ </xs:complexType>
558
+ </xs:element>
559
+ <xs:element name="REFUNDRESPONSE">
560
+ <xs:complexType>
561
+ <xs:sequence>
562
+ <xs:element ref="RESPONSECODE"/>
563
+ <xs:element ref="RESPONSETEXT"/>
564
+ <xs:choice minOccurs="1" maxOccurs="1">
565
+ <xs:element ref="UNIQUEREF"/>
566
+ <xs:element ref="ORDERID"/>
567
+ </xs:choice>
568
+ <xs:element ref="DATETIME"/>
569
+ <xs:element ref="PROCESSINGTERMINAL" minOccurs="0" maxOccurs="1"/>
570
+ <xs:element ref="HASH"/>
571
+ </xs:sequence>
572
+ </xs:complexType>
573
+ </xs:element>
574
+ <xs:element name="CARDBIN">
575
+ <xs:simpleType>
576
+ <xs:restriction base="xs:string">
577
+ <xs:minLength value="6"/>
578
+ <xs:maxLength value="12"/>
579
+ </xs:restriction>
580
+ </xs:simpleType>
581
+ </xs:element>
582
+ <xs:element name="BASEAMOUNT" type="xs:double"/>
583
+ <xs:element name="GETCARDCURRENCYRATE">
584
+ <xs:complexType>
585
+ <xs:sequence>
586
+ <xs:element ref="TERMINALID"/>
587
+ <xs:element ref="CARDBIN"/>
588
+ <xs:element ref="DATETIME"/>
589
+ <xs:element ref="BASEAMOUNT" minOccurs="0"/>
590
+ <xs:element ref="HASH"/>
591
+ </xs:sequence>
592
+ </xs:complexType>
593
+ </xs:element>
594
+ <xs:element name="TERMINALCURRENCY">
595
+ <xs:simpleType>
596
+ <xs:restriction base="xs:string">
597
+ <xs:minLength value="3"/>
598
+ <xs:maxLength value="3"/>
599
+ </xs:restriction>
600
+ </xs:simpleType>
601
+ </xs:element>
602
+ <xs:element name="CARDCURRENCY">
603
+ <xs:simpleType>
604
+ <xs:restriction base="xs:string">
605
+ <xs:minLength value="3"/>
606
+ <xs:maxLength value="3"/>
607
+ </xs:restriction>
608
+ </xs:simpleType>
609
+ </xs:element>
610
+ <xs:element name="CONVERSIONRATE" type="xs:double"/>
611
+ <xs:element name="EXCHANGERATESOURCENAME">
612
+ <xs:simpleType>
613
+ <xs:restriction base="xs:string">
614
+ <xs:minLength value="0"/>
615
+ <xs:maxLength value="50"/>
616
+ </xs:restriction>
617
+ </xs:simpleType>
618
+ </xs:element>
619
+ <xs:element name="MARGINRATEPERCENTAGE" type="xs:double"/>
620
+ <xs:element name="COMMISSIONPERCENTAGE" type="xs:double"/>
621
+ <xs:element name="FOREIGNAMOUNT" type="xs:double"/>
622
+ <xs:element name="CARDCURRENCYRATERESPONSE">
623
+ <xs:complexType>
624
+ <xs:sequence>
625
+ <xs:element ref="TERMINALCURRENCY"/>
626
+ <xs:element ref="CARDCURRENCY"/>
627
+ <xs:element ref="CONVERSIONRATE"/>
628
+ <xs:element ref="DATETIME"/>
629
+ <xs:element ref="EXCHANGERATESOURCENAME"/>
630
+ <xs:element ref="MARGINRATEPERCENTAGE"/>
631
+ <xs:element ref="COMMISSIONPERCENTAGE"/>
632
+ <xs:element ref="FOREIGNAMOUNT" minOccurs="0"/>
633
+ <xs:element ref="HASH"/>
634
+ </xs:sequence>
635
+ </xs:complexType>
636
+ </xs:element>
637
+ <xs:element name="CARDAMOUNT" type="xs:double"/>
638
+ <xs:element name="FOREIGNCURRENCYINFORMATION">
639
+ <xs:complexType>
640
+ <xs:sequence>
641
+ <xs:element ref="CARDCURRENCY"/>
642
+ <xs:element ref="CARDAMOUNT"/>
643
+ <xs:element ref="CONVERSIONRATE"/>
644
+ </xs:sequence>
645
+ </xs:complexType>
646
+ </xs:element>
647
+ <xs:element name="DUKPTCARDDETAILS">
648
+ <xs:complexType>
649
+ <xs:sequence>
650
+ <xs:element ref="ENCRYPTEDTRACK"/>
651
+ <xs:element ref="KSN"/>
652
+ <xs:element ref="FORMATID"/>
653
+ </xs:sequence>
654
+ </xs:complexType>
655
+ </xs:element>
656
+ <xs:element name="PREAUTH">
657
+ <xs:complexType>
658
+ <xs:sequence>
659
+ <xs:element ref="ORDERID"/>
660
+ <xs:element ref="TERMINALID"/>
661
+ <xs:element ref="AMOUNT"/>
662
+ <xs:element ref="DATETIME"/>
663
+ <xs:choice>
664
+ <xs:element ref="CARDNUMBER"/>
665
+ </xs:choice>
666
+ <xs:element ref="CARDTYPE"/>
667
+ <xs:element ref="CARDEXPIRY" minOccurs="0"/>
668
+ <xs:element ref="CARDHOLDERNAME" minOccurs="0"/>
669
+ <xs:element ref="HASH"/>
670
+ <xs:element ref="CURRENCY"/>
671
+ <xs:element ref="FOREIGNCURRENCYINFORMATION" minOccurs="0"/>
672
+ <xs:element ref="TERMINALTYPE"/>
673
+ <xs:element ref="TRANSACTIONTYPE"/>
674
+ <xs:element ref="EMAIL" minOccurs="0"/>
675
+ <xs:element ref="CVV" minOccurs="0"/>
676
+ <xs:element ref="ISSUENO" minOccurs="0"/>
677
+ <xs:element ref="ADDRESS1" minOccurs="0"/>
678
+ <xs:element ref="ADDRESS2" minOccurs="0"/>
679
+ <xs:element ref="POSTCODE" minOccurs="0"/>
680
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
681
+ <xs:element ref="CITY" minOccurs="0"/>
682
+ <xs:element ref="REGION" minOccurs="0"/>
683
+ <xs:element ref="COUNTRY" minOccurs="0"/>
684
+ <xs:element ref="IPADDRESS" minOccurs="0"/>
685
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
686
+ <xs:element name="RECURRINGTXNREF" type="UID" minOccurs="0" maxOccurs="1"/>
687
+ </xs:sequence>
688
+ </xs:complexType>
689
+ </xs:element>
690
+ <xs:element name="PREAUTHRESPONSE">
691
+ <xs:complexType>
692
+ <xs:sequence>
693
+ <xs:element ref="UNIQUEREF" minOccurs="0" maxOccurs="1"/>
694
+ <xs:element ref="RESPONSECODE"/>
695
+ <xs:element ref="RESPONSETEXT"/>
696
+ <xs:element ref="BANKRESPONSECODE" minOccurs="0"/>
697
+ <xs:element ref="APPROVALCODE"/>
698
+ <xs:element ref="DATETIME"/>
699
+ <xs:element ref="AVSRESPONSE" minOccurs="0"/>
700
+ <xs:element ref="CVVRESPONSE" minOccurs="0"/>
701
+ <xs:element ref="PROCESSINGTERMINAL" minOccurs="0" maxOccurs="1"/>
702
+ <xs:element ref="HASH"/>
703
+ </xs:sequence>
704
+ </xs:complexType>
705
+ </xs:element>
706
+ <xs:element name="PREAUTHCOMPLETION">
707
+ <xs:complexType>
708
+ <xs:sequence>
709
+ <xs:choice minOccurs="1" maxOccurs="1">
710
+ <xs:element ref="UNIQUEREF"/>
711
+ <xs:element ref="ORDERID"/>
712
+ </xs:choice>
713
+ <xs:element ref="TERMINALID"/>
714
+ <xs:element ref="AMOUNT"/>
715
+ <xs:element ref="FOREIGNCURRENCYINFORMATION" minOccurs="0"/>
716
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
717
+ <xs:element ref="DATETIME"/>
718
+ <xs:element ref="CVV" minOccurs="0"/>
719
+ <xs:element ref="HASH"/>
720
+ </xs:sequence>
721
+ </xs:complexType>
722
+ </xs:element>
723
+ <xs:element name="PREAUTHCOMPLETIONRESPONSE">
724
+ <xs:complexType>
725
+ <xs:sequence>
726
+ <xs:element ref="UNIQUEREF" minOccurs="0" maxOccurs="1"/>
727
+ <xs:element ref="RESPONSECODE"/>
728
+ <xs:element ref="RESPONSETEXT"/>
729
+ <xs:element ref="APPROVALCODE"/>
730
+ <xs:element ref="DATETIME"/>
731
+ <xs:element ref="AVSRESPONSE" minOccurs="0"/>
732
+ <xs:element ref="CVVRESPONSE" minOccurs="0"/>
733
+ <xs:element ref="PROCESSINGTERMINAL" minOccurs="0" maxOccurs="1"/>
734
+ <xs:element ref="HASH"/>
735
+ </xs:sequence>
736
+ </xs:complexType>
737
+ </xs:element>
738
+ <xs:element name="DONTCHECKSECURITY">
739
+ <xs:simpleType>
740
+ <xs:restriction base="xs:string">
741
+ <xs:minLength value="1"/>
742
+ <xs:maxLength value="1"/>
743
+ <xs:enumeration value="Y"/>
744
+ <xs:enumeration value="N"/>
745
+ </xs:restriction>
746
+ </xs:simpleType>
747
+ </xs:element>
748
+ <xs:element name="SECURECARDREGISTRATION">
749
+ <xs:complexType>
750
+ <xs:sequence>
751
+ <xs:element ref="MERCHANTREF"/>
752
+ <xs:element ref="TERMINALID"/>
753
+ <xs:element ref="DATETIME"/>
754
+ <xs:element ref="CARDNUMBER"/>
755
+ <xs:element ref="CARDEXPIRY"/>
756
+ <xs:element ref="CARDTYPE"/>
757
+ <xs:element ref="CARDHOLDERNAME"/>
758
+ <xs:element ref="HASH"/>
759
+ <xs:element ref="DONTCHECKSECURITY" minOccurs="0"/>
760
+ <xs:element ref="CVV" minOccurs="0"/>
761
+ <xs:element ref="ISSUENO" minOccurs="0"/>
762
+ <xs:element ref="PERMITTEDTERMINALS" minOccurs="0" maxOccurs="1"/>
763
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="3"/>
764
+ </xs:sequence>
765
+ </xs:complexType>
766
+ </xs:element>
767
+ <xs:element name="SECURECARDREGISTRATIONRESPONSE">
768
+ <xs:complexType>
769
+ <xs:sequence>
770
+ <xs:element ref="MERCHANTREF"/>
771
+ <xs:element ref="CARDREFERENCE"/>
772
+ <xs:element ref="DATETIME"/>
773
+ <xs:element ref="HASH"/>
774
+ </xs:sequence>
775
+ </xs:complexType>
776
+ </xs:element>
777
+ <xs:element name="SECURECARDREMOVAL">
778
+ <xs:complexType>
779
+ <xs:sequence>
780
+ <xs:element ref="MERCHANTREF"/>
781
+ <xs:element ref="CARDREFERENCE"/>
782
+ <xs:element ref="TERMINALID"/>
783
+ <xs:element ref="DATETIME"/>
784
+ <xs:element ref="HASH"/>
785
+ </xs:sequence>
786
+ </xs:complexType>
787
+ </xs:element>
788
+ <xs:element name="SECURECARDREMOVALRESPONSE">
789
+ <xs:complexType>
790
+ <xs:sequence>
791
+ <xs:element ref="MERCHANTREF"/>
792
+ <xs:element ref="DATETIME"/>
793
+ <xs:element ref="HASH"/>
794
+ </xs:sequence>
795
+ </xs:complexType>
796
+ </xs:element>
797
+ <xs:element name="SECURECARDUPDATE">
798
+ <xs:complexType>
799
+ <xs:sequence>
800
+ <xs:element ref="MERCHANTREF"/>
801
+ <xs:element ref="TERMINALID"/>
802
+ <xs:element ref="DATETIME"/>
803
+ <xs:element ref="CARDNUMBER" minOccurs="0"/>
804
+ <xs:element ref="CARDEXPIRY" minOccurs="0"/>
805
+ <xs:element ref="CARDTYPE"/>
806
+ <xs:element ref="CARDHOLDERNAME" minOccurs="0"/>
807
+ <xs:element ref="HASH"/>
808
+ <xs:element ref="DONTCHECKSECURITY" minOccurs="0"/>
809
+ <xs:element ref="CVV" minOccurs="0"/>
810
+ <xs:element ref="ISSUENO" minOccurs="0"/>
811
+ <xs:element ref="PERMITTEDTERMINALS" minOccurs="0" maxOccurs="1"/>
812
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="3"/>
813
+ </xs:sequence>
814
+ </xs:complexType>
815
+ </xs:element>
816
+ <xs:element name="SECURECARDUPDATERESPONSE">
817
+ <xs:complexType>
818
+ <xs:sequence>
819
+ <xs:element ref="MERCHANTREF"/>
820
+ <xs:element ref="CARDREFERENCE"/>
821
+ <xs:element ref="DATETIME"/>
822
+ <xs:element ref="HASH"/>
823
+ </xs:sequence>
824
+ </xs:complexType>
825
+ </xs:element>
826
+ <xs:element name="SECURECARDSEARCH">
827
+ <xs:complexType>
828
+ <xs:sequence>
829
+ <xs:element ref="MERCHANTREF"/>
830
+ <xs:element ref="TERMINALID"/>
831
+ <xs:element ref="PERMITTEDTERMINALSREQUIRED" minOccurs="0"/>
832
+ <xs:element ref="DATETIME"/>
833
+ <xs:element ref="HASH"/>
834
+ </xs:sequence>
835
+ </xs:complexType>
836
+ </xs:element>
837
+ <xs:element name="SECURECARDSEARCHRESPONSE">
838
+ <xs:complexType>
839
+ <xs:sequence>
840
+ <xs:element ref="MERCHANTREF"/>
841
+ <xs:element ref="CARDREFERENCE"/>
842
+ <xs:element ref="CARDTYPE"/>
843
+ <xs:element ref="CARDEXPIRY"/>
844
+ <xs:element ref="CARDHOLDERNAME"/>
845
+ <xs:element ref="PERMITTEDTERMINALS" minOccurs="0" maxOccurs="1"/>
846
+ <xs:element ref="DATETIME"/>
847
+ <xs:element ref="HASH"/>
848
+ </xs:sequence>
849
+ </xs:complexType>
850
+ </xs:element>
851
+ <xs:element name="NAME">
852
+ <xs:simpleType>
853
+ <xs:restriction base="xs:string">
854
+ <xs:minLength value="0"/>
855
+ <xs:maxLength value="256"/>
856
+ </xs:restriction>
857
+ </xs:simpleType>
858
+ </xs:element>
859
+ <xs:element name="PERIODTYPE">
860
+ <xs:simpleType>
861
+ <xs:restriction base="xs:string">
862
+ <xs:enumeration value="DAILY"/>
863
+ <xs:enumeration value="WEEKLY"/>
864
+ <xs:enumeration value="FORTNIGHTLY"/>
865
+ <xs:enumeration value="MONTHLY"/>
866
+ <xs:enumeration value="QUARTERLY"/>
867
+ <xs:enumeration value="YEARLY"/>
868
+ </xs:restriction>
869
+ </xs:simpleType>
870
+ </xs:element>
871
+ <xs:element name="LENGTH" type="xs:unsignedInt"/>
872
+ <xs:element name="SKIPPERIODCOUNT" type="xs:unsignedInt"/>
873
+ <xs:element name="RECURRINGAMOUNT" type="xs:double"/>
874
+ <xs:element name="INITIALAMOUNT" type="xs:double"/>
875
+ <xs:element name="TYPE">
876
+ <xs:simpleType>
877
+ <xs:restriction base="xs:string">
878
+ <xs:enumeration value="AUTOMATIC"/>
879
+ <xs:enumeration value="MANUAL"/>
880
+ <xs:enumeration value="AUTOMATIC (WITHOUT AMOUNTS)"/>
881
+ </xs:restriction>
882
+ </xs:simpleType>
883
+ </xs:element>
884
+ <xs:element name="ONUPDATE">
885
+ <xs:simpleType>
886
+ <xs:restriction base="xs:string">
887
+ <xs:enumeration value="CONTINUE"/>
888
+ <xs:enumeration value="UPDATE"/>
889
+ </xs:restriction>
890
+ </xs:simpleType>
891
+ </xs:element>
892
+ <xs:element name="ONDELETE">
893
+ <xs:simpleType>
894
+ <xs:restriction base="xs:string">
895
+ <xs:enumeration value="CONTINUE"/>
896
+ <xs:enumeration value="CANCEL"/>
897
+ </xs:restriction>
898
+ </xs:simpleType>
899
+ </xs:element>
900
+ <xs:element name="ADDSTOREDSUBSCRIPTION">
901
+ <xs:complexType>
902
+ <xs:sequence>
903
+ <xs:element ref="MERCHANTREF"/>
904
+ <xs:element ref="TERMINALID"/>
905
+ <xs:element ref="DATETIME"/>
906
+ <xs:element ref="NAME"/>
907
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
908
+ <xs:element ref="PERIODTYPE"/>
909
+ <xs:element ref="LENGTH"/>
910
+ <xs:element ref="CURRENCY"/>
911
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
912
+ <xs:element ref="INITIALAMOUNT" minOccurs="0"/>
913
+ <xs:element ref="TYPE"/>
914
+ <xs:element ref="ONUPDATE"/>
915
+ <xs:element ref="ONDELETE"/>
916
+ <xs:element ref="HASH"/>
917
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
918
+ </xs:sequence>
919
+ </xs:complexType>
920
+ </xs:element>
921
+ <xs:element name="ADDSTOREDSUBSCRIPTIONRESPONSE">
922
+ <xs:complexType>
923
+ <xs:sequence>
924
+ <xs:element ref="MERCHANTREF"/>
925
+ <xs:element ref="DATETIME"/>
926
+ <xs:element ref="HASH"/>
927
+ </xs:sequence>
928
+ </xs:complexType>
929
+ </xs:element>
930
+ <xs:element name="UPDATESTOREDSUBSCRIPTION">
931
+ <xs:complexType>
932
+ <xs:sequence>
933
+ <xs:element ref="MERCHANTREF"/>
934
+ <xs:element ref="TERMINALID"/>
935
+ <xs:element ref="DATETIME"/>
936
+ <xs:element ref="NAME"/>
937
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
938
+ <xs:element ref="LENGTH"/>
939
+ <xs:element ref="CURRENCY"/>
940
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
941
+ <xs:element ref="INITIALAMOUNT" minOccurs="0"/>
942
+ <xs:element ref="TYPE"/>
943
+ <xs:element ref="ONUPDATE"/>
944
+ <xs:element ref="ONDELETE"/>
945
+ <xs:element ref="HASH"/>
946
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
947
+ </xs:sequence>
948
+ </xs:complexType>
949
+ </xs:element>
950
+ <xs:element name="UPDATESTOREDSUBSCRIPTIONRESPONSE">
951
+ <xs:complexType>
952
+ <xs:sequence>
953
+ <xs:element ref="MERCHANTREF"/>
954
+ <xs:element ref="DATETIME"/>
955
+ <xs:element ref="HASH"/>
956
+ </xs:sequence>
957
+ </xs:complexType>
958
+ </xs:element>
959
+ <xs:element name="DELETESTOREDSUBSCRIPTION">
960
+ <xs:complexType>
961
+ <xs:sequence>
962
+ <xs:element ref="MERCHANTREF"/>
963
+ <xs:element ref="TERMINALID"/>
964
+ <xs:element ref="DATETIME"/>
965
+ <xs:element ref="HASH"/>
966
+ </xs:sequence>
967
+ </xs:complexType>
968
+ </xs:element>
969
+ <xs:element name="DELETESTOREDSUBSCRIPTIONRESPONSE">
970
+ <xs:complexType>
971
+ <xs:sequence>
972
+ <xs:element ref="MERCHANTREF"/>
973
+ <xs:element ref="DATETIME"/>
974
+ <xs:element ref="HASH"/>
975
+ </xs:sequence>
976
+ </xs:complexType>
977
+ </xs:element>
978
+ <xs:element name="STOREDSUBSCRIPTIONREF">
979
+ <xs:simpleType>
980
+ <xs:restriction base="xs:string">
981
+ <xs:minLength value="1"/>
982
+ <xs:maxLength value="50"/>
983
+ </xs:restriction>
984
+ </xs:simpleType>
985
+ </xs:element>
986
+ <xs:element name="SECURECARDMERCHANTREF">
987
+ <xs:simpleType>
988
+ <xs:restriction base="xs:string">
989
+ <xs:minLength value="1"/>
990
+ <xs:maxLength value="50"/>
991
+ </xs:restriction>
992
+ </xs:simpleType>
993
+ </xs:element>
994
+ <xs:element name="SECUREACHACCOUNTMERCHANTREF">
995
+ <xs:simpleType>
996
+ <xs:restriction base="xs:string">
997
+ <xs:minLength value="1"/>
998
+ <xs:maxLength value="48"/>
999
+ </xs:restriction>
1000
+ </xs:simpleType>
1001
+ </xs:element>
1002
+ <xs:element name="STARTDATE">
1003
+ <xs:simpleType>
1004
+ <xs:restriction base="xs:string">
1005
+ <xs:minLength value="10"/>
1006
+ <xs:maxLength value="10"/>
1007
+ </xs:restriction>
1008
+ </xs:simpleType>
1009
+ </xs:element>
1010
+ <xs:element name="ENDDATE">
1011
+ <xs:simpleType>
1012
+ <xs:restriction base="xs:string">
1013
+ <xs:minLength value="10"/>
1014
+ <xs:maxLength value="10"/>
1015
+ </xs:restriction>
1016
+ </xs:simpleType>
1017
+ </xs:element>
1018
+ <xs:element name="EDCCDECISION">
1019
+ <xs:simpleType>
1020
+ <xs:restriction base="xs:string">
1021
+ <xs:minLength value="1"/>
1022
+ <xs:maxLength value="1"/>
1023
+ <xs:enumeration value="Y"/>
1024
+ <xs:enumeration value="N"/>
1025
+ </xs:restriction>
1026
+ </xs:simpleType>
1027
+ </xs:element>
1028
+ <xs:element name="NEWSTOREDSUBSCRIPTIONINFO">
1029
+ <xs:complexType>
1030
+ <xs:sequence>
1031
+ <xs:element ref="MERCHANTREF"/>
1032
+ <xs:element ref="NAME"/>
1033
+ <xs:element ref="DESCRIPTION"/>
1034
+ <xs:element ref="PERIODTYPE"/>
1035
+ <xs:element ref="LENGTH"/>
1036
+ <xs:element ref="CURRENCY"/>
1037
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
1038
+ <xs:element ref="INITIALAMOUNT" minOccurs="0"/>
1039
+ <xs:element ref="TYPE"/>
1040
+ <xs:element ref="ONUPDATE"/>
1041
+ <xs:element ref="ONDELETE"/>
1042
+ </xs:sequence>
1043
+ </xs:complexType>
1044
+ </xs:element>
1045
+ <xs:element name="ADDSUBSCRIPTION">
1046
+ <xs:complexType>
1047
+ <xs:sequence>
1048
+ <xs:element ref="MERCHANTREF"/>
1049
+ <xs:element ref="TERMINALID"/>
1050
+ <xs:element ref="STOREDSUBSCRIPTIONREF" minOccurs="0"/>
1051
+ <xs:element ref="SECURECARDMERCHANTREF" minOccurs="0"/>
1052
+ <xs:element ref="CARDREFERENCE" minOccurs="0"/>
1053
+ <xs:element ref="DATETIME"/>
1054
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
1055
+ <xs:element ref="INITIALAMOUNT" minOccurs="0"/>
1056
+ <xs:element ref="STARTDATE"/>
1057
+ <xs:element ref="ENDDATE" minOccurs="0"/>
1058
+ <xs:element ref="EDCCDECISION" minOccurs="0"/>
1059
+ <xs:element ref="NEWSTOREDSUBSCRIPTIONINFO" minOccurs="0"/>
1060
+ <xs:element ref="HASH"/>
1061
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
1062
+ </xs:sequence>
1063
+ </xs:complexType>
1064
+ </xs:element>
1065
+ <xs:element name="ADDSUBSCRIPTIONRESPONSE">
1066
+ <xs:complexType>
1067
+ <xs:sequence>
1068
+ <xs:element ref="MERCHANTREF"/>
1069
+ <xs:element ref="DATETIME"/>
1070
+ <xs:element ref="HASH"/>
1071
+ </xs:sequence>
1072
+ </xs:complexType>
1073
+ </xs:element>
1074
+ <xs:element name="UPDATESUBSCRIPTION">
1075
+ <xs:complexType>
1076
+ <xs:sequence>
1077
+ <xs:element ref="MERCHANTREF"/>
1078
+ <xs:element ref="TERMINALID"/>
1079
+ <xs:element ref="SECURECARDMERCHANTREF" minOccurs="0"/>
1080
+ <xs:element ref="CARDREFERENCE" minOccurs="0"/>
1081
+ <xs:element ref="DATETIME"/>
1082
+ <xs:element ref="NAME" minOccurs="0"/>
1083
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1084
+ <xs:element ref="LENGTH" minOccurs="0"/>
1085
+ <xs:element ref="SKIPPERIODCOUNT" minOccurs="0"/>
1086
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
1087
+ <xs:element ref="STARTDATE" minOccurs="0"/>
1088
+ <xs:element ref="ENDDATE" minOccurs="0"/>
1089
+ <xs:element ref="EDCCDECISION" minOccurs="0"/>
1090
+ <xs:element ref="HASH"/>
1091
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
1092
+ </xs:sequence>
1093
+ </xs:complexType>
1094
+ </xs:element>
1095
+ <xs:element name="UPDATESUBSCRIPTIONRESPONSE">
1096
+ <xs:complexType>
1097
+ <xs:sequence>
1098
+ <xs:element ref="MERCHANTREF"/>
1099
+ <xs:element ref="DATETIME"/>
1100
+ <xs:element ref="HASH"/>
1101
+ </xs:sequence>
1102
+ </xs:complexType>
1103
+ </xs:element>
1104
+ <xs:element name="DELETESUBSCRIPTION">
1105
+ <xs:complexType>
1106
+ <xs:sequence>
1107
+ <xs:element ref="MERCHANTREF"/>
1108
+ <xs:element ref="TERMINALID"/>
1109
+ <xs:element ref="DATETIME"/>
1110
+ <xs:element ref="HASH"/>
1111
+ </xs:sequence>
1112
+ </xs:complexType>
1113
+ </xs:element>
1114
+ <xs:element name="DELETESUBSCRIPTIONRESPONSE">
1115
+ <xs:complexType>
1116
+ <xs:sequence>
1117
+ <xs:element ref="MERCHANTREF"/>
1118
+ <xs:element ref="DATETIME"/>
1119
+ <xs:element ref="HASH"/>
1120
+ </xs:sequence>
1121
+ </xs:complexType>
1122
+ </xs:element>
1123
+ <xs:element name="CANCELSUBSCRIPTION">
1124
+ <xs:complexType>
1125
+ <xs:sequence>
1126
+ <xs:element ref="MERCHANTREF"/>
1127
+ <xs:element ref="TERMINALID"/>
1128
+ <xs:element ref="DATETIME"/>
1129
+ <xs:element ref="HASH"/>
1130
+ </xs:sequence>
1131
+ </xs:complexType>
1132
+ </xs:element>
1133
+ <xs:element name="CANCELSUBSCRIPTIONRESPONSE">
1134
+ <xs:complexType>
1135
+ <xs:sequence>
1136
+ <xs:element ref="MERCHANTREF"/>
1137
+ <xs:element ref="DATETIME"/>
1138
+ <xs:element ref="HASH"/>
1139
+ </xs:sequence>
1140
+ </xs:complexType>
1141
+ </xs:element>
1142
+ <xs:element name="SUBSCRIPTIONREF">
1143
+ <xs:simpleType>
1144
+ <xs:restriction base="xs:string">
1145
+ <xs:minLength value="1"/>
1146
+ <xs:maxLength value="50"/>
1147
+ </xs:restriction>
1148
+ </xs:simpleType>
1149
+ </xs:element>
1150
+ <xs:element name="SUBSCRIPTIONPAYMENT">
1151
+ <xs:complexType>
1152
+ <xs:sequence>
1153
+ <xs:element ref="ORDERID"/>
1154
+ <xs:element ref="TERMINALID"/>
1155
+ <xs:element ref="AMOUNT"/>
1156
+ <xs:element ref="SUBSCRIPTIONREF"/>
1157
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1158
+ <xs:element ref="FOREIGNCURRENCYINFORMATION" minOccurs="0"/>
1159
+ <xs:element ref="EMAIL" minOccurs="0"/>
1160
+ <xs:element ref="DATETIME"/>
1161
+ <xs:element ref="HASH"/>
1162
+ <xs:element ref="CUSTOMFIELD" minOccurs="0" maxOccurs="30"/>
1163
+ </xs:sequence>
1164
+ </xs:complexType>
1165
+ </xs:element>
1166
+ <xs:element name="SUBSCRIPTIONPAYMENTRESPONSE">
1167
+ <xs:complexType>
1168
+ <xs:sequence>
1169
+ <xs:element ref="UNIQUEREF" minOccurs="0" maxOccurs="1"/>
1170
+ <xs:element ref="RESPONSECODE"/>
1171
+ <xs:element ref="RESPONSETEXT"/>
1172
+ <xs:element ref="APPROVALCODE"/>
1173
+ <xs:element ref="DATETIME"/>
1174
+ <xs:element ref="HASH"/>
1175
+ </xs:sequence>
1176
+ </xs:complexType>
1177
+ </xs:element>
1178
+ <xs:element name="CARDDETAILS">
1179
+ <xs:complexType>
1180
+ <xs:sequence>
1181
+ <xs:element ref="CARDTYPE"/>
1182
+ <xs:element ref="CARDNUMBER"/>
1183
+ <xs:element ref="CARDEXPIRY"/>
1184
+ <xs:element ref="CARDHOLDERNAME"/>
1185
+ </xs:sequence>
1186
+ </xs:complexType>
1187
+ </xs:element>
1188
+ <xs:element name="UNREFERENCEDREFUND">
1189
+ <xs:complexType>
1190
+ <xs:sequence>
1191
+ <xs:element ref="ORDERID"/>
1192
+ <xs:element ref="TERMINALID"/>
1193
+ <xs:choice minOccurs="1" maxOccurs="1">
1194
+ <xs:element ref="CARDREFERENCE"/>
1195
+ <xs:element ref="CARDDETAILS"/>
1196
+ </xs:choice>
1197
+ <xs:element ref="CURRENCY" minOccurs="0"/>
1198
+ <xs:element ref="AMOUNT"/>
1199
+ <xs:element ref="EMAIL" minOccurs="0"/>
1200
+ <xs:element ref="AUTOREADY" minOccurs="0"/>
1201
+ <xs:element ref="DATETIME"/>
1202
+ <xs:element ref="HASH"/>
1203
+ <xs:element ref="OPERATOR"/>
1204
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1205
+ <xs:element ref="ADDRESS1" minOccurs="0"/>
1206
+ <xs:element ref="CITY" minOccurs="0"/>
1207
+ <xs:element ref="REGION" minOccurs="0"/>
1208
+ <xs:element ref="POSTCODE" minOccurs="0"/>
1209
+ <xs:element ref="COUNTRY" minOccurs="0"/>
1210
+ <xs:element ref="BILLTOFIRSTNAME" minOccurs="0" maxOccurs="1"/>
1211
+ <xs:element ref="BILLTOLASTNAME" minOccurs="0" maxOccurs="1"/>
1212
+ </xs:sequence>
1213
+ </xs:complexType>
1214
+ </xs:element>
1215
+ <xs:element name="UNREFERENCEDREFUNDRESPONSE">
1216
+ <xs:complexType>
1217
+ <xs:sequence>
1218
+ <xs:element ref="RESPONSECODE"/>
1219
+ <xs:element ref="RESPONSETEXT"/>
1220
+ <xs:choice minOccurs="1" maxOccurs="1">
1221
+ <xs:element ref="UNIQUEREF"/>
1222
+ <xs:element ref="ORDERID"/>
1223
+ </xs:choice>
1224
+ <xs:element ref="DATETIME"/>
1225
+ <xs:element ref="PROCESSINGTERMINAL" minOccurs="0" maxOccurs="1"/>
1226
+ <xs:element ref="HASH"/>
1227
+ </xs:sequence>
1228
+ </xs:complexType>
1229
+ </xs:element>
1230
+ <!-- VoiceID & Payment related elements -->
1231
+ <xs:element name="VOICEIDREQUEST">
1232
+ <xs:complexType>
1233
+ <xs:sequence>
1234
+ <xs:element ref="ORDERID"/>
1235
+ <xs:element ref="TERMINALID"/>
1236
+ <xs:element ref="DATETIME"/>
1237
+ <xs:element ref="MOBILENUMBER"/>
1238
+ <xs:element ref="EMAIL"/>
1239
+ <xs:element ref="VOICEIDPAYMENT" minOccurs="0"/>
1240
+ <xs:element ref="HASH"/>
1241
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1242
+ </xs:sequence>
1243
+ </xs:complexType>
1244
+ </xs:element>
1245
+ <xs:element name="VOICEIDRESPONSE">
1246
+ <xs:complexType>
1247
+ <xs:sequence>
1248
+ <xs:element ref="RESPONSECODE"/>
1249
+ <xs:element ref="RESPONSETEXT"/>
1250
+ <xs:element ref="ORDERID"/>
1251
+ <xs:element ref="DATETIME"/>
1252
+ <xs:element ref="HASH"/>
1253
+ </xs:sequence>
1254
+ </xs:complexType>
1255
+ </xs:element>
1256
+ <xs:element name="VOICEIDPAYMENT">
1257
+ <xs:complexType>
1258
+ <xs:sequence>
1259
+ <xs:element ref="AMOUNT"/>
1260
+ <xs:element ref="CURRENCY"/>
1261
+ </xs:sequence>
1262
+ </xs:complexType>
1263
+ </xs:element>
1264
+ <xs:element name="FXCURRENCY">
1265
+ <xs:simpleType>
1266
+ <xs:restriction base="xs:string">
1267
+ <xs:minLength value="3"/>
1268
+ <xs:maxLength value="3"/>
1269
+ </xs:restriction>
1270
+ </xs:simpleType>
1271
+ </xs:element>
1272
+ <xs:element name="GETFXCURRENCYRATE">
1273
+ <xs:complexType>
1274
+ <xs:sequence>
1275
+ <!-- Terminal ID -->
1276
+ <xs:element ref="TERMINALID"/>
1277
+ <!-- Currency -->
1278
+ <xs:element ref="FXCURRENCY"/>
1279
+ <!-- Amount in fxCurrency -->
1280
+ <xs:element ref="BASEAMOUNT" minOccurs="0"/>
1281
+ <!-- Current Time -->
1282
+ <xs:element ref="DATETIME"/>
1283
+ <xs:element ref="HASH"/>
1284
+ </xs:sequence>
1285
+ </xs:complexType>
1286
+ </xs:element>
1287
+ <xs:element name="FXCURRENCYRATERESPONSE">
1288
+ <xs:complexType>
1289
+ <xs:sequence>
1290
+ <!-- Terminal currency -->
1291
+ <xs:element ref="TERMINALCURRENCY"/>
1292
+ <!-- Gets from request -->
1293
+ <xs:element ref="FXCURRENCY"/>
1294
+ <!-- Rate -->
1295
+ <xs:element ref="CONVERSIONRATE"/>
1296
+ <!-- Result amount -->
1297
+ <xs:element ref="FOREIGNAMOUNT" minOccurs="0"/>
1298
+ <!-- Current server time -->
1299
+ <xs:element ref="DATETIME"/>
1300
+ <xs:element ref="HASH"/>
1301
+ </xs:sequence>
1302
+ </xs:complexType>
1303
+ </xs:element>
1304
+ <xs:element name="FROMSTATUS">
1305
+ <xs:simpleType>
1306
+ <xs:restriction base="xs:string">
1307
+ <xs:enumeration value="READY"/>
1308
+ <xs:enumeration value="PENDING"/>
1309
+ <xs:enumeration value="REFERRAL"/>
1310
+ </xs:restriction>
1311
+ </xs:simpleType>
1312
+ </xs:element>
1313
+ <xs:element name="TOSTATUS">
1314
+ <xs:simpleType>
1315
+ <xs:restriction base="xs:string">
1316
+ <xs:enumeration value="READY"/>
1317
+ <xs:enumeration value="PENDING"/>
1318
+ </xs:restriction>
1319
+ </xs:simpleType>
1320
+ </xs:element>
1321
+ <xs:element name="TRANSACTIONUPDATE">
1322
+ <xs:complexType>
1323
+ <xs:sequence>
1324
+ <xs:element ref="UNIQUEREF"/>
1325
+ <xs:element ref="TERMINALID"/>
1326
+ <xs:element ref="OPERATOR"/>
1327
+ <xs:element ref="FROMSTATUS"/>
1328
+ <xs:element ref="TOSTATUS"/>
1329
+ <xs:element ref="APPROVALCODE" minOccurs="0"/>
1330
+ <xs:element ref="DATETIME"/>
1331
+ <xs:element ref="HASH"/>
1332
+ </xs:sequence>
1333
+ </xs:complexType>
1334
+ </xs:element>
1335
+ <xs:element name="TRANSACTIONUPDATERESPONSE">
1336
+ <xs:complexType>
1337
+ <xs:sequence>
1338
+ <xs:element ref="RESPONSECODE"/>
1339
+ <xs:element ref="RESPONSETEXT"/>
1340
+ <xs:element ref="UNIQUEREF"/>
1341
+ <xs:element ref="DATETIME"/>
1342
+ <xs:element ref="HASH"/>
1343
+ </xs:sequence>
1344
+ </xs:complexType>
1345
+ </xs:element>
1346
+ <xs:element name="PROCESSINGTERMINAL">
1347
+ <xs:simpleType>
1348
+ <xs:restriction base="xs:string">
1349
+ <xs:minLength value="1"/>
1350
+ <xs:maxLength value="50"/>
1351
+ </xs:restriction>
1352
+ </xs:simpleType>
1353
+ </xs:element>
1354
+ <xs:element name="SPINSALE">
1355
+ <xs:complexType>
1356
+ <xs:sequence>
1357
+ <xs:element ref="ORDERID"/>
1358
+ <xs:element ref="TERMINALID"/>
1359
+ <xs:element ref="AMOUNT"/>
1360
+ <xs:element ref="DATETIME"/>
1361
+ <xs:element ref="HASH"/>
1362
+ <xs:element ref="CURRENCY"/>
1363
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1364
+ <xs:element ref="SPINCODE"/>
1365
+ <xs:element ref="SAFECODE"/>
1366
+ </xs:sequence>
1367
+ </xs:complexType>
1368
+ </xs:element>
1369
+ <xs:element name="SPINCODE">
1370
+ <xs:simpleType>
1371
+ <xs:restriction base="xs:string">
1372
+ <xs:minLength value="1"/>
1373
+ <xs:maxLength value="9"/>
1374
+ </xs:restriction>
1375
+ </xs:simpleType>
1376
+ </xs:element>
1377
+ <xs:element name="SAFECODE">
1378
+ <xs:simpleType>
1379
+ <xs:restriction base="xs:string">
1380
+ <xs:minLength value="1"/>
1381
+ <xs:maxLength value="3"/>
1382
+ </xs:restriction>
1383
+ </xs:simpleType>
1384
+ </xs:element>
1385
+ <xs:element name="PAYMENTID">
1386
+ <xs:simpleType>
1387
+ <xs:restriction base="xs:string">
1388
+ <xs:minLength value="1"/>
1389
+ <xs:maxLength value="50"/>
1390
+ </xs:restriction>
1391
+ </xs:simpleType>
1392
+ </xs:element>
1393
+ <xs:element name="REFUNDID">
1394
+ <xs:simpleType>
1395
+ <xs:restriction base="xs:string">
1396
+ <xs:minLength value="1"/>
1397
+ <xs:maxLength value="50"/>
1398
+ </xs:restriction>
1399
+ </xs:simpleType>
1400
+ </xs:element>
1401
+ <xs:element name="SPINSALERESPONSE">
1402
+ <xs:complexType>
1403
+ <xs:sequence>
1404
+ <xs:element ref="PAYMENTID"/>
1405
+ <xs:element ref="RESPONSECODE"/>
1406
+ <xs:element ref="RESPONSETEXT"/>
1407
+ <xs:element ref="DATETIME"/>
1408
+ <xs:element ref="HASH"/>
1409
+ </xs:sequence>
1410
+ </xs:complexType>
1411
+ </xs:element>
1412
+ <xs:element name="SPINREFUND">
1413
+ <xs:complexType>
1414
+ <xs:sequence>
1415
+ <xs:element ref="PAYMENTID"/>
1416
+ <xs:element ref="TERMINALID"/>
1417
+ <xs:element ref="CURRENCY"/>
1418
+ <xs:element ref="AMOUNT"/>
1419
+ <xs:element ref="REASON" minOccurs="0"/>
1420
+ <xs:element ref="DATETIME"/>
1421
+ <xs:element ref="HASH"/>
1422
+ </xs:sequence>
1423
+ </xs:complexType>
1424
+ </xs:element>
1425
+ <xs:element name="SPINREFUNDRESPONSE">
1426
+ <xs:complexType>
1427
+ <xs:sequence>
1428
+ <xs:element ref="REFUNDID"/>
1429
+ <xs:element ref="RESPONSECODE"/>
1430
+ <xs:element ref="RESPONSETEXT"/>
1431
+ <xs:element ref="DATETIME"/>
1432
+ <xs:element ref="HASH"/>
1433
+ </xs:sequence>
1434
+ </xs:complexType>
1435
+ </xs:element>
1436
+ <xs:element name="ACH_ACCOUNT">
1437
+ <xs:simpleType>
1438
+ <xs:restriction base="xs:string">
1439
+ <xs:minLength value="1"/>
1440
+ <xs:maxLength value="17"/>
1441
+ </xs:restriction>
1442
+ </xs:simpleType>
1443
+ </xs:element>
1444
+ <xs:element name="ACH_ACCOUNT_TYPE">
1445
+ <xs:simpleType>
1446
+ <xs:restriction base="xs:string">
1447
+ <xs:enumeration value="CHECKING"/>
1448
+ <xs:enumeration value="SAVINGS"/>
1449
+ </xs:restriction>
1450
+ </xs:simpleType>
1451
+ </xs:element>
1452
+ <xs:element name="ACH_FIRST_NAME">
1453
+ <xs:simpleType>
1454
+ <xs:restriction base="xs:string">
1455
+ <xs:minLength value="1"/>
1456
+ <xs:maxLength value="100"/>
1457
+ </xs:restriction>
1458
+ </xs:simpleType>
1459
+ </xs:element>
1460
+ <xs:element name="ACH_LAST_NAME">
1461
+ <xs:simpleType>
1462
+ <xs:restriction base="xs:string">
1463
+ <xs:minLength value="1"/>
1464
+ <xs:maxLength value="100"/>
1465
+ </xs:restriction>
1466
+ </xs:simpleType>
1467
+ </xs:element>
1468
+ <xs:element name="ACH_ADDRESS1">
1469
+ <xs:simpleType>
1470
+ <xs:restriction base="xs:string">
1471
+ <xs:maxLength value="200"/>
1472
+ </xs:restriction>
1473
+ </xs:simpleType>
1474
+ </xs:element>
1475
+ <xs:element name="ACH_ADDRESS2">
1476
+ <xs:simpleType>
1477
+ <xs:restriction base="xs:string">
1478
+ <xs:maxLength value="200"/>
1479
+ </xs:restriction>
1480
+ </xs:simpleType>
1481
+ </xs:element>
1482
+ <xs:element name="ACH_CITY">
1483
+ <xs:simpleType>
1484
+ <xs:restriction base="xs:string">
1485
+ <xs:maxLength value="50"/>
1486
+ </xs:restriction>
1487
+ </xs:simpleType>
1488
+ </xs:element>
1489
+ <xs:element name="ACH_STATE">
1490
+ <xs:simpleType>
1491
+ <xs:restriction base="xs:string">
1492
+ <xs:maxLength value="2"/>
1493
+ </xs:restriction>
1494
+ </xs:simpleType>
1495
+ </xs:element>
1496
+ <xs:element name="ACH_ZIP">
1497
+ <xs:simpleType>
1498
+ <xs:restriction base="xs:string">
1499
+ <xs:maxLength value="10"/>
1500
+ </xs:restriction>
1501
+ </xs:simpleType>
1502
+ </xs:element>
1503
+ <xs:element name="ACH_PHONE_NUMBER">
1504
+ <xs:simpleType>
1505
+ <xs:restriction base="xs:string">
1506
+ <xs:maxLength value="10"/>
1507
+ </xs:restriction>
1508
+ </xs:simpleType>
1509
+ </xs:element>
1510
+ <xs:element name="ACHREFERENCE">
1511
+ <xs:simpleType>
1512
+ <xs:restriction base="xs:string">
1513
+ <xs:minLength value="0"/>
1514
+ <xs:maxLength value="17"/>
1515
+ </xs:restriction>
1516
+ </xs:simpleType>
1517
+ </xs:element>
1518
+ <xs:element name="ACH_SECURE">
1519
+ <xs:simpleType>
1520
+ <xs:restriction base="xs:string">
1521
+ <xs:minLength value="1"/>
1522
+ <xs:maxLength value="1"/>
1523
+ <xs:enumeration value="Y"/>
1524
+ <xs:enumeration value="N"/>
1525
+ </xs:restriction>
1526
+ </xs:simpleType>
1527
+ </xs:element>
1528
+ <xs:element name="ACH_SEC_CODE">
1529
+ <xs:simpleType>
1530
+ <xs:restriction base="xs:string">
1531
+ <xs:enumeration value="WEB"/>
1532
+ <xs:enumeration value="TEL"/>
1533
+ </xs:restriction>
1534
+ </xs:simpleType>
1535
+ </xs:element>
1536
+ <xs:element name="ACH_TERMINALID">
1537
+ <xs:simpleType>
1538
+ <xs:restriction base="xs:string">
1539
+ <xs:minLength value="1"/>
1540
+ <xs:maxLength value="10"/>
1541
+ </xs:restriction>
1542
+ </xs:simpleType>
1543
+ </xs:element>
1544
+ <xs:element name="ACH_CHECK_NUMBER">
1545
+ <xs:simpleType>
1546
+ <xs:restriction base="xs:string">
1547
+ <xs:minLength value="1"/>
1548
+ <xs:maxLength value="15"/>
1549
+ </xs:restriction>
1550
+ </xs:simpleType>
1551
+ </xs:element>
1552
+ <xs:element name="ACH_NOTIFICATION_URL">
1553
+ <xs:simpleType>
1554
+ <xs:restriction base="xs:string">
1555
+ <xs:minLength value="1"/>
1556
+ <xs:maxLength value="1024"/>
1557
+ </xs:restriction>
1558
+ </xs:simpleType>
1559
+ </xs:element>
1560
+ <xs:element name="ACHSALE">
1561
+ <xs:complexType>
1562
+ <xs:sequence>
1563
+ <xs:element ref="ORDERID"/>
1564
+ <xs:element ref="TERMINALID"/>
1565
+ <xs:element ref="ACH_TERMINALID" minOccurs="0"/>
1566
+ <xs:element ref="ACH_SEC_CODE"/>
1567
+ <xs:element ref="CURRENCY"/>
1568
+ <xs:element ref="AMOUNT"/>
1569
+ <xs:element ref="ACH_SECURE"/>
1570
+ <xs:element ref="ACH_CHECK_NUMBER" minOccurs="0"/>
1571
+ <xs:element ref="ACH_ACCOUNT" minOccurs="0"/>
1572
+ <xs:element ref="ACH_ACCOUNT_TYPE" minOccurs="0"/>
1573
+ <xs:element ref="ACH_FIRST_NAME" minOccurs="0"/>
1574
+ <xs:element ref="ACH_LAST_NAME" minOccurs="0"/>
1575
+ <xs:element ref="ACH_ADDRESS1" minOccurs="0"/>
1576
+ <xs:element ref="ACH_ADDRESS2" minOccurs="0"/>
1577
+ <xs:element ref="ACH_CITY" minOccurs="0"/>
1578
+ <xs:element ref="ACH_STATE" minOccurs="0"/>
1579
+ <xs:element ref="ACH_ZIP" minOccurs="0"/>
1580
+ <xs:element ref="ACH_PHONE_NUMBER" minOccurs="0"/>
1581
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1582
+ <xs:element ref="DATETIME"/>
1583
+ <xs:element ref="ACH_NOTIFICATION_URL" minOccurs="0"/>
1584
+ <xs:element ref="HASH"/>
1585
+ </xs:sequence>
1586
+ </xs:complexType>
1587
+ </xs:element>
1588
+ <xs:element name="ACHSALERESPONSE">
1589
+ <xs:complexType>
1590
+ <xs:sequence>
1591
+ <xs:element ref="ORDERID"/>
1592
+ <xs:element ref="UNIQUEREF"/>
1593
+ <xs:element ref="RESPONSECODE"/>
1594
+ <xs:element ref="RESPONSETEXT"/>
1595
+ <xs:element ref="DATETIME"/>
1596
+ <xs:element ref="HASH"/>
1597
+ </xs:sequence>
1598
+ </xs:complexType>
1599
+ </xs:element>
1600
+ <xs:element name="ACHDECLINE">
1601
+ <xs:complexType>
1602
+ <xs:sequence>
1603
+ <xs:element ref="ORDERID"/>
1604
+ <xs:element ref="TERMINALID"/>
1605
+ <xs:element ref="ACH_TERMINALID" minOccurs="0"/>
1606
+ <xs:element ref="ACH_SEC_CODE"/>
1607
+ <xs:element ref="CURRENCY"/>
1608
+ <xs:element ref="AMOUNT"/>
1609
+ <xs:element ref="ACH_SECURE"/>
1610
+ <xs:element ref="ACH_CHECK_NUMBER" minOccurs="0"/>
1611
+ <xs:element ref="ACH_ACCOUNT" minOccurs="0"/>
1612
+ <xs:element ref="ACH_ACCOUNT_TYPE" minOccurs="0"/>
1613
+ <xs:element ref="ACH_FIRST_NAME" minOccurs="0"/>
1614
+ <xs:element ref="ACH_LAST_NAME" minOccurs="0"/>
1615
+ <xs:element ref="ACH_ADDRESS1" minOccurs="0"/>
1616
+ <xs:element ref="ACH_ADDRESS2" minOccurs="0"/>
1617
+ <xs:element ref="ACH_CITY" minOccurs="0"/>
1618
+ <xs:element ref="ACH_STATE" minOccurs="0"/>
1619
+ <xs:element ref="ACH_ZIP" minOccurs="0"/>
1620
+ <xs:element ref="ACH_PHONE_NUMBER" minOccurs="0"/>
1621
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1622
+ <xs:element ref="DATETIME"/>
1623
+ <xs:element ref="ACH_NOTIFICATION_URL" minOccurs="0"/>
1624
+ <xs:element ref="HASH"/>
1625
+ </xs:sequence>
1626
+ </xs:complexType>
1627
+ </xs:element>
1628
+ <xs:element name="ACHDECLINERESPONSE">
1629
+ <xs:complexType>
1630
+ <xs:sequence>
1631
+ <xs:element ref="ORDERID"/>
1632
+ <xs:element ref="UNIQUEREF"/>
1633
+ <xs:element ref="RESPONSECODE"/>
1634
+ <xs:element ref="RESPONSETEXT"/>
1635
+ <xs:element ref="DATETIME"/>
1636
+ <xs:element ref="HASH"/>
1637
+ </xs:sequence>
1638
+ </xs:complexType>
1639
+ </xs:element>
1640
+ <xs:element name="ACHREFUND">
1641
+ <xs:complexType>
1642
+ <xs:sequence>
1643
+ <xs:element ref="UNIQUEREF"/>
1644
+ <xs:element ref="TERMINALID"/>
1645
+ <xs:element ref="CURRENCY"/>
1646
+ <xs:element name="REFUND_AMOUNT" type="xs:double"/>
1647
+ <xs:element name="REFUND_REASON" type="xs:string"/>
1648
+ <xs:element ref="DATETIME"/>
1649
+ <xs:element ref="ACH_NOTIFICATION_URL" minOccurs="0"/>
1650
+ <xs:element ref="HASH"/>
1651
+ </xs:sequence>
1652
+ </xs:complexType>
1653
+ </xs:element>
1654
+ <xs:element name="ACHREFUNDRESPONSE">
1655
+ <xs:complexType>
1656
+ <xs:sequence>
1657
+ <xs:element ref="ORDERID"/>
1658
+ <xs:element ref="UNIQUEREF"/>
1659
+ <xs:element ref="RESPONSECODE"/>
1660
+ <xs:element ref="RESPONSETEXT"/>
1661
+ <xs:element ref="DATETIME"/>
1662
+ <xs:element ref="HASH"/>
1663
+ </xs:sequence>
1664
+ </xs:complexType>
1665
+ </xs:element>
1666
+ <xs:element name="SECUREACHREGISTRATION">
1667
+ <xs:complexType>
1668
+ <xs:sequence>
1669
+ <xs:element ref="TERMINALID"/>
1670
+ <xs:element ref="ACH_TERMINALID" minOccurs="0"/>
1671
+ <xs:element ref="ACH_SEC_CODE" minOccurs="0"/>
1672
+ <xs:element ref="MERCHANTREF"/>
1673
+ <xs:element ref="ACH_ACCOUNT"/>
1674
+ <xs:element ref="ACH_ACCOUNT_TYPE"/>
1675
+ <xs:element ref="ACH_FIRST_NAME"/>
1676
+ <xs:element ref="ACH_LAST_NAME"/>
1677
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1678
+ <xs:element ref="ACH_ADDRESS1" minOccurs="0"/>
1679
+ <xs:element ref="ACH_ADDRESS2" minOccurs="0"/>
1680
+ <xs:element ref="ACH_CITY" minOccurs="0"/>
1681
+ <xs:element ref="ACH_STATE" minOccurs="0"/>
1682
+ <xs:element ref="ACH_ZIP" minOccurs="0"/>
1683
+ <xs:element ref="ACH_PHONE_NUMBER" minOccurs="0"/>
1684
+ <xs:element ref="DATETIME"/>
1685
+ <xs:element ref="HASH"/>
1686
+ </xs:sequence>
1687
+ </xs:complexType>
1688
+ </xs:element>
1689
+ <xs:element name="SECUREACHREGISTRATIONRESPONSE">
1690
+ <xs:complexType>
1691
+ <xs:sequence>
1692
+ <xs:element ref="MERCHANTREF"/>
1693
+ <xs:element ref="ACHREFERENCE"/>
1694
+ <xs:element ref="DATETIME"/>
1695
+ <xs:element ref="HASH"/>
1696
+ </xs:sequence>
1697
+ </xs:complexType>
1698
+ </xs:element>
1699
+ <xs:element name="SECUREACHUPDATE">
1700
+ <xs:complexType>
1701
+ <xs:sequence>
1702
+ <xs:element ref="TERMINALID"/>
1703
+ <xs:element ref="ACH_TERMINALID" minOccurs="0"/>
1704
+ <xs:element ref="ACH_SEC_CODE" minOccurs="0"/>
1705
+ <xs:element ref="MERCHANTREF"/>
1706
+ <xs:element ref="ACHREFERENCE"/>
1707
+ <xs:element ref="ACH_ACCOUNT"/>
1708
+ <xs:element ref="ACH_ACCOUNT_TYPE"/>
1709
+ <xs:element ref="ACH_FIRST_NAME"/>
1710
+ <xs:element ref="ACH_LAST_NAME"/>
1711
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1712
+ <xs:element ref="ACH_ADDRESS1" minOccurs="0"/>
1713
+ <xs:element ref="ACH_ADDRESS2" minOccurs="0"/>
1714
+ <xs:element ref="ACH_CITY" minOccurs="0"/>
1715
+ <xs:element ref="ACH_STATE" minOccurs="0"/>
1716
+ <xs:element ref="ACH_ZIP" minOccurs="0"/>
1717
+ <xs:element ref="ACH_PHONE_NUMBER" minOccurs="0"/>
1718
+ <xs:element ref="DATETIME"/>
1719
+ <xs:element ref="HASH"/>
1720
+ </xs:sequence>
1721
+ </xs:complexType>
1722
+ </xs:element>
1723
+ <xs:element name="SECUREACHUPDATERESPONSE">
1724
+ <xs:complexType>
1725
+ <xs:sequence>
1726
+ <xs:element ref="MERCHANTREF"/>
1727
+ <xs:element ref="ACHREFERENCE"/>
1728
+ <xs:element ref="DATETIME"/>
1729
+ <xs:element ref="HASH"/>
1730
+ </xs:sequence>
1731
+ </xs:complexType>
1732
+ </xs:element>
1733
+ <xs:element name="SECUREACHDELETION">
1734
+ <xs:complexType>
1735
+ <xs:sequence>
1736
+ <xs:element ref="TERMINALID"/>
1737
+ <xs:element ref="MERCHANTREF"/>
1738
+ <xs:element ref="ACHREFERENCE"/>
1739
+ <xs:element ref="DATETIME"/>
1740
+ <xs:element ref="HASH"/>
1741
+ </xs:sequence>
1742
+ </xs:complexType>
1743
+ </xs:element>
1744
+ <xs:element name="SECUREACHDELETIONRESPONSE">
1745
+ <xs:complexType>
1746
+ <xs:sequence>
1747
+ <xs:element ref="MERCHANTREF"/>
1748
+ <xs:element ref="DATETIME"/>
1749
+ <xs:element ref="HASH"/>
1750
+ </xs:sequence>
1751
+ </xs:complexType>
1752
+ </xs:element>
1753
+ <xs:element name="SECUREACHSEARCH">
1754
+ <xs:complexType>
1755
+ <xs:sequence>
1756
+ <xs:element ref="TERMINALID"/>
1757
+ <xs:element ref="MERCHANTREF"/>
1758
+ <xs:element ref="ACHREFERENCE"/>
1759
+ <xs:element ref="DATETIME"/>
1760
+ <xs:element ref="HASH"/>
1761
+ </xs:sequence>
1762
+ </xs:complexType>
1763
+ </xs:element>
1764
+ <xs:element name="SECUREACHSEARCHRESPONSE">
1765
+ <xs:complexType>
1766
+ <xs:sequence>
1767
+ <xs:element ref="MERCHANTREF"/>
1768
+ <xs:element ref="ACHREFERENCE"/>
1769
+ <xs:element ref="DATETIME"/>
1770
+ <xs:element ref="HASH"/>
1771
+ </xs:sequence>
1772
+ </xs:complexType>
1773
+ </xs:element>
1774
+ <xs:element name="ADDSUBSCRIPTIONACH">
1775
+ <xs:complexType>
1776
+ <xs:sequence>
1777
+ <xs:element ref="MERCHANTREF"/>
1778
+ <xs:element ref="TERMINALID"/>
1779
+ <xs:element ref="STOREDSUBSCRIPTIONREF" minOccurs="0"/>
1780
+ <xs:element ref="SECUREACHACCOUNTMERCHANTREF"/>
1781
+ <xs:element ref="DATETIME"/>
1782
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
1783
+ <xs:element ref="INITIALAMOUNT" minOccurs="0"/>
1784
+ <xs:element ref="STARTDATE"/>
1785
+ <xs:element ref="ENDDATE" minOccurs="0"/>
1786
+ <xs:element ref="NEWSTOREDSUBSCRIPTIONINFO" minOccurs="0"/>
1787
+ <xs:element ref="HASH"/>
1788
+ </xs:sequence>
1789
+ </xs:complexType>
1790
+ </xs:element>
1791
+ <xs:element name="ADDSUBSCRIPTIONACHRESPONSE">
1792
+ <xs:complexType>
1793
+ <xs:sequence>
1794
+ <xs:element ref="MERCHANTREF"/>
1795
+ <xs:element ref="RESPONSECODE"/>
1796
+ <xs:element ref="RESPONSETEXT"/>
1797
+ <xs:element ref="DATETIME"/>
1798
+ <xs:element ref="HASH"/>
1799
+ </xs:sequence>
1800
+ </xs:complexType>
1801
+ </xs:element>
1802
+ <xs:element name="UPDATESUBSCRIPTIONACH">
1803
+ <xs:complexType>
1804
+ <xs:sequence>
1805
+ <xs:element ref="MERCHANTREF"/>
1806
+ <xs:element ref="TERMINALID"/>
1807
+ <xs:element ref="SECUREACHACCOUNTMERCHANTREF"/>
1808
+ <xs:element ref="DATETIME"/>
1809
+ <xs:element ref="NAME" minOccurs="0"/>
1810
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1811
+ <xs:element ref="LENGTH" minOccurs="0"/>
1812
+ <xs:element ref="SKIPPERIODCOUNT" minOccurs="0"/>
1813
+ <xs:element ref="RECURRINGAMOUNT" minOccurs="0"/>
1814
+ <xs:element ref="STARTDATE" minOccurs="0"/>
1815
+ <xs:element ref="ENDDATE" minOccurs="0"/>
1816
+ <xs:element ref="HASH"/>
1817
+ </xs:sequence>
1818
+ </xs:complexType>
1819
+ </xs:element>
1820
+ <xs:element name="UPDATESUBSCRIPTIONACHRESPONSE">
1821
+ <xs:complexType>
1822
+ <xs:sequence>
1823
+ <xs:element ref="MERCHANTREF"/>
1824
+ <xs:element ref="DATETIME"/>
1825
+ <xs:element ref="HASH"/>
1826
+ </xs:sequence>
1827
+ </xs:complexType>
1828
+ </xs:element>
1829
+ <xs:element name="SUBSCRIPTIONACHPAYMENT">
1830
+ <xs:complexType>
1831
+ <xs:sequence>
1832
+ <xs:element ref="SUBSCRIPTIONREF"/>
1833
+ <xs:element ref="TERMINALID"/>
1834
+ <xs:element ref="ORDERID"/>
1835
+ <xs:element ref="AMOUNT"/>
1836
+ <xs:element ref="DESCRIPTION" minOccurs="0"/>
1837
+ <xs:element ref="DATETIME"/>
1838
+ <xs:element ref="HASH"/>
1839
+ </xs:sequence>
1840
+ </xs:complexType>
1841
+ </xs:element>
1842
+ <xs:element name="SUBSCRIPTIONACHPAYMENTRESPONSE">
1843
+ <xs:complexType>
1844
+ <xs:sequence>
1845
+ <xs:element ref="ORDERID"/>
1846
+ <xs:element ref="UNIQUEREF"/>
1847
+ <xs:element ref="RESPONSECODE"/>
1848
+ <xs:element ref="RESPONSETEXT"/>
1849
+ <xs:element ref="DATETIME"/>
1850
+ <xs:element ref="HASH"/>
1851
+ </xs:sequence>
1852
+ </xs:complexType>
1853
+ </xs:element>
1854
+ <xs:element name="DELETESUBSCRIPTIONACH">
1855
+ <xs:complexType>
1856
+ <xs:sequence>
1857
+ <xs:element ref="MERCHANTREF"/>
1858
+ <xs:element ref="TERMINALID"/>
1859
+ <xs:element ref="DATETIME"/>
1860
+ <xs:element ref="HASH"/>
1861
+ </xs:sequence>
1862
+ </xs:complexType>
1863
+ </xs:element>
1864
+ <xs:element name="DELETESUBSCRIPTIONACHRESPONSE">
1865
+ <xs:complexType>
1866
+ <xs:sequence>
1867
+ <xs:element ref="MERCHANTREF"/>
1868
+ <xs:element ref="DATETIME"/>
1869
+ <xs:element ref="HASH"/>
1870
+ </xs:sequence>
1871
+ </xs:complexType>
1872
+ </xs:element>
1873
+ <xs:element name="CANCELSUBSCRIPTIONACH">
1874
+ <xs:complexType>
1875
+ <xs:sequence>
1876
+ <xs:element ref="MERCHANTREF"/>
1877
+ <xs:element ref="TERMINALID"/>
1878
+ <xs:element ref="DATETIME"/>
1879
+ <xs:element ref="HASH"/>
1880
+ </xs:sequence>
1881
+ </xs:complexType>
1882
+ </xs:element>
1883
+ <xs:element name="CANCELSUBSCRIPTIONACHRESPONSE">
1884
+ <xs:complexType>
1885
+ <xs:sequence>
1886
+ <xs:element ref="MERCHANTREF"/>
1887
+ <xs:element ref="DATETIME"/>
1888
+ <xs:element ref="HASH"/>
1889
+ </xs:sequence>
1890
+ </xs:complexType>
1891
+ </xs:element>
1892
+ <xs:element name="PERMITTEDTERMINALS">
1893
+ <xs:complexType>
1894
+ <xs:sequence>
1895
+ <xs:element ref="TERMINALID" minOccurs="0" maxOccurs="unbounded"/>
1896
+ </xs:sequence>
1897
+ </xs:complexType>
1898
+ </xs:element>
1899
+ <xs:element name="PERMITTEDTERMINALSREQUIRED">
1900
+ <xs:simpleType>
1901
+ <xs:restriction base="xs:string">
1902
+ <xs:minLength value="1"/>
1903
+ <xs:maxLength value="1"/>
1904
+ <xs:enumeration value="Y"/>
1905
+ <xs:enumeration value="N"/>
1906
+ </xs:restriction>
1907
+ </xs:simpleType>
1908
+ </xs:element>
1909
+ </xs:schema>