- Add
accept_partial_authorizationtoTransaction Gatewayandpartially_authorizedtoTransaction - Deprecate transactions for
visa_checkout_cardand maintain search functionality - Add
ach_typetooptions->us_bank_accountinTransaction.create - Add
ach_typeandrequested_ach_typetoTransaction
- Re-releasing as 4.34.0
- Version 4.33.2 was meant to be a released as 4.34.0
- Add
middle_nametosenderandreceiver, anddate_of_birthtosenderin transfer onTransaction - Add
rspec-retrygem to Gemfile - Update
prygem to 0.14.0 - Filter
Braintree::CreditCardVerification.searchto only return credit card verifications
- Bug fix for Nokogiri XML parsing
- Switch from libxml-ruby to Nokogiri to allow use with JRuby.
- Add
payment_account_referencetoTransaction::ApplePayDetails,Transaction::GooglePayDetails,Transaction::CreditCardDetails, andCreditCardVerification - Add
processing_merchant_category_codeinTransaction - Add missing
transfervalidation error codes inTransaction - Replace libxml-ruby with nokogiri to address JRuby incompatability
- Add Bank Account Instant Verification Gateway with JWT creation support
- Add ACH mandate support to transactions with
ach_mandate_textandach_mandate_accepted_atfields inus_bank_account - Add
InstantVerificationAccountValidationmethod toUsBankAccountVerification::VerificationMethod - Add
ach_reject_reasontoTransaction - Add
senderandreceivertotransferinTransaction - Add
is_device_tokentoApplePayCardandApplePayDetails
- Add
upcoming_retry_datetoTransaction - Add
remaining_file_evidence_storageto Dispute - Add
transfer_typeto Transaction - Add
transaction_retriedwebhook - Add
ach_reject_reasontoTransaction - Add
senderandreceivertotransferinTransaction
- Add Session Id to Customer Recommendations Payload
- Add
account_information_inquirytoCreditCardVerification#createPaymentMethod#createandPaymentMethod#updateCreditCard#createandCreditCard#update
- Enhancements to PayPal customer recommendations
- Create a session and get recommendations in one call
- Hash customer email and phone number
- Add
business,consumer,corporate, andpurchasefrom the bin data to credit card responses
- Remove marketplace features
- Add support for capturing payment facilitator and sub-merchant details with transactions
- Add
prepaid_reloadablefrom the bin data to credit card responses - Add support for
PayPalPaymentResourcerequests
- Add support for creating and updating PayPal customer session
- Add support for getting PayPal customer recommendations
- Add recipient/contact info:
recipient_emailandrecipient_phonetoTransaction
- Add
fail_on_duplicate_payment_method_for_customeroption toClientTokenPaymentMethodCreditCard
- Add
blik_aliasesto LocalPaymentCompleted webhook - Deprecate
samsung_pay_card - Updated expiring pinned vendor SSL certificates
- Add
payer_name,bicandiban_last_charsto LocalPaymentCompleted webhook - Add
edit_paypal_vault_idto PayPalAccount - Removes redundant integration test for provision_raw_apple_pay
- Add
ani_first_name_response_codeandani_last_name_response_codeto CreditCardVerification - Add
shipping_tax_amountto Tranaction
- Add
foreign_retailerto Transaction - Add
international_phonetoAddressandCustomer - Add
funding_source_descriptionto PayPalAccount - Add missing
GooglePayCarderror code - Add
REFUND_FAILEDto Webhook Notification - Add
final_captureto Transaction_submit_for_partial_settlement_signature - Deprecate
paypal_tracking_idin favor ofpaypal_tracker_idinpackage_details.rb
- Deprecate
creditmethod incredit_cardandcredit_card_gateway - Deprecate
salemethod incredit_cardandcredit_card_gateway - Add
domainsparameter support toClientToken::generate
- Add
UnderReviewstatus toDispute - Add
DisputeUnderReviewwebhook toWebhookNotification - Cleanup useless assignments in XML::Parser, Util, HTTP, Disbursement, and Configuration classes
- Fix issue where advanced searches using
betweenwere not correctly evaluating values larger than the minimum
- Add
process_debit_as_credittocredit_cardfield inoptionsfield during Transaction create - Add
package_trackingmethod totransaction_gatewayto make request to add tracking information to transactions - Add
packagesto Transaction object - Add
image_url,upc_code, andupc_typetoLineItemsintransaction_gateway
- Add
PickupInStoretoShippingMethodenum - Add
external_vaultandrisk_datatoCreditCardVerificationcreate request
- Add
meta_checkout_cardandmeta_checkout_tokenpayment methods - Add
meta_checkout_card_detailsandmeta_checkout_token_detailsto Transaction - Add
industry_datatoTransaction.submit_for_settlementoptions - Add
dateOfBirthandcountryCodeparameters toTransaction.sale.industry.data - Add
billing_addressandshipping_addresstoVenmoProfileData - Add
additional_processor_responsetoUsBankAccountVerification - Add
verification_add_onstoPaymentMethodcreate options forACH NetworkCheck - Add
MaestrotoDebitNetworkenum
- Add
retry_ids,retried_transaction_id, anddebit_networktoTransaction - Add
evidence_submittableto Dispute - Add
implicitly_vaulted_payment_method_tokenandimplicitly_vaulted_payment_method_global_idtoLocalPaymentDetails - Add
merchant_token_identifierandsource_card_last4to ApplePayCard and ApplePayDetails response objects - Add
debit_networktoTransactionSearch - Add
DebitNetworkenum toCreditCard - Add
SubscriptionBillingSkippedwebhook notification support - Deprecate
three_d_secure_tokenin favor ofthree_d_secure_authentication_id - Deprecate
venmo_sdk_session,venmo_sdk_payment_method_code, andvenmo_sdk?
- Add
payment_receiptobject toTransaction - Add
global_idstring toUsBankAccountDetails
- Add
retry_idsarray toTransaction - Add
retried_transaction_idstring toTransaction - Add
merchant_token_identifierandsource_card_last4to ApplePayCard and ApplePayDetails response objects - Add
processing_overridestoTransaction.saleoptions - Add
arrival_dateandticket_issuer_addresstoindustryobject inTransactionand addindustrytoTransaction.submit_for_settlement
- Add
merchant_advice_codeandmerchant_advice_code_textto Transaction object
- Add
intended_transaction_sourcetoCreditCardVerificationGateway - Add
payment_method_noncetoCreditCardVerificationGateway - Add
three_d_secure_authentication_idtoCreditCardVerificationGateway - Add
three_d_secure_pass_thrutoCreditCardVerificationGateway - Add
network_tokenization_attributesparameter toTransaction.sale - Add
network_token_detailsto Transaction.sale response - Add
is_network_tokenizedtoCreditCardDetails - Add subscriptions to
SepaDirectDebitAccount
- Add
billing_addressattribute reader toApplePayCard - Add
pre_dispute_programtoDisputeandDisputeSearch - Add
AutoAcceptedstatus toDispute - Add
DisputeAutoAcceptedwebhook toWebhookNotification - Add
ExcessiveRetrytoGatewayRejectionReason - Add
SEPADirectDebitAccountpayment method - Add
sepa_direct_debit_return_codetoTransaction - Add
sepa_direct_debit_account_detailstoTransaction - Add
sepa_direct_debit_account_nonce_detailstoPaymentMethodNonceDetails - Add
SEPA_DIRECT_DEBIT_ACCOUNTtoPaymentInstrumentType - Add
sepa_debit_paypal_v2_order_idtoTransactionSearch - Add
sepa_direct_debit_accountstoCustomer - Add SEPA Direct Debit specific error codes
- Add
cardholder_nameattribute reader toApplePayCard(Thanks @AxelTheGerman) - Deprecate
chargeback_protection_leveland addprotection_leveltoDisputeandDisputeSearch
- Add
ach_return_responsestoTransactionfor search results that search for transaction that have ach return response related data. - Add
ach_return_responses_created_atrange field to toTransactionSearch - Add
reason_codeto TransactionSearch to search for reason codes on transaction that have ach return responses associated with them. - Add 'ExchangeRateQuoteAPI'
- Add LiabilityShift class and
liability_shiftfield to RiskData - Replace generic errors with api_error_response
- Add
AchReturnCodeto transaction object - Add
retriedboolean toTransaction
- Add
PaymentMethodCustomerDataUpdatedwebhook notification support
- Add plan create/update/find API endpoint
- Add support for
TransactionReviewwebhook notification
- Sanitize encrypted_card_data logs
- Add
LocalPaymentExpiredandLocalPaymentFundedwebhook notification support
- Add a log message to the
ArgumentErroratTransactionGateway.find - Add
exchange_rate_quote_idtoTransaction.create - Add error code
ExchangeRateQuoteIdTooLongtoTransaction - Add the following fields to
ApplePayCardandGooglePayCard:commercialdebitdurbin_regulatedhealthcarepayrollprepaidproduct_idcountry_of_issuanceissuing_bank
- Add the following fields to
PayPalDetails:tax_idtax_id_type
- Add
default?toPaymentMethodNonce(thanks @klouvas) - Add error code
TaxAmountIsRequiredForAibSwedishfor attributetax_amountintransactionkey for AIB:Domestic Transactions in Sweden
- Add
payment_reader_card_detailsparameter toTransaction.sale - Add webhook sample for
GrantedPaymentMethodRevoked - Add
skip_advanced_fraud_checkingto:Customer#createandCustomer#updatePaymentMethod#createandPaymentMethod#updateCreditCard#createandCreditCard#update
- Include
rexmlin Gemspec (fixes #214) - Fix incorrect error code constants (fixes #213)
PaymentMethodNonceConsumedis now93107CannotForwardPaymentMethodTypeis now93106
- Breaking Changes
- Update gemspec to require ruby >= 2.6.0
- Remove
ExternalVault::CardTypeIsInvaliderror code - Remove
RiskData::CustomerBrowserIsTooLongerror code - Remove
paypal_vault_without_upgradeparameter fromPaymentMethod#create - Add
PaymentMethodNonceDetailsandPaymentMethodNonceDetailsPayerInfoPaymentMethodNonce#detailsis now an instance ofPaymentMethodNonceDetailsrather than a hashPaymentMethodNonceDetails#payer_infois now an instance ofPaymentMethodNonceDetailsPayerInforather than a hash
- Add
phone_numbertoAddress - Add
paypal_messagestoDispute - Add
tax_identifiersparameter toCustomer.createandCustomer.update - Add
chargeback_protection_levelinto dispute search - Make libxml-ruby an optional dependency instead of required (addresses JRuby incompatibility issues raised in #203 and #205)
- Add
local_payment_reversedwebhook notification - Add
Transaction.adjust_authorizationmethod to support for multiple authorizations for a single transaction - Add
merchant_account_idparameter toTransaction#refund - Add
store_idandstore_idsparameters toTransaction#search - Add support for
ActiveSupport::TimeWithZonewhen generating XML (thanks @Tonkpils!)
- Add
decision_reasonsandtransaction_risk_scorefields toRiskData - Add
acs_transaction_id,pares_status,three_d_secure_transaction_id,lookup, andauthenticationtoThreeDSecureInfo
- Add SCA exemption to Transaction sale
- Add Installment support to Transaction sale
- Add
installment_counttoTransaction - Add new
InstallmentandInstallment::Adjustmentclasses toTransaction
- Add
- Add
verification_currency_iso_codeparameter toCustomer.create,PaymentMethod.create,CreditCard.create,Customer.update,PaymentMethod.update, andCreditCard.update - Add
currency_iso_codeparameter toTransaction.sale - Add validation errors
CreditCard::CurrencyCodeNotSupportedByMerchantAccountTransaction::CurrencyCodeNotSupportedByMerchantAccount
- Allows
ResourceCollection#firstto receive one argument and return that argument number of items(Thanks @regismesquita)
- Add
acquirer_reference_numbertoTransaction - Add
billing_agreement_idtoPayPalDetails - Update
BinDataclass to correctly execute theinspectmethod.(Thanks @kinduff)
- Add
CreditCardVerification::GatewayRejectionReason - Memory improvements related to XML parsing (addresses #159)
- Breaking changes:
- Remove support for Transparent Redirect, Coinbase, iDEAL, Amex Express Checkout and Masterpass
- Rename
DownForMaintenanceErrortoServiceUnavailableError - Update
Transaction.searchto raise anUnexpectedErrorif the search yields unexpected results - Add
GatewayTimeoutErrorandRequestTimeoutError - Remove
ForgedQueryStringerror - Remove error codes:
- EuropeBankAccount.IBANIsRequired
- EuropeBankAccount.BICIsRequired
- EuropeBankAccount.AccountHolderNameIsRequired
- SEPAMandate.AccountHolderNameIsRequired
- SEPAMandate.BICIsRequired
- SEPAMandate.IBANIsRequired
- SEPAMandate.TypeIsRequired
- SEPAMandate.IBANInvalidCharacter
- SEPAMandate.BICInvalidCharacter
- SEPAMandate.BICLengthIsInvalid
- SEPAMandate.BICUnsupportedCountry
- SEPAMandate.IBANUnsupportedCountry
- SEPAMandate.IBANInvalidFormat
- SEPAMandate.LocaleIsUnsupported
- SEPAMandate.BillingAddressIsInvalid
- SEPAMandate.TypeIsInvalid
- Transaction.AmountDoesNotMatchIdealPaymentAmount
- Transaction.IdealPaymentNotComplete
- Transaction.IdealPaymentsCannotBeVaulted
- Transaction.MerchantAccountDoesNotMatchIdealPaymentMerchantAccount
- Transaction.OrderIdDoesNotMatchIdealPaymentOrderId
- Transaction.OrderIdIsRequiredWithIdealPayment
- TransactionLineItem.DiscountAmountMustBeGreaterThanZero
- TransactionLineItem.UnitTaxAmountMustBeGreaterThanZero
- Remove deprecated methods:
- Address#delete
- Address#update and Address#update!
- CreditCard.grant
- CreditCard#credit and CreditCard#credit!
- CreditCard#delete
- CreditCard#sale and CreditCard#sale!
- CreditCard#update and CreditCard#update!
- CreditCardGateway#grant
- Customer#default_credit_card
- Customer#sale and Customer#sale!
- Customer#update and Customer#update!
- Dispute#forwarded_comments
- Subscription#next_bill_amount
- Transaction#refund
- Transaction#refund_id
- Transaction#submit_for_settlement and Transaction#submit_for_settlement!
- Transaction#void and Transaction#void!
- Remove unused WebhookNotification::Kind::GrantedPaymentInstrumentUpdate
- Rename all Android Pay classes and methods to Google Pay
- Rename Dispute::HistoryEvent to Dispute::StatusHistory
- Update the following methods to return
Dates instead ofStrings(fixes #161):- DisbursementDetails#disbursement_date
- StatusHistory#disbursement_date
- StatusHistory#effective_date
- Subscription#billing_period_end_date
- Subscription#billing_period_start_date
- Subscription#first_billing_date
- Subscription#next_billing_date
- Subscription#paid_through_date
- SubscriptionDetails#billing_period_end_date
- SubscriptionDetails#billing_period_start_date
- Bump API version to support declined refund objects
- Remove deprecated parameters:
device_session_idfrom CreditCard#create, Transaction#sale, PaymentMethod#create, and Customer#createfraud_merchant_idfrom CreditCard#create, Transaction#sale, PaymentMethod#create, and Customer#createrecurringfrom Transaction#sale
- Update builder dependency to >= 3.2.4
- Update libxml-ruby dependency to >= 3.2.0
- Update gemspec to require ruby >= 2.5.0
This version has been yanked from rubygems, do not use.
- Update
LocalPaymentCompletedwebhook to handle no transaction being created for unbranded local payment methods
- Deprecate Masterpass and American Express Checkout payment methods.
- Add
installment_countaccessor todispute.transactionon dispute webhooks - Add
implicitly_vaulted_payment_method_tokenandimplicitly_vaulted_payment_method_global_idtopaypal_details
- Add
RiskThresholdto gateway rejection reasons - Add
network_transaction_idtoCreditCardVerification - Add
product_skutoTransaction - Add
phone_numberandshipping_methodtoAddressDetails - Add
customer_device_id,customer_location_zip, andcustomer_tenuretoRiskData - Add validation errors:
Transaction::ProductSkuIsInvalidTransaction::ShippingMethodIsInvalidTransaction::ShippingPhoneNumberIsInvalidTransaction::BillingPhoneNumberIsInvalidRiskData::CustomerBrowserIsTooLongRiskData::CustomerDeviceIdIsTooLongRiskData::CustomerLocationZipInvalidCharactersRiskData::CustomerLocationZipIsInvalidRiskData::CustomerLocationZipIsTooLongRiskData::CustomerTenureIsTooLong
- Add
processed_with_network_tokentoTransaction - Add
is_network_tokenizedtoCreditCard - Add
created_ataccessor todispute.transactionon dispute webhooks (closes #200)
- Add
threeDSecurePassThruparameters toCustomer.create,PaymentMethod.create,CreditCard.create,Customer.update,PaymentMethod.update, andCreditCard.update - Add
recurring_customer_consentandrecurring_max_amountoptions toauthentication_insightto payment method nonce create - Add ThreeDSecure test payment method nonces
- Add test
AuthenticationIds - Add
DisputeAccepted,DisputeDisputed, andDisputeExpiredwebhook constants - Add
Authentication Insightto payment method nonce create - Add
FileIsEmptyerror toDocumentUpload - Add
retrieval_reference_numbertoTransaction
- Add
RefundAuthHardDeclinedandRefundAuthSoftDeclinedto validation errors - Add
is_network_tokenized?to android_pay_card and android_pay_details - Add handling for
gzipencoding tographql_client - Add Graphql ID to
CreditCardVerification,Customer,Dispute, andTransaction - Add
three_d_secure_authentication_idtoThreeDSecureInfo - Add
three_d_secure_authentication_idsupport to transaction - Add level 2 processing options
purchase_order_number,tax_amount, andtax_exemptto Transaction submit_for_settlement - Add level 3 processing options
shipping_amount,discount_amount,ships_from_postal_code, andline_itemsto Transaction submit_for_settlement
- Add
ProcessorDoesNotSupportMotoForCardTypeto validation errors - Add
bintoapple_pay_detailsandandroid_pay_details
- Add
processor_commentstoDispute - Deprecate
forwarded_commentsonDisputes
- Add
network_response_codeandnetwork_response_textto transactions and verifications - Add
PayPalHereDetails - Add
three_d_secure_infoto credit_card_verification - Add
xid,cavv,eciFlag,dsTransactionId, andthreeDSecureVersiontoThreeDSecureInfo - Add
graphql_clienttoBraintree::Gatewayclass - Add
AmountNotSupportedByProcessorto validation error
- Add
capture_idto local_payment_details - Add
refund_idto local_payment_details - Add
debug_idto local_payment_details - Add
transaction_fee_amountto local_payment_details - Add
transaction_fee_currency_iso_codeto local_payment_details - Add
refund_from_transaction_fee_amountto local_payment_details - Add
refund_from_transaction_fee_currency_iso_codeto local_payment_details - Add
three_d_secure_version,authentication_response,directory_response,cavv_algorithmandds_transaction_idto 3DS pass thru fields - Add verification_account_type support for credit_card create/update and customer create/update
- Add
room_taxfield to transactions - Add
no_showfield to transactions - Add
advanced_depositfield to transactions - Add
fire_safefield to transactions - Add
property_phonefield to transactions - Add
additional_chargesfield to transactions - Add
payer_infoto payment_method_nonce details - Add
PostalCodeIsRequiredForCardBrandAndProcessorto validation errors
- Add
prepaidfield to android_pay_card - Add
healthcarefield to android_pay_card - Add
debitfield to android_pay_card - Add
durbin_regulatedfield to android_pay_card - Add
commercialfield to android_pay_card - Add
payrollfield to android_pay_card - Add
issuing_bankfield to android_pay_card - Add
country_of_issuancefield to android_pay_card - Add
product_idfield to android_pay_card - Add
global_idfield to android_pay_card - Add
prepaidfield to apple_pay_card - Add
healthcarefield to apple_pay_card - Add
debitfield to apple_pay_card - Add
durbin_regulatedfield to apple_pay_card - Add
commercialfield to apple_pay_card - Add
payrollfield to apple_pay_card - Add
issuing_bankfield to apple_pay_card - Add
country_of_issuancefield to apple_pay_card - Add
product_idfield to apple_pay_card - Add
binfield to apple_pay_card - Add
global_idfield to apple_pay_card - Add
refund_from_transaction_fee_amountfield to paypal_details - Add
refund_from_transaction_fee_currency_iso_codefield to paypal_details - Add
revoked_atfield to paypal_account - Add support for
PaymentMethodRevokedByCustomerwebhook - Add
payment_method_noncefield toLocalPaymentCompletedwebhook - Add
transactionfield toLocalPaymentCompletedwebhook - Add
local_payment_detailfield to transactions - Add
TokenIssuancegateway rejection reason enum
- Deprecate
GrantedPaymentInstrumentUpdateand addGrantorUpdatedGrantedPaymentMethodandRecipientUpdatedGrantedPaymentMethod - Add account_type support for transaction sale, verification, and payment_method create/update
- Add
binfield topayment_method_nonce_details - Add Error indicating pdf uploads too long for dispute evidence.
- Add
GrantedPaymentMethodRevokedwebhook response objects - Update BigDecimal#New calls to un-deprecated Kernel#BigDecimal calls
- Thank you @john-denisov and @jfiander!
- Allow PayPal payment ID and payer ID to be passed during transaction create
- Add
travel_flightsupport to industry-specific data - Add
fraud_service_providerfield torisk_data
- Add
processor_response_typetoTransaction,AuthorizationAdjustment, andCreditCardVerification. - Add
authorization_expires_attoTransaction
- Add local payment webhook support
- Add subscription charged unsuccessfully sample webhook to webhook testing gateway
- Fix issue where environment was not automatically converted from a string to a symbol (#148, #164)
- Fix issue where logger could not be set on gateway instance
- Fix dispute results in transactions not showing the correct status sometimes
- Whitelist usage of
external_vaultin transaction create. - Visa transactions will now contain a
network_transaction_idin the response
- Add
processor_response_codeandprocessor_response_textto authorization adjustments subfield in transaction response. - Stop restricting
transaction_sourcevalues for Disputes search, allow searching by OAuth Application client_id - Add support for Samsung Pay
- Warn when instantiating a
Braintree::Gatewaywith mixed environments - Allow payee ID to be passed in options params for transaction create
- Add
merchant_idtoConnectedMerchantStatusTransitionedandConnectedMerchantPayPalStatusChangedAuth webhooks
- Add support for Micro Transfer ACH verifications
- Add
image_urlandtokenattributes toAndroidPayDetailsandApplePayDetails
- Add Dispute error ValidEvidenceRequiredToFinalize
- Remove
sepa_mandate_typeandsepa_mandate_acceptance_locationparams fromClientTokenGateway - Add
payer_idaccessor inPayPalAccount - Add support for VCR compelling evidence dispute representment
- Add support for
oauth_access_revocationonWebhookNotifications - Add support for US Bank Account verifications via
PaymentMethod#create,PaymentMethod#update, andTransaction#create - Add support for US Bank Account verification search
- Add support for
address.create!to gateway instance - Add support for
address.update!to gateway instance - Add support for
credit_card.create!to gateway instance - Add support for
customer.create!to gateway instance - Add support for
customer.update!to gateway instance - Add support for
document_upload.create!to gateway instance - Add support for
merchant_account.create!to gateway instance - Add support for
merchant_account.update!to gateway instance - Add support for
payment_method.create!to gateway instance - Add support for
payment_method.update!to gateway instance - Add support for
payment_method_nonce.create!to gateway instance - Add support for
subscription.cancel!to gateway instance - Add support for
subscription.create!to gateway instance - Add support for
subscription.update!to gateway instance - Add support for
subscription.retry_chargeto gateway instance - Add support for
transaction.cancel_release!to gateway instance - Add support for
transaction.hold_in_escrow!to gateway instance - Add support for
transaction.clone_transaction!to gateway instance - Add support for
transaction.credit!to gateway instance - Add support for
transaction.refund!to gateway instance - Add support for
transaction.release_from_escrow!to gateway instance - Add support for
transaction.sale!to gateway instance - Add support for
transaction.submit_for_settlement!to gateway instance - Add support for
transaction.submit_for_partial_settlement!to gateway instance - Add support for
transaction.void!to gateway instance - Add support for
profile_idin Transaction#create options for VenmoAccounts - Add support for
association_filter_idin Customer#find - Add support for
customer_id,disbursement_dateandhistory_event_effective_datein Dispute#search - Update country names to have parity with documentation
- Add support for
tax_amountfield on transactionline_items - Add support for
source_merchant_idon webhooks - Deprecated
DiscountAmountMustBeGreaterThanZeroerror in favor ofDiscountAmountCannotBeNegative. - Deprecated
UnitTaxAmountMustBeGreaterThanZeroerror in favor ofUnitTaxAmountCannotBeNegative. - Add
find_allstatic method toTransactionLineItemclass
- Add support for tagged evidence in DisputeGateway#add_text_evidence (Beta release)
- Update https certificate bundle
- Add support for line_items
- Update README to use instance methods
- Fix spec to expect PayPal transactions to move to settling rather than settled
- Fix permissions issue where SDK could not be loaded in some environments
- Add
bin_datato Payment Method Nonce - Add support for including level 3 summary fields to transaction create and transaction response
- Add
device_data_capturedfield torisk_data - Add submit_for_settlement to Braintree::Subscription.retry_charge
- Add
options->paypal->descriptionfor creating and updating subscriptions - Add
bintoApplePayCard - Add support for upgrading a PayPal future payment refresh token to a billing agreement
- Fix spec to expect PayPal transaction to settle immediately after successful capture
- Add GrantedPaymentInstrumentUpdate webhook support
- Add
options->paypal->shippingfor creating & updating customers as well as creating payment methods - Add ability to create a transaction from a shared nonce
- Add ruby 2.4 compatibility for the XML Generator (thanks @kinkade!)
- Add README note for supression of logs (thanks @badosu!)
- Allow
VenmoAccountto be returned fromPaymentMethod.find(thanks @NickMele!)
- Support
eci_indicatorfor Transaction#sale with raw Apple Pay parameters
- Add
AuthorizationAdjustmentclass andauthorization_adjustmentsto Transaction - Add document upload support
- Add Braintree::Dispute.find method
- Add Braintree::Dispute.search method
- Add Braintree::Dispute.accept method
- Add Braintree::Dispute.finalize method
- Add Braintree::Dispute.add_file_evidence method
- Add Braintree::Dispute.add_text_evidence method
- Add Braintree::Dispute.remove_evidence method
- Coinbase is no longer a supported payment method.
PaymentMethodNoLongerSupportedwill be returned for Coinbase operations. - Add Braintree::ApplePay for web domain registration
- Add facilitated details to Transaction if present
- Pass configured gateway to Merchant#_new instead of using global gateway (thanks @cwalsh!)
- Add support for additional PayPal options when vaulting a PayPal Order
- Add Visa Checkout support
- Add ConnectedMerchantStatusTransitioned and ConnectedMerchantPayPalStatusChanged Auth webhooks
- Add new properties to
CreditCardVerificationandCustomer
- Bugfix: Add
unique_number_identifierto Transaction::CreditCardDetails - Updates to specs
- Remove
account_descriptionfield from +UsBankAccount+ and +UsBankAccountDetails+
- Allow optional configuration of SSL version
- Add functionality to list all merchant accounts for a merchant with
merchant_account.all
- Bugfix: Update UsBank tests to use legal routing numbers
- Add option +skip_advanced_fraud_check+ for transaction flows
- Add IdealPayment class with +sale+ and +find+ methods
- Add payer_status accessor to paypal_details object
- Bugfix: Allow PaymentMethod.find(token) to return +UsBankAccount+
- Add +default?+ support for +UsBankAccount+
- Add +ach_mandate+ data to +UsBankAccount+ and +UsBankAccountDetails+
- Bugfix: allow Customer#payment_methods to return UsBankAccounts
- Fix compatibility with new gateway endpoint
- Add 'UsBankAccount' payment method
- Add 'created_at' to subscription search
- Expose 'plan_id' in subscription 'status_details'
- Add cannot clone marketplace transaction error
- Add FailOnDuplicatePaymentMethod to Customer update
- Add 'currency_iso_code' to subscription 'status_details'
- Expose credit card 'product_id'
- Add validation error for verifications with submerchants
- Allow authenticated proxies
- Add new constant for Venmo Account payment instrument type
- Add 'default_payment_method' option to Customer
- Add order_id to Refund
- Enabled 3DS pass thru support
- Expose IDs in resource collections
- Add 'success?' method to disbursement
- Add method of revoking OAuth access tokens.
- Fix compatibility in specs with Ruby 1.8.7
- Add transaction +UpdateDetails+
- Support for Too Many Requests response codes
- Add +default?+ method to MerchantAccount
- Allow Coinbase account to be updated
- Add support to pass currencies to merchant create
- Support multiple partial settlements
- Add IsInvalid error code for addresses
- Add support for third party Android Pay integrations
- Add AccountUpdaterDailyReport webhook parsing
- Add Verification#create
- Add options to +submit_for_settlement+ transaction flows
- Upgrade libxml-ruby version to 2.8.0
- Update https certificate bundle
- Add better defaults to client token generation when using an access token by consolidating client token defaults into ClientTokenGateway
- Add PaymentMethod#revoke
- Add VenmoAccount
- Add support for Set Transaction Context supplementary data
- Treat dispute date_opened and date_won attributes as Dates. Note: in versions 2.51.0-2.53.0, the dispute date_opened and date_won attributes were incorrectly parsed as strings. We pulled them off RubyGems to prevent the incorrect code from being downloaded.
- This version of the library was removed from RubyGems. See the note on 2.54.0 for further explanation.
- Adds options to skip avs and cvv checks for a single transaction
- This version of the library was removed from RubyGems. See the note on 2.54.0 for further explanation.
- Add Amex Express Checkout payment method
- Fix bug where Customer#payment_methods didn't include Android Pay cards
- This version of the library was removed from RubyGems. See the note on 2.54.0 for further explanation.
- Fixes bug with signature of partner oauth connect url
- Adds date_won, date_opened and kind to dispute webhook parsing
- Make grant a method on PaymentMethod and not just CreditCard
- Adds support for nonce granting to CreditCards
- Adds FacilitatorDetails for facilitated transactions
- Adds authorized_transaction_id, partial_settlement_transaction_ids and facilitator_details attr_readers to Transaction
- Adds support for Transaction#sale with raw Apple Pay parameters
- Adds Merchant.provision_raw_apple_pay
- Relaxes constraints on TransactionSearch#source
- Adds Check WebhookNotifications
- Adds Transaction.submit_for_partial_settlement
- Remove Amex Pay with Points response from Transaction.sale response
- Add expired? method to Apple Pay card
- Add customer_id property to +AndroidPayCard+, +ApplePayCard+, +CoinbaseAccount+, +EuropeBankAccount+, +PaypalAccount+, and +UnknownPaymentMethod+
- Add new error +ProcessorDoesNotSupportAuths+
- Fix issue in TestTransaction spec
- Fix issue with LibXML causing a segfault when using Ruby version 2.0.0
- Add support for Amex rewards transactions
- Add billing_agreement_id to PayPalAccount
- Fix bug in TestingGateway#check_environment
- Add {ApplePayDetails,ApplePayCard,AndroidPayDetails,AndroidPayCard}#source_description
- Add AndroidPayDetails#source_card_type, #source_card_last_4
- Add PaypalDetails#description, #transaction_fee_amount, #transaction_fee_currency_iso_code
- Add new card-specific Android Pay test nonces
- Add various other test nonces
- Add oauth support
- Add support for Android Pay
- Validate webhook challenge payload
- Changed CreditCardVerification::Status constants
- Add missing criteria to CreditCardVerification search
- Add 3DS info to server side
- Add {ApplePayCard,CoinbaseAccount}#default?
- Add {ApplePayCard,CoinbaseAccount} payment instrument constants
- Add European Bank Account test nonce
- Add support for new SEPA workflow
- Add 3D Secure transaction fields
- Add ability to create nonce from vaulted payment methods
- Surface Apple Pay payment instrument name in responses
- Support Coinbase payment instruments
- Improve support for SEPA payment instruments
- Upgrade RSpec and improve tests
- Update links to documentation
- Use OpenSSL::Digest instead of OpenSSL::Digest::Digest (Thanks, Michael Koziarski (@NZKoz))
- 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
- Update version number
- Allow credit card verification options to be passed outside of the nonce for PaymentMethod.create
- Allow billing_address parameters and billing_address_id to be passed outside of the nonce for PaymentMethod.create
- Add Subscriptions to paypal accounts
- Add PaymentMethod.update
- Add fail_on_duplicate_payment_method option to PaymentMethod.create
- Add Descriptor#url
- Official support for v.zero SDKs.
- Add support for lodging industry data
- Ensure that TR Data is encoded correctly
- 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
- Use OpenSSL::Digest instead of OpenSSL::Digest::Digest (Thanks Scott Rocher, scottrocher@gmail.com)
- Merchant account find API
- Merchant account update API
- Merchant account create API v2
- Official support for Partnerships
- Changed visibility of methods used in multi-tenancy
- Adds hold_in_escrow and hold_in_escrow! methods
- Add error codes for verification not supported error
- Add company_name and tax_id to merchant account create
- Updates webhook notification to provide errors and merchant account at the top level
- Adds cancel_release and cancel_release! methods
- Refactors transaction_gateway
- Adds release_from_escrow!
- 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.
- Adds channel field to transactions.
- Add card type indicators to transactions and verifications
- Add additional card types for card type indicators
- Added ability to allow TR query parameters with no value (thanks @dmathieu!)
- 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: Yes, No, Unknown)
- Adds webhook gateways for parsing, verifying, and testing incoming notifications
- Adds Transaction.refund!(id, amount = nil)
- Adds unique_number_identifier attribute to CreditCard
- Adds search for duplicate credit cards given a payment method token
- Adds flag to fail saving credit card to vault if card is duplicate
- Allows both url encoded and decoded query string and hash
- Exposes plan_id on transactions
- Fixes GitHub issue #19 - Unescapes escaped characters in query string
- Added error code for invalid purchase order number
- Changes transparent redirect query string regexp to allow hash to appear anywhere in params string
- Made the production endpoint configurable
- Added new error code for merchant accounts that do not support refunds
- Added GEMSPEC file
- Added ability to retrieve all Plans, AddOns and Discounts
- Added Transaction cloning
- Added SettlementBatchSummary
- Added support for international Maestro cards with payer authentication
- Support builder >= 2.0
- Changed comments to point to new doc site
- Added subscription_details to Transaction
- Added flag to store in vault only when a transaction is successful
- Added new error code
- 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 advanced vault search for customers and payment methods
- Added dynamic descriptors
- Added level 2 fields to transactions:
- tax_amount
- tax_exempt
- purchase_order_number
- Allow passing of existing shipping_address_id on new transactions
- 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
- Now supports ruby 1.9.1 and 1.9.2
- Added ability to perform multiple partial refunds on Transactions
- Deprecated Transaction refund_id in favor of refund_ids
- Added Braintree::Address::CountryNames, a list of the country names/codes that the gateway accepts (thanks r38y[https://github.com/r38y])
- 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 new fields to Subscription:
- balance
- paid_through_date
- next_billing_period_amount
- Removed ssl expiration check
- Lazy initialize Configuration.logger when directly instantiating configuration
- Lazy initialize Configuration.logger to fix bug with ssl expiration check
- Added AddOns/Discounts
- Enhanced Subscription search
- Enhanced Transaction search
- Made gateway operations threadsafe when using multiple configurations
- Allowed prorate_charges to be specified on Subscription update
- Added AddOn/Discount details to Transactions that were created from a Subscription
- Added Expired and Pending statuses to Subscription
- Added constants for CreditCardVerification statuses
- Renamed GatewayRejectionReason constants to make them more idiomatic
- Removed 13 digit Visa Sandbox Credit Card number and replaced it with a 16 digit Visa
- Added refund class method on Transaction
- Deprecated instance methods on Resource classes in favor of class methods
- Added new fields to Subscription:
- billing_day_of_month
- days_past_due
- first_billing_date
- never_expires
- number_of_billing_cycles
- Added unified message to result objects
- Added ability to specify country using country_name, country_code_alpha2, country_code_alpha3, or country_code_numeric (see ISO_3166-1[https://en.wikipedia.org/wiki/ISO_3166-1])
- Added gateway_rejection_reason to Transaction and Verification
- Added delete as a class method on CreditCard (in addition to the existing instance method)
- Allow searching with Date objects (in addition to DateTime and Time objects)
- When creating a Subscription, return failed transaction on the ErrorResult if the initial transaction is not successful
- Fixed gem packaging
- Removed dependency on libxml -- it will still be used if libxml is explicitly required or it will fall back on rexml
- Added unified TransparentRedirect url and confirm methods and deprecated old methods
- Allow updating the payment_method_token on a subscription
- Added methods to link a Transaction with its refund and vice versa
- Allow card verification against a specified merchant account
- Added ability to update a customer, credit card, and billing address in one request
- 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 payment method
- Allow existing billing address to be updated when updating credit card
- Updated success? on transaction responses to return false on declined transactions
- Search results now include Enumerable and will automatically paginate data
- Added credit_card[cardholder_name] to allowed transaction params and CreditCardDetails (thanks chrismcc[https://github.com/chrismcc])
- Added ValidationErrorCollection#shallow_errors to get all of the ValidationErrors at a given level in the error hierarchy
- Added the ability to make a credit card the default card for a customer
- Added constants for transaction statuses
- Updated Quick Start in README.rdoc to show a workflow with error checking
- Added Subscription search
- Updated production CA SSL certificate authority
- Updated credit cards to include associated subscriptions when finding in vault
- Fixed bug where we used to raise a "forged query string" exception when we were down for maintenance.
- Fixed a bug with empty search results
- Added support for appending to user agent
- Finding a customer using id as an integer will now work (even though customer ids are actually strings)
- Allow passing expiration_month and expiration_year separately
- Updated Customer.find to raise an ArgumentError if given an invalid id
- Added error code for transaction amounts that are too large
- Include Enumerable in Braintree::Errors to iterate over all validation errors
- Added processor_authorization_code attr_reader to Braintree::Transaction
- Added cvv_response_code attr_reader to Braintree::Transaction
- Added deep_errors method to Braintree::ValidationErrorCollection to get errors at every level of nesting
- Added explicit require for date to fix missing initialize (thanks jherdman[https://github.com/jherdman])
- Allow Transaction price and Subscription amount as BigDecimals (as well as Strings)
- Ruby 1.9 bug fixes (thanks Leo Shemesh)
- Recurring billing support
- Custom fields support
- Transaction status history support
- Initial release