minfraud 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -20
  3. data/CHANGELOG.md +48 -1
  4. data/Gemfile +0 -9
  5. data/README.md +2 -2
  6. data/lib/minfraud/assessments.rb +21 -16
  7. data/lib/minfraud/components/account.rb +1 -1
  8. data/lib/minfraud/components/billing.rb +1 -1
  9. data/lib/minfraud/components/credit_card.rb +1 -1
  10. data/lib/minfraud/components/custom_inputs.rb +1 -1
  11. data/lib/minfraud/components/device.rb +1 -1
  12. data/lib/minfraud/components/email.rb +1 -1
  13. data/lib/minfraud/components/event.rb +11 -11
  14. data/lib/minfraud/components/order.rb +1 -1
  15. data/lib/minfraud/components/payment.rb +152 -142
  16. data/lib/minfraud/components/report/transaction.rb +2 -2
  17. data/lib/minfraud/components/shipping.rb +2 -2
  18. data/lib/minfraud/components/shopping_cart.rb +1 -1
  19. data/lib/minfraud/components/shopping_cart_item.rb +3 -3
  20. data/lib/minfraud/http_service/response.rb +28 -21
  21. data/lib/minfraud/model/device.rb +1 -1
  22. data/lib/minfraud/model/disposition.rb +3 -3
  23. data/lib/minfraud/model/ip_address.rb +4 -47
  24. data/lib/minfraud/model/score.rb +1 -1
  25. data/lib/minfraud/model/subscores.rb +0 -22
  26. data/lib/minfraud/report.rb +19 -11
  27. data/lib/minfraud/validates.rb +2 -2
  28. data/lib/minfraud/version.rb +1 -1
  29. data/lib/minfraud.rb +18 -24
  30. data/minfraud.gemspec +8 -5
  31. metadata +21 -47
  32. data/lib/maxmind/geoip2/model/city.rb +0 -99
  33. data/lib/maxmind/geoip2/model/country.rb +0 -94
  34. data/lib/maxmind/geoip2/model/insights.rb +0 -38
  35. data/lib/maxmind/geoip2/record/abstract.rb +0 -46
  36. data/lib/maxmind/geoip2/record/city.rb +0 -62
  37. data/lib/maxmind/geoip2/record/continent.rb +0 -61
  38. data/lib/maxmind/geoip2/record/country.rb +0 -78
  39. data/lib/maxmind/geoip2/record/location.rb +0 -97
  40. data/lib/maxmind/geoip2/record/maxmind.rb +0 -41
  41. data/lib/maxmind/geoip2/record/place.rb +0 -52
  42. data/lib/maxmind/geoip2/record/postal.rb +0 -54
  43. data/lib/maxmind/geoip2/record/represented_country.rb +0 -47
  44. data/lib/maxmind/geoip2/record/subdivision.rb +0 -72
  45. data/lib/maxmind/geoip2/record/traits.rb +0 -233
  46. data/lib/minfraud/http_service/request.rb +0 -38
  47. data/lib/minfraud/http_service.rb +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6df345c5d62d26c7e778a55423ac6a542ec8b94c040c6a43d26ef0cdad484503
4
- data.tar.gz: 9d7d427983c71db3e4aa8ac1f7ef1008388a4847b455db50179e579292ac8c61
3
+ metadata.gz: 4e3c2e76357a683ceda7350bde7dc4c89cc6055d473b771ee74041d4371f05f7
4
+ data.tar.gz: 60aacbf2435a51f65c9d9702e209ddab469d21dd672ba8d5baf34dae807deb2f
5
5
  SHA512:
6
- metadata.gz: 2cb3b9e1e1d825c828cf1e73684b70784ee1ba5de18902a1d76cd08b5f625cb276bd3a276c64e74f8c3cf8a8269be9c7707a6cd5afa12700d59281985178d070
7
- data.tar.gz: 55fd1da7ed9543c44a6efcd4b3638b03a1537c31de12773a0446789f129234ceed750e16e8b0c8c629bcf2956815ef0b0f00cfdfe482fe3e4ad736b0cef5b3ef
6
+ metadata.gz: ebdccdbdb2d97665faabbf8486cdeb029e1a1d372a09a1ffeff226f5f900d99887e6e370e01515543983c46f86d4083fa347e557d82c5dde265b079e055adddc
7
+ data.tar.gz: 61f65f9cc64dd1e0c205c5c2f8df5acfb621dc1ae80b828d5df27e0616964ac0c0a1315b609a4a3228b1f9ecce78dd31411b66513c25eb4311532b3b9f71d775
data/.rubocop.yml CHANGED
@@ -40,7 +40,7 @@ Layout/IndentationStyle:
40
40
  # Style.
41
41
 
42
42
  Style/HashSyntax:
43
- EnforcedStyle: ruby19_no_mixed_keys # Default is ruby19.
43
+ EnforcedStyle: ruby19_no_mixed_keys # Default is ruby19. This one is better.
44
44
 
45
45
  Style/CollectionMethods:
46
46
  Enabled: true # Default is false.
@@ -54,9 +54,6 @@ Style/NegatedIf: # I disagree with this.
54
54
  Style/IfUnlessModifier: # This doesn't always make sense.
55
55
  Enabled: false
56
56
 
57
- Style/SymbolArray:
58
- EnforcedStyle: brackets # Default is percent, but 1.9 doesn't support that.
59
-
60
57
  # Trailing commas are often good.
61
58
  Style/TrailingCommaInArguments:
62
59
  Enabled: false
@@ -65,9 +62,6 @@ Style/TrailingCommaInArrayLiteral:
65
62
  Style/TrailingCommaInHashLiteral:
66
63
  Enabled: false
67
64
 
68
- Style/SafeNavigation:
69
- Enabled: false # Default is true, but this 1.9 doesn't support it.
70
-
71
65
  # Default is both which is probably fine, but it changes code and I don't want
72
66
  # to investigate any possible behavior change right now.
73
67
  Style/EmptyElse:
@@ -76,25 +70,12 @@ Style/EmptyElse:
76
70
  Style/ConditionalAssignment:
77
71
  Enabled: false # This produces kind of strange results.
78
72
 
79
- Style/Dir:
80
- Enabled: false # This is good, but not supported on 1.9.
81
-
82
- Style/ExpandPathArguments:
83
- Enabled: false # This causes us to use __dir__ which 1.9 doesn't support.
84
-
85
73
  Style/GuardClause:
86
74
  Enabled: false # Doesn't always make sense.
87
75
 
88
- Style/Documentation:
89
- Enabled: false # We should enable this, but allow for pre-existing code.
90
-
91
76
  Style/FormatStringToken:
92
77
  Enabled: false # Seems unnecessary.
93
78
 
94
- # Asks to use x.negative? instead of x < 0. But this isn't available until 2.3.
95
- Style/NumericPredicate:
96
- Enabled: false
97
-
98
79
  # Seems unnecessary. Asks us to call super in a bunch of places when there's no
99
80
  # need.
100
81
  Lint/MissingSuper:
data/CHANGELOG.md CHANGED
@@ -1,4 +1,50 @@
1
- # Minfraud Changelog
1
+ # Changelog
2
+
3
+ ## v2.0.0 (2021-12-06)
4
+
5
+ * Breaking change from 1.x: Removed deprecated methods
6
+ `is_in_european_union`, `is_anonymous`, `is_anonymous_vpn`,
7
+ `is_hosting_provider`, `is_public_proxy`, and `is_tor_exit_node`. The
8
+ non-deprecated equivalents are `in_european_union?`, `anonymous?`,
9
+ `anonymous_vpn?`, `hosting_provider?`, `public_proxy?`, and
10
+ `tor_exit_node?`.
11
+ * Breaking change from 1.x: Removed deprecated methods for deprecated
12
+ subscores: `email_tenure` and `ip_tenure`. For `email_tenure`, please use
13
+ the `email_address` subscore instead. For `ip_tenure`, please use
14
+ `risk_score` instead.
15
+ * Breaking change from 1.x: Removed deprecated method for deprecated
16
+ attribute `ip_address.country.is_high_risk`.
17
+ * Breaking change from 1.x: Switches HTTP client from faraday to http.rb.
18
+ There should be no behavior change for most users, but this is
19
+ technically a breaking change from the perspective of semver. Most users
20
+ should not be affected as the changes are limited to attributes and
21
+ classes that would not normally be accessed outside the gem.
22
+ * Breaking change from 1.x: `user_id` is no longer supported as a way to
23
+ configure your MaxMind account ID. Use `account_id` instead.
24
+ * Breaking change from 1.x: Removed the `Minfraud.configuration` method.
25
+ * Breaking change from 1.x: Localized names are no longer exposed via
26
+ methods on `names` objects, only as hash keys. For example, use
27
+ `response.ip_address.country.names['en']` instead of
28
+ `response.ip_address.country.names.en`. The latter was deprecated.
29
+ * Adds mobile country code (MCC) and mobile network code (MNC) to minFraud
30
+ Insights and Factors responses. These are available at
31
+ `response.ip_address.traits.mobile_country_code` and
32
+ `response.ip_address.traits.mobile_network_code`. We expect this data to
33
+ be available by late January, 2022.
34
+ * Adds the following new processors to `Minfraud::Components::Payment`:
35
+ * `:boacompra`
36
+ * `:boku`
37
+ * `:coregateway`
38
+ * `:fiserv`
39
+ * `:neopay`
40
+ * `:neosurf`
41
+ * `:openbucks`
42
+ * `:paysera`
43
+ * `:payvision`
44
+ * `:trustly`
45
+ * Depend on the `maxmind-geoip2` gem. This allows us to delete classes from
46
+ that gem that we previously had included in this gem. There is no
47
+ functional difference.
2
48
 
3
49
  ## v1.6.0 (2021-08-19)
4
50
 
@@ -103,6 +149,7 @@
103
149
  * Adds `amount` attribute to the `Minfraud::Components::Order` instances
104
150
 
105
151
  ## v1.0.3 (2016-11-24)
152
+
106
153
  * Adds `token` attribute to the `Minfraud::Components::CreditCard` instances
107
154
  according to the MinFraud Release Notes introduced on November 17, 2016
108
155
 
data/Gemfile CHANGED
@@ -2,13 +2,4 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- # coveralls fails on Ruby 1.9. My understanding is we don't need to run this on
6
- # more than one version anyway, so restrict to the current latest.
7
- version_pieces = RUBY_VERSION.split('.')
8
- major_version = version_pieces[0]
9
- minor_version = version_pieces[1]
10
- if major_version == '2' && minor_version == '7'
11
- gem 'coveralls', require: false
12
- end
13
-
14
5
  gemspec
data/README.md CHANGED
@@ -3,9 +3,9 @@
3
3
  ## Description
4
4
 
5
5
  This package provides an API for the [MaxMind minFraud web
6
- services](https://dev.maxmind.com/minfraud/). This includes minFraud Score,
6
+ services](https://dev.maxmind.com/minfraud?lang=en). This includes minFraud Score,
7
7
  Insights, and Factors. It also includes our [minFraud Report Transaction
8
- API](https://dev.maxmind.com/minfraud/report-transaction/).
8
+ API](https://dev.maxmind.com/minfraud/report-a-transaction?lang=en).
9
9
 
10
10
  The legacy minFraud Standard and Premium services are not supported by this
11
11
  API.
@@ -4,9 +4,8 @@ module Minfraud
4
4
  # Assessments is used to perform minFraud Score, Insights, and Factors
5
5
  # requests.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/
7
+ # @see https://dev.maxmind.com/minfraud?lang=en
8
8
  class Assessments
9
- include ::Minfraud::HTTPService
10
9
  include ::Minfraud::Resolver
11
10
 
12
11
  # The Account component.
@@ -82,6 +81,8 @@ module Minfraud
82
81
  #
83
82
  # @return [Minfraud::HTTPService::Response]
84
83
  #
84
+ # @raise [JSON::ParserError] if there was invalid JSON in the response.
85
+ #
85
86
  # @raise [Minfraud::AuthorizationError] If there was an authentication
86
87
  # problem.
87
88
  #
@@ -98,6 +99,8 @@ module Minfraud
98
99
  #
99
100
  # @return [Minfraud::HTTPService::Response]
100
101
  #
102
+ # @raise [JSON::ParserError] if there was invalid JSON in the response.
103
+ #
101
104
  # @raise [Minfraud::AuthorizationError] If there was an authentication
102
105
  # problem.
103
106
  #
@@ -114,6 +117,8 @@ module Minfraud
114
117
  #
115
118
  # @return [Minfraud::HTTPService::Response]
116
119
  #
120
+ # @raise [JSON::ParserError] if there was invalid JSON in the response.
121
+ #
117
122
  # @raise [Minfraud::AuthorizationError] If there was an authentication
118
123
  # problem.
119
124
  #
@@ -129,18 +134,22 @@ module Minfraud
129
134
  private
130
135
 
131
136
  def perform_request(endpoint)
132
- raw = request.perform(
133
- verb: :post,
134
- endpoint: endpoint.to_s,
135
- body: request_body,
136
- )
137
+ response = nil
138
+ body = nil
139
+ Minfraud.connection_pool.with do |client|
140
+ response = client.post(
141
+ "/minfraud/v2.0/#{endpoint}",
142
+ json: request_body,
143
+ )
144
+
145
+ body = response.to_s
146
+ end
137
147
 
138
148
  response = ::Minfraud::HTTPService::Response.new(
139
- endpoint: endpoint,
140
- locales: @locales,
141
- status: raw.status.to_i,
142
- body: raw.body,
143
- headers: raw.headers
149
+ endpoint,
150
+ @locales,
151
+ response,
152
+ body,
144
153
  )
145
154
 
146
155
  ::Minfraud::ErrorHandler.examine(response)
@@ -153,9 +162,5 @@ module Minfraud
153
162
  mem.merge!(e.to_s => value.to_json)
154
163
  end
155
164
  end
156
-
157
- def request
158
- @request ||= Request.new(::Minfraud::HTTPService.configuration)
159
- end
160
165
  end
161
166
  end
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Account corresponds to the account object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Account_(/account)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--account
8
8
  class Account < Base
9
9
  include Minfraud::Validates
10
10
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Billing corresponds to the billing object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Billing_(/billing)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--billing
8
8
  class Billing < Addressable; end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # CreditCard corresponds to the credit_card object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Credit_Card_(/creditcard)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--credit-card
8
8
  class CreditCard < Base
9
9
  include Minfraud::Validates
10
10
 
@@ -5,7 +5,7 @@ module Minfraud
5
5
  # CustomInputs corresponds to the custom_inputs object of a minFraud
6
6
  # request.
7
7
  #
8
- # @see https://dev.maxmind.com/minfraud/#Custom_Inputs_(/custominputs)
8
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--custom-inputs
9
9
  class CustomInputs < Base
10
10
  include Minfraud::Validates
11
11
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Device corresponds to the device object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Device_(/device)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--device
8
8
  class Device < Base
9
9
  include Minfraud::Validates
10
10
 
@@ -7,7 +7,7 @@ module Minfraud
7
7
  module Components
8
8
  # Email corresponds to the email object of a minFraud request.
9
9
  #
10
- # @see https://dev.maxmind.com/minfraud/#Email_(/email)
10
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--email
11
11
  class Email < Base
12
12
  include Minfraud::Validates
13
13
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Event corresponds to the event object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Event_(/event)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--event
8
8
  class Event < Base
9
9
  include ::Minfraud::Enum
10
10
  include Minfraud::Validates
@@ -43,16 +43,16 @@ module Minfraud
43
43
  #
44
44
  # @return [Symbol, nil]
45
45
  enum_accessor :type,
46
- [
47
- :account_creation,
48
- :account_login,
49
- :email_change,
50
- :password_reset,
51
- :payout_change,
52
- :purchase,
53
- :recurring_purchase,
54
- :referral,
55
- :survey,
46
+ %i[
47
+ account_creation
48
+ account_login
49
+ email_change
50
+ password_reset
51
+ payout_change
52
+ purchase
53
+ recurring_purchase
54
+ referral
55
+ survey
56
56
  ]
57
57
 
58
58
  # @param params [Hash] Hash of parameters. Each key/value should
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Order corresponds to the order object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Order_(/order)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--order
8
8
  class Order < Base
9
9
  include Minfraud::Validates
10
10
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Payment corresponds to the payment object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Payment_(/payment)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--payment
8
8
  class Payment < Base
9
9
  include ::Minfraud::Enum
10
10
  include Minfraud::Validates
@@ -15,147 +15,157 @@ module Minfraud
15
15
  # @!attribute processor
16
16
  #
17
17
  # @return [Symbol, nil]
18
- enum_accessor :processor, [
19
- :adyen,
20
- :affirm,
21
- :afterpay,
22
- :altapay,
23
- :amazon_payments,
24
- :american_express_payment_gateway,
25
- :apple_pay,
26
- :aps_payments,
27
- :authorizenet,
28
- :balanced,
29
- :beanstream,
30
- :bluepay,
31
- :bluesnap,
32
- :bpoint,
33
- :braintree,
34
- :cardknox,
35
- :cardpay,
36
- :cashfree,
37
- :ccavenue,
38
- :ccnow,
39
- :cetelem,
40
- :chase_paymentech,
41
- :checkout_com,
42
- :cielo,
43
- :collector,
44
- :commdoo,
45
- :compropago,
46
- :concept_payments,
47
- :conekta,
48
- :creditguard,
49
- :credorax,
50
- :ct_payments,
51
- :cuentadigital,
52
- :curopayments,
53
- :cybersource,
54
- :dalenys,
55
- :dalpay,
56
- :datacap,
57
- :datacash,
58
- :dibs,
59
- :digital_river,
60
- :dlocal,
61
- :dotpay,
62
- :ebs,
63
- :ecomm365,
64
- :ecommpay,
65
- :elavon,
66
- :emerchantpay,
67
- :epay,
68
- :eprocessing_network,
69
- :epx,
70
- :eway,
71
- :exact,
72
- :first_atlantic_commerce,
73
- :first_data,
74
- :g2a_pay,
75
- :global_payments,
76
- :gocardless,
77
- :heartland,
78
- :hipay,
79
- :ingenico,
80
- :interac,
81
- :internetsecure,
82
- :intuit_quickbooks_payments,
83
- :iugu,
84
- :klarna,
85
- :komoju,
86
- :lemon_way,
87
- :mastercard_payment_gateway,
88
- :mercadopago,
89
- :mercanet,
90
- :merchant_esolutions,
91
- :mirjeh,
92
- :mollie,
93
- :moneris_solutions,
94
- :nmi,
95
- :oceanpayment,
96
- :oney,
97
- :onpay,
98
- :openpaymx,
99
- :optimal_payments,
100
- :orangepay,
101
- :other,
102
- :pacnet_services,
103
- :payeezy,
104
- :payfast,
105
- :paygate,
106
- :paylike,
107
- :payment_express,
108
- :paymentwall,
109
- :payone,
110
- :paypal,
111
- :payplus,
112
- :paysafecard,
113
- :paystation,
114
- :paytm,
115
- :paytrace,
116
- :paytrail,
117
- :payture,
118
- :payu,
119
- :payulatam,
120
- :payway,
121
- :payza,
122
- :pinpayments,
123
- :posconnect,
124
- :princeton_payment_solutions,
125
- :psigate,
126
- :qiwi,
127
- :quickpay,
128
- :raberil,
129
- :razorpay,
130
- :rede,
131
- :redpagos,
132
- :rewardspay,
133
- :safecharge,
134
- :sagepay,
135
- :securetrading,
136
- :simplify_commerce,
137
- :skrill,
138
- :smartcoin,
139
- :smartdebit,
140
- :solidtrust_pay,
141
- :sps_decidir,
142
- :stripe,
143
- :synapsefi,
144
- :systempay,
145
- :telerecargas,
146
- :towah,
147
- :transact_pro,
148
- :tsys,
149
- :usa_epay,
150
- :vantiv,
151
- :verepay,
152
- :vericheck,
153
- :vindicia,
154
- :virtual_card_services,
155
- :vme,
156
- :vpos,
157
- :wirecard,
158
- :worldpay
18
+ enum_accessor :processor, %i[
19
+ adyen
20
+ affirm
21
+ afterpay
22
+ altapay
23
+ amazon_payments
24
+ american_express_payment_gateway
25
+ apple_pay
26
+ aps_payments
27
+ authorizenet
28
+ balanced
29
+ beanstream
30
+ bluepay
31
+ bluesnap
32
+ boacompra
33
+ boku
34
+ bpoint
35
+ braintree
36
+ cardknox
37
+ cardpay
38
+ cashfree
39
+ ccavenue
40
+ ccnow
41
+ cetelem
42
+ chase_paymentech
43
+ checkout_com
44
+ cielo
45
+ collector
46
+ commdoo
47
+ compropago
48
+ concept_payments
49
+ conekta
50
+ coregateway
51
+ creditguard
52
+ credorax
53
+ ct_payments
54
+ cuentadigital
55
+ curopayments
56
+ cybersource
57
+ dalenys
58
+ dalpay
59
+ datacap
60
+ datacash
61
+ dibs
62
+ digital_river
63
+ dlocal
64
+ dotpay
65
+ ebs
66
+ ecomm365
67
+ ecommpay
68
+ elavon
69
+ emerchantpay
70
+ epay
71
+ eprocessing_network
72
+ epx
73
+ eway
74
+ exact
75
+ first_atlantic_commerce
76
+ first_data
77
+ fiserv
78
+ g2a_pay
79
+ global_payments
80
+ gocardless
81
+ heartland
82
+ hipay
83
+ ingenico
84
+ interac
85
+ internetsecure
86
+ intuit_quickbooks_payments
87
+ iugu
88
+ klarna
89
+ komoju
90
+ lemon_way
91
+ mastercard_payment_gateway
92
+ mercadopago
93
+ mercanet
94
+ merchant_esolutions
95
+ mirjeh
96
+ mollie
97
+ moneris_solutions
98
+ neopay
99
+ neosurf
100
+ nmi
101
+ oceanpayment
102
+ oney
103
+ onpay
104
+ openbucks
105
+ openpaymx
106
+ optimal_payments
107
+ orangepay
108
+ other
109
+ pacnet_services
110
+ payeezy
111
+ payfast
112
+ paygate
113
+ paylike
114
+ payment_express
115
+ paymentwall
116
+ payone
117
+ paypal
118
+ payplus
119
+ paysafecard
120
+ paysera
121
+ paystation
122
+ paytm
123
+ paytrace
124
+ paytrail
125
+ payture
126
+ payu
127
+ payulatam
128
+ payvision
129
+ payway
130
+ payza
131
+ pinpayments
132
+ posconnect
133
+ princeton_payment_solutions
134
+ psigate
135
+ qiwi
136
+ quickpay
137
+ raberil
138
+ razorpay
139
+ rede
140
+ redpagos
141
+ rewardspay
142
+ safecharge
143
+ sagepay
144
+ securetrading
145
+ simplify_commerce
146
+ skrill
147
+ smartcoin
148
+ smartdebit
149
+ solidtrust_pay
150
+ sps_decidir
151
+ stripe
152
+ synapsefi
153
+ systempay
154
+ telerecargas
155
+ towah
156
+ transact_pro
157
+ trustly
158
+ tsys
159
+ usa_epay
160
+ vantiv
161
+ verepay
162
+ vericheck
163
+ vindicia
164
+ virtual_card_services
165
+ vme
166
+ vpos
167
+ wirecard
168
+ worldpay
159
169
  ]
160
170
 
161
171
  # The authorization outcome from the payment processor. If the
@@ -5,7 +5,7 @@ module Minfraud
5
5
  module Report
6
6
  # Contains the fields used in the Report Transaction API.
7
7
  #
8
- # @see https://dev.maxmind.com/minfraud/report-transaction/
8
+ # @see https://dev.maxmind.com/minfraud/report-a-transaction?lang=en
9
9
  class Transaction < Base
10
10
  include ::Minfraud::Enum
11
11
 
@@ -24,7 +24,7 @@ module Minfraud
24
24
  # @!attribute tag
25
25
  #
26
26
  # @return [Symbol, nil]
27
- enum_accessor :tag, [:chargeback, :not_fraud, :spam_or_abuse, :suspected_fraud]
27
+ enum_accessor :tag, %i[chargeback not_fraud spam_or_abuse suspected_fraud]
28
28
 
29
29
  # A string which is provided by your payment processor indicating the
30
30
  # reason for the chargeback.