braintree 2.80.1 → 2.81.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 (81) hide show
  1. checksums.yaml +7 -0
  2. data/lib/braintree.rb +4 -1
  3. data/lib/braintree/account_updater_daily_report.rb +1 -1
  4. data/lib/braintree/ach_mandate.rb +2 -1
  5. data/lib/braintree/address.rb +16 -3
  6. data/lib/braintree/amex_express_checkout_card.rb +14 -2
  7. data/lib/braintree/android_pay_card.rb +16 -3
  8. data/lib/braintree/apple_pay_card.rb +15 -3
  9. data/lib/braintree/bin_data.rb +9 -2
  10. data/lib/braintree/coinbase_account.rb +10 -1
  11. data/lib/braintree/connected_merchant_paypal_status_changed.rb +3 -1
  12. data/lib/braintree/connected_merchant_status_transitioned.rb +3 -1
  13. data/lib/braintree/credentials_parser.rb +5 -1
  14. data/lib/braintree/credit_card.rb +25 -10
  15. data/lib/braintree/credit_card_verification.rb +32 -14
  16. data/lib/braintree/customer.rb +24 -11
  17. data/lib/braintree/descriptor.rb +3 -1
  18. data/lib/braintree/disbursement.rb +9 -1
  19. data/lib/braintree/dispute.rb +1 -6
  20. data/lib/braintree/dispute/transaction_details.rb +2 -1
  21. data/lib/braintree/document_upload.rb +6 -7
  22. data/lib/braintree/error_codes.rb +30 -0
  23. data/lib/braintree/error_result.rb +8 -1
  24. data/lib/braintree/europe_bank_account.rb +3 -1
  25. data/lib/braintree/facilitated_details.rb +3 -1
  26. data/lib/braintree/facilitator_details.rb +2 -1
  27. data/lib/braintree/gateway.rb +4 -0
  28. data/lib/braintree/granted_payment_instrument_update.rb +5 -1
  29. data/lib/braintree/ideal_payment.rb +15 -2
  30. data/lib/braintree/masterpass_card.rb +26 -11
  31. data/lib/braintree/merchant.rb +8 -1
  32. data/lib/braintree/merchant_account.rb +8 -3
  33. data/lib/braintree/merchant_account/address_details.rb +4 -1
  34. data/lib/braintree/merchant_account/business_details.rb +4 -1
  35. data/lib/braintree/merchant_account/funding_details.rb +6 -1
  36. data/lib/braintree/merchant_account/individual_details.rb +7 -2
  37. data/lib/braintree/oauth_credentials.rb +4 -1
  38. data/lib/braintree/paginated_result.rb +3 -1
  39. data/lib/braintree/payment_method_nonce.rb +5 -1
  40. data/lib/braintree/paypal_account.rb +8 -1
  41. data/lib/braintree/plan.rb +4 -4
  42. data/lib/braintree/risk_data.rb +3 -1
  43. data/lib/braintree/settlement_batch_summary.rb +1 -0
  44. data/lib/braintree/subscription.rb +27 -17
  45. data/lib/braintree/subscription/status_details.rb +8 -1
  46. data/lib/braintree/successful_result.rb +19 -1
  47. data/lib/braintree/three_d_secure_info.rb +5 -1
  48. data/lib/braintree/transaction.rb +54 -48
  49. data/lib/braintree/transaction/address_details.rb +13 -4
  50. data/lib/braintree/transaction/amex_express_checkout_details.rb +9 -2
  51. data/lib/braintree/transaction/android_pay_details.rb +10 -3
  52. data/lib/braintree/transaction/apple_pay_details.rb +7 -2
  53. data/lib/braintree/transaction/coinbase_details.rb +4 -1
  54. data/lib/braintree/transaction/credit_card_details.rb +40 -6
  55. data/lib/braintree/transaction/customer_details.rb +8 -1
  56. data/lib/braintree/transaction/disbursement_details.rb +5 -1
  57. data/lib/braintree/transaction/ideal_payment_details.rb +5 -1
  58. data/lib/braintree/transaction/masterpass_card_details.rb +18 -4
  59. data/lib/braintree/transaction/paypal_details.rb +18 -4
  60. data/lib/braintree/transaction/status_details.rb +5 -1
  61. data/lib/braintree/transaction/subscription_details.rb +2 -1
  62. data/lib/braintree/transaction/us_bank_account_details.rb +8 -1
  63. data/lib/braintree/transaction/venmo_account_details.rb +5 -1
  64. data/lib/braintree/transaction/visa_checkout_card_details.rb +19 -4
  65. data/lib/braintree/transaction_gateway.rb +1 -0
  66. data/lib/braintree/transaction_line_item.rb +34 -0
  67. data/lib/braintree/transaction_line_item_gateway.rb +19 -0
  68. data/lib/braintree/unknown_payment_method.rb +2 -1
  69. data/lib/braintree/us_bank_account.rb +9 -1
  70. data/lib/braintree/util.rb +14 -0
  71. data/lib/braintree/validation_error.rb +3 -1
  72. data/lib/braintree/venmo_account.rb +10 -3
  73. data/lib/braintree/version.rb +2 -2
  74. data/lib/braintree/visa_checkout_card.rb +27 -11
  75. data/lib/braintree/webhook_notification.rb +9 -9
  76. data/spec/httpsd.pid +1 -0
  77. data/spec/integration/braintree/apple_pay_spec.rb +2 -31
  78. data/spec/integration/braintree/http_spec.rb +1 -1
  79. data/spec/integration/braintree/transaction_spec.rb +1142 -0
  80. metadata +205 -207
  81. data/README.rdoc +0 -102
@@ -3,7 +3,14 @@ module Braintree
3
3
  class StatusDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :balance, :price, :status, :subscription_source, :timestamp, :user, :currency_iso_code, :plan_id
6
+ attr_reader :balance
7
+ attr_reader :price
8
+ attr_reader :status
9
+ attr_reader :subscription_source
10
+ attr_reader :timestamp
11
+ attr_reader :user
12
+ attr_reader :currency_iso_code
13
+ attr_reader :plan_id
7
14
 
8
15
  def initialize(attributes)
9
16
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -2,7 +2,25 @@ module Braintree
2
2
  class SuccessfulResult
3
3
  include BaseModule
4
4
 
5
- attr_reader :address, :credit_card, :customer, :document_upload, :merchant_account, :payment_method, :settlement_batch_summary, :subscription, :new_transaction, :transaction, :payment_method_nonce, :credentials, :merchant, :supported_networks, :paypal_account, :merchant_accounts, :disputes, :evidence, :apple_pay_options
5
+ attr_reader :address
6
+ attr_reader :apple_pay_options
7
+ attr_reader :credentials
8
+ attr_reader :credit_card
9
+ attr_reader :customer
10
+ attr_reader :disputes
11
+ attr_reader :document_upload
12
+ attr_reader :evidence
13
+ attr_reader :merchant
14
+ attr_reader :merchant_account
15
+ attr_reader :merchant_accounts
16
+ attr_reader :new_transaction
17
+ attr_reader :payment_method
18
+ attr_reader :payment_method_nonce
19
+ attr_reader :paypal_account
20
+ attr_reader :settlement_batch_summary
21
+ attr_reader :subscription
22
+ attr_reader :supported_networks
23
+ attr_reader :transaction
6
24
 
7
25
  def initialize(attributes = {}) # :nodoc:
8
26
  @attrs = attributes.keys
@@ -2,7 +2,11 @@ module Braintree
2
2
  class ThreeDSecureInfo # :nodoc:
3
3
  include BaseModule
4
4
 
5
- attr_reader :enrolled, :liability_shifted, :liability_shift_possible, :status
5
+ attr_reader :enrolled
6
+ attr_reader :liability_shifted
7
+ attr_reader :liability_shift_possible
8
+ attr_reader :status
9
+
6
10
  alias_method :liability_shifted?, :liability_shifted
7
11
  alias_method :liability_shift_possible?, :liability_shift_possible
8
12
 
@@ -1,6 +1,7 @@
1
1
  module Braintree
2
2
  class Transaction
3
3
  include BaseModule
4
+ include Braintree::Util::IdEquality
4
5
 
5
6
  module CreatedUsing
6
7
  FullInformation = 'full_information'
@@ -68,69 +69,72 @@ module Braintree
68
69
  All = constants.map { |c| const_get(c) }
69
70
  end
70
71
 
71
- attr_reader :avs_error_response_code, :avs_postal_code_response_code, :avs_street_address_response_code
72
- attr_reader :amount, :created_at, :credit_card_details, :customer_details, :subscription_details, :service_fee_amount, :id
72
+ attr_reader :add_ons
73
+ attr_reader :additional_processor_response # The raw response from the processor.
74
+ attr_reader :amex_express_checkout_details
75
+ attr_reader :amount
76
+ attr_reader :android_pay_details
77
+ attr_reader :apple_pay_details
78
+ attr_reader :authorization_adjustments
79
+ attr_reader :authorized_transaction_id
80
+ attr_reader :avs_error_response_code
81
+ attr_reader :avs_postal_code_response_code
82
+ attr_reader :avs_street_address_response_code
83
+ attr_reader :billing_details
84
+ attr_reader :channel
85
+ attr_reader :coinbase_details
86
+ attr_reader :created_at
87
+ attr_reader :credit_card_details
73
88
  attr_reader :currency_iso_code
74
89
  attr_reader :custom_fields
90
+ attr_reader :customer_details
75
91
  attr_reader :cvv_response_code
92
+ attr_reader :descriptor
76
93
  attr_reader :disbursement_details
94
+ attr_reader :discount_amount
95
+ attr_reader :discounts
77
96
  attr_reader :disputes
78
- attr_reader :descriptor
79
97
  attr_reader :escrow_status
98
+ attr_reader :facilitated_details
99
+ attr_reader :facilitator_details
80
100
  attr_reader :gateway_rejection_reason
101
+ attr_reader :id
102
+ attr_reader :ideal_payment_details
103
+ attr_reader :masterpass_card_details
81
104
  attr_reader :merchant_account_id
82
105
  attr_reader :order_id
83
- attr_reader :channel
84
- attr_reader :billing_details, :shipping_details
106
+ attr_reader :partial_settlement_transaction_ids
107
+ attr_reader :payment_instrument_type
85
108
  attr_reader :paypal_details
86
- attr_reader :apple_pay_details
87
- attr_reader :android_pay_details
88
- attr_reader :amex_express_checkout_details
89
- attr_reader :venmo_account_details
90
- attr_reader :coinbase_details
91
109
  attr_reader :plan_id
92
- # The authorization code from the processor.
93
- attr_reader :processor_authorization_code
94
- # The response code from the processor.
95
- attr_reader :processor_response_code
96
- # The response text from the processor.
97
- attr_reader :processor_response_text
98
- # The raw response from the processor.
99
- attr_reader :additional_processor_response
100
- # The settlement response code from the processor.
101
- attr_reader :processor_settlement_response_code
102
- # The settlement response text from the processor.
103
- attr_reader :processor_settlement_response_text
104
- attr_reader :voice_referral_number
110
+ attr_reader :processor_authorization_code # Authorization code from the processor.
111
+ attr_reader :processor_response_code # Response code from the processor.
112
+ attr_reader :processor_response_text # Response text from the processor.
113
+ attr_reader :processor_settlement_response_code # Settlement response code from the processor.
114
+ attr_reader :processor_settlement_response_text # Settlement response text from the processor.
105
115
  attr_reader :purchase_order_number
106
116
  attr_reader :recurring
107
- attr_reader :refund_ids, :refunded_transaction_id
117
+ attr_reader :refund_ids
118
+ attr_reader :refunded_transaction_id
119
+ attr_reader :risk_data
120
+ attr_reader :service_fee_amount
108
121
  attr_reader :settlement_batch_id
109
- attr_reader :authorized_transaction_id
110
- attr_reader :partial_settlement_transaction_ids
111
- # See Transaction::Status
112
- attr_reader :status
122
+ attr_reader :shipping_amount
123
+ attr_reader :shipping_details
124
+ attr_reader :ships_from_postal_code
125
+ attr_reader :status # See Transaction::Status
113
126
  attr_reader :status_history
127
+ attr_reader :subscription_details
114
128
  attr_reader :subscription_id
115
129
  attr_reader :tax_amount
116
130
  attr_reader :tax_exempt
117
- attr_reader :shipping_amount
118
- attr_reader :discount_amount
119
- attr_reader :ships_from_postal_code
120
- # Will either be "sale" or "credit"
121
- attr_reader :type
122
- attr_reader :updated_at
123
- attr_reader :add_ons, :discounts
124
- attr_reader :payment_instrument_type
125
- attr_reader :risk_data
126
- attr_reader :facilitated_details
127
- attr_reader :facilitator_details
128
131
  attr_reader :three_d_secure_info
132
+ attr_reader :type # Will either be "sale" or "credit"
133
+ attr_reader :updated_at
129
134
  attr_reader :us_bank_account_details
130
- attr_reader :ideal_payment_details
135
+ attr_reader :venmo_account_details
131
136
  attr_reader :visa_checkout_card_details
132
- attr_reader :masterpass_card_details
133
- attr_reader :authorization_adjustments
137
+ attr_reader :voice_referral_number
134
138
 
135
139
  def self.create(attributes)
136
140
  Configuration.gateway.transaction.create(attributes)
@@ -180,6 +184,10 @@ module Braintree
180
184
  Configuration.gateway.transaction.find(id)
181
185
  end
182
186
 
187
+ def self.line_items(id)
188
+ Configuration.gateway.transaction_line_item.find_all(id)
189
+ end
190
+
183
191
  def self.hold_in_escrow(id)
184
192
  Configuration.gateway.transaction.hold_in_escrow(id)
185
193
  end
@@ -284,12 +292,6 @@ module Braintree
284
292
  authorization_adjustments.map! { |attrs| AuthorizationAdjustment._new(attrs) } if authorization_adjustments
285
293
  end
286
294
 
287
- # True if <tt>other</tt> is a Braintree::Transaction with the same id.
288
- def ==(other)
289
- return false unless other.is_a?(Transaction)
290
- id == other.id
291
- end
292
-
293
295
  def inspect # :nodoc:
294
296
  first = [:id, :type, :amount, :status]
295
297
  order = first + (self.class._attributes - first)
@@ -303,6 +305,10 @@ module Braintree
303
305
  "#<#{self.class} #{nice_attributes.join(', ')}>"
304
306
  end
305
307
 
308
+ def line_items
309
+ @gateway.transaction_line_item.find_all(id)
310
+ end
311
+
306
312
  # Deprecated. Use Braintree::Transaction.refund
307
313
  def refund(amount = nil)
308
314
  warn "[DEPRECATED] refund as an instance method is deprecated. Please use Transaction.refund"
@@ -3,10 +3,19 @@ module Braintree
3
3
  class AddressDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :id, :first_name, :last_name, :company,
7
- :street_address, :extended_address, :locality, :region,
8
- :postal_code, :country_code_alpha2, :country_code_alpha3,
9
- :country_code_numeric, :country_name
6
+ attr_reader :company
7
+ attr_reader :country_code_alpha2
8
+ attr_reader :country_code_alpha3
9
+ attr_reader :country_code_numeric
10
+ attr_reader :country_name
11
+ attr_reader :extended_address
12
+ attr_reader :first_name
13
+ attr_reader :id
14
+ attr_reader :last_name
15
+ attr_reader :locality
16
+ attr_reader :postal_code
17
+ attr_reader :region
18
+ attr_reader :street_address
10
19
 
11
20
  def initialize(attributes)
12
21
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,8 +3,15 @@ module Braintree
3
3
  class AmexExpressCheckoutDetails
4
4
  include BaseModule
5
5
 
6
- attr_reader :card_type, :token, :bin, :expiration_month, :expiration_year,
7
- :card_member_number, :card_member_expiry_date, :image_url, :source_description
6
+ attr_reader :bin
7
+ attr_reader :card_member_expiry_date
8
+ attr_reader :card_member_number
9
+ attr_reader :card_type
10
+ attr_reader :expiration_month
11
+ attr_reader :expiration_year
12
+ attr_reader :image_url
13
+ attr_reader :source_description
14
+ attr_reader :token
8
15
 
9
16
  def initialize(attributes)
10
17
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,9 +3,16 @@ module Braintree
3
3
  class AndroidPayDetails
4
4
  include BaseModule
5
5
 
6
- attr_reader :card_type, :last_4, :expiration_month, :expiration_year,
7
- :google_transaction_id, :virtual_card_type, :virtual_card_last_4,
8
- :source_card_type, :source_card_last_4, :source_description
6
+ attr_reader :card_type
7
+ attr_reader :expiration_month
8
+ attr_reader :expiration_year
9
+ attr_reader :google_transaction_id
10
+ attr_reader :last_4
11
+ attr_reader :source_card_last_4
12
+ attr_reader :source_card_type
13
+ attr_reader :source_description
14
+ attr_reader :virtual_card_last_4
15
+ attr_reader :virtual_card_type
9
16
 
10
17
  def initialize(attributes)
11
18
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,8 +3,13 @@ module Braintree
3
3
  class ApplePayDetails
4
4
  include BaseModule
5
5
 
6
- attr_reader :card_type, :last_4, :expiration_month, :expiration_year,
7
- :cardholder_name, :payment_instrument_name, :source_description
6
+ attr_reader :card_type
7
+ attr_reader :cardholder_name
8
+ attr_reader :expiration_month
9
+ attr_reader :expiration_year
10
+ attr_reader :last_4
11
+ attr_reader :payment_instrument_name
12
+ attr_reader :source_description
8
13
 
9
14
  def initialize(attributes)
10
15
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,7 +3,10 @@ module Braintree
3
3
  class CoinbaseDetails
4
4
  include BaseModule
5
5
 
6
- attr_reader :user_id, :user_name, :user_email, :token
6
+ attr_reader :user_id
7
+ attr_reader :user_email
8
+ attr_reader :user_name
9
+ attr_reader :token
7
10
 
8
11
  def initialize(attributes)
9
12
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,10 +3,25 @@ module Braintree
3
3
  class CreditCardDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :bin, :card_type, :cardholder_name, :commercial, :country_of_issuance,
7
- :customer_location, :debit, :durbin_regulated, :expiration_month, :expiration_year,
8
- :healthcare, :image_url, :issuing_bank, :last_4, :payroll, :prepaid, :product_id,
9
- :token, :unique_number_identifier
6
+ attr_reader :bin
7
+ attr_reader :card_type
8
+ attr_reader :cardholder_name
9
+ attr_reader :commercial
10
+ attr_reader :country_of_issuance
11
+ attr_reader :customer_location
12
+ attr_reader :debit
13
+ attr_reader :durbin_regulated
14
+ attr_reader :expiration_month
15
+ attr_reader :expiration_year
16
+ attr_reader :healthcare
17
+ attr_reader :image_url
18
+ attr_reader :issuing_bank
19
+ attr_reader :last_4
20
+ attr_reader :payroll
21
+ attr_reader :prepaid
22
+ attr_reader :product_id
23
+ attr_reader :token
24
+ attr_reader :unique_number_identifier
10
25
 
11
26
  def initialize(attributes)
12
27
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -17,8 +32,27 @@ module Braintree
17
32
  end
18
33
 
19
34
  def inspect
20
- attr_order = [:token, :bin, :last_4, :card_type, :expiration_date, :cardholder_name, :customer_location, :prepaid,
21
- :healthcare, :durbin_regulated, :debit, :commercial, :payroll, :product_id, :country_of_issuance, :issuing_bank, :image_url, :unique_number_identifier]
35
+ attr_order = [
36
+ :token,
37
+ :bin,
38
+ :last_4,
39
+ :card_type,
40
+ :expiration_date,
41
+ :cardholder_name,
42
+ :customer_location,
43
+ :prepaid,
44
+ :healthcare,
45
+ :durbin_regulated,
46
+ :debit,
47
+ :commercial,
48
+ :payroll,
49
+ :product_id,
50
+ :country_of_issuance,
51
+ :issuing_bank,
52
+ :image_url,
53
+ :unique_number_identifier,
54
+ ]
55
+
22
56
  formatted_attrs = attr_order.map do |attr|
23
57
  "#{attr}: #{send(attr).inspect}"
24
58
  end
@@ -3,7 +3,14 @@ module Braintree
3
3
  class CustomerDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :company, :email, :fax, :first_name, :id, :last_name, :phone, :website
6
+ attr_reader :company
7
+ attr_reader :email
8
+ attr_reader :fax
9
+ attr_reader :first_name
10
+ attr_reader :id
11
+ attr_reader :last_name
12
+ attr_reader :phone
13
+ attr_reader :website
7
14
 
8
15
  def initialize(attributes)
9
16
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,7 +3,11 @@ module Braintree
3
3
  class DisbursementDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :disbursement_date, :settlement_amount, :settlement_currency_iso_code, :settlement_currency_exchange_rate, :success
6
+ attr_reader :disbursement_date
7
+ attr_reader :settlement_amount
8
+ attr_reader :settlement_currency_exchange_rate
9
+ attr_reader :settlement_currency_iso_code
10
+ attr_reader :success
7
11
 
8
12
  alias_method :success?, :success
9
13
 
@@ -3,7 +3,11 @@ module Braintree
3
3
  class IdealPaymentDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :ideal_payment_id, :ideal_transaction_id, :masked_iban, :bic, :image_url
6
+ attr_reader :bic
7
+ attr_reader :ideal_payment_id
8
+ attr_reader :ideal_transaction_id
9
+ attr_reader :image_url
10
+ attr_reader :masked_iban
7
11
 
8
12
  def initialize(attributes)
9
13
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,10 +3,24 @@ module Braintree
3
3
  class MasterpassCardDetails # :nodoc:
4
4
  include BaseModule
5
5
 
6
- attr_reader :bin, :card_type, :cardholder_name, :commercial, :country_of_issuance,
7
- :customer_location, :debit, :durbin_regulated, :expiration_month, :expiration_year,
8
- :healthcare, :image_url, :issuing_bank, :last_4, :payroll, :prepaid, :product_id,
9
- :token
6
+ attr_reader :bin
7
+ attr_reader :card_type
8
+ attr_reader :cardholder_name
9
+ attr_reader :commercial
10
+ attr_reader :country_of_issuance
11
+ attr_reader :customer_location
12
+ attr_reader :debit
13
+ attr_reader :durbin_regulated
14
+ attr_reader :expiration_month
15
+ attr_reader :expiration_year
16
+ attr_reader :healthcare
17
+ attr_reader :image_url
18
+ attr_reader :issuing_bank
19
+ attr_reader :last_4
20
+ attr_reader :payroll
21
+ attr_reader :prepaid
22
+ attr_reader :product_id
23
+ attr_reader :token
10
24
 
11
25
  def initialize(attributes)
12
26
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -3,10 +3,24 @@ module Braintree
3
3
  class PayPalDetails
4
4
  include BaseModule
5
5
 
6
- attr_reader :custom_field, :payer_email, :payment_id, :authorization_id, :token,
7
- :image_url, :debug_id, :payee_email, :payer_id, :payer_first_name, :payer_last_name,
8
- :payer_status, :seller_protection_status, :capture_id, :refund_id, :transaction_fee_amount,
9
- :transaction_fee_currency_iso_code, :description
6
+ attr_reader :authorization_id
7
+ attr_reader :capture_id
8
+ attr_reader :custom_field
9
+ attr_reader :debug_id
10
+ attr_reader :description
11
+ attr_reader :image_url
12
+ attr_reader :payee_email
13
+ attr_reader :payer_email
14
+ attr_reader :payer_first_name
15
+ attr_reader :payer_id
16
+ attr_reader :payer_last_name
17
+ attr_reader :payer_status
18
+ attr_reader :payment_id
19
+ attr_reader :refund_id
20
+ attr_reader :seller_protection_status
21
+ attr_reader :token
22
+ attr_reader :transaction_fee_amount
23
+ attr_reader :transaction_fee_currency_iso_code
10
24
 
11
25
  def initialize(attributes)
12
26
  set_instance_variables_from_hash attributes unless attributes.nil?