braintree 2.102.0 → 3.1.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/braintree.gemspec +6 -3
  4. data/lib/braintree.rb +3 -17
  5. data/lib/braintree/address.rb +0 -22
  6. data/lib/braintree/address_gateway.rb +2 -2
  7. data/lib/braintree/base_module.rb +6 -0
  8. data/lib/braintree/bin_data.rb +9 -2
  9. data/lib/braintree/configuration.rb +1 -1
  10. data/lib/braintree/credit_card.rb +5 -76
  11. data/lib/braintree/credit_card_gateway.rb +3 -32
  12. data/lib/braintree/credit_card_verification.rb +14 -0
  13. data/lib/braintree/customer.rb +3 -72
  14. data/lib/braintree/customer_gateway.rb +0 -23
  15. data/lib/braintree/dispute.rb +1 -7
  16. data/lib/braintree/dispute/{history_event.rb → status_history.rb} +3 -1
  17. data/lib/braintree/dispute/transaction.rb +2 -0
  18. data/lib/braintree/dispute_gateway.rb +2 -7
  19. data/lib/braintree/error_codes.rb +152 -170
  20. data/lib/braintree/exceptions.rb +5 -3
  21. data/lib/braintree/gateway.rb +0 -14
  22. data/lib/braintree/{android_pay_card.rb → google_pay_card.rb} +1 -1
  23. data/lib/braintree/local_payment_completed.rb +1 -1
  24. data/lib/braintree/merchant_account_gateway.rb +2 -0
  25. data/lib/braintree/payment_instrument_type.rb +1 -4
  26. data/lib/braintree/payment_method_gateway.rb +4 -8
  27. data/lib/braintree/payment_method_parser.rb +1 -7
  28. data/lib/braintree/risk_data.rb +4 -1
  29. data/lib/braintree/subscription.rb +5 -5
  30. data/lib/braintree/successful_result.rb +0 -1
  31. data/lib/braintree/test/credit_card.rb +1 -0
  32. data/lib/braintree/test/nonce.rb +5 -20
  33. data/lib/braintree/transaction.rb +9 -73
  34. data/lib/braintree/transaction/address_details.rb +11 -0
  35. data/lib/braintree/transaction/disbursement_details.rb +1 -0
  36. data/lib/braintree/transaction/{android_pay_details.rb → google_pay_details.rb} +1 -1
  37. data/lib/braintree/transaction/paypal_details.rb +3 -0
  38. data/lib/braintree/transaction/subscription_details.rb +2 -0
  39. data/lib/braintree/transaction_gateway.rb +14 -21
  40. data/lib/braintree/transaction_search.rb +0 -1
  41. data/lib/braintree/util.rb +17 -2
  42. data/lib/braintree/version.rb +2 -2
  43. data/lib/braintree/webhook_notification.rb +0 -10
  44. data/lib/braintree/webhook_testing_gateway.rb +0 -43
  45. data/lib/braintree/xml/libxml.rb +1 -0
  46. data/lib/braintree/xml/parser.rb +11 -34
  47. data/spec/integration/braintree/address_spec.rb +2 -89
  48. data/spec/integration/braintree/client_api/spec_helper.rb +92 -66
  49. data/spec/integration/braintree/credit_card_spec.rb +20 -467
  50. data/spec/integration/braintree/credit_card_verification_spec.rb +1 -0
  51. data/spec/integration/braintree/customer_spec.rb +22 -362
  52. data/spec/integration/braintree/dispute_search_spec.rb +3 -3
  53. data/spec/integration/braintree/dispute_spec.rb +1 -2
  54. data/spec/integration/braintree/merchant_spec.rb +2 -2
  55. data/spec/integration/braintree/payment_method_spec.rb +77 -120
  56. data/spec/integration/braintree/paypal_account_spec.rb +1 -1
  57. data/spec/integration/braintree/subscription_spec.rb +11 -16
  58. data/spec/integration/braintree/transaction_search_spec.rb +3 -3
  59. data/spec/integration/braintree/transaction_spec.rb +274 -524
  60. data/spec/integration/spec_helper.rb +1 -4
  61. data/spec/spec_helper.rb +1 -11
  62. data/spec/unit/braintree/address_spec.rb +0 -8
  63. data/spec/unit/braintree/credit_card_spec.rb +28 -21
  64. data/spec/unit/braintree/credit_card_verification_spec.rb +7 -0
  65. data/spec/unit/braintree/customer_spec.rb +4 -12
  66. data/spec/unit/braintree/dispute_spec.rb +4 -12
  67. data/spec/unit/braintree/http_spec.rb +3 -3
  68. data/spec/unit/braintree/local_payment_completed_spec.rb +14 -0
  69. data/spec/unit/braintree/transaction/paypal_details_spec.rb +59 -0
  70. data/spec/unit/braintree/transaction_spec.rb +17 -37
  71. data/spec/unit/braintree/util_spec.rb +37 -3
  72. data/spec/unit/braintree/webhook_notification_spec.rb +1 -1
  73. data/spec/unit/braintree/xml/parser_spec.rb +21 -16
  74. metadata +28 -32
  75. data/lib/braintree/amex_express_checkout_card.rb +0 -38
  76. data/lib/braintree/coinbase_account.rb +0 -34
  77. data/lib/braintree/europe_bank_account.rb +0 -36
  78. data/lib/braintree/europe_bank_account_gateway.rb +0 -17
  79. data/lib/braintree/ideal_payment.rb +0 -61
  80. data/lib/braintree/ideal_payment_gateway.rb +0 -19
  81. data/lib/braintree/masterpass_card.rb +0 -81
  82. data/lib/braintree/transaction/amex_express_checkout_details.rb +0 -21
  83. data/lib/braintree/transaction/coinbase_details.rb +0 -16
  84. data/lib/braintree/transaction/ideal_payment_details.rb +0 -19
  85. data/lib/braintree/transaction/masterpass_card_details.rb +0 -47
  86. data/lib/braintree/transparent_redirect.rb +0 -40
  87. data/lib/braintree/transparent_redirect_gateway.rb +0 -105
  88. data/lib/braintree/xml/rexml.rb +0 -71
  89. data/spec/hacks/tcp_socket.rb +0 -18
  90. data/spec/integration/braintree/coinbase_spec.rb +0 -34
  91. data/spec/integration/braintree/masterpass_card_spec.rb +0 -97
  92. data/spec/integration/braintree/transparent_redirect_spec.rb +0 -268
  93. data/spec/unit/braintree/transparent_redirect_spec.rb +0 -223
  94. data/spec/unit/braintree/xml/rexml_spec.rb +0 -51
@@ -22,17 +22,6 @@ module Braintree
22
22
  return_object_or_raise(:customer) { create(*args) }
23
23
  end
24
24
 
25
- # Deprecated
26
- def create_customer_url
27
- "#{@config.base_merchant_url}/customers/all/create_via_transparent_redirect_request"
28
- end
29
-
30
- # Deprecated
31
- def create_from_transparent_redirect(query_string)
32
- params = @gateway.transparent_redirect.parse_and_validate_query_string query_string
33
- _do_create("/customers/all/confirm_transparent_redirect_request", :id => params[:id])
34
- end
35
-
36
25
  def delete(customer_id)
37
26
  @config.http.delete("#{@config.base_merchant_path}/customers/#{customer_id}")
38
27
  SuccessfulResult.new
@@ -71,18 +60,6 @@ module Braintree
71
60
  return_object_or_raise(:customer) { update(*args) }
72
61
  end
73
62
 
74
- # Deprecated
75
- def update_customer_url
76
- warn "[DEPRECATED] Customer.update_customer_url is deprecated. Please use TransparentRedirect.url"
77
- "#{@config.base_merchant_url}/customers/all/update_via_transparent_redirect_request"
78
- end
79
-
80
- # Deprecated
81
- def update_from_transparent_redirect(query_string)
82
- params = @gateway.transparent_redirect.parse_and_validate_query_string(query_string)
83
- _do_update(:post, "/customers/all/confirm_transparent_redirect_request", :id => params[:id])
84
- end
85
-
86
63
  def self._create_signature # :nodoc:
87
64
  credit_card_signature = CreditCardGateway._create_signature - [:customer_id]
88
65
  paypal_account_signature = PayPalAccountGateway._create_nested_signature
@@ -118,14 +118,8 @@ module Braintree
118
118
  @transaction = Transaction.new(transaction)
119
119
 
120
120
  @status_history = status_history.map do |event|
121
- Braintree::Dispute::HistoryEvent.new(event)
121
+ Braintree::Dispute::StatusHistory.new(event)
122
122
  end unless status_history.nil?
123
123
  end
124
-
125
- def forwarded_comments
126
- # NEXT_MAJOR_VERSION delete this method since it never returned anything anyway.
127
- warn "[DEPRECATED] #forwarded_comments is deprecated. Please use #processor_comments"
128
- processor_comments
129
- end
130
124
  end
131
125
  end
@@ -1,6 +1,6 @@
1
1
  module Braintree
2
2
  class Dispute
3
- class HistoryEvent # :nodoc:
3
+ class StatusHistory # :nodoc:
4
4
  include BaseModule
5
5
 
6
6
  attr_reader :disbursement_date
@@ -10,6 +10,8 @@ module Braintree
10
10
 
11
11
  def initialize(attributes)
12
12
  set_instance_variables_from_hash attributes unless attributes.nil?
13
+ @disbursement_date = Date.parse(disbursement_date) unless disbursement_date.nil?
14
+ @effective_date = Date.parse(effective_date) unless effective_date.nil?
13
15
  end
14
16
  end
15
17
  end
@@ -4,7 +4,9 @@ module Braintree
4
4
  include BaseModule
5
5
 
6
6
  attr_reader :amount
7
+ attr_reader :created_at
7
8
  attr_reader :id
9
+ attr_reader :installment_count
8
10
  attr_reader :order_id
9
11
  attr_reader :purchase_order_number
10
12
  attr_reader :payment_instrument_subtype
@@ -58,20 +58,15 @@ module Braintree
58
58
  request = content_or_request.is_a?(String) ? { content: content_or_request } : content_or_request
59
59
 
60
60
  raise ArgumentError, "content cannot be blank" if request[:content].nil? || request[:content].to_s.strip == ""
61
- raise ArgumentError, "request can only contain the keys [:content, :category, :sequence_number]" if (request.keys - [:category, :content, :tag, :sequence_number]).any?
61
+ raise ArgumentError, "request can only contain the keys [:content, :category, :sequence_number]" if (request.keys - [:category, :content, :sequence_number]).any?
62
62
  raise ArgumentError, "sequence_number must be an integer" if request[:sequence_number] && request[:sequence_number].to_s.match(/\D/)
63
- raise ArgumentError, "tag must be a string" if request[:tag] && !request[:tag].is_a?(String)
64
63
  raise ArgumentError, "category must be a string" if request[:category] && !request[:category].is_a?(String)
65
64
 
66
- warn "[DEPRECATED] tag as an option is deprecated. Please use category" if request[:tag]
67
-
68
- category = request[:category] || request[:tag]
69
-
70
65
  params_for_http_post = {
71
66
  evidence: {
72
67
  comments: request[:content]
73
68
  }.tap do |evidence_params|
74
- evidence_params[:category] = category if category
69
+ evidence_params[:category] = request[:category] if request[:category]
75
70
  evidence_params[:sequence_number] = request[:sequence_number] if request[:sequence_number]
76
71
  end
77
72
  }
@@ -37,27 +37,27 @@ module Braintree
37
37
 
38
38
  module ApplePay
39
39
  ApplePayCardsAreNotAccepted = "83501"
40
- CustomerIdIsRequiredForVaulting = "83502"
41
- TokenIsInUse = "93503"
42
- PaymentMethodNonceConsumed = "93504"
43
- PaymentMethodNonceUnknown = "93505"
44
- PaymentMethodNonceLocked = "93506"
45
- PaymentMethodNonceCardTypeIsNotAccepted = "83518"
46
40
  CannotUpdateApplePayCardUsingPaymentMethodNonce = "93507"
47
- NumberIsRequired = "93508"
48
- ExpirationMonthIsRequired = "93509"
49
- ExpirationYearIsRequired = "93510"
41
+ CertificateInvalid = "93517"
42
+ CertificateMismatch = "93519"
50
43
  CryptogramIsRequired = "93511"
44
+ CustomerIdIsRequiredForVaulting = "83502"
51
45
  DecryptionFailed = "83512"
52
46
  Disabled = "93513"
53
- MerchantNotConfigured = "93514"
47
+ ExpirationMonthIsRequired = "93509"
48
+ ExpirationYearIsRequired = "93510"
49
+ InvalidToken = "83520"
50
+ KeyMismatchStoringCertificate = "93522"
54
51
  MerchantKeysAlreadyConfigured = "93515"
55
52
  MerchantKeysNotConfigured = "93516"
56
- CertificateInvalid = "93517"
57
- CertificateMismatch = "93519"
58
- InvalidToken = "83520"
53
+ MerchantNotConfigured = "93514"
54
+ NumberIsRequired = "93508"
55
+ PaymentMethodNonceCardTypeIsNotAccepted = "83518"
56
+ PaymentMethodNonceConsumed = "93504"
57
+ PaymentMethodNonceLocked = "93506"
58
+ PaymentMethodNonceUnknown = "93505"
59
59
  PrivateKeyMismatch = "93521"
60
- KeyMismatchStoringCertificate = "93522"
60
+ TokenIsInUse = "93503"
61
61
  end
62
62
 
63
63
  module CreditCard
@@ -100,9 +100,9 @@ module Braintree
100
100
  TokenIsRequired = "91722"
101
101
  TokenIsTooLong = "91720"
102
102
  VenmoSDKPaymentMethodCodeCardTypeIsNotAccepted = "91726"
103
- VerificationNotSupportedOnThisMerchantAccount = "91730"
104
103
  VerificationAccountTypeIsInvalid = "91757"
105
104
  VerificationAccountTypeNotSupported = "91758"
105
+ VerificationNotSupportedOnThisMerchantAccount = "91730"
106
106
 
107
107
  module Options
108
108
  UpdateExistingTokenIsInvalid = "91723"
@@ -112,10 +112,10 @@ module Braintree
112
112
  VerificationAmountFormatIsInvalid = "91740"
113
113
  VerificationAmountIsTooLarge = "91752"
114
114
  VerificationAmountNotSupportedByProcessor = "91741"
115
+ VerificationMerchantAccountCannotBeSubMerchantAccount = "91755"
115
116
  VerificationMerchantAccountIdIsInvalid = "91728"
116
117
  VerificationMerchantAccountIsForbidden = "91743"
117
118
  VerificationMerchantAccountIsSuspended = "91742"
118
- VerificationMerchantAccountCannotBeSubMerchantAccount = "91755"
119
119
  end
120
120
  end
121
121
 
@@ -141,47 +141,46 @@ module Braintree
141
141
  end
142
142
 
143
143
  module Descriptor
144
- NameFormatIsInvalid = "92201"
145
- PhoneFormatIsInvalid = "92202"
146
144
  DynamicDescriptorsDisabled = "92203"
147
145
  InternationalNameFormatIsInvalid = "92204"
148
146
  InternationalPhoneFormatIsInvalid = "92205"
147
+ NameFormatIsInvalid = "92201"
148
+ PhoneFormatIsInvalid = "92202"
149
149
  UrlFormatIsInvalid = "92206"
150
150
  end
151
151
 
152
152
  module Dispute
153
- CanOnlyAddEvidenceToOpenDispute = "95701"
154
- CanOnlyRemoveEvidenceFromOpenDispute = "95702"
155
- CanOnlyAddEvidenceDocumentToDispute = "95703"
156
153
  CanOnlyAcceptOpenDispute = "95704"
157
- CanOnlyFinalizeOpenDispute = "95705"
154
+ CanOnlyAddEvidenceDocumentToDispute = "95703"
155
+ CanOnlyAddEvidenceToOpenDispute = "95701"
158
156
  CanOnlyCreateEvidenceWithValidCategory = "95706"
159
- EvidenceContentDateInvalid = "95707"
160
- EvidenceContentTooLong = "95708"
161
- EvidenceContentARNTooLong = "95709"
162
- EvidenceContentPhoneTooLong = "95710"
163
- EvidenceCategoryTextOnly = "95711"
157
+ CanOnlyFinalizeOpenDispute = "95705"
158
+ CanOnlyRemoveEvidenceFromOpenDispute = "95702"
159
+ DigitalGoodsMissingDownloadDate = "95721"
160
+ DigitalGoodsMissingEvidence = "95720"
164
161
  EvidenceCategoryDocumentOnly = "95712"
165
- EvidenceCategoryNotForReasonCode = "95713"
166
162
  EvidenceCategoryDuplicate = "95714"
163
+ EvidenceCategoryNotForReasonCode = "95713"
164
+ EvidenceCategoryTextOnly = "95711"
165
+ EvidenceContentARNTooLong = "95709"
166
+ EvidenceContentDateInvalid = "95707"
167
167
  EvidenceContentEmailInvalid = "95715"
168
-
169
- DigitalGoodsMissingEvidence = "95720"
170
- DigitalGoodsMissingDownloadDate = "95721"
168
+ EvidenceContentPhoneTooLong = "95710"
169
+ EvidenceContentTooLong = "95708"
171
170
  NonDisputedPriorTransactionEvidenceMissingARN = "95722"
172
171
  NonDisputedPriorTransactionEvidenceMissingDate = "95723"
173
- RecurringTransactionEvidenceMissingDate = "95724"
174
172
  RecurringTransactionEvidenceMissingARN = "95725"
173
+ RecurringTransactionEvidenceMissingDate = "95724"
175
174
  ValidEvidenceRequiredToFinalize = "95726"
176
175
  end
177
176
 
178
177
  module DocumentUpload
179
- KindIsInvalid = "84901"
180
- FileIsTooLarge = "84902"
181
- FileTypeIsInvalid = "84903"
178
+ FileIsEmpty = "84906"
182
179
  FileIsMalformedOrEncrypted = "84904"
180
+ FileIsTooLarge = "84902"
183
181
  FileIsTooLong = "84905"
184
- FileIsEmpty = "84906"
182
+ FileTypeIsInvalid = "84903"
183
+ KindIsInvalid = "84901"
185
184
  end
186
185
 
187
186
  module PayPalAccount
@@ -203,28 +202,6 @@ module Braintree
203
202
  TokenIsInUse = "92906"
204
203
  end
205
204
 
206
- module EuropeBankAccount
207
- IBANIsRequired = "93001"
208
- BICIsRequired = "93002"
209
- AccountHolderNameIsRequired = "93003"
210
- end
211
-
212
- module SEPAMandate
213
- AccountHolderNameIsRequired = "83301"
214
- BICIsRequired = "83302"
215
- IBANIsRequired = "83303"
216
- TypeIsRequired = "93304"
217
- IBANInvalidCharacter = "83305"
218
- BICInvalidCharacter = "83306"
219
- BICLengthIsInvalid = "83307"
220
- BICUnsupportedCountry = "83308"
221
- IBANUnsupportedCountry = "83309"
222
- IBANInvalidFormat = "83310"
223
- LocaleIsUnsupported = "93311"
224
- BillingAddressIsInvalid = "93312"
225
- TypeIsInvalid = "93313"
226
- end
227
-
228
205
  module Subscription
229
206
  BillingDayOfMonthCannotBeUpdated = "91918"
230
207
  BillingDayOfMonthIsInvalid = "91914"
@@ -295,7 +272,6 @@ module Braintree
295
272
  module Transaction
296
273
  AmountCannotBeNegative = "81501"
297
274
  AmountDoesNotMatch3DSecureAmount = "91585"
298
- AmountDoesNotMatchIdealPaymentAmount = "915144"
299
275
  AmountFormatIsInvalid = "81503" # Keep for backwards compatibility
300
276
  AmountIsInvalid = "81503" # Keep for backwards compatibility
301
277
  AmountIsRequired = "81502"
@@ -303,6 +279,7 @@ module Braintree
303
279
  AmountMustBeGreaterThanZero = "81531"
304
280
  AmountNotSupportedByProcessor = "815193"
305
281
  BillingAddressConflict = "91530"
282
+ BillingPhoneNumberIsInvalid = "915206"
306
283
  CannotBeVoided = "91504"
307
284
  CannotCancelRelease = "91562"
308
285
  CannotCloneCredit = "91543"
@@ -324,11 +301,11 @@ module Braintree
324
301
  CannotUpdateTransactionDetailsNotSubmittedForSettlement = "915129"
325
302
  ChannelIsTooLong = "91550"
326
303
  CreditCardIsRequired = "91508"
304
+ CustomFieldIsInvalid = "91526"
305
+ CustomFieldIsTooLong = "81527"
327
306
  CustomerDefaultPaymentMethodCardTypeIsNotAccepted = "81509"
328
307
  CustomerDoesNotHaveCreditCard = "91511"
329
308
  CustomerIdIsInvalid = "91510"
330
- CustomFieldIsInvalid = "91526"
331
- CustomFieldIsTooLong = "81527"
332
309
  DiscountAmountCannotBeNegative = "915160"
333
310
  DiscountAmountFormatIsInvalid = "915159"
334
311
  DiscountAmountIsTooLarge = "915161"
@@ -336,19 +313,17 @@ module Braintree
336
313
  FailedAuthAdjustmentHardDecline = "95602"
337
314
  FinalAuthSubmitForSettlementForDifferentAmount = "95601"
338
315
  HasAlreadyBeenRefunded = "91512"
339
- IdealPaymentNotComplete = "815141"
340
- IdealPaymentsCannotBeVaulted = "915150"
341
316
  LineItemsExpected = "915158"
342
317
  MerchantAccountDoesNotMatch3DSecureMerchantAccount = "91584"
343
- MerchantAccountDoesNotMatchIdealPaymentMerchantAccount = "915143"
344
318
  MerchantAccountDoesNotSupportMOTO = "91558"
345
319
  MerchantAccountDoesNotSupportRefunds = "91547"
346
320
  MerchantAccountIdDoesNotMatchSubscription = "915180"
347
321
  MerchantAccountIdIsInvalid = "91513"
348
322
  MerchantAccountIsSuspended = "91514"
349
- OrderIdDoesNotMatchIdealPaymentOrderId = "91503"
350
- OrderIdIsRequiredWithIdealPayment = "91502"
351
323
  OrderIdIsTooLong = "91501"
324
+ PayPalAuthExpired = "91579"
325
+ PayPalNotEnabled = "91576"
326
+ PayPalVaultRecordMissingData = "91583"
352
327
  PaymentInstrumentNotSupportedByMerchantAccount = "91577"
353
328
  PaymentInstrumentTypeIsNotAccepted = "915101"
354
329
  PaymentInstrumentWithExternalVaultIsInvalid = "915176"
@@ -363,9 +338,6 @@ module Braintree
363
338
  PaymentMethodNonceUnknown = "91565"
364
339
  PaymentMethodTokenCardTypeIsNotAccepted = "91517"
365
340
  PaymentMethodTokenIsInvalid = "91518"
366
- PayPalAuthExpired = "91579"
367
- PayPalNotEnabled = "91576"
368
- PayPalVaultRecordMissingData = "91583"
369
341
  ProcessorAuthorizationCodeCannotBeSet = "91519"
370
342
  ProcessorAuthorizationCodeIsInvalid = "81520"
371
343
  ProcessorDoesNotSupportAuths = "915104"
@@ -376,6 +348,7 @@ module Braintree
376
348
  ProcessorDoesNotSupportUpdatingOrderId = "915107"
377
349
  ProcessorDoesNotSupportUpdatingTransactionDetails = "915130"
378
350
  ProcessorDoesNotSupportVoiceAuthorizations = "91545"
351
+ ProductSkuIsInvalid = "915202"
379
352
  PurchaseOrderNumberIsInvalid = "91548"
380
353
  PurchaseOrderNumberIsTooLong = "91537"
381
354
  RefundAmountIsTooLarge = "91521"
@@ -393,6 +366,8 @@ module Braintree
393
366
  ShippingAmountCannotBeNegative = "915163"
394
367
  ShippingAmountFormatIsInvalid = "915162"
395
368
  ShippingAmountIsTooLarge = "915164"
369
+ ShippingMethodIsInvalid = "915203"
370
+ ShippingPhoneNumberIsInvalid = "915204"
396
371
  ShipsFromPostalCodeInvalidCharacters = "915167"
397
372
  ShipsFromPostalCodeIsInvalid = "915166"
398
373
  ShipsFromPostalCodeIsTooLong = "915165"
@@ -447,37 +422,36 @@ module Braintree
447
422
  IndustryTypeIsInvalid = "93401"
448
423
 
449
424
  module Lodging
450
- EmptyData = "93402"
451
- FolioNumberIsInvalid = "93403"
425
+ AdvancedDepositIndicatorIsInvalid = "93440"
452
426
  CheckInDateIsInvalid = "93404"
453
427
  CheckOutDateIsInvalid = "93405"
454
428
  CheckOutDateMustFollowCheckInDate = "93406"
455
- UnknownDataField = "93407"
456
- RoomRateMustBeGreaterThanZero = "93433"
429
+ EmptyData = "93402"
430
+ FireSafetyIndicatorIsInvalid = "93441"
431
+ FolioNumberIsInvalid = "93403"
432
+ NoShowIndicatorIsInvalid = "93439"
433
+ PropertyPhoneIsInvalid = "93442"
457
434
  RoomRateFormatIsInvalid = "93434"
458
435
  RoomRateIsTooLarge = "93435"
459
- RoomTaxMustBeGreaterThanZero = "93436"
436
+ RoomRateMustBeGreaterThanZero = "93433"
460
437
  RoomTaxFormatIsInvalid = "93437"
461
438
  RoomTaxIsTooLarge = "93438"
462
- NoShowIndicatorIsInvalid = "93439"
463
- AdvancedDepositIndicatorIsInvalid = "93440"
464
- FireSafetyIndicatorIsInvalid = "93441"
465
- PropertyPhoneIsInvalid = "93442"
439
+ RoomTaxMustBeGreaterThanZero = "93436"
440
+ UnknownDataField = "93407"
466
441
  end
467
442
 
468
443
  module TravelCruise
469
- EmptyData = "93408"
470
- UnknownDataField = "93409"
471
- TravelPackageIsInvalid = "93410"
472
444
  DepartureDateIsInvalid = "93411"
445
+ EmptyData = "93408"
473
446
  LodgingCheckInDateIsInvalid = "93412"
474
447
  LodgingCheckOutDateIsInvalid = "93413"
448
+ TravelPackageIsInvalid = "93410"
449
+ UnknownDataField = "93409"
475
450
  end
476
451
 
477
452
  module TravelFlight
478
- EmptyData = "93414"
479
- UnknownDataField = "93415"
480
453
  CustomerCodeIsTooLong = "93416"
454
+ EmptyData = "93414"
481
455
  FareAmountCannotBeNegative = "93417"
482
456
  FareAmountFormatIsInvalid = "93418"
483
457
  FareAmountIsTooLarge = "93419"
@@ -486,14 +460,15 @@ module Braintree
486
460
  FeeAmountIsTooLarge = "93422"
487
461
  IssuedDateFormatIsInvalid = "93423"
488
462
  IssuingCarrierCodeIsTooLong = "93424"
463
+ LegsExpected = "93431"
489
464
  PassengerMiddleInitialIsTooLong = "93425"
490
465
  RestrictedTicketIsRequired = "93426"
491
466
  TaxAmountCannotBeNegative = "93427"
492
467
  TaxAmountFormatIsInvalid = "93428"
493
468
  TaxAmountIsTooLarge = "93429"
494
469
  TicketNumberIsTooLong = "93430"
495
- LegsExpected = "93431"
496
470
  TooManyLegs = "93432"
471
+ UnknownDataField = "93415"
497
472
  end
498
473
 
499
474
  module Leg
@@ -522,30 +497,29 @@ module Braintree
522
497
  end
523
498
 
524
499
  module AdditionalCharge
525
- KindIsInvalid = "96601"
526
- KindMustBeUnique = "96602"
527
- AmountMustBeGreaterThanZero = "96603"
528
500
  AmountFormatIsInvalid = "96604"
529
- AmountIsTooLarge = "96605"
530
501
  AmountIsRequired = "96606"
502
+ AmountIsTooLarge = "96605"
503
+ AmountMustBeGreaterThanZero = "96603"
504
+ KindIsInvalid = "96601"
505
+ KindMustBeUnique = "96602"
531
506
  end
532
507
  end
533
508
 
534
509
  module ExternalVault
535
- StatusIsInvalid = "915175"
536
510
  CardTypeIsInvalid = "915178"
537
- StatusWithPreviousNetworkTransactionIdIsInvalid = "915177"
538
511
  PreviousNetworkTransactionIdIsInvalid = "915179"
512
+ StatusIsInvalid = "915175"
513
+ StatusWithPreviousNetworkTransactionIdIsInvalid = "915177"
539
514
  end
540
515
  end
541
516
 
542
517
  module TransactionLineItem
543
518
  CommodityCodeIsTooLong = "95801"
544
519
  DescriptionIsTooLong = "95803"
520
+ DiscountAmountCannotBeNegative = "95806"
545
521
  DiscountAmountFormatIsInvalid = "95804"
546
522
  DiscountAmountIsTooLarge = "95805"
547
- DiscountAmountMustBeGreaterThanZero = "95806" # Deprecated as the amount may be zero. Use DiscountAmountCannotBeNegative.
548
- DiscountAmountCannotBeNegative = "95806"
549
523
  KindIsInvalid = "95807"
550
524
  KindIsRequired = "95808"
551
525
  NameIsRequired = "95822"
@@ -554,6 +528,9 @@ module Braintree
554
528
  QuantityFormatIsInvalid = "95810"
555
529
  QuantityIsRequired = "95811"
556
530
  QuantityIsTooLarge = "95812"
531
+ TaxAmountCannotBeNegative = "95829"
532
+ TaxAmountFormatIsInvalid = "95827"
533
+ TaxAmountIsTooLarge = "95828"
557
534
  TotalAmountFormatIsInvalid = "95813"
558
535
  TotalAmountIsRequired = "95814"
559
536
  TotalAmountIsTooLarge = "95815"
@@ -563,13 +540,9 @@ module Braintree
563
540
  UnitAmountIsTooLarge = "95819"
564
541
  UnitAmountMustBeGreaterThanZero = "95820"
565
542
  UnitOfMeasureIsTooLong = "95821"
543
+ UnitTaxAmountCannotBeNegative = "95826"
566
544
  UnitTaxAmountFormatIsInvalid = "95824"
567
545
  UnitTaxAmountIsTooLarge = "95825"
568
- UnitTaxAmountMustBeGreaterThanZero = "95826" # Deprecated as the amount may be zero. Use UnitTaxAmountCannotBeNegative.
569
- UnitTaxAmountCannotBeNegative = "95826"
570
- TaxAmountFormatIsInvalid = "95827"
571
- TaxAmountIsTooLarge = "95828"
572
- TaxAmountCannotBeNegative = "95829"
573
546
  end
574
547
 
575
548
  module Merchant
@@ -583,96 +556,96 @@ module Braintree
583
556
  CountryNameIsInvalid = "93611"
584
557
  CountryNameIsNotAccepted = "93610"
585
558
  CurrenciesAreInvalid = "93614"
559
+ CurrencyIsInvalid = "93618"
560
+ CurrencyIsRequired = "93617"
586
561
  EmailFormatIsInvalid = "93602"
587
562
  EmailIsRequired = "83601"
588
563
  InconsistentCountry = "93612"
589
- PaymentMethodsAreInvalid = "93613"
590
- PaymentMethodsAreNotAllowed = "93615"
591
564
  MerchantAccountExistsForCurrency = "93616"
592
- CurrencyIsRequired = "93617"
593
- CurrencyIsInvalid = "93618"
594
- NoMerchantAccounts = "93619"
595
565
  MerchantAccountExistsForId = "93620"
596
566
  MerchantAccountNotAuthOnboarded = "93621"
567
+ NoMerchantAccounts = "93619"
568
+ PaymentMethodsAreInvalid = "93613"
569
+ PaymentMethodsAreNotAllowed = "93615"
597
570
  end
598
571
 
599
572
  module MerchantAccount
600
- IdIsTooLong = "82602"
573
+ CannotBeUpdated = "82674"
574
+ Declined = "82626"
575
+ DeclinedFailedKYC = "82623"
576
+ DeclinedMasterCardMatch = "82622"
577
+ DeclinedOFAC = "82621"
578
+ DeclinedSsnInvalid = "82624"
579
+ DeclinedSsnMatchesDeceased = "82625"
580
+ IdCannotBeUpdated = "82675"
601
581
  IdFormatIsInvalid = "82603"
602
582
  IdIsInUse = "82604"
603
583
  IdIsNotAllowed = "82605"
604
- MasterMerchantAccountIdIsRequired = "82606"
584
+ IdIsTooLong = "82602"
585
+ MasterMerchantAccountIdCannotBeUpdated = "82676"
605
586
  MasterMerchantAccountIdIsInvalid = "82607"
587
+ MasterMerchantAccountIdIsRequired = "82606"
606
588
  MasterMerchantAccountMustBeActive = "82608"
607
589
  TosAcceptedIsRequired = "82610"
608
- IdCannotBeUpdated = "82675"
609
- MasterMerchantAccountIdCannotBeUpdated = "82676"
610
- CannotBeUpdated = "82674"
611
- DeclinedOFAC = "82621"
612
- DeclinedMasterCardMatch = "82622"
613
- DeclinedFailedKYC = "82623"
614
- DeclinedSsnInvalid = "82624"
615
- DeclinedSsnMatchesDeceased = "82625"
616
- Declined = "82626"
617
590
 
618
591
  module ApplicantDetails
619
- FirstNameIsRequired = "82609"
620
- LastNameIsRequired = "82611"
621
- DateOfBirthIsRequired = "82612"
622
- RoutingNumberIsRequired = "82613"
592
+ AccountNumberIsInvalid = "82670"
623
593
  AccountNumberIsRequired = "82614"
624
- SsnIsInvalid = "82615"
625
- EmailAddressIsInvalid = "82616"
626
- FirstNameIsInvalid = "82627"
627
- LastNameIsInvalid = "82628"
628
594
  CompanyNameIsInvalid = "82631"
629
- TaxIdIsInvalid = "82632"
630
595
  CompanyNameIsRequiredWithTaxId = "82633"
631
- TaxIdIsRequiredWithCompanyName = "82634"
632
- RoutingNumberIsInvalid = "82635"
633
- DeclinedOFAC = "82621" # Keep for backwards compatibility
634
- DeclinedMasterCardMatch = "82622" # Keep for backwards compatibility
596
+ DateOfBirthIsInvalid = "82663"
597
+ DateOfBirthIsRequired = "82612"
598
+ Declined = "82626" # Keep for backwards compatibility
635
599
  DeclinedFailedKYC = "82623" # Keep for backwards compatibility
600
+ DeclinedMasterCardMatch = "82622" # Keep for backwards compatibility
601
+ DeclinedOFAC = "82621" # Keep for backwards compatibility
636
602
  DeclinedSsnInvalid = "82624" # Keep for backwards compatibility
637
603
  DeclinedSsnMatchesDeceased = "82625" # Keep for backwards compatibility
638
- Declined = "82626" # Keep for backwards compatibility
639
- PhoneIsInvalid = "82636"
640
- DateOfBirthIsInvalid = "82663"
641
- AccountNumberIsInvalid = "82670"
604
+ EmailAddressIsInvalid = "82616"
642
605
  EmailAddressIsRequired = "82665"
606
+ FirstNameIsInvalid = "82627"
607
+ FirstNameIsRequired = "82609"
608
+ LastNameIsInvalid = "82628"
609
+ LastNameIsRequired = "82611"
610
+ PhoneIsInvalid = "82636"
611
+ RoutingNumberIsInvalid = "82635"
612
+ RoutingNumberIsRequired = "82613"
613
+ SsnIsInvalid = "82615"
614
+ TaxIdIsInvalid = "82632"
615
+ TaxIdIsRequiredWithCompanyName = "82634"
643
616
  TaxIdMustBeBlank = "82673"
644
617
 
645
618
  module Address
646
- StreetAddressIsRequired = "82617"
647
619
  LocalityIsRequired = "82618"
620
+ PostalCodeIsInvalid = "82630"
648
621
  PostalCodeIsRequired = "82619"
622
+ RegionIsInvalid = "82664"
649
623
  RegionIsRequired = "82620"
650
624
  StreetAddressIsInvalid = "82629"
651
- PostalCodeIsInvalid = "82630"
652
- RegionIsInvalid = "82664"
625
+ StreetAddressIsRequired = "82617"
653
626
  end
654
627
  end
655
628
 
656
629
  module Individual
657
- FirstNameIsRequired = "82637"
658
- LastNameIsRequired = "82638"
630
+ DateOfBirthIsInvalid = "82666"
659
631
  DateOfBirthIsRequired = "82639"
660
- SsnIsInvalid = "82642"
661
632
  EmailIsInvalid = "82643"
633
+ EmailIsRequired = "82667"
662
634
  FirstNameIsInvalid = "82644"
635
+ FirstNameIsRequired = "82637"
663
636
  LastNameIsInvalid = "82645"
637
+ LastNameIsRequired = "82638"
664
638
  PhoneIsInvalid = "82656"
665
- DateOfBirthIsInvalid = "82666"
666
- EmailIsRequired = "82667"
639
+ SsnIsInvalid = "82642"
667
640
 
668
641
  module Address
669
- StreetAddressIsRequired = "82657"
670
642
  LocalityIsRequired = "82658"
643
+ PostalCodeIsInvalid = "82662"
671
644
  PostalCodeIsRequired = "82659"
645
+ RegionIsInvalid = "82668"
672
646
  RegionIsRequired = "82660"
673
647
  StreetAddressIsInvalid = "82661"
674
- PostalCodeIsInvalid = "82662"
675
- RegionIsInvalid = "82668"
648
+ StreetAddressIsRequired = "82657"
676
649
  end
677
650
  end
678
651
 
@@ -684,9 +657,9 @@ module Braintree
684
657
  TaxIdIsRequiredWithLegalName = "82648"
685
658
  TaxIdMustBeBlank = "82672"
686
659
  module Address
687
- StreetAddressIsInvalid = "82685"
688
660
  PostalCodeIsInvalid = "82686"
689
661
  RegionIsInvalid = "82684"
662
+ StreetAddressIsInvalid = "82685"
690
663
  end
691
664
  end
692
665
 
@@ -705,32 +678,32 @@ module Braintree
705
678
  end
706
679
 
707
680
  module SettlementBatchSummary
708
- SettlementDateIsRequired = "82301"
709
- SettlementDateIsInvalid = "82302"
710
681
  CustomFieldIsInvalid = "82303"
682
+ SettlementDateIsInvalid = "82302"
683
+ SettlementDateIsRequired = "82301"
711
684
  end
712
685
 
713
686
  module ClientToken
714
687
  CustomerDoesNotExist = "92804"
715
688
  FailOnDuplicatePaymentMethodRequiresCustomerId = "92803"
716
689
  MakeDefaultRequiresCustomerId = "92801"
690
+ MerchantAccountDoesNotExist = "92807"
717
691
  ProxyMerchantDoesNotExist = "92805"
718
- VerifyCardRequiresCustomerId = "92802"
719
692
  UnsupportedVersion = "92806"
720
- MerchantAccountDoesNotExist = "92807"
693
+ VerifyCardRequiresCustomerId = "92802"
721
694
  end
722
695
 
723
696
  module PaymentMethod
724
- PaymentMethodNonceConsumed = "93106"
697
+ CannotForwardPaymentMethodType = "93107"
725
698
  CustomerIdIsInvalid = "93105"
726
699
  CustomerIdIsRequired = "93104"
727
700
  NonceIsInvalid = "93102"
728
701
  NonceIsRequired = "93103"
729
- PaymentMethodParamsAreRequired = "93101"
730
- PaymentMethodNonceUnknown = "93108"
731
- PaymentMethodNonceLocked = "93109"
732
- CannotForwardPaymentMethodType = "93107"
733
702
  PaymentMethodNoLongerSupported = "93117"
703
+ PaymentMethodNonceConsumed = "93106"
704
+ PaymentMethodNonceLocked = "93109"
705
+ PaymentMethodNonceUnknown = "93108"
706
+ PaymentMethodParamsAreRequired = "93101"
734
707
 
735
708
  module Options
736
709
  UsBankAccountVerificationMethodIsInvalid = "93121"
@@ -757,48 +730,57 @@ module Braintree
757
730
 
758
731
  module Verification
759
732
  module Options
733
+ AccountTypeIsInvalid = "942184"
734
+ AccountTypeNotSupported = "942185"
760
735
  AmountCannotBeNegative = "94201"
761
736
  AmountFormatIsInvalid = "94202"
762
737
  AmountIsTooLarge = "94207"
763
738
  AmountNotSupportedByProcessor = "94203"
739
+ MerchantAccountCannotBeSubMerchantAccount = "94208"
764
740
  MerchantAccountIdIsInvalid = "94204"
765
- MerchantAccountIsSuspended = "94205"
766
741
  MerchantAccountIsForbidden = "94206"
767
- MerchantAccountCannotBeSubMerchantAccount = "94208"
768
- AccountTypeIsInvalid = "942184"
769
- AccountTypeNotSupported = "942185"
742
+ MerchantAccountIsSuspended = "94205"
770
743
  end
771
744
 
772
- ThreeDSecureAuthenticationIdIsInvalid = "942196"
745
+ AmountDoesNotMatch3DSecureAmount = "94285"
746
+ MerchantAccountDoesNotSupport3DSecure = "942169"
747
+ MerchantAcountDoesNotMatch3DSecureMerchantAccount = "94284"
748
+ ThreeDSecureAuthenticationFailed = "94271"
773
749
  ThreeDSecureAuthenticationIdDoesntMatchNonceThreeDSecureAuthentication = "942198"
774
- ThreeDSecureTransactionPaymentMethodDoesntMatchThreeDSecureAuthenticationPaymentMethod = "942197"
750
+ ThreeDSecureAuthenticationIdIsInvalid = "942196"
775
751
  ThreeDSecureAuthenticationIdWithThreeDSecurePassThruIsInvalid = "942199"
776
- ThreeDSecureAuthenticationFailed = "94271"
777
752
  ThreeDSecureTokenIsInvalid = "94268"
753
+ ThreeDSecureTransactionPaymentMethodDoesntMatchThreeDSecureAuthenticationPaymentMethod = "942197"
778
754
  ThreeDSecureVerificationDataDoesntMatchVerify = "94270"
779
- MerchantAccountDoesNotSupport3DSecure = "942169"
780
- MerchantAcountDoesNotMatch3DSecureMerchantAccount = "94284"
781
- AmountDoesNotMatch3DSecureAmount = "94285"
782
755
 
783
756
  module ThreeDSecurePassThru
784
- EciFlagIsRequired = "942113"
785
- EciFlagIsInvalid = "942114"
786
- CavvIsRequired = "942116"
787
- ThreeDSecureVersionIsRequired = "942117"
788
- ThreeDSecureVersionIsInvalid = "942119"
789
757
  AuthenticationResponseIsInvalid = "942120"
790
- DirectoryResponseIsInvalid = "942121"
791
758
  CavvAlgorithmIsInvalid = "942122"
759
+ CavvIsRequired = "942116"
760
+ DirectoryResponseIsInvalid = "942121"
761
+ EciFlagIsInvalid = "942114"
762
+ EciFlagIsRequired = "942113"
763
+ ThreeDSecureVersionIsInvalid = "942119"
764
+ ThreeDSecureVersionIsRequired = "942117"
792
765
  end
793
766
  end
794
767
 
795
768
  module UsBankAccountVerification
796
- NotConfirmable = "96101"
797
- MustBeMicroTransfersVerification = "96102"
798
769
  AmountsDoNotMatch = "96103"
770
+ InvalidDepositAmounts = "96106"
771
+ MustBeMicroTransfersVerification = "96102"
772
+ NotConfirmable = "96101"
799
773
  TooManyConfirmationAttempts = "96104"
800
774
  UnableToConfirmDepositAmounts = "96105"
801
- InvalidDepositAmounts = "96106"
775
+ end
776
+
777
+ module RiskData
778
+ CustomerBrowserIsTooLong = "94701"
779
+ CustomerDeviceIdIsTooLong = "94702"
780
+ CustomerLocationZipInvalidCharacters = "94703"
781
+ CustomerLocationZipIsInvalid = "94704"
782
+ CustomerLocationZipIsTooLong = "94705"
783
+ CustomerTenureIsTooLong = "94706"
802
784
  end
803
785
  end
804
786
  end