- Fixes issue related to missing folders in package paths
- Add support for creating and updating PayPal customer session
- Add support for getting PayPal customer recommendations
- Add recipient/contact info:
recipient_email
andrecipient_phone
toTransaction
- Add
fail_on_duplicate_payment_method_for_customer
option toClientToken
PaymentMethod
CreditCard
- Add
blik_aliases
to LocalPaymentCompleted webhook and LocalPaymentDetail - Deprecate
samsung_pay_card
- Updated expiring pinned vendor SSL certificates
- Add
payer_name
,bic
andiban_last_chars
to LocalPaymentCompleted webhook - Add
edit_paypal_vault_id
to PayPalAccount - Add
ani_first_name_response_code
andani_last_name_response_code
to CreditCardVerification - Add
shippingTaxAmount
to Transaction - Add
network_tokenization_attributes
parameter toTransaction.sale
- Add validation error code
NetworkTokenizationAttributeCryptogramIsRequired
toCreditCard
- Add
foreign_retailer
to Transaction - Add
international_phone
toAddress
andCustomer
- Add
funding_source_description
to PayPalAccount - Add missing
AndroidPayCard
error code - Add
REFUND_FAILED
toWebhookNotification.Kind
- Add
final_capture
to Transactionsubmit_for_partial_settlement_signature
- Deprecate
paypal_tracking_id
in favor ofpaypal_tracker_id
inpackage_details
- Add
domains
parameter support toClientToken.generate
- Add
UnderReview
status toDispute
- Add
DisputeUnderReview
toWebhookNotification.Kind
- Remove usage of standard library deprecated
cgi
module. Note: this will break integrations on versions of Python below 3.2. However, this is NOT a breaking change to this library, due to our current support of Python 3.5+. - Add
PackageDetails
class. - Add
packages
toTransaction
attributes. - Add
package_tracking
method toTransactionGateway
to make request to add tracking information to transactions. - Add
process_debit_as_credit
tocredit_card
field inoptions
field during Transaction create. - Deprecate
three_d_secure_token
in favor ofthree_d_secure_authentication_id
- Add
upc_code
,upc_type
, andimage_url
toline_items
intransaction
- Deprecate
venmo_sdk_session
andvenmo_sdk_payment_method_code
- Add
PickupInStore
toShippingMethod
enum - Add
external_vault
andrisk_data
toCreditCardVerification.create
request - Add
phone_number
inCreditCard
- Add
debit_network
toTransaction
field - Add
debit_network
toTransactionSearch
Request - Add
DebitNetwork
enum toCreditCard
- Add
SubscriptionBillingSkipped
toWebhookNotification.Kind
- Add
arrivalDate
andticketIssuerAddress
toTransaction.sale
request andindustry
data support for Transaction.submitForSettlement - Add
date_of_birth
andcountry_code
to IndustryData params - Add
MetaCheckoutCard
,MetaCheckoutToken
payment methods - Add
MetaCheckoutCardDetails
,MetaCheckoutTokenDetails
toTransaction
- Add
verification_add_ons
toPaymentMethod
create options forACH NetworkCheck
- Fix unittest compatibility with Python 3.12 (Thanks @mgorny)
- Deprecate
evidenceSubmittable
in Dispute - Add missing
escape
calls ingenerator
for:- list
- bool
- integer
- datetime
- Add
processing_overrides
toTransaction.sale
options
- Add
evidence_submittable
toDispute
- Add
merchant_token_identifier
andsource_card_last4
toApplePayCard
- Add a check for empty month and year before generating
expiration_date
in:CrediCard
AndroidPayCard
ApplePayCard
SamsungPayCard
VisaCheckoutCard
- Add
retry_ids
andretried_transaction_id
to Transaction object
- Add
merchant_advice_code
andmerchant_advice_code_text
to Transaction object - Allow vaulting of raw AndroidPayCards with billing address via Customer.create/update
- Add
intended_transaction_source
toCreditCardVerification
- Add
three_d_secure_pass_thru
toCreditCardVerification
- Add
payment_method_nonce
toCreditCardVerification
- Add
three_d_secure_authentication_id
toCreditCardVerification
- Add support for subscriptions in SEPA direct debit accounts
- Fixup issue where request sessions weren't including proxy settings (see #5677 for details).
- Replace nose usage for tests with unittest (Thanks @arthurzam)
- Remove mock dev dependency (Thanks @arthurzam)
- Add
ExcessiveRetry
toGatewayRejectionReason
- Add
pre_dispute_program
toDispute
andDisputeSearch
- Add
AutoAccepted
status toDispute
- Add
DisputeAutoAccepted
toWebhookNotification.Kind
- Deprecate
chargeback_protection_level
and addprotection_level
toDispute
andDisputeSearch
- Add
shipping
object tosubmit_for_settlement_signature
- Add
SEPADirectDebitAccount
payment method - Add
SEPADirectDebitAccount
to transaction object - Add
SEPA_DIRECT_DEBIT_ACCOUNT
toPaymentInstrumentType
- Add
sepa_debit_paypal_v2_order_id
toTransactionSearch
- Add
sepa_direct_debit_accounts
toCustomer
- Add SEPA Direct Debit specific error codes
- Prepare http request before setting url to resolve issue where dot segments get normalized
- Fix
DeprecationWarning
on invalid escape sequences (thanks @DavidCain) - Add validation for arguments in Address.delete, Address.find, and Address.update
- Add
LiabilityShift
class andliability_shift
to RiskData - Add ExchangeRateQuote API
- Add
ach_return_responses_created_at
andreason_code
fields in TransactionSearch - Allow vaulting of raw ApplePayCards with billing address via Customer.create/update
- Add
retried
toTransaction
- Add
PaymentMethodCustomerDataUpdated
webhook
- Add plan create/update/find API endpoint
- Add
TransactionReview
webhook notification - Fix typos (@timgates42)
- Add
localPaymentFunded
andlocalPaymentExpired
webhooks
- Add
exchange_rate_quote_id
toTransaction.sale
- Add validation error code
ExchangeRateQuoteIdIsTooLong
toTransaction
- Add the following fields to
ApplePayCard
andAndroidPayCard
:commercial
debit
durbin_regulated
healthcare
payroll
prepaid
product_id
country_of_issuance
issuing_bank
- Add error code
Transaction.TaxAmountIsRequiredForAibSwedish
for attributetax_amount
to handle validation for AIB:Domestic Transactions in Sweden
- Add
payment_reader_card_details
parameter toTransaction.sale
- Add webhook sample for
GrantedPaymentMethodRevoked
- Add
chargeback_protection_level
toDisputeSearch
- Add
skip_advanced_fraud_checking
to:PaymentMethod.create
andPaymentMethod.update
CreditCard.create
andCreditCard.update
- Add
paypal_messages
toDispute
- Add
tax_identifiers
parameter toCustomer.create
andCustomer.update
- Add
LocalPaymentReversed
webhook - Add
store_id
andstore_ids
toTransaction.search
- Add
merchant_account_id
toTransaction.refund
- Add
Transaction.adjust_authorization
method to support for multiple authorizations for a single transaction
- Add
installments
toTransaction
requests - Add
count
toinstallments
- Deprecate
device_session_id
andfraud_merchant_id
inCreditCardGateway
,CustomerGateway
,PaymentMethodGateway
, andTransactionGateway
classes - Add
sca_exemption
to Transaction.sale request
- Add
acquirer_reference_number
toTransaction
- Deprecate
recurring
in Transaction sale requests
- Deprecate
masterpass_card
andamex_checkout_card
payment methods - Fix issue where
transaction.credit
could not be called using a gateway object
- Add validation error code
Transaction.ProductSkuIsInvalid
- Add 'RiskThreshold' gateway rejection reason
- Add
processed_with_network_token
toTransaction
- Add
is_network_tokenized
toCreditCard
- Add
retrieval_reference_number
toTransaction
- Add
network_transaction_id
toCreditCardVerification
- Add
product_sku
toTransaction
- Add
customer_device_id
,customer_location_zip
, andcustomer_tenure
toRiskData
- Add
phone_number
andshipping_method
toAddress
- Add validation error codes:
Transaction.ShippingMethodIsInvalid
Transaction.ShippingPhoneNumberIsInvalid
Transaction.BillingPhoneNumberIsInvalid
RiskData.CustomerBrowserIsTooLong
RiskData.CustomerDeviceIdIsTooLong
RiskData.CustomerLocationZipInvalidCharacters
RiskData.CustomerLocationZipIsInvalid
RiskData.CustomerLocationZipIsTooLong
RiskData.CustomerTenureIsTooLong
- Add
DisputeAccepted
,DisputeDisputed
, andDisputeExpired
webhook constants - Add
three_d_secure_pass_thru
toCreditCard.create
,CreditCard.update
,PaymentMethod.create
,PaymentMethod.update
,Customer.create
, andCustomer.update
. - Add
Verification
validation errors for 3D Secure - Add
payment_method_token
toCreditCardVerificationSearch
- Add
recurring_customer_consent
andrecurring_max_amount
toauthentication_insight_options
forPaymentMethodNonce.create
- Add
FileIsEmpty
error code - Eliminates usage of mutable objects for function parameters. Resolves #113 Thank you @maneeshd!
- Split development and deployments requirements files out
- Add
Authentication Insight
to payment method nonce create - Add ThreeDSecure test payment method nonces
- Add test
AuthenticationId
s - Add
three_d_secure_authentication_id
tothree_d_secure_info
- Add
three_d_secure_authentication_id
support for transaction sale - Breaking Changes
- Require Python 3.5+
- Remove deprecated Transparent Redirect
- Remove deprecated iDeal payment method
- Apple Pay register_domains returns an ApplePayOptions object
- Remove
unrecognized
status from Transaction, Subscription, and CreditCardVerification - Remove
GrantedPaymentInstrumentUpdate
kind from Webhook - Remove Coinbase references
- Add GatewayTimeoutError, RequestTimeoutError exceptions
- Rename DownForMaintenanceError exception to ServiceUnavailableError
- Transaction
line_items
only returns the line items for a transaction response object. Use TransactionLineItemfind_all
to search all line items on a transaction, given a transaction_id - Upgrade API version to retrieve declined refund transactions
- Remove all deprecated parameters, errors, and methods
- Add
RefundAuthHardDeclined
andRefundAuthSoftDeclined
to validation errors - Fix issue where managing Apple Pay domains would fail in Python 3.8+
- Add level 2 processing options
purchase_order_number
,tax_amount
, andtax_exempt
toTransaction.submit_for_settlement
- Add level 3 processing options
discount_amount
,shipping_amount
,ships_from_postal_code
,line_items
toTransaction.submit_for_settlement
- Add support for managing Apple Pay domains (thanks @ethier #117)
- Fix error when running against Python 3.8 (thanks @felixonmars #114)
- Add
ProcessorDoesNotSupportMotoForCardType
to validation errors - Add Graphql ID to
CreditCardVerification
,Customer
,Dispute
, andTransaction
- Set correct version for PyPi
- Forward
processor_comments
toforwarded_comments
- Add Venmo 'TokenIssuance' gateway rejection reason
- Add
AmountNotSupportedByProcessor
to validation error
- Add PayPalHere details
- Add
networkResponseCode
andnetworkResponseText
to transactions and verifications - Add
cavv
,xid
,ds_transaction_id
,eci_flag
, andthree_d_secure_version
, tothree_d_secure_info
- Add
three_d_secure_info
to credit_card_verification - Add
GraphQLClient
toBraintreeGateway
class
- Add
captureId
field to local_payment_details - Add
refundId
field to local_payment_details - Add
debugId
field to local_payment_details - Add
transactionFeeAmount
field to local_payment_details - Add
transactionFeeCurrencyIsoCode
field to local_payment_details - Add
refundFromTransactionFeeAmount
field to local_payment_details - Add
refundFromTransactionFeeCurrencyIsoCode
field to local_payment_details - Add
ds_transaction_id
andthree_d_secure_version
to 3DS pass thru fields - Add
payer_info
field to payment_method_nonce details - Add more specific timeout errors: (#105 thanks @bhargavrpatel)
- Add
braintree.exceptions.http.timeout_error.ConnectTimeoutError
(child class of TimeoutError) - Add
braintree.exceptions.http.timeout_error.ReadTimeoutError
(child class of TimeoutError) - Add
room_tax
support for transaction sale - Add
no_show
support for transaction sale - Add
advanced_deposit
support for transaction sale - Add
fire_safe
support for transaction sale - Add
property_phone
support for transaction sale - Add
additional_charges
support for transaction sale - Add
PostalCodeIsRequiredForCardBrandAndProcessor
to validation errors - Fix issue where not found error could choke on
None
values (#109)
- Add
payment_method_nonce
field toLocalPaymentCompleted
webhook - Add
transaction
field toLocalPaymentCompleted
webhook - Add
LocalPaymentDetails
to transactions
- Add
refund_from_transaction_fee_amount
field to paypal_details - Add
refund_from_transaction_fee_currency_iso_code
field to paypal_details - Add
revoked_at
field to paypal_account - Add support for
PaymentMethodRevokedByCustomer
webhook
- Deprecate
GrantedPaymentInstrumentUpdate
and addGrantorUpdatedGrantedPaymentMethod
andRecipientUpdatedGrantedPaymentMethod
- Add account_type support for transaction sale, verification, and payment_method create/update
- Add Hiper card type support
- Add Hipercard card type support
- Add
bin
toPaymentMethodNonceDetails
- Clarify support for Python versions 3.6.x and 3.7.x
- Add Error indicating pdf uploads too long for dispute evidence.
- Add
GrantedPaymentMethodRevoked
webhook response objects
- Add
fraud_service_provider
field torisk_data
- Add
authorization_expires_at
toTransaction
- Remove invalid transaction tests
- Allow PayPal payment ID and payer ID to be passed during transaction create
- Add
travel_flight
support to industry-specific data - Add
processor_response_type
toTransaction
,AuthorizationAdjustment
, andCreditCardVerification
.
- Add new field
network_transaction_id
in transaction response. - Add
external_vault
option to transaction sale. - Add
LocalPaymentCompleted
webhook. - Add
processor_response_type
toTransaction
,AuthorizationAdjustment
, andCreditCardVerification
.
- Add ID to Transaction in SubscriptionChargedSuccessfully test webhook (#99, thanks @bjackson)
- Fix dispute results in transactions not showing the correct status sometimes
- Add Elo card type support
- Add processor respone code and processor response text to authorization adjustments subfield in transaction response.
- Add support for Samsung Pay
- Allow payee ID to be passed in options params for transaction create
- Add
merchant_id
alias to ConnectedMerchantStatusTransitioned and ConnectedMerchantPayPalStatusChanged Auth webhooks
- Add support for US Bank Account verifications API
- Add Dispute error ValidEvidenceRequiredToFinalize
- Add
oauth_access_revocation
toWebhookNotification
s - Add support for
customer_id
,disbursement_date
andhistory_event_effective_date
in DisputeSearch - Remove
sepa_mandate_type
andsepa_mandate_acceptance_location
params fromClientToken
- Add support for VCR compelling evidence dispute representment
- Add support for
association_filter_id
inCustomer#find
- Deprecated
LineItem/DiscountAmountMustBeGreaterThanZero
error in favor ofDiscountAmountCannotBeNegative
- Deprecated
LineItem/UnitTaxAmountMustBeGreaterThanZero
error in favor ofUnitTaxAmountCannotBeNegative
- Add support for
tax_amount
field on transactionline_items
- Add support for
source_merchant_id
on webhooks - Add
find_all
static method toTransactionLineItem
class - Add support for
profile_id
in Transaction#create options for VenmoAccounts
- Add level 3 fields to Transactions:
- discount_amount
- shipping_amount
- ships_from_postal_code
- Add support for transaction line items
- Add support for tagged evidence in DisputeGateway#add_text_evidence (Beta release)
- Update https certificate bundle
- Fix spec to expect PayPal transactions to move to settling rather than settled
- Fix AchMandate.acceptedAt attribute parsing
- Fix regression for
http_strategy.http_do
- Add support for upgrading a PayPal future payment refresh token to a billing agreement
- Fix braintree.Dispute.search to take a list of search criteria
- Add logic to remove deprecation warnings for encodestring and decodestring when used with python 3 (#92)
- Fix spec to expect PayPal transaction to settle immediately after successful capture
- Add GrantedPaymentInstrumentUpdate webhook support
- Add ability to create a transaction from a shared nonce
- Add
options
->paypal
->shipping
for creating & updating customers as well as creating payment methods - Do not convert to Decimal if amount is None in AuthorizationAdjustement (#70)
- Add
device_data_captured
field torisk_data
- Add
bin_data
topayment_method_nonce
- Add iDEAL webhook support
- Add AuthorizationAdjustment class and
authorization_adjustments
to Transaction - Coinbase is no longer a supported payment method.
PaymentMethodNoLongerSupported
will be returned for Coinbase operations - Add facilitated details to Transaction if present
- Add
submit_for_settlement
option toSubscription.retry_charge
- Add
options
->paypal
->description
for creating and updating subscriptions - Add Braintree.Dispute.find
- Add braintree.Dispute.accept
- Add braintree.Dispute.add_file_evidence
- Add braintree.Dispute.add_text_evidence
- Add braintree.Dispute.finalize
- Add braintree.Dispute.find
- Add braintree.Dispute.remove_evidence
- Add braintree.Dispute.search
- Add braintree.DocumentUpload
- Fix a bug where a null value for
amount
inCreditCardVerification
would result in aValueError
- Add docstrings for AttributeGetter and Search. Thanks @sharma7n!
- Add support for additional PayPal options when vaulting a PayPal Order
- Add gzip support
- Fix a bug in CreditCardVerification where
amount
andcurrency_iso_code
were always expected
- Fix a regression where
util/datetime_parser.py
was missing - Add support for Visa Checkout
- Improve setup.py
- Verification response includes amount and currency iso code
- Add support for payee_email with paypal intent=order
- Add support for skip_avs & skip_cvs
- Add ConnectedMerchantStatusTransitioned and ConnectedMerchantPayPalStatusChanged Auth webhooks
- Add LICENSE metadata. Thanks graingert.
- Allow custom verification amount on payment method updates.
- Fix a bug where
merchant_account.all
would attempt to fetch too many pages of merchant accounts
- Stop sending account_description field from us bank accounts
- Add functionality to list all merchant accounts for a merchant with
merchant_account.all
- Add option
skip_advanced_fraud_check
for transaction flows
- Update UsBank tests to use legal routing numbers
- Allow setting a custom verification amount in
PaymentMethod
options - Allow setting processor specific fields for transactions and verifications
- Fix
UsBankAccount
support forCustomer
s - Added handling for unicode parameters. (Thanks @mgalgs)
- Raise
ConfigurationError
for empty string credentials - Update
Grant
api to support options dictionary
- Add 'UsBankAccount' payment method
- Update links in docstrings
- Remove Python 3.x-incompatible branch check
- Remove references to SubMerchantAccount API
- Improve error handling around server timeouts
- Allow 'default_payment_method' option in Customer
- Allow 'transaction_source' option in Transaction Sale
- Expose resource collection ids
- Add order id to refund
- Enable 3DS pass thru
- Add method of revoking OAuth access tokens
- Correct issue with setup.py
- Add Transaction
update_details
- Support for Too Many Requests response codes
- Add SubMerchantAccount object with associate objects
- Allow more parameters to be sent on SubMerchantAccount create
- Add SubMerchantAccount update
- Handle validation errors for SubMerchantAccount create / update
- Add AccountUpdaterDailyReport webhook parsing
- Add Verification#create
- Add options to
submit_for_settlement
transaction flows - Update https certificate bundle
- Support environment settings with strings
- Add better defaults to client token generation when using an access token by consolidating client token defaults into ClientTokenGateway
- Add PaymentMethodGateway#revoke
- Add VenmoAccount
- Add support for Set Transaction Context supplementary data.
- Add transaction to subscription successfully charged webhook
- Add new ProcessorDoesNotSupportAuths error
- Add support for partial settlement transactions
- Add constants for dispute kind
- Preserve backtrace when not wrapping HTTP exceptions
- Add date_opened and date_won to dispute webhooks
- Add support for searching transactions from oauth app
- Support AMEX express checkout
- add source_description to android pay and apple pay
- add new android pay test nonces
- add support for amex rewards transactions
- add billing_agreement_id to paypalaccount
- Add new test payment method nonces
- Allow passing description on PayPal transactions
- Fix oauth authentication
- Fix python 3 syntax
- Add oauth support
- Add support for Android Pay
- Validate webhook challenge payload
- Add 3DS server side fields
- Add attribute to customer
- Add coinbase constant
- Add European test nonce
- Add support for new SEPA workflow
- Fix test failures in Python 3.3+
- Accept additional params in PaymentMethod.create()
- Add 3D Secure transaction fields
- Add ability to create nonce from vaulted payment methods
- Support Coinbase accounts
- Surface Apple Pay payment instrument name in responses
- Expose subscription status events
- Support SEPA bank accounts for customer
- Improve documentation
- Add error code constants
- Allow PayPal parameters to be sent in options.paypal
- Add risk_data to Transaction and Verification with Kount decision and id
- Add verification_amount an option when creating a credit card
- Add TravelCruise industry type to Transaction
- Add room_rate to Lodging industry type
- Add CreditCard#verification as the latest verification on that credit card
- Add ApplePay support to all endpoints that may return ApplePayCard objects
- Align WebhookTesting with other client libraries
- Allow descriptor to be passed in Funding Details options params for Merchant Account create and update.
- Add additional_processor_response to transaction
- Allow payee_email to be passed in options params for Transaction create
- Added paypal specific fields to transaction calls
- Added SettlementPending, SettlementDeclined transaction statuses
- Add Descriptor url support
- Fix client token version type
- Support credit card options and billing address in PaymentMethod.create
- Add PaymentMethod.update
- Add associated subscriptions to PayPalAccount
- Test refactoring and cleanup
- Add support for v.zero SDKs
- Drop Python 2.5 support
- Remove use_unsafe_ssl option
- Remove httplib strategy and pycurl strategy
- Add Python 3.3+ support
- Make webhook parsing more robust with newlines
- Add messages to InvalidSignature exceptions
- Include Dispute information on Transaction
- Search for Transactions disputed on a certain date
- Disbursement Webhooks
- Fix using instantiated Configuration objects without first calling Configuration.configure
- Accept billing_address_id on transaction create
- Expose current_billing_cycle on addons and discounts
- Merchant account find API
- Merchant account update API
- Merchant account create API v2
- Update configuration URLs
- Add partnership support
- Add partner configuration
- Add configuration option for custom HTTP strategies
- Adds hold_in_escrow method
- Add error codes for verification not supported error
- Add company_name and tax_id to merchant account create
- Adds cancel_release methods
- Adds release_from_escrow functionality
- Adds owner_phone to merchant account signature.
- Adds merchant account phone error code.
- Adds device data to transactions, customers, and credit cards.
- Adds disbursement details to transactions.
- Adds image_url to transactions.
- Support requests >= 1.0
- Add new validation errors and rename old ones
- Adds channel field to transactions.
- Add additional card types for card type indicators
- Adds verification search
- Additional card information, such as prepaid, debit, commercial, Durbin regulated, healthcare, and payroll, are returned on credit card responses
- Allows transactions to be specified as recurring
- Adds prepaid attribute to credit cards (possible values of: Yes, No, Unknown)
- Add settling transaction status to transaction search
- Adds new package braintree.util.http_stategy to setup.py
- Removes relative imports for python 3.0 (thanks MichaelBlume)
- Adds webhook gateways for parsing, verifying, and testing incoming notifications
- Allow specifying the http strategy to use (PycURL, httplib, requests)
- Adds search for duplicate credit cards given a payment method token
- Adds flag to fail saving credit card to vault if card is duplicate
- Exposes plan_id on transactions
- Added error code for invalid purchase order number
- Fixed zip_safe=False error when building (GitHub issue #17)
- Added error message for merchant accounts that do not support refunds
- Added ability to retrieve all Plans, AddOns, and Discounts
- Added Transaction cloning
- Added SettlementBatchSummary
- Enabled gzip encoding for HTTP requests
- Fixed handling of long integers when generating xml (thanks glencoates)
- Added new error code
- Added subscription_details to Transaction
- Added flag to store in vault only when a transaction is successful
- Added new error code
- Added improvements to unicode handling.
- Added a new transaction state, AuthorizationExpired.
- Enabled searching by authorization_expired_at.
- Added next_billing_date and transaction_id to subscription search
- Added address_country_name to customer search
- Added new error codes
- Added Customer search
- Added dynamic descriptors to Subscriptions and Transactions
- Added level 2 fields to Transactions:
- tax_amount
- tax_exempt
- purchase_order_number
- Added billing_address_id to allowed parameters for credit cards create and update
- Allow searching on subscriptions that are currently in a trial period using in_trial_period
- Added ability to perform multiple partial refunds on Transactions
- Deprecated Transaction refund_id in favor of refund_ids
- Added revert_subscription_on_proration_failure flag to Subscription update that specifies how a Subscription should react to a failed proration charge
- Deprecated Subscription next_bill_amount in favor of next_billing_period_amount
- Added pycurl dependency in place of M2Crypto for better cross-platform compatibility
- Added new fields to Subscription:
- balance
- paid_through_date
- next_billing_period_amount
- Added AddOns/Discounts
- Enhanced Subscription search
- Enhanced Transaction search
- Added constants for CreditCardVerification statuses
- Added Expired and Pending statuses to Subscription
- Allowed prorate_charges to be specified on Subscription update
- Allowed argument lists and literal lists when searching for Subscriptions and Transactions
- Added AddOn/Discount details to Transactions that were created from a Subscription
- All Braintree exceptions now inherit from BraintreeError superclass
- Removed 13 digit Visa Sandbox Credit Card number and replaced it with a 16 digit Visa
- Made gateway operations threadsafe when using multiple configurations
- Added new fields to Subscription:
- billing_day_of_month
- days_past_due
- first_billing_date
- never_expires
- number_of_billing_cycles
- Added support for M2Crypto version 0.20.1, which is the default for Ubuntu Lucid (thanks foresto)
- Added unified message to ErrorResult
- Added ability to specify country using country_name, country_code_alpha2, country_code_alpha3, or country_code_numeric (see ISO_3166-1)
- Renamed Subscription retryCharge to retry_charge
- Added gateway_rejection_reason to Transaction and Verification
- Allow searching with date objects (in addition to datetime)
- When creating a Subscription, return failed transaction on the ErrorResult if the initial transaction is not successful
- Added unified TransparentRedirect url and confirm methods and deprecated old methods
- Added methods to CreditCard to allow searching on expiring and expired credit cards
- Allow credit card verification against a specified merchant account
- Added all method on Customer to retrieve all customers
- Added ability to update a customer, credit card, and billing address in one request
- Allow updating the payment method token on a subscription
- Added methods to navigate between a Transaction and its refund (in both directions)
- Use isinstance instead of type to cater to inheritance (thanks danielgtaylor)
- Prevent race condition when pulling back collection results -- search results represent the state of the data at the time the query was run
- Rename ResourceCollection's approximate_size to maximum_size because items that no longer match the query will not be returned in the result set
- Correctly handle HTTP error 426 (Upgrade Required) -- the error code is returned when your client library version is no longer compatible with the gateway
- Added transaction advanced search
- Added ability to partially refund transactions
- Added ability to manually retry past-due subscriptions
- Added new transaction error codes
- Allow merchant account to be specified when creating transactions
- Allow creating a transaction with a vault customer and new credit card
- Allow existing billing address to be updated when updating credit card
- Updated is_success on transaction results to return false on declined transactions
- Search results now return a generator and will automatically paginate data
- Allow passing cardholder_name when creating transactions
- Renamed ValidationErrorCollection#all to deep_errors and made it a property
- Added the ability to make a credit card the default card for a customer
- Updated Quick Start in README.md to show a workflow with error checking
- Added subscription search
- Return associated subscriptions when finding credit cards
- Raise down for maintenance error instead of forged query string error on 503 responses
- Updated SSL CA file
- Initial release