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