worldnet_tps 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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>