internetkassa 0.9.4
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +18 -0
- data/README.rdoc +5 -0
- data/Rakefile +64 -0
- data/lib/abn-amro/internetkassa.rb +98 -0
- data/lib/abn-amro/internetkassa/helpers.rb +13 -0
- data/lib/abn-amro/internetkassa/response.rb +91 -0
- data/lib/abn-amro/internetkassa/response_codes.rb +477 -0
- data/rails/init.rb +4 -0
- data/test/fixtures.rb +74 -0
- data/test/helpers/fixtures_helper.rb +7 -0
- data/test/helpers/view_helper.rb +19 -0
- data/test/helpers_test.rb +45 -0
- data/test/internetkassa_remote_test.rb +57 -0
- data/test/internetkassa_test.rb +151 -0
- data/test/response_regression_test.rb +32 -0
- data/test/response_test.rb +185 -0
- data/test/test_helper.rb +16 -0
- metadata +112 -0
data/LICENSE
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
(c) 2008 Fingertips, Eloy Duran <eloy@fngtps.com>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to
|
5
|
+
deal in the Software without restriction, including without limitation the
|
6
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
7
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
16
|
+
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
|
3
|
+
namespace :gem do
|
4
|
+
directory 'pkg'
|
5
|
+
|
6
|
+
desc 'Build the gem'
|
7
|
+
task :build => :pkg do
|
8
|
+
sh 'gem build internetkassa.gemspec'
|
9
|
+
sh 'mv internetkassa-*.gem pkg/'
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Install the gem'
|
13
|
+
task :install => :build do
|
14
|
+
sh 'sudo gem install pkg/internetkassa-*.gem'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
Rake::TestTask.new do |t|
|
19
|
+
t.test_files = FileList['test/**/*_test.rb']
|
20
|
+
t.verbose = true
|
21
|
+
end
|
22
|
+
|
23
|
+
task :default => :test
|
24
|
+
|
25
|
+
namespace :test do
|
26
|
+
desc 'Renders a simple html file which contains a internetkassa form'
|
27
|
+
task :render do
|
28
|
+
require File.expand_path('../test/test_helper', __FILE__)
|
29
|
+
|
30
|
+
instance = AbnAmro::Internetkassa.new(
|
31
|
+
:order_id => Time.now.to_i,
|
32
|
+
:amount => 1031,
|
33
|
+
:description => "HappyHardcore vol. 123 - the ballads",
|
34
|
+
:endpoint_url => ENV['URL'] || "http://example.com/payments",
|
35
|
+
:TITLE => 'HappyHardcore vol. 123 - the ballads'
|
36
|
+
)
|
37
|
+
|
38
|
+
controller = TestController.new
|
39
|
+
controller.extend(ActionView::Helpers)
|
40
|
+
controller.extend(AbnAmro::Internetkassa::Helpers)
|
41
|
+
|
42
|
+
File.open('form_test.html', 'w') do |f|
|
43
|
+
f << %{
|
44
|
+
<html>
|
45
|
+
<body>
|
46
|
+
#{controller.internetkassa_form_tag(instance) { '<input type="submit" />' }}
|
47
|
+
</body>
|
48
|
+
</html>
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
sh 'open form_test.html'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
begin
|
57
|
+
require 'jewelry_portfolio/tasks'
|
58
|
+
JewelryPortfolio::Tasks.new do |t|
|
59
|
+
t.account = 'Fingertips'
|
60
|
+
t.name = 'abn-amro_internetkassa'
|
61
|
+
end
|
62
|
+
rescue LoadError
|
63
|
+
puts "JewelryPortfolio not available. Install it with: sudo gem install Fingertips-jewelry_portfolio -s http://gems.github.com"
|
64
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'abn-amro/internetkassa/response'
|
2
|
+
require "digest/sha1"
|
3
|
+
require "cgi"
|
4
|
+
|
5
|
+
module AbnAmro
|
6
|
+
class Internetkassa
|
7
|
+
class << self
|
8
|
+
attr_accessor :pspid, :shasign, :test
|
9
|
+
|
10
|
+
alias_method :merchant_id=, :pspid=
|
11
|
+
alias_method :merchant_id, :pspid
|
12
|
+
|
13
|
+
alias_method :passphrase=, :shasign=
|
14
|
+
alias_method :passphrase, :shasign
|
15
|
+
|
16
|
+
def test?
|
17
|
+
@test
|
18
|
+
end
|
19
|
+
|
20
|
+
def service_url
|
21
|
+
test? ? TEST_URL : PRODUCTION_URL
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
MANDATORY_VALUES = %w{ merchant_id order_id amount currency language }
|
26
|
+
DEFAULT_VALUES = { :currency => 'EUR', :language => 'nl_NL' }
|
27
|
+
PRODUCTION_URL = "https://internetkassa.abnamro.nl/ncol/prod/orderstandard.asp"
|
28
|
+
TEST_URL = "https://internetkassa.abnamro.nl/ncol/test/orderstandard.asp"
|
29
|
+
|
30
|
+
attr_reader :params
|
31
|
+
|
32
|
+
attr_accessor :order_id, :amount, :description, :currency, :language
|
33
|
+
attr_accessor :accept_url, :decline_url, :exception_url, :cancel_url
|
34
|
+
attr_accessor :url_variable, :endpoint_params
|
35
|
+
|
36
|
+
def initialize(params = {})
|
37
|
+
@params = {}
|
38
|
+
|
39
|
+
DEFAULT_VALUES.merge(params).each do |k,v|
|
40
|
+
if respond_to?("#{k}=")
|
41
|
+
send("#{k}=", v)
|
42
|
+
else
|
43
|
+
@params[k] = v
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Shortcut which sets the accept_url, decline_url, cancel_url,
|
49
|
+
# exception_url, and cancel_url to the specified +url+.
|
50
|
+
def endpoint_url=(url)
|
51
|
+
@accept_url = @decline_url = @exception_url = @cancel_url = url
|
52
|
+
end
|
53
|
+
|
54
|
+
def data
|
55
|
+
verify_values!
|
56
|
+
@params.merge(
|
57
|
+
:PSPID => merchant_id,
|
58
|
+
:orderID => @order_id,
|
59
|
+
:amount => @amount,
|
60
|
+
:currency => @currency,
|
61
|
+
:language => @language,
|
62
|
+
:COM => @description,
|
63
|
+
:SHASign => signature,
|
64
|
+
:PARAMVAR => @url_variable,
|
65
|
+
:PARAMPLUS => url_encoded_endpoint_params,
|
66
|
+
:accepturl => @accept_url,
|
67
|
+
:declineurl => @decline_url,
|
68
|
+
:exceptionurl => @exception_url,
|
69
|
+
:cancelurl => @cancel_url
|
70
|
+
).delete_if { |key, value| value.nil? || value.to_s.empty? }
|
71
|
+
end
|
72
|
+
|
73
|
+
private
|
74
|
+
|
75
|
+
def merchant_id
|
76
|
+
self.class.merchant_id
|
77
|
+
end
|
78
|
+
|
79
|
+
def passphrase
|
80
|
+
self.class.passphrase
|
81
|
+
end
|
82
|
+
|
83
|
+
def verify_values!
|
84
|
+
MANDATORY_VALUES.each do |key|
|
85
|
+
raise ArgumentError, "`#{key}' can't be blank" if send(key).nil?
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def signature
|
90
|
+
Digest::SHA1.hexdigest("#{@order_id}#{@amount}#{@currency}#{merchant_id}#{passphrase}").upcase
|
91
|
+
end
|
92
|
+
|
93
|
+
def url_encoded_endpoint_params
|
94
|
+
return unless @endpoint_params
|
95
|
+
@endpoint_params.map { |k,v| "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}" }.join('&')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module AbnAmro
|
2
|
+
class Internetkassa
|
3
|
+
module Helpers
|
4
|
+
def internetkassa_form_tag(internetkassa_instance, &block)
|
5
|
+
form_tag(AbnAmro::Internetkassa.service_url) do
|
6
|
+
result = internetkassa_instance.data.map { |name, value| hidden_field_tag(name, value, :id => nil) }
|
7
|
+
result << capture(&block) if block_given?
|
8
|
+
"\n#{result.join("\n")}\n"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'abn-amro/internetkassa/response_codes'
|
2
|
+
|
3
|
+
module AbnAmro
|
4
|
+
class Internetkassa
|
5
|
+
class Response
|
6
|
+
class SignatureInvalidError < StandardError; end
|
7
|
+
|
8
|
+
attr_reader :params
|
9
|
+
|
10
|
+
def initialize(params)
|
11
|
+
@params = params
|
12
|
+
|
13
|
+
unless valid?
|
14
|
+
raise SignatureInvalidError, "signature `#{signature}' does not match the signature calculated for this message `#{calculated_signature}'"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# attributes
|
19
|
+
|
20
|
+
def order_id; @params['orderID'] end
|
21
|
+
def payment_id; @params['PAYID'] end
|
22
|
+
def payment_method; @params['PM'] end
|
23
|
+
def acceptance; @params['ACCEPTANCE'] end
|
24
|
+
def currency; @params['currency'] end
|
25
|
+
def status_code; @params['STATUS'] end
|
26
|
+
def error_code; @params['NCERROR'] if @params['NCERROR'] != '0' end
|
27
|
+
def signature; @params['SHASIGN'] end
|
28
|
+
def customer_name; @params['CN'] end
|
29
|
+
def card_brand; @params['BRAND'] end
|
30
|
+
def card_number; @params['CARDNO'] end
|
31
|
+
def card_expiration_date; @params['ED'] end
|
32
|
+
|
33
|
+
def amount
|
34
|
+
@amount ||= (@params['amount'].to_f * 100).to_i
|
35
|
+
end
|
36
|
+
|
37
|
+
def transaction_date
|
38
|
+
@transaction_date ||= Date.parse(@params['TRXDATE'], true)
|
39
|
+
end
|
40
|
+
|
41
|
+
# methods
|
42
|
+
|
43
|
+
def valid?
|
44
|
+
signature == calculated_signature
|
45
|
+
end
|
46
|
+
|
47
|
+
def success?
|
48
|
+
error_code.nil? && (authorized? || captured?)
|
49
|
+
end
|
50
|
+
|
51
|
+
def authorized?
|
52
|
+
status_code == '5'
|
53
|
+
end
|
54
|
+
|
55
|
+
def captured?
|
56
|
+
status_code == '9'
|
57
|
+
end
|
58
|
+
|
59
|
+
def retry?
|
60
|
+
Codes::ERROR_CODES[error_code][:retry] if error_code
|
61
|
+
end
|
62
|
+
|
63
|
+
def status_message
|
64
|
+
Codes::STATUS_CODES[status_code]
|
65
|
+
end
|
66
|
+
|
67
|
+
def error_message
|
68
|
+
Codes::ERROR_CODES[error_code][:explanation] if error_code
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def calculated_signature
|
74
|
+
message = ''
|
75
|
+
message << order_id
|
76
|
+
message << currency
|
77
|
+
message << @params['amount']
|
78
|
+
message << payment_method
|
79
|
+
message << acceptance
|
80
|
+
message << status_code
|
81
|
+
message << card_number
|
82
|
+
message << payment_id
|
83
|
+
message << @params['NCERROR']
|
84
|
+
message << card_brand
|
85
|
+
message << Internetkassa.passphrase
|
86
|
+
|
87
|
+
Digest::SHA1.hexdigest(message).upcase
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,477 @@
|
|
1
|
+
module AbnAmro
|
2
|
+
class Internetkassa
|
3
|
+
class Response
|
4
|
+
module Codes
|
5
|
+
STATUS_CODES = {
|
6
|
+
# normal statuses
|
7
|
+
"0" => "Incomplete or invalid",
|
8
|
+
"1" => "Cancelled by client",
|
9
|
+
"2" => "Authorization refused",
|
10
|
+
"4" => "Order stored",
|
11
|
+
"5" => "Authorized",
|
12
|
+
"6" => "Authorized and cancelled",
|
13
|
+
"7" => "Payment deleted",
|
14
|
+
"8" => "Refund",
|
15
|
+
"9" => "Payment requested",
|
16
|
+
|
17
|
+
# intermediate or abnormal statuses
|
18
|
+
"41" => "Waiting client payment",
|
19
|
+
"51" => "Authorization waiting",
|
20
|
+
"52" => "Authorization not known",
|
21
|
+
"55" => "Stand-by",
|
22
|
+
"59" => "Authoriz. to get manually",
|
23
|
+
"61" => "Author. deletion waiting",
|
24
|
+
"62" => "Author. deletion uncertain",
|
25
|
+
"63" => "Author. deletion refused",
|
26
|
+
"64" => "Authorized and cancelled",
|
27
|
+
"71" => "Payment deletion pending",
|
28
|
+
"72" => "Payment deletion uncertain",
|
29
|
+
"73" => "Payment deletion refused",
|
30
|
+
"74" => "Payment deleted",
|
31
|
+
"75" => "Deletion processed by merchant",
|
32
|
+
"81" => "Refund pending",
|
33
|
+
"82" => "Refund uncertain",
|
34
|
+
"83" => "Refund refused",
|
35
|
+
"84" => "Payment declined by the acquirer",
|
36
|
+
"85" => "Refund processed by merchant",
|
37
|
+
"91" => "Payment processing",
|
38
|
+
"92" => "Payment uncertain",
|
39
|
+
"93" => "Payment refused",
|
40
|
+
"94" => "Refund declined by the acquirer",
|
41
|
+
"95" => "Payment processed by merchant",
|
42
|
+
"99" => "Being processed",
|
43
|
+
}
|
44
|
+
|
45
|
+
ERROR_CODES = {
|
46
|
+
"0020001002" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
47
|
+
"0020001003" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
48
|
+
"0020001004" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
49
|
+
"0020001005" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
50
|
+
"0020001006" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
51
|
+
"0020001007" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
52
|
+
"0020001008" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
53
|
+
"0020001009" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
54
|
+
"0020001010" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
55
|
+
"0030001999" => { :retry => false, :explanation => "Our payment system is currently under maintenance, please try later" },
|
56
|
+
"0050001005" => { :retry => false, :explanation => "Expiry date error" },
|
57
|
+
"0050001007" => { :retry => false, :explanation => "Requested Operation code not allowed" },
|
58
|
+
"0050001008" => { :retry => false, :explanation => "Invalid delay value" },
|
59
|
+
"0050001010" => { :retry => false, :explanation => "Input date in invalid format" },
|
60
|
+
"0050001013" => { :retry => false, :explanation => "Unable to parse socket input stream" },
|
61
|
+
"0050001014" => { :retry => false, :explanation => "Error in parsing stream content" },
|
62
|
+
"0050001015" => { :retry => false, :explanation => "Currency error" },
|
63
|
+
"0050001016" => { :retry => false, :explanation => "Transaction still posted at end of wait" },
|
64
|
+
"0050001017" => { :retry => false, :explanation => "Sync value not compatible with delay value" },
|
65
|
+
"0050001019" => { :retry => false, :explanation => "Transaction duplicate of a pre-existing transaction" },
|
66
|
+
"0050001020" => { :retry => false, :explanation => "Acceptation code empty while required for the transaction" },
|
67
|
+
"0050001024" => { :retry => false, :explanation => "Maintenance acquirer differs from original transaction acquirer" },
|
68
|
+
"0050001025" => { :retry => false, :explanation => "Maintenance merchant differs from original transaction merchant" },
|
69
|
+
"0050001028" => { :retry => false, :explanation => "Maintenance operation not accurate for the original transaction" },
|
70
|
+
"0050001031" => { :retry => false, :explanation => "Host application unknown for the transaction" },
|
71
|
+
"0050001032" => { :retry => false, :explanation => "Unable to perform requested operation with requested currency" },
|
72
|
+
"0050001033" => { :retry => false, :explanation => "Maintenance card number differs from original transaction card number" },
|
73
|
+
"0050001034" => { :retry => false, :explanation => "Operation code not allowed" },
|
74
|
+
"0050001035" => { :retry => false, :explanation => "Exception occurred in socket input stream treatment" },
|
75
|
+
"0050001036" => { :retry => false, :explanation => "Card length does not correspond to an acceptable value for the brand" },
|
76
|
+
"0050001068" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
77
|
+
"0050001069" => { :retry => false, :explanation => "Invalid check for CardID and Brand" },
|
78
|
+
"0050001070" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
79
|
+
"0050001116" => { :retry => false, :explanation => "Unknown origin IP" },
|
80
|
+
"0050001117" => { :retry => false, :explanation => "No origin IP detected" },
|
81
|
+
"0050001118" => { :retry => false, :explanation => "Merchant configuration problem, please contact support" },
|
82
|
+
"020001001" => { :retry => true, :explanation => "Authorization failed, please retry" },
|
83
|
+
"10001001" => { :retry => false, :explanation => "Communication failure" },
|
84
|
+
"10001002" => { :retry => false, :explanation => "Communication failure" },
|
85
|
+
"10001003" => { :retry => false, :explanation => "Communication failure" },
|
86
|
+
"10001004" => { :retry => false, :explanation => "Communication failure" },
|
87
|
+
"10001005" => { :retry => false, :explanation => "Communication failure" },
|
88
|
+
"20001001" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
89
|
+
"20001002" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
90
|
+
"20001003" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
91
|
+
"20001004" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
92
|
+
"20001005" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
93
|
+
"20001006" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
94
|
+
"20001007" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
95
|
+
"20001008" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
96
|
+
"20001009" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
97
|
+
"20001010" => { :retry => false, :explanation => "We received an unknown status for the transaction. We will contact your acquirer and update the status of the transaction within one working day. Please check the status later." },
|
98
|
+
"20001101" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
99
|
+
"20001111" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
100
|
+
"20002001" => { :retry => false, :explanation => "Origin for the response of the bank can not be checked" },
|
101
|
+
"20002002" => { :retry => false, :explanation => "Beneficiary account number has been modified during processing" },
|
102
|
+
"20002003" => { :retry => false, :explanation => "Amount has been modified during processing" },
|
103
|
+
"20002004" => { :retry => false, :explanation => "Currency has been modified during processing" },
|
104
|
+
"20002005" => { :retry => false, :explanation => "No feedback from the bank server has been detected" },
|
105
|
+
"30001001" => { :retry => false, :explanation => "Payment refused by the acquirer" },
|
106
|
+
"30001002" => { :retry => false, :explanation => "Duplicate request" },
|
107
|
+
"30001010" => { :retry => true, :explanation => "A technical problem occurred, please contact helpdesk" },
|
108
|
+
"30001011" => { :retry => true, :explanation => "A technical problem occurred, please contact helpdesk" },
|
109
|
+
"30001012" => { :retry => false, :explanation => "Card black listed - Contact acquirer" },
|
110
|
+
"30001051" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
111
|
+
"30001054" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
112
|
+
"30001057" => { :retry => true, :explanation => "Your merchant's acquirer is temporarily unavailable, please try later or choose another payment method." },
|
113
|
+
"30001058" => { :retry => true, :explanation => "Your merchant's acquirer is temporarily unavailable, please try later or choose another payment method." },
|
114
|
+
"30001090" => { :retry => false, :explanation => "CVC check required by front end and returned invalid by acquirer" },
|
115
|
+
"30001091" => { :retry => false, :explanation => "ZIP check required by front end and returned invalid by acquirer" },
|
116
|
+
"30001092" => { :retry => false, :explanation => "Address check required by front end and returned as invalid by acquirer." },
|
117
|
+
"30001100" => { :retry => false, :explanation => "Unauthorized buyer's country" },
|
118
|
+
"30001101" => { :retry => false, :explanation => "IP country <> card country" },
|
119
|
+
"30001102" => { :retry => false, :explanation => "Number of different countries too high" },
|
120
|
+
"30001110" => { :retry => false, :explanation => "If the problem persists, please contact Support, or go to paysafecard's card balance page (https://customer.cc.at.paysafecard.com/psccustomer/GetWelcomePanelServlet?language=en) to see when the amount reserved on your card will be available again." },
|
121
|
+
"30001120" => { :retry => false, :explanation => "IP address in merchant's black list" },
|
122
|
+
"30001130" => { :retry => false, :explanation => "BIN in merchant's black list" },
|
123
|
+
"30001140" => { :retry => false, :explanation => "Card in merchant's card blacklist" },
|
124
|
+
"30001141" => { :retry => false, :explanation => "Email in blacklist" },
|
125
|
+
"30001142" => { :retry => false, :explanation => "Passenger name in blacklist" },
|
126
|
+
"30001143" => { :retry => false, :explanation => "Card holder name in blacklist" },
|
127
|
+
"30001144" => { :retry => false, :explanation => "Passenger name different from owner name" },
|
128
|
+
"30001145" => { :retry => false, :explanation => "Time to departure too short" },
|
129
|
+
"30001150" => { :retry => false, :explanation => "Card not configured in the system for this customer (CSL)" },
|
130
|
+
"30001151" => { :retry => false, :explanation => "REF1 not allowed for this relationship (Contract number" },
|
131
|
+
"30001152" => { :retry => false, :explanation => "Card/Supplier Amount limit reached (CSL)" },
|
132
|
+
"30001153" => { :retry => false, :explanation => "Card not allowed for this supplier (Date out of contract bounds)" },
|
133
|
+
"30001154" => { :retry => false, :explanation => "You have reached the usage limit allowed" },
|
134
|
+
"30001155" => { :retry => false, :explanation => "You have reached the usage limit allowed" },
|
135
|
+
"30001156" => { :retry => false, :explanation => "You have reached the usage limit allowed" },
|
136
|
+
"30001157" => { :retry => false, :explanation => "Unauthorized IP country for itinerary" },
|
137
|
+
"30001158" => { :retry => false, :explanation => "email usage limit reached" },
|
138
|
+
"30001159" => { :retry => false, :explanation => "Unauthorized card country/IP country combination" },
|
139
|
+
"30001160" => { :retry => false, :explanation => "Postcode in highrisk group" },
|
140
|
+
"30001161" => { :retry => false, :explanation => "generic blacklist match" },
|
141
|
+
"30001180" => { :retry => false, :explanation => "maximum scoring reached" },
|
142
|
+
"30001997" => { :retry => false, :explanation => "Authorization canceled by simulation" },
|
143
|
+
"30001998" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
144
|
+
"30001999" => { :retry => true, :explanation => "Your merchant's acquirer is temporarily unavailable, please try later or choose another payment method." },
|
145
|
+
"30002001" => { :retry => false, :explanation => "Payment refused by the financial institution" },
|
146
|
+
"30021001" => { :retry => false, :explanation => "Call acquirer support call number." },
|
147
|
+
"30031001" => { :retry => false, :explanation => "Invalid merchant number." },
|
148
|
+
"30041001" => { :retry => false, :explanation => "Retain card." },
|
149
|
+
"30051001" => { :retry => false, :explanation => "Authorization declined" },
|
150
|
+
"30071001" => { :retry => false, :explanation => "Retain card - special conditions." },
|
151
|
+
"30121001" => { :retry => false, :explanation => "Invalid transaction" },
|
152
|
+
"30131001" => { :retry => false, :explanation => "Invalid amount" },
|
153
|
+
"30131002" => { :retry => false, :explanation => "You have reached the total amount allowed" },
|
154
|
+
"30141001" => { :retry => false, :explanation => "Invalid card number" },
|
155
|
+
"30151001" => { :retry => false, :explanation => "Unknown acquiring institution." },
|
156
|
+
"30171001" => { :retry => false, :explanation => "Payment method cancelled by the buyer" },
|
157
|
+
"30171002" => { :retry => false, :explanation => "The maximum time allowed is elapsed." },
|
158
|
+
"30191001" => { :retry => false, :explanation => "Try again later." },
|
159
|
+
"30201001" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
160
|
+
"30301001" => { :retry => false, :explanation => "Invalid format" },
|
161
|
+
"30311001" => { :retry => false, :explanation => "Unknown acquirer ID." },
|
162
|
+
"30331001" => { :retry => false, :explanation => "Card expired." },
|
163
|
+
"30341001" => { :retry => false, :explanation => "Suspicion of fraud." },
|
164
|
+
"30381001" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
165
|
+
"30401001" => { :retry => false, :explanation => "Invalid functionM." },
|
166
|
+
"30411001" => { :retry => false, :explanation => "Lost card." },
|
167
|
+
"30431001" => { :retry => false, :explanation => "Stolen card, pick up" },
|
168
|
+
"30511001" => { :retry => false, :explanation => "Insufficient funds." },
|
169
|
+
"30541001" => { :retry => false, :explanation => "Card expired." },
|
170
|
+
"30551001" => { :retry => false, :explanation => "Invalid PIN." },
|
171
|
+
"30561001" => { :retry => false, :explanation => "Card not in authorizer's database." },
|
172
|
+
"30571001" => { :retry => false, :explanation => "Transaction not permitted on card." },
|
173
|
+
"30581001" => { :retry => false, :explanation => "Transaction interdite au terminal" },
|
174
|
+
"30591001" => { :retry => false, :explanation => "Suspicion of fraud." },
|
175
|
+
"30601001" => { :retry => false, :explanation => "The merchant must contact the acquirer." },
|
176
|
+
"30611001" => { :retry => true, :explanation => "Amount exceeds card ceiling." },
|
177
|
+
"30621001" => { :retry => false, :explanation => "Restricted card." },
|
178
|
+
"30631001" => { :retry => false, :explanation => "Security policy not respected." },
|
179
|
+
"30641001" => { :retry => false, :explanation => "Amount changed from ref. trn." },
|
180
|
+
"30681001" => { :retry => false, :explanation => "Tardy response." },
|
181
|
+
"30751001" => { :retry => false, :explanation => "PIN entered incorrectly too often" },
|
182
|
+
"30761001" => { :retry => false, :explanation => "Card holder already contesting." },
|
183
|
+
"30771001" => { :retry => false, :explanation => "PIN entry required." },
|
184
|
+
"30811001" => { :retry => false, :explanation => "Message flow error." },
|
185
|
+
"30821001" => { :retry => false, :explanation => "Authorization center unavailable" },
|
186
|
+
"30831001" => { :retry => false, :explanation => "Authorization center unavailable" },
|
187
|
+
"30901001" => { :retry => false, :explanation => "Temporary system shutdown." },
|
188
|
+
"30911001" => { :retry => false, :explanation => "Acquirer unavailable." },
|
189
|
+
"30921001" => { :retry => false, :explanation => "Invalid card type for acquirer." },
|
190
|
+
"30941001" => { :retry => false, :explanation => "Duplicate transaction" },
|
191
|
+
"30961001" => { :retry => true, :explanation => "Processing temporarily not possible" },
|
192
|
+
"30971001" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
193
|
+
"30981001" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
194
|
+
"31011001" => { :retry => false, :explanation => "Unknown acceptance code" },
|
195
|
+
"31021001" => { :retry => false, :explanation => "Invalid currency" },
|
196
|
+
"31031001" => { :retry => false, :explanation => "Acceptance code missing" },
|
197
|
+
"31041001" => { :retry => false, :explanation => "Inactive card" },
|
198
|
+
"31051001" => { :retry => false, :explanation => "Merchant not active" },
|
199
|
+
"31061001" => { :retry => false, :explanation => "Invalid expiration date" },
|
200
|
+
"31071001" => { :retry => false, :explanation => "Interrupted host communication" },
|
201
|
+
"31081001" => { :retry => false, :explanation => "Card refused" },
|
202
|
+
"31091001" => { :retry => false, :explanation => "Invalid password" },
|
203
|
+
"31101001" => { :retry => false, :explanation => "Plafond transaction (majoré du bonus) dépassé" },
|
204
|
+
"31111001" => { :retry => false, :explanation => "Plafond mensuel (majoré du bonus) dépassé" },
|
205
|
+
"31121001" => { :retry => false, :explanation => "Plafond centre de facturation dépassé" },
|
206
|
+
"31131001" => { :retry => false, :explanation => "Plafond entreprise dépassé" },
|
207
|
+
"31141001" => { :retry => false, :explanation => "Code MCC du fournisseur non autorisé pour la carte" },
|
208
|
+
"31151001" => { :retry => false, :explanation => "Numéro SIRET du fournisseur non autorisé pour la carte" },
|
209
|
+
"31161001" => { :retry => false, :explanation => "This is not a valid online banking account" },
|
210
|
+
"32001004" => { :retry => false, :explanation => "A technical problem occurred, please try again." },
|
211
|
+
"39991001" => { :retry => false, :explanation => "A technical problem occurred, please contact the helpdesk of your acquirer" },
|
212
|
+
"40001001" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
213
|
+
"40001002" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
214
|
+
"40001003" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
215
|
+
"40001004" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
216
|
+
"40001005" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
217
|
+
"40001006" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
218
|
+
"40001007" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
219
|
+
"40001008" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
220
|
+
"40001009" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
221
|
+
"40001010" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
222
|
+
"40001011" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
223
|
+
"40001012" => { :retry => true, :explanation => "Your merchant's acquirer is temporarily unavailable, please try later or choose another payment method." },
|
224
|
+
"40001013" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
225
|
+
"40001016" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
226
|
+
"40001018" => { :retry => true, :explanation => "A technical problem occurred, please try again." },
|
227
|
+
"40001019" => { :retry => true, :explanation => "Sorry, an error occurred during processing. Please retry the operation (use back button of the browser). If problem persists, contact your merchant's helpdesk." },
|
228
|
+
"40001050" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
229
|
+
"40001134" => { :retry => true, :explanation => "Authentication failed, please retry or cancel." },
|
230
|
+
"40001135" => { :retry => true, :explanation => "Authentication temporary unavailable, please retry or cancel." },
|
231
|
+
"40001136" => { :retry => true, :explanation => "Technical problem with your browser, please retry or cancel" },
|
232
|
+
"40001137" => { :retry => true, :explanation => "Your bank access control server is temporary unavailable, please retry or cancel" },
|
233
|
+
"40001998" => { :retry => false, :explanation => "Temporary technical problem. Please retry a little bit later." },
|
234
|
+
"50001001" => { :retry => false, :explanation => "Unknown card type" },
|
235
|
+
"50001002" => { :retry => false, :explanation => "Card number format check failed for given card number." },
|
236
|
+
"50001003" => { :retry => false, :explanation => "Merchant data error" },
|
237
|
+
"50001004" => { :retry => false, :explanation => "Merchant identification missing" },
|
238
|
+
"50001005" => { :retry => false, :explanation => "Expiry date error" },
|
239
|
+
"50001006" => { :retry => false, :explanation => "Amount is not a number" },
|
240
|
+
"50001007" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
241
|
+
"50001008" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
242
|
+
"50001009" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
243
|
+
"50001010" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
244
|
+
"50001011" => { :retry => false, :explanation => "Brand not supported for that merchant" },
|
245
|
+
"50001012" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
246
|
+
"50001013" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
247
|
+
"50001014" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
248
|
+
"50001015" => { :retry => false, :explanation => "Invalid currency code" },
|
249
|
+
"50001016" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
250
|
+
"50001017" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
251
|
+
"50001018" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
252
|
+
"50001019" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
253
|
+
"50001020" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
254
|
+
"50001021" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
255
|
+
"50001022" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
256
|
+
"50001023" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
257
|
+
"50001024" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
258
|
+
"50001025" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
259
|
+
"50001026" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
260
|
+
"50001027" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
261
|
+
"50001028" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
262
|
+
"50001029" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
263
|
+
"50001030" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
264
|
+
"50001031" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
265
|
+
"50001032" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
266
|
+
"50001033" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
267
|
+
"50001034" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
268
|
+
"50001035" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
269
|
+
"50001036" => { :retry => false, :explanation => "Card length does not correspond to an acceptable value for the brand" },
|
270
|
+
"50001037" => { :retry => false, :explanation => "Purchasing card number for a regular merchant" },
|
271
|
+
"50001038" => { :retry => false, :explanation => "Non Purchasing card for a Purchasing card merchant" },
|
272
|
+
"50001039" => { :retry => false, :explanation => "Details sent for a non-Purchasing card merchant, please contact helpdesk" },
|
273
|
+
"50001040" => { :retry => false, :explanation => "Details not sent for a Purchasing card transaction, please contact helpdesk" },
|
274
|
+
"50001041" => { :retry => false, :explanation => "Payment detail validation failed" },
|
275
|
+
"50001042" => { :retry => false, :explanation => "Given transactions amounts (tax,discount,shipping,net,etc…) do not compute correctly together" },
|
276
|
+
"50001043" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
277
|
+
"50001044" => { :retry => false, :explanation => "No acquirer configured for this operation" },
|
278
|
+
"50001045" => { :retry => false, :explanation => "No UID configured for this operation" },
|
279
|
+
"50001046" => { :retry => false, :explanation => "Operation not allowed for the merchant" },
|
280
|
+
"50001047" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
281
|
+
"50001048" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
282
|
+
"50001049" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
283
|
+
"50001050" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
284
|
+
"50001051" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
285
|
+
"50001052" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
286
|
+
"50001053" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
287
|
+
"50001054" => { :retry => false, :explanation => "Card detection routine did not find any brand that matches" },
|
288
|
+
"50001055" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
289
|
+
"50001056" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
290
|
+
"50001057" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
291
|
+
"50001058" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
292
|
+
"50001059" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
293
|
+
"50001060" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
294
|
+
"50001061" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
295
|
+
"50001062" => { :retry => false, :explanation => "A technical problem occurred, please contact helpdesk" },
|
296
|
+
"50001063" => { :retry => false, :explanation => "Card Issue Number does not correspond to range or not present" },
|
297
|
+
"50001064" => { :retry => false, :explanation => "Start Date not valid or not present" },
|
298
|
+
"50001066" => { :retry => false, :explanation => "Format of CVC code invalid" },
|
299
|
+
"50001067" => { :retry => false, :explanation => "The merchant is not enrolled for 3D-Secure" },
|
300
|
+
"50001068" => { :retry => false, :explanation => "The card number or account number (PAN) is invalid" },
|
301
|
+
"50001069" => { :retry => false, :explanation => "Invalid check for CardID and Brand" },
|
302
|
+
"50001070" => { :retry => false, :explanation => "The ECI value given is either not supported, or in conflict with other data in the transaction" },
|
303
|
+
"50001071" => { :retry => false, :explanation => "Incomplete TRN demat" },
|
304
|
+
"50001072" => { :retry => false, :explanation => "Incomplete PAY demat" },
|
305
|
+
"50001073" => { :retry => false, :explanation => "No demat APP" },
|
306
|
+
"50001074" => { :retry => false, :explanation => "Authorisation too old" },
|
307
|
+
"50001075" => { :retry => false, :explanation => "VERRes was an error message" },
|
308
|
+
"50001076" => { :retry => false, :explanation => "DCP amount greater than autorisation amount" },
|
309
|
+
"50001077" => { :retry => false, :explanation => "Details negative amount" },
|
310
|
+
"50001078" => { :retry => false, :explanation => "Details negative quantity" },
|
311
|
+
"50001079" => { :retry => false, :explanation => "Could not decode/decompress received PARes (3D-Secure)" },
|
312
|
+
"50001080" => { :retry => false, :explanation => "Received PARes was an erereor message from ACS (3D-Secure)" },
|
313
|
+
"50001081" => { :retry => false, :explanation => "Received PARes format was invalid according to the 3DS specifications (3D-Secure)" },
|
314
|
+
"50001082" => { :retry => false, :explanation => "PAReq/PARes reconciliation failure (3D-Secure)" },
|
315
|
+
"50001084" => { :retry => false, :explanation => "Maximum amount reached" },
|
316
|
+
"50001087" => { :retry => false, :explanation => "The transaction type requires authentication, please check with your bank." },
|
317
|
+
"50001090" => { :retry => false, :explanation => "CVC missing at input, but CVC check asked" },
|
318
|
+
"50001091" => { :retry => false, :explanation => "ZIP missing at input, but ZIP check asked" },
|
319
|
+
"50001092" => { :retry => false, :explanation => "Address missing at input, but Address check asked" },
|
320
|
+
"50001095" => { :retry => false, :explanation => "Invalid date of birth" },
|
321
|
+
"50001096" => { :retry => false, :explanation => "Invalid commodity code" },
|
322
|
+
"50001097" => { :retry => false, :explanation => "The requested currency and brand are incompatible." },
|
323
|
+
"50001111" => { :retry => false, :explanation => "Data validation error" },
|
324
|
+
"50001113" => { :retry => false, :explanation => "This order has already been processed" },
|
325
|
+
"50001114" => { :retry => false, :explanation => "Error pre-payment check page access" },
|
326
|
+
"50001115" => { :retry => false, :explanation => "Request not received in secure mode" },
|
327
|
+
"50001116" => { :retry => false, :explanation => "Unknown IP address origin" },
|
328
|
+
"50001117" => { :retry => false, :explanation => "NO IP address origin" },
|
329
|
+
"50001118" => { :retry => false, :explanation => "Pspid not found or not correct" },
|
330
|
+
"50001119" => { :retry => false, :explanation => "Password incorrect or disabled due to numbers of errors" },
|
331
|
+
"50001120" => { :retry => false, :explanation => "Invalid currency" },
|
332
|
+
"50001121" => { :retry => false, :explanation => "Invalid number of decimals for the currency" },
|
333
|
+
"50001122" => { :retry => false, :explanation => "Currency not accepted by the merchant" },
|
334
|
+
"50001123" => { :retry => false, :explanation => "Card type not active" },
|
335
|
+
"50001124" => { :retry => false, :explanation => "Number of lines don't match with number of payments" },
|
336
|
+
"50001125" => { :retry => false, :explanation => "Format validation error" },
|
337
|
+
"50001126" => { :retry => false, :explanation => "Overflow in data capture requests for the original order" },
|
338
|
+
"50001127" => { :retry => false, :explanation => "The original order is not in a correct status" },
|
339
|
+
"50001128" => { :retry => false, :explanation => "missing authorization code for unauthorized order" },
|
340
|
+
"50001129" => { :retry => false, :explanation => "Overflow in refunds requests" },
|
341
|
+
"50001130" => { :retry => false, :explanation => "Error access to original order" },
|
342
|
+
"50001131" => { :retry => false, :explanation => "Error access to original history item" },
|
343
|
+
"50001132" => { :retry => false, :explanation => "The Selected Catalog is empty" },
|
344
|
+
"50001133" => { :retry => false, :explanation => "Duplicate request" },
|
345
|
+
"50001134" => { :retry => false, :explanation => "Authentication failed, please retry or cancel." },
|
346
|
+
"50001135" => { :retry => false, :explanation => "Authentication temporary unavailable, please retry or cancel." },
|
347
|
+
"50001136" => { :retry => false, :explanation => "Technical problem with your browser, please retry or cancel" },
|
348
|
+
"50001137" => { :retry => false, :explanation => "Your bank access control server is temporary unavailable, please retry or cancel" },
|
349
|
+
"50001150" => { :retry => false, :explanation => "Fraud Detection, Technical error (IP not valid)" },
|
350
|
+
"50001151" => { :retry => false, :explanation => "Fraud detection : technical error (IPCTY unknown or error)" },
|
351
|
+
"50001152" => { :retry => false, :explanation => "Fraud detection : technical error (CCCTY unknown or error)" },
|
352
|
+
"50001153" => { :retry => false, :explanation => "Overflow in redo-authorisation requests" },
|
353
|
+
"50001170" => { :retry => false, :explanation => "Dynamic BIN check failed" },
|
354
|
+
"50001171" => { :retry => false, :explanation => "Dynamic country check failed" },
|
355
|
+
"50001172" => { :retry => false, :explanation => "Error in Amadeus signature" },
|
356
|
+
"60000001" => { :retry => false, :explanation => "account number unknown" },
|
357
|
+
"60000003" => { :retry => false, :explanation => "not credited dd-mm-yy" },
|
358
|
+
"60000005" => { :retry => false, :explanation => "name/number do not correspond" },
|
359
|
+
"60000007" => { :retry => false, :explanation => "account number blocked" },
|
360
|
+
"60000008" => { :retry => false, :explanation => "specific direct debit block" },
|
361
|
+
"60000009" => { :retry => false, :explanation => "account number WKA" },
|
362
|
+
"60000010" => { :retry => false, :explanation => "administrative reason" },
|
363
|
+
"60000011" => { :retry => false, :explanation => "account number expired" },
|
364
|
+
"60000012" => { :retry => false, :explanation => "no direct debit authorisation given" },
|
365
|
+
"60000013" => { :retry => false, :explanation => "debit not approved" },
|
366
|
+
"60000014" => { :retry => false, :explanation => "double payment" },
|
367
|
+
"60000018" => { :retry => false, :explanation => "name/address/city not entered" },
|
368
|
+
"60001001" => { :retry => false, :explanation => "no original direct debit for revocation" },
|
369
|
+
"60001002" => { :retry => false, :explanation => "payer’s account number format error" },
|
370
|
+
"60001004" => { :retry => false, :explanation => "payer’s account at different bank" },
|
371
|
+
"60001005" => { :retry => false, :explanation => "payee’s account at different bank" },
|
372
|
+
"60001006" => { :retry => false, :explanation => "payee’s account number format error" },
|
373
|
+
"60001007" => { :retry => false, :explanation => "payer’s account number blocked" },
|
374
|
+
"60001008" => { :retry => false, :explanation => "payer’s account number expired" },
|
375
|
+
"60001009" => { :retry => false, :explanation => "payee’s account number expired" },
|
376
|
+
"60001010" => { :retry => false, :explanation => "direct debit not possible" },
|
377
|
+
"60001011" => { :retry => false, :explanation => "creditor payment not possible" },
|
378
|
+
"60001012" => { :retry => false, :explanation => "payer’s account number unknown WKA-number" },
|
379
|
+
"60001013" => { :retry => false, :explanation => "payee’s account number unknown WKA-number" },
|
380
|
+
"60001014" => { :retry => false, :explanation => "impermissible WKA transaction" },
|
381
|
+
"60001015" => { :retry => false, :explanation => "period for revocation expired" },
|
382
|
+
"60001017" => { :retry => false, :explanation => "reason for revocation not correct" },
|
383
|
+
"60001018" => { :retry => false, :explanation => "original run number not numeric" },
|
384
|
+
"60001019" => { :retry => false, :explanation => "payment ID incorrect" },
|
385
|
+
"60001020" => { :retry => false, :explanation => "amount not numeric" },
|
386
|
+
"60001021" => { :retry => false, :explanation => "amount zero not permitted" },
|
387
|
+
"60001022" => { :retry => false, :explanation => "negative amount not permitted" },
|
388
|
+
"60001023" => { :retry => false, :explanation => "payer and payee giro account number" },
|
389
|
+
"60001025" => { :retry => false, :explanation => "processing code (verwerkingscode) incorrect" },
|
390
|
+
"60001028" => { :retry => false, :explanation => "revocation not permitted" },
|
391
|
+
"60001029" => { :retry => false, :explanation => "guaranteed direct debit on giro account number" },
|
392
|
+
"60001030" => { :retry => false, :explanation => "NBC transaction type incorrect" },
|
393
|
+
"60001031" => { :retry => false, :explanation => "description too large" },
|
394
|
+
"60001032" => { :retry => false, :explanation => "book account number not issued" },
|
395
|
+
"60001034" => { :retry => false, :explanation => "book account number incorrect" },
|
396
|
+
"60001035" => { :retry => false, :explanation => "payer’s account number not numeric" },
|
397
|
+
"60001036" => { :retry => false, :explanation => "payer’s account number not eleven-proof" },
|
398
|
+
"60001037" => { :retry => false, :explanation => "payer’s account number not issued" },
|
399
|
+
"60001039" => { :retry => false, :explanation => "payer’s account number of DNB/BGC/BLA" },
|
400
|
+
"60001040" => { :retry => false, :explanation => "payee’s account number not numeric" },
|
401
|
+
"60001041" => { :retry => false, :explanation => "payee’s account number not eleven-proof" },
|
402
|
+
"60001042" => { :retry => false, :explanation => "payee’s account number not issued" },
|
403
|
+
"60001044" => { :retry => false, :explanation => "payee’s account number unknown" },
|
404
|
+
"60001050" => { :retry => false, :explanation => "payee’s name missing" },
|
405
|
+
"60001051" => { :retry => false, :explanation => "indicate payee’s bank account number instead of 3102" },
|
406
|
+
"60001052" => { :retry => false, :explanation => "no direct debit contract" },
|
407
|
+
"60001053" => { :retry => false, :explanation => "amount beyond bounds" },
|
408
|
+
"60001054" => { :retry => false, :explanation => "selective direct debit block" },
|
409
|
+
"60001055" => { :retry => false, :explanation => "original run number unknown" },
|
410
|
+
"60001057" => { :retry => false, :explanation => "payer’s name missing" },
|
411
|
+
"60001058" => { :retry => false, :explanation => "payee’s account number missing" },
|
412
|
+
"60001059" => { :retry => false, :explanation => "restore not permitted" },
|
413
|
+
"60001060" => { :retry => false, :explanation => "bank’s reference (navraaggegeven) missing" },
|
414
|
+
"60001061" => { :retry => false, :explanation => "BEC/GBK number incorrect" },
|
415
|
+
"60001062" => { :retry => false, :explanation => "BEC/GBK code incorrect" },
|
416
|
+
"60001087" => { :retry => false, :explanation => "book account number not numeric" },
|
417
|
+
"60001090" => { :retry => false, :explanation => "cancelled on request" },
|
418
|
+
"60001091" => { :retry => false, :explanation => "cancellation order executed" },
|
419
|
+
"60001092" => { :retry => false, :explanation => "cancelled instead of bended" },
|
420
|
+
"60001093" => { :retry => false, :explanation => "book account number is a shortened account number" },
|
421
|
+
"60001094" => { :retry => false, :explanation => "instructing party account number not identical with payer" },
|
422
|
+
"60001095" => { :retry => false, :explanation => "payee unknown GBK acceptor" },
|
423
|
+
"60001097" => { :retry => false, :explanation => "instructing party account number not identical with payee" },
|
424
|
+
"60001099" => { :retry => false, :explanation => "clearing not permitted" },
|
425
|
+
"60001101" => { :retry => false, :explanation => "payer’s account number not spaces" },
|
426
|
+
"60001102" => { :retry => false, :explanation => "PAN length not numeric" },
|
427
|
+
"60001103" => { :retry => false, :explanation => "PAN length outside limits" },
|
428
|
+
"60001104" => { :retry => false, :explanation => "track number not numeric" },
|
429
|
+
"60001105" => { :retry => false, :explanation => "track number not valid" },
|
430
|
+
"60001106" => { :retry => false, :explanation => "PAN sequence number not numeric" },
|
431
|
+
"60001107" => { :retry => false, :explanation => "domestic PAN not numeric" },
|
432
|
+
"60001108" => { :retry => false, :explanation => "domestic PAN not eleven-proof" },
|
433
|
+
"60001109" => { :retry => false, :explanation => "domestic PAN not issued" },
|
434
|
+
"60001110" => { :retry => false, :explanation => "foreign PAN not numeric" },
|
435
|
+
"60001111" => { :retry => false, :explanation => "card valid date not numeric" },
|
436
|
+
"60001112" => { :retry => false, :explanation => "book period number (boekperiodenr) not numeric" },
|
437
|
+
"60001113" => { :retry => false, :explanation => "transaction number not numeric" },
|
438
|
+
"60001114" => { :retry => false, :explanation => "transaction time not numeric" },
|
439
|
+
"60001115" => { :retry => false, :explanation => "transaction no valid time" },
|
440
|
+
"60001116" => { :retry => false, :explanation => "transaction date not numeric" },
|
441
|
+
"60001117" => { :retry => false, :explanation => "transaction no valid date" },
|
442
|
+
"60001118" => { :retry => false, :explanation => "STAN not numeric" },
|
443
|
+
"60001119" => { :retry => false, :explanation => "instructing party’s name missing" },
|
444
|
+
"60001120" => { :retry => false, :explanation => "foreign amount (bedrag-vv) not numeric" },
|
445
|
+
"60001122" => { :retry => false, :explanation => "rate (verrekenkoers) not numeric" },
|
446
|
+
"60001125" => { :retry => false, :explanation => "number of decimals (aantaldecimalen) incorrect" },
|
447
|
+
"60001126" => { :retry => false, :explanation => "tariff (tarifering) not B/O/S" },
|
448
|
+
"60001127" => { :retry => false, :explanation => "domestic costs (kostenbinnenland) not numeric" },
|
449
|
+
"60001128" => { :retry => false, :explanation => "domestic costs (kostenbinnenland) not higher than zero" },
|
450
|
+
"60001129" => { :retry => false, :explanation => "foreign costs (kostenbuitenland) not numeric" },
|
451
|
+
"60001130" => { :retry => false, :explanation => "foreign costs (kostenbuitenland) not higher than zero" },
|
452
|
+
"60001131" => { :retry => false, :explanation => "domestic costs (kostenbinnenland) not zero" },
|
453
|
+
"60001132" => { :retry => false, :explanation => "foreign costs (kostenbuitenland) not zero" },
|
454
|
+
"60001134" => { :retry => false, :explanation => "Euro record not fully filled in" },
|
455
|
+
"60001135" => { :retry => false, :explanation => "Client currency incorrect" },
|
456
|
+
"60001136" => { :retry => false, :explanation => "Amount NLG not numeric" },
|
457
|
+
"60001137" => { :retry => false, :explanation => "Amount NLG not higher than zero" },
|
458
|
+
"60001138" => { :retry => false, :explanation => "Amount NLG not equal to Amount" },
|
459
|
+
"60001139" => { :retry => false, :explanation => "Amount NLG incorrectly converted" },
|
460
|
+
"60001140" => { :retry => false, :explanation => "Amount EUR not numeric" },
|
461
|
+
"60001141" => { :retry => false, :explanation => "Amount EUR not greater than zero" },
|
462
|
+
"60001142" => { :retry => false, :explanation => "Amount EUR not equal to Amount" },
|
463
|
+
"60001143" => { :retry => false, :explanation => "Amount EUR incorrectly converted" },
|
464
|
+
"60001144" => { :retry => false, :explanation => "Client currency not NLG" },
|
465
|
+
"60001145" => { :retry => false, :explanation => "rate euro-vv (Koerseuro-vv) not numeric" },
|
466
|
+
"60001146" => { :retry => false, :explanation => "comma rate euro-vv (Kommakoerseuro-vv) incorrect" },
|
467
|
+
"60001147" => { :retry => false, :explanation => "acceptgiro distributor not valid" },
|
468
|
+
"60001148" => { :retry => false, :explanation => "Original run number and/or BRN are missing" },
|
469
|
+
"60001149" => { :retry => false, :explanation => "Amount/Account number/ BRN different" },
|
470
|
+
"60001150" => { :retry => false, :explanation => "Direct debit already revoked/restored" },
|
471
|
+
"60001151" => { :retry => false, :explanation => "Direct debit already reversed/revoked/restored" },
|
472
|
+
"60001153" => { :retry => false, :explanation => "Payer’s account number not known" }
|
473
|
+
}
|
474
|
+
end
|
475
|
+
end
|
476
|
+
end
|
477
|
+
end
|