braintree 4.26.0 → 4.27.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.
- checksums.yaml +4 -4
- data/lib/braintree/configuration.rb +1 -1
- data/lib/braintree/error_codes.rb +5 -104
- data/lib/braintree/merchant_account.rb +1 -25
- data/lib/braintree/merchant_account_gateway.rb +0 -81
- data/lib/braintree/transaction.rb +0 -26
- data/lib/braintree/transaction_gateway.rb +9 -20
- data/lib/braintree/version.rb +1 -1
- data/lib/braintree/webhook_notification.rb +0 -4
- data/lib/braintree/webhook_testing_gateway.rb +0 -33
- data/lib/braintree.rb +0 -3
- data/spec/integration/braintree/disbursement_spec.rb +1 -1
- data/spec/integration/braintree/merchant_account_spec.rb +0 -342
- data/spec/integration/braintree/payment_method_spec.rb +3 -3
- data/spec/integration/braintree/transaction_payment_facilitator_spec.rb +119 -0
- data/spec/integration/braintree/transaction_spec.rb +1 -305
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/braintree/configuration_spec.rb +1 -1
- data/spec/unit/braintree/transaction_gateway_spec.rb +19 -0
- data/spec/unit/braintree/webhook_notification_spec.rb +0 -53
- metadata +3 -7
- data/lib/braintree/merchant_account/business_details.rb +0 -17
- data/lib/braintree/merchant_account/funding_details.rb +0 -18
- data/lib/braintree/merchant_account/individual_details.rb +0 -20
- data/spec/unit/braintree/disbursement_spec.rb +0 -131
- data/spec/unit/braintree/merchant_account_spec.rb +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cf859b9e9cd1dc488cbebf8b754be0a5657e76202688385526c3e83aae6510a
|
4
|
+
data.tar.gz: 71cfdbfa882a2e5e6bbb21cdd09bbf2c60b64b73956dd54a641c97cc8f3c2bee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7df6373d9bfa7fcb80d6d828cdfe36e044e194ff5a7e63bfb561cd52e946e61d564ddbc63f4194680a69642ef4a8e8a681b88eb90e03d43348660ca10a9b41cb
|
7
|
+
data.tar.gz: bd194236bbf640da0e0765819468e12b0358b292a66a042482c7869abe3ee786c5f2e92b59dc3a00f22c6ccd85a94f94cecae1b99008e9923712a848f4aaec1e
|
@@ -116,7 +116,6 @@ module Braintree
|
|
116
116
|
VerificationAmountFormatIsInvalid = "91740"
|
117
117
|
VerificationAmountIsTooLarge = "91752"
|
118
118
|
VerificationAmountNotSupportedByProcessor = "91741"
|
119
|
-
VerificationMerchantAccountCannotBeSubMerchantAccount = "91755"
|
120
119
|
VerificationMerchantAccountIdIsInvalid = "91728"
|
121
120
|
VerificationMerchantAccountIsForbidden = "91743"
|
122
121
|
VerificationMerchantAccountIsSuspended = "91742"
|
@@ -191,6 +190,10 @@ module Braintree
|
|
191
190
|
AndroidPayCardsAreNotAccepted = "83708"
|
192
191
|
end
|
193
192
|
|
193
|
+
module PaymentFacilitator
|
194
|
+
PaymentFacilitatorNotApplicable = "97405"
|
195
|
+
end
|
196
|
+
|
194
197
|
module PayPalAccount
|
195
198
|
AuthExpired = "92911"
|
196
199
|
CannotHaveBothAccessTokenAndConsentCode = "82903"
|
@@ -337,21 +340,16 @@ module Braintree
|
|
337
340
|
BillingAddressConflict = "91530"
|
338
341
|
BillingPhoneNumberIsInvalid = "915206"
|
339
342
|
CannotBeVoided = "91504"
|
340
|
-
CannotCancelRelease = "91562"
|
341
343
|
CannotCloneCredit = "91543"
|
342
|
-
CannotCloneMarketplaceTransaction = "915137"
|
343
344
|
CannotCloneTransactionWithPayPalAccount = "91573"
|
344
345
|
CannotCloneTransactionWithVaultCreditCard = "91540"
|
345
346
|
CannotCloneUnsuccessfulTransaction = "91542"
|
346
347
|
CannotCloneVoiceAuthorizations = "91541"
|
347
|
-
CannotHoldInEscrow = "91560"
|
348
|
-
CannotPartiallyRefundEscrowedTransaction = "91563"
|
349
348
|
CannotRefundCredit = "91505"
|
350
349
|
CannotRefundSettlingTransaction = "91574"
|
351
350
|
CannotRefundUnlessSettled = "91506"
|
352
351
|
CannotRefundWithPendingMerchantAccount = "91559"
|
353
352
|
CannotRefundWithSuspendedMerchantAccount = "91538"
|
354
|
-
CannotReleaseFromEscrow = "91561"
|
355
353
|
CannotSimulateTransactionSettlement = "91575"
|
356
354
|
CannotSubmitForSettlement = "91507"
|
357
355
|
CannotUpdateTransactionDetailsNotSubmittedForSettlement = "915129"
|
@@ -434,7 +432,6 @@ module Braintree
|
|
434
432
|
ShipsFromPostalCodeInvalidCharacters = "915167"
|
435
433
|
ShipsFromPostalCodeIsInvalid = "915166"
|
436
434
|
ShipsFromPostalCodeIsTooLong = "915165"
|
437
|
-
SubMerchantAccountRequiresServiceFeeAmount = "91553"
|
438
435
|
SubscriptionDoesNotBelongToCustomer = "91529"
|
439
436
|
SubscriptionIdIsInvalid = "91528"
|
440
437
|
SubscriptionStatusMustBePastDue = "91531"
|
@@ -468,6 +465,7 @@ module Braintree
|
|
468
465
|
UsBankAccountNonceMustBePlaidVerified = "915171"
|
469
466
|
UsBankAccountNotVerified = "915172"
|
470
467
|
|
468
|
+
|
471
469
|
module Options
|
472
470
|
SubmitForSettlementIsRequiredForCloning = "91544"
|
473
471
|
SubmitForSettlementIsRequiredForPayPalUnilateral = "91582"
|
@@ -639,110 +637,14 @@ module Braintree
|
|
639
637
|
end
|
640
638
|
|
641
639
|
module MerchantAccount
|
642
|
-
CannotBeUpdated = "82674"
|
643
|
-
Declined = "82626"
|
644
|
-
DeclinedFailedKYC = "82623"
|
645
|
-
DeclinedMasterCardMatch = "82622"
|
646
|
-
DeclinedOFAC = "82621"
|
647
|
-
DeclinedSsnInvalid = "82624"
|
648
|
-
DeclinedSsnMatchesDeceased = "82625"
|
649
|
-
IdCannotBeUpdated = "82675"
|
650
|
-
IdFormatIsInvalid = "82603"
|
651
|
-
IdIsInUse = "82604"
|
652
|
-
IdIsNotAllowed = "82605"
|
653
|
-
IdIsTooLong = "82602"
|
654
|
-
MasterMerchantAccountIdCannotBeUpdated = "82676"
|
655
|
-
MasterMerchantAccountIdIsInvalid = "82607"
|
656
|
-
MasterMerchantAccountIdIsRequired = "82606"
|
657
|
-
MasterMerchantAccountMustBeActive = "82608"
|
658
|
-
TosAcceptedIsRequired = "82610"
|
659
640
|
|
660
641
|
module ApplicantDetails
|
661
|
-
AccountNumberIsInvalid = "82670"
|
662
|
-
AccountNumberIsRequired = "82614"
|
663
|
-
CompanyNameIsInvalid = "82631"
|
664
|
-
CompanyNameIsRequiredWithTaxId = "82633"
|
665
|
-
DateOfBirthIsInvalid = "82663"
|
666
|
-
DateOfBirthIsRequired = "82612"
|
667
642
|
Declined = "82626" # Keep for backwards compatibility
|
668
643
|
DeclinedFailedKYC = "82623" # Keep for backwards compatibility
|
669
644
|
DeclinedMasterCardMatch = "82622" # Keep for backwards compatibility
|
670
645
|
DeclinedOFAC = "82621" # Keep for backwards compatibility
|
671
646
|
DeclinedSsnInvalid = "82624" # Keep for backwards compatibility
|
672
647
|
DeclinedSsnMatchesDeceased = "82625" # Keep for backwards compatibility
|
673
|
-
EmailAddressIsInvalid = "82616"
|
674
|
-
EmailAddressIsRequired = "82665"
|
675
|
-
FirstNameIsInvalid = "82627"
|
676
|
-
FirstNameIsRequired = "82609"
|
677
|
-
LastNameIsInvalid = "82628"
|
678
|
-
LastNameIsRequired = "82611"
|
679
|
-
PhoneIsInvalid = "82636"
|
680
|
-
RoutingNumberIsInvalid = "82635"
|
681
|
-
RoutingNumberIsRequired = "82613"
|
682
|
-
SsnIsInvalid = "82615"
|
683
|
-
TaxIdIsInvalid = "82632"
|
684
|
-
TaxIdIsRequiredWithCompanyName = "82634"
|
685
|
-
TaxIdMustBeBlank = "82673"
|
686
|
-
|
687
|
-
module Address
|
688
|
-
LocalityIsRequired = "82618"
|
689
|
-
PostalCodeIsInvalid = "82630"
|
690
|
-
PostalCodeIsRequired = "82619"
|
691
|
-
RegionIsInvalid = "82664"
|
692
|
-
RegionIsRequired = "82620"
|
693
|
-
StreetAddressIsInvalid = "82629"
|
694
|
-
StreetAddressIsRequired = "82617"
|
695
|
-
end
|
696
|
-
end
|
697
|
-
|
698
|
-
module Individual
|
699
|
-
DateOfBirthIsInvalid = "82666"
|
700
|
-
DateOfBirthIsRequired = "82639"
|
701
|
-
EmailIsInvalid = "82643"
|
702
|
-
EmailIsRequired = "82667"
|
703
|
-
FirstNameIsInvalid = "82644"
|
704
|
-
FirstNameIsRequired = "82637"
|
705
|
-
LastNameIsInvalid = "82645"
|
706
|
-
LastNameIsRequired = "82638"
|
707
|
-
PhoneIsInvalid = "82656"
|
708
|
-
SsnIsInvalid = "82642"
|
709
|
-
|
710
|
-
module Address
|
711
|
-
LocalityIsRequired = "82658"
|
712
|
-
PostalCodeIsInvalid = "82662"
|
713
|
-
PostalCodeIsRequired = "82659"
|
714
|
-
RegionIsInvalid = "82668"
|
715
|
-
RegionIsRequired = "82660"
|
716
|
-
StreetAddressIsInvalid = "82661"
|
717
|
-
StreetAddressIsRequired = "82657"
|
718
|
-
end
|
719
|
-
end
|
720
|
-
|
721
|
-
module Business
|
722
|
-
DbaNameIsInvalid = "82646"
|
723
|
-
LegalNameIsInvalid = "82677"
|
724
|
-
LegalNameIsRequiredWithTaxId = "82669"
|
725
|
-
TaxIdIsInvalid = "82647"
|
726
|
-
TaxIdIsRequiredWithLegalName = "82648"
|
727
|
-
TaxIdMustBeBlank = "82672"
|
728
|
-
module Address
|
729
|
-
PostalCodeIsInvalid = "82686"
|
730
|
-
RegionIsInvalid = "82684"
|
731
|
-
StreetAddressIsInvalid = "82685"
|
732
|
-
end
|
733
|
-
end
|
734
|
-
|
735
|
-
module Funding
|
736
|
-
AccountNumberIsInvalid = "82671"
|
737
|
-
AccountNumberIsRequired = "82641"
|
738
|
-
DestinationIsInvalid = "82679"
|
739
|
-
DestinationIsRequired = "82678"
|
740
|
-
EmailIsInvalid = "82681"
|
741
|
-
EmailIsRequired = "82680"
|
742
|
-
MobilePhoneIsInvalid = "82683"
|
743
|
-
MobilePhoneIsRequired = "82682"
|
744
|
-
RoutingNumberIsInvalid = "82649"
|
745
|
-
RoutingNumberIsRequired = "82640"
|
746
648
|
end
|
747
649
|
end
|
748
650
|
|
@@ -808,7 +710,6 @@ module Braintree
|
|
808
710
|
AmountFormatIsInvalid = "94202"
|
809
711
|
AmountIsTooLarge = "94207"
|
810
712
|
AmountNotSupportedByProcessor = "94203"
|
811
|
-
MerchantAccountCannotBeSubMerchantAccount = "94208"
|
812
713
|
MerchantAccountIdIsInvalid = "94204"
|
813
714
|
MerchantAccountIsForbidden = "94206"
|
814
715
|
MerchantAccountIsSuspended = "94205"
|
@@ -18,44 +18,20 @@ module Braintree
|
|
18
18
|
include Braintree::MerchantAccount::FundingDestination
|
19
19
|
end
|
20
20
|
|
21
|
-
attr_reader :business_details
|
22
21
|
attr_reader :currency_iso_code
|
23
22
|
attr_reader :default
|
24
|
-
attr_reader :funding_details
|
25
23
|
attr_reader :id
|
26
|
-
attr_reader :individual_details
|
27
|
-
attr_reader :master_merchant_account
|
28
24
|
attr_reader :status
|
29
25
|
|
30
26
|
alias_method :default?, :default
|
31
27
|
|
32
|
-
def self.create(*args)
|
33
|
-
Configuration.gateway.merchant_account.create(*args)
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.create!(*args)
|
37
|
-
Configuration.gateway.merchant_account.create!(*args)
|
38
|
-
end
|
39
|
-
|
40
28
|
def self.find(*args)
|
41
29
|
Configuration.gateway.merchant_account.find(*args)
|
42
30
|
end
|
43
31
|
|
44
|
-
def self.update(*args)
|
45
|
-
Configuration.gateway.merchant_account.update(*args)
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.update!(*args)
|
49
|
-
Configuration.gateway.merchant_account.update!(*args)
|
50
|
-
end
|
51
|
-
|
52
32
|
def initialize(gateway, attributes)
|
53
33
|
@gateway = gateway
|
54
34
|
set_instance_variables_from_hash(attributes)
|
55
|
-
@individual_details = IndividualDetails.new(@individual)
|
56
|
-
@business_details = BusinessDetails.new(@business)
|
57
|
-
@funding_details = FundingDetails.new(@funding)
|
58
|
-
@master_merchant_account = MerchantAccount._new(@gateway, attributes.delete(:master_merchant_account)) if attributes[:master_merchant_account]
|
59
35
|
end
|
60
36
|
|
61
37
|
class << self
|
@@ -66,7 +42,7 @@ module Braintree
|
|
66
42
|
end
|
67
43
|
|
68
44
|
def inspect
|
69
|
-
order = [:id, :status
|
45
|
+
order = [:id, :status]
|
70
46
|
nice_attributes = order.map do |attr|
|
71
47
|
"#{attr}: #{send(attr).inspect}"
|
72
48
|
end
|
@@ -20,16 +20,6 @@ module Braintree
|
|
20
20
|
PaginatedResult.new(body[:total_items], body[:page_size], merchant_accounts)
|
21
21
|
end
|
22
22
|
|
23
|
-
def create(attributes)
|
24
|
-
signature = MerchantAccountGateway._detect_signature(attributes)
|
25
|
-
Util.verify_keys(signature, attributes)
|
26
|
-
_do_create "/merchant_accounts/create_via_api", :merchant_account => attributes
|
27
|
-
end
|
28
|
-
|
29
|
-
def create!(*args)
|
30
|
-
return_object_or_raise(:merchant_account) { create(*args) }
|
31
|
-
end
|
32
|
-
|
33
23
|
def find(merchant_account_id)
|
34
24
|
raise ArgumentError if merchant_account_id.nil? || merchant_account_id.to_s.strip == ""
|
35
25
|
response = @config.http.get("#{@config.base_merchant_path}/merchant_accounts/#{merchant_account_id}")
|
@@ -38,37 +28,10 @@ module Braintree
|
|
38
28
|
raise NotFoundError, "Merchant account with id #{merchant_account_id} not found"
|
39
29
|
end
|
40
30
|
|
41
|
-
def update(merchant_account_id, attributes)
|
42
|
-
Util.verify_keys(MerchantAccountGateway._update_signature, attributes)
|
43
|
-
_do_update "/merchant_accounts/#{merchant_account_id}/update_via_api", :merchant_account => attributes
|
44
|
-
end
|
45
|
-
|
46
|
-
def update!(*args)
|
47
|
-
return_object_or_raise(:merchant_account) { update(*args) }
|
48
|
-
end
|
49
|
-
|
50
31
|
def create_for_currency(params)
|
51
32
|
_create_for_currency(params)
|
52
33
|
end
|
53
34
|
|
54
|
-
def _do_create(path, params=nil)
|
55
|
-
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
56
|
-
if response[:api_error_response]
|
57
|
-
ErrorResult.new(@gateway, response[:api_error_response])
|
58
|
-
else
|
59
|
-
SuccessfulResult.new(:merchant_account => MerchantAccount._new(@gateway, response[:merchant_account]))
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def _do_update(path, params=nil)
|
64
|
-
response = @config.http.put("#{@config.base_merchant_path}#{path}", params)
|
65
|
-
if response[:api_error_response]
|
66
|
-
ErrorResult.new(@gateway, response[:api_error_response])
|
67
|
-
else
|
68
|
-
SuccessfulResult.new(:merchant_account => MerchantAccount._new(@gateway, response[:merchant_account]))
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
35
|
def _create_for_currency(params)
|
73
36
|
response = @config.http.post("#{@config.base_merchant_path}/merchant_accounts/create_for_currency", :merchant_account => params)
|
74
37
|
|
@@ -82,49 +45,5 @@ module Braintree
|
|
82
45
|
raise UnexpectedError, "expected :merchant or :api_error_response"
|
83
46
|
end
|
84
47
|
end
|
85
|
-
|
86
|
-
# NEXT_MAJOR_VERSION this is part of Marketplace and shouldn't be removed unless we're removing all Marketplace code
|
87
|
-
def self._detect_signature(attributes)
|
88
|
-
if attributes.has_key?(:applicant_details)
|
89
|
-
warn "[DEPRECATED] Passing :applicant_details to create is deprecated. Please use :individual, :business, and :funding."
|
90
|
-
MerchantAccountGateway._deprecated_create_signature
|
91
|
-
else
|
92
|
-
MerchantAccountGateway._create_signature
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# NEXT_MAJOR_VERSION this is part of Marketplace and shouldn't be removed unless we're removing all Marketplace code
|
97
|
-
def self._deprecated_create_signature
|
98
|
-
[
|
99
|
-
{:applicant_details => [
|
100
|
-
:first_name, :last_name, :email, :date_of_birth, :ssn, :routing_number,
|
101
|
-
:account_number, :tax_id, :company_name, :phone,
|
102
|
-
{:address => [:street_address, :postal_code, :locality, :region]}]
|
103
|
-
},
|
104
|
-
:tos_accepted, :master_merchant_account_id, :id
|
105
|
-
]
|
106
|
-
end
|
107
|
-
|
108
|
-
def self._signature
|
109
|
-
[
|
110
|
-
{:individual => [
|
111
|
-
:first_name, :last_name, :email, :date_of_birth, :ssn, :phone,
|
112
|
-
{:address => [:street_address, :locality, :region, :postal_code]}]
|
113
|
-
},
|
114
|
-
{:business => [
|
115
|
-
:dba_name, :legal_name, :tax_id,
|
116
|
-
{:address => [:street_address, :locality, :region, :postal_code]}]
|
117
|
-
},
|
118
|
-
{:funding => [:destination, :email, :mobile_phone, :routing_number, :account_number, :descriptor]}
|
119
|
-
]
|
120
|
-
end
|
121
|
-
|
122
|
-
def self._create_signature
|
123
|
-
_signature + [:tos_accepted, :master_merchant_account_id, :id]
|
124
|
-
end
|
125
|
-
|
126
|
-
def self._update_signature
|
127
|
-
_signature
|
128
|
-
end
|
129
48
|
end
|
130
49
|
end
|
@@ -9,15 +9,6 @@ module Braintree
|
|
9
9
|
Unrecognized = "unrecognized"
|
10
10
|
end
|
11
11
|
|
12
|
-
module EscrowStatus
|
13
|
-
HoldPending = "hold_pending"
|
14
|
-
Held = "held"
|
15
|
-
ReleasePending = "release_pending"
|
16
|
-
Released = "released"
|
17
|
-
Refunded = "refunded"
|
18
|
-
Unrecognized = "unrecognized"
|
19
|
-
end
|
20
|
-
|
21
12
|
module GatewayRejectionReason
|
22
13
|
ApplicationIncomplete = "application_incomplete"
|
23
14
|
AVS = "avs"
|
@@ -118,7 +109,6 @@ module Braintree
|
|
118
109
|
attr_reader :discount_amount
|
119
110
|
attr_reader :discounts
|
120
111
|
attr_reader :disputes
|
121
|
-
attr_reader :escrow_status
|
122
112
|
attr_reader :facilitated_details
|
123
113
|
attr_reader :facilitator_details
|
124
114
|
attr_reader :foreign_retailer
|
@@ -235,14 +225,6 @@ module Braintree
|
|
235
225
|
Configuration.gateway.transaction_line_item.find_all(*args)
|
236
226
|
end
|
237
227
|
|
238
|
-
def self.hold_in_escrow(*args)
|
239
|
-
Configuration.gateway.transaction.hold_in_escrow(*args)
|
240
|
-
end
|
241
|
-
|
242
|
-
def self.hold_in_escrow!(*args)
|
243
|
-
Configuration.gateway.transaction.hold_in_escrow!(*args)
|
244
|
-
end
|
245
|
-
|
246
228
|
def self.refund(*args)
|
247
229
|
Configuration.gateway.transaction.refund(*args)
|
248
230
|
end
|
@@ -263,14 +245,6 @@ module Braintree
|
|
263
245
|
Configuration.gateway.transaction.search(&block)
|
264
246
|
end
|
265
247
|
|
266
|
-
def self.release_from_escrow(*args)
|
267
|
-
Configuration.gateway.transaction.release_from_escrow(*args)
|
268
|
-
end
|
269
|
-
|
270
|
-
def self.release_from_escrow!(*args)
|
271
|
-
Configuration.gateway.transaction.release_from_escrow!(*args)
|
272
|
-
end
|
273
|
-
|
274
248
|
def self.submit_for_settlement(*args)
|
275
249
|
Configuration.gateway.transaction.submit_for_settlement(*args)
|
276
250
|
end
|
@@ -31,16 +31,6 @@ module Braintree
|
|
31
31
|
return_object_or_raise(:transaction) { cancel_release(*args) }
|
32
32
|
end
|
33
33
|
|
34
|
-
def hold_in_escrow(transaction_id)
|
35
|
-
raise ArgumentError, "transaction_id is invalid" unless transaction_id =~ /\A[0-9a-z]+\z/
|
36
|
-
response = @config.http.put("#{@config.base_merchant_path}/transactions/#{transaction_id}/hold_in_escrow")
|
37
|
-
_handle_transaction_response(response)
|
38
|
-
end
|
39
|
-
|
40
|
-
def hold_in_escrow!(*args)
|
41
|
-
return_object_or_raise(:transaction) { hold_in_escrow(*args) }
|
42
|
-
end
|
43
|
-
|
44
34
|
def _handle_transaction_response(response)
|
45
35
|
if response[:transaction]
|
46
36
|
SuccessfulResult.new(:transaction => Transaction._new(@gateway, response[:transaction]))
|
@@ -135,16 +125,6 @@ module Braintree
|
|
135
125
|
end
|
136
126
|
end
|
137
127
|
|
138
|
-
def release_from_escrow(transaction_id)
|
139
|
-
raise ArgumentError, "transaction_id is invalid" unless transaction_id =~ /\A[0-9a-z]+\z/
|
140
|
-
response = @config.http.put("#{@config.base_merchant_path}/transactions/#{transaction_id}/release_from_escrow")
|
141
|
-
_handle_transaction_response(response)
|
142
|
-
end
|
143
|
-
|
144
|
-
def release_from_escrow!(*args)
|
145
|
-
return_object_or_raise(:transaction) { release_from_escrow(*args) }
|
146
|
-
end
|
147
|
-
|
148
128
|
def submit_for_settlement(transaction_id, amount = nil, options = {})
|
149
129
|
raise ArgumentError, "transaction_id is invalid" unless transaction_id =~ /\A[0-9a-z]+\z/
|
150
130
|
Util.verify_keys(TransactionGateway._submit_for_settlement_signature, options)
|
@@ -275,6 +255,15 @@ module Braintree
|
|
275
255
|
]
|
276
256
|
},
|
277
257
|
{:paypal_account => [:email, :token, :paypal_data, :payee_id, :payee_email, :payer_id, :payment_id]},
|
258
|
+
{:payment_facilitator => [
|
259
|
+
:payment_facilitator_id,
|
260
|
+
{:sub_merchant => [:reference_number, :tax_id, :legal_name,
|
261
|
+
{:address => [ :street_address, :locality, :region, :country_code_alpha2, :postal_code,
|
262
|
+
{:international_phone => [:country_code, :national_number
|
263
|
+
]}
|
264
|
+
]}
|
265
|
+
]}
|
266
|
+
]},
|
278
267
|
{:risk_data => [:customer_browser, :customer_device_id, :customer_ip, :customer_location_zip, :customer_tenure]},
|
279
268
|
{
|
280
269
|
:shipping => AddressGateway._shared_signature + [:shipping_method],
|
data/lib/braintree/version.rb
CHANGED
@@ -13,7 +13,6 @@ module Braintree
|
|
13
13
|
ConnectedMerchantPayPalStatusChanged = "connected_merchant_paypal_status_changed"
|
14
14
|
ConnectedMerchantStatusTransitioned = "connected_merchant_status_transitioned"
|
15
15
|
Disbursement = "disbursement"
|
16
|
-
DisbursementException = "disbursement_exception"
|
17
16
|
|
18
17
|
DisputeAccepted = "dispute_accepted"
|
19
18
|
DisputeAutoAccepted = "dispute_auto_accepted"
|
@@ -57,9 +56,6 @@ module Braintree
|
|
57
56
|
SubscriptionWentActive = "subscription_went_active"
|
58
57
|
SubscriptionWentPastDue = "subscription_went_past_due"
|
59
58
|
|
60
|
-
SubMerchantAccountApproved = "sub_merchant_account_approved"
|
61
|
-
SubMerchantAccountDeclined = "sub_merchant_account_declined"
|
62
|
-
|
63
59
|
TransactionDisbursed = "transaction_disbursed"
|
64
60
|
TransactionReviewed = "transaction_reviewed"
|
65
61
|
TransactionSettlementDeclined = "transaction_settlement_declined"
|
@@ -58,10 +58,6 @@ module Braintree
|
|
58
58
|
_partner_merchant_declined_sample_xml(id)
|
59
59
|
when Braintree::WebhookNotification::Kind::OAuthAccessRevoked
|
60
60
|
_oauth_access_revoked_sample_xml(id)
|
61
|
-
when Braintree::WebhookNotification::Kind::SubMerchantAccountApproved
|
62
|
-
_merchant_account_approved_sample_xml(id)
|
63
|
-
when Braintree::WebhookNotification::Kind::SubMerchantAccountDeclined
|
64
|
-
_merchant_account_declined_sample_xml(id)
|
65
61
|
when Braintree::WebhookNotification::Kind::TransactionDisbursed
|
66
62
|
_transaction_disbursed_sample_xml(id)
|
67
63
|
when Braintree::WebhookNotification::Kind::TransactionReviewed
|
@@ -70,8 +66,6 @@ module Braintree
|
|
70
66
|
_transaction_settled_sample_xml(id)
|
71
67
|
when Braintree::WebhookNotification::Kind::TransactionSettlementDeclined
|
72
68
|
_transaction_settlement_declined_sample_xml(id)
|
73
|
-
when Braintree::WebhookNotification::Kind::DisbursementException
|
74
|
-
_disbursement_exception_sample_xml(id)
|
75
69
|
when Braintree::WebhookNotification::Kind::Disbursement
|
76
70
|
_disbursement_sample_xml(id)
|
77
71
|
when Braintree::WebhookNotification::Kind::SubscriptionBillingSkipped
|
@@ -959,33 +953,7 @@ module Braintree
|
|
959
953
|
XML
|
960
954
|
end
|
961
955
|
|
962
|
-
def _disbursement_exception_sample_xml(id)
|
963
|
-
|
964
|
-
<<-XML
|
965
|
-
<disbursement>
|
966
|
-
<id>#{id}</id>
|
967
|
-
<transaction-ids type="array">
|
968
|
-
<item>afv56j</item>
|
969
|
-
<item>kj8hjk</item>
|
970
|
-
</transaction-ids>
|
971
|
-
<success type="boolean">false</success>
|
972
|
-
<retry type="boolean">false</retry>
|
973
|
-
<merchant-account>
|
974
|
-
<id>merchant_account_token</id>
|
975
|
-
<currency-iso-code>USD</currency-iso-code>
|
976
|
-
<sub-merchant-account type="boolean">false</sub-merchant-account>
|
977
|
-
<status>active</status>
|
978
|
-
</merchant-account>
|
979
|
-
<amount>100.00</amount>
|
980
|
-
<disbursement-date type="date">2014-02-10</disbursement-date>
|
981
|
-
<exception-message>bank_rejected</exception-message>
|
982
|
-
<follow-up-action>update_funding_information</follow-up-action>
|
983
|
-
</disbursement>
|
984
|
-
XML
|
985
|
-
end
|
986
|
-
|
987
956
|
def _disbursement_sample_xml(id)
|
988
|
-
|
989
957
|
<<-XML
|
990
958
|
<disbursement>
|
991
959
|
<id>#{id}</id>
|
@@ -1010,7 +978,6 @@ module Braintree
|
|
1010
978
|
end
|
1011
979
|
|
1012
980
|
def _account_updater_daily_report_sample_xml(id)
|
1013
|
-
|
1014
981
|
<<-XML
|
1015
982
|
<account-updater-daily-report>
|
1016
983
|
<report-date type="date">2016-01-14</report-date>
|
data/lib/braintree.rb
CHANGED
@@ -98,9 +98,6 @@ require "braintree/merchant"
|
|
98
98
|
require "braintree/merchant_gateway"
|
99
99
|
require "braintree/merchant_account"
|
100
100
|
require "braintree/merchant_account_gateway"
|
101
|
-
require "braintree/merchant_account/individual_details"
|
102
|
-
require "braintree/merchant_account/business_details"
|
103
|
-
require "braintree/merchant_account/funding_details"
|
104
101
|
require "braintree/merchant_account/address_details"
|
105
102
|
require "braintree/meta_checkout_card"
|
106
103
|
require "braintree/meta_checkout_token"
|