Skip to content

Commit 80b03f4

Browse files
committed
4.45.0
1 parent f246dd8 commit 80b03f4

10 files changed

Lines changed: 90 additions & 6 deletions

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 4.45.0
4+
* Deprecate `debug_id` on `PayPalAccount`, `LocalPayment`, and `SepaDirectDebitAccount` transaction detail objects
5+
* Add `account_reference_number_type` to sender and receiver in transfer on `Transaction`
6+
* Add `CannotCloneThirdPartyCofNetworkTokenTransaction (915274)` transaction validation error code
7+
38
## 4.44.0
49
* Add `mastercard_transaction_link_id` to `Transaction` and `CreditCardVerification`
510

braintree/error_codes.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,7 @@ class Transaction(object):
482482
CannotCancelRelease = "91562"
483483
CannotCloneCredit = "91543"
484484
CannotCloneMarketplaceTransaction = "915137"
485+
CannotCloneThirdPartyCofNetworkTokenTransaction = "915274"
485486
CannotCloneTransactionWithPayPalAccount = "91573"
486487
CannotCloneTransactionWithVaultCreditCard = "91540"
487488
CannotCloneUnsuccessfulTransaction = "91542"
@@ -610,10 +611,12 @@ class Transaction(object):
610611
TransferDetailsAreNotApplicableForThisMerchantAccount = "97511"
611612
TransferDetailsAreRequired = "97510"
612613
TransferReceiverAccountReferenceNumberIsNotValid = "97509"
614+
TransferReceiverAccountReferenceNumberTypeIsNotValid = "97514"
613615
TransferReceiverFirstNameIsNotValid = "97507"
614616
TransferReceiverLastNameIsNotValid = "97508"
615617
TransferReceiverTaxIdIsNotValid = "97506"
616618
TransferSenderAccountReferenceNumberIsNotValid = "97505"
619+
TransferSenderAccountReferenceNumberTypeIsNotValid = "97513"
617620
TransferSenderFirstNameIsNotValid = "97503"
618621
TransferSenderLastNameIsNotValid = "97504"
619622
TransferSenderTaxIdIsNotValid = "97502"

braintree/local_payment.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
from braintree.resource import Resource
33

44
class LocalPayment(Resource):
5+
# NEXT_MAJOR_VERSION Remove debug_id attribute (deprecated)
56
pass

braintree/paypal_account.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55

66
class PayPalAccount(Resource):
7+
# NEXT_MAJOR_VERSION Remove debug_id attribute (deprecated)
78
@staticmethod
89
def find(paypal_account_token):
910
return Configuration.gateway().paypal_account.find(paypal_account_token)

braintree/sepa_direct_debit_account.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55

66
class SepaDirectDebitAccount(Resource):
7+
# NEXT_MAJOR_VERSION Remove debug_id attribute (deprecated)
78
@staticmethod
89
def find(sepa_direct_debit_account_token):
910
return Configuration.gateway().sepa_direct_debit_account.find(sepa_direct_debit_account_token)

braintree/transaction.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,7 @@ def create_signature():
675675
{
676676
"sender": [
677677
"account_reference_number",
678+
"account_reference_number_type",
678679
"date_of_birth",
679680
"first_name",
680681
"last_name",
@@ -691,6 +692,7 @@ def create_signature():
691692
{
692693
"receiver": [
693694
"account_reference_number",
695+
"account_reference_number_type",
694696
"first_name",
695697
"last_name",
696698
"middle_name",

braintree/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Version = "4.44.0"
1+
Version = "4.45.0"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
setup(
1414
name="braintree",
15-
version="4.44.0",
15+
version="4.45.0",
1616
description="Braintree Python Library",
1717
long_description=long_description,
1818
author="Braintree",

tests/integration/test_transaction_transfer.py

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ def test_transaction_with_valid_transfer_type_for_aft(self):
2323
"first_name": "Alice",
2424
"middle_name": "A",
2525
"last_name": "Silva",
26-
"account_reference_number": "1000012345",
26+
"account_reference_number": "9876543210",
27+
"account_reference_number_type": "PHONE_NUMBER",
2728
"address": {
2829
"street_address": "1st Main Road",
2930
"locality": "Los Angeles",
@@ -33,6 +34,8 @@ def test_transaction_with_valid_transfer_type_for_aft(self):
3334
"date_of_birth": date(2012,4,10)
3435
},
3536
"receiver": {
37+
"account_reference_number": "1000012345",
38+
"account_reference_number_type": "IBAN",
3639
"first_name": "Bob",
3740
"middle_name": "A",
3841
"last_name": "Souza",
@@ -69,6 +72,69 @@ def test_transaction_with_invalid_transfer_type(self):
6972
}
7073

7174
result = Transaction.create(request)
72-
transaction = result.transaction
7375

7476
self.assertFalse(result.is_success)
77+
78+
def test_transaction_with_invalid_sender_account_reference_number_type(self):
79+
request = {
80+
"type": "sale",
81+
"amount": "100.00",
82+
"merchant_account_id": "aft_first_data_wallet_transfer",
83+
"credit_card": {
84+
"number": "4111111111111111",
85+
"expiration_date": "06/2026",
86+
"cvv": "123"
87+
},
88+
"transfer": {
89+
"type": "wallet_transfer",
90+
"sender": {
91+
"account_reference_number": "1000012345",
92+
"account_reference_number_type": "INVALID_ACCOUNT_REFERENCE_NUMBER_TYPE",
93+
"first_name": "Bob",
94+
"middle_name": "A",
95+
"last_name": "Souza",
96+
"address": {
97+
"street_address": "2nd Main Road",
98+
"locality": "Los Angeles",
99+
"region": "CA",
100+
"country_code_alpha2": "US",
101+
}
102+
}
103+
},
104+
}
105+
result = Transaction.create(request)
106+
107+
self.assertFalse(result.is_success)
108+
self.assertEqual(ErrorCodes.Transaction.TransferSenderAccountReferenceNumberTypeIsNotValid, result.errors.for_object("account_funding_transaction").on("sender_account_reference_number_type")[0].code)
109+
110+
def test_transaction_with_invalid_receiver_account_reference_number_type(self):
111+
request = {
112+
"type": "sale",
113+
"amount": "100.00",
114+
"merchant_account_id": "aft_first_data_wallet_transfer",
115+
"credit_card": {
116+
"number": "4111111111111111",
117+
"expiration_date": "06/2026",
118+
"cvv": "123"
119+
},
120+
"transfer": {
121+
"type": "wallet_transfer",
122+
"receiver": {
123+
"account_reference_number": "1000012345",
124+
"account_reference_number_type": "INVALID_ACCOUNT_REFERENCE_NUMBER_TYPE",
125+
"first_name": "Bob",
126+
"middle_name": "A",
127+
"last_name": "Souza",
128+
"address": {
129+
"street_address": "2nd Main Road",
130+
"locality": "Los Angeles",
131+
"region": "CA",
132+
"country_code_alpha2": "US",
133+
}
134+
}
135+
},
136+
}
137+
result = Transaction.create(request)
138+
139+
self.assertFalse(result.is_success)
140+
self.assertEqual(ErrorCodes.Transaction.TransferReceiverAccountReferenceNumberTypeIsNotValid, result.errors.for_object("account_funding_transaction").on("receiver_account_reference_number_type")[0].code)

tests/unit/test_transaction_transfer.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ def test_aft_transfer_type(self):
2121
"first_name": "Alice",
2222
"middle_name": "A",
2323
"last_name": "Silva",
24-
"account_reference_number": "1000012345",
24+
"account_reference_number": "9876543210",
25+
"account_reference_number_type": "PHONE_NUMBER",
2526
"address": {
2627
"street_address": "1st Main Road",
2728
"locality": "Los Angeles",
@@ -34,6 +35,8 @@ def test_aft_transfer_type(self):
3435
"first_name": "Bob",
3536
"middle_name": "A",
3637
"last_name": "Souza",
38+
"account_reference_number": "1000012345",
39+
"account_reference_number_type": "IBAN",
3740
"address": {
3841
"street_address": "2nd Main Road",
3942
"locality": "Los Angeles",
@@ -60,7 +63,8 @@ def test_transfer_staged_digital_wallet_operator(self):
6063
"sender": {
6164
"first_name": "Alice",
6265
"last_name": "Silva",
63-
"account_reference_number": "1000012345",
66+
"account_reference_number": "test-12112",
67+
"account_reference_number_type": "SOCIAL_NETWORK_PROFILE_ID",
6468
"tax_id": "12345678900",
6569
"address": {
6670
"street_address": "Rua das Flores, 100",
@@ -79,6 +83,7 @@ def test_transfer_staged_digital_wallet_operator(self):
7983
"first_name": "Bob",
8084
"last_name": "Souza",
8185
"account_reference_number": "2000012345",
86+
"account_reference_number_type": "IBAN",
8287
"tax_id": "98765432100",
8388
"address": {
8489
"street_address": "Avenida Brasil, 200",

0 commit comments

Comments
 (0)