- Fixes syntax error in
Version.phpfile
- Add Local Payment Context support with
LocalPaymentGateway->create()andLocalPaymentGateway->find()methods - Add support for MBWAY and CRYPTO payment types
- Add
acquirerReferenceNumberto transaction search object - Remove merchant create functionality
- Remove
accountFundingTransactionfromTransactionrequest - Add
apiRequestKey(idempotency) support forTransaction::sale(),Transaction::credit(),Transaction::submitForSettlement(),Transaction::submitForPartialSettlement(),Transaction::void(), andTransaction::refund() - Add
surchargeAmountto transaction object
- Add JsonSerializable interface to Instance class for proper JSON encoding support
- Fix PHP 8.5 curl_close() deprecation warning by using version-conditional cleanup
- Add
acceptPartialAuthorizationtoTransactionGatewayandpartiallyAuthorizedtoTransaction - Deprecate transactions for
visa_checkout_cardand maintain search functionality - Add
achTypetooptions->usBankAccountinTransaction::sale() - Add
achTypeandrequestedAchTypetoTransaction
- Filter CreditCardVerification::search() to only return credit card verifications
- Add
middleNameto sender and receiver, anddateOfBirthto sender in transfer onTransaction - Remove unused error code
AdjustmentAmountMustBeGreaterThanZero
- Add
processingMerchantCategoryCodetoTransactionGateway - Add missing
transfervalidation error codes inTransaction
- Add Bank Account Instant Verification functionality
- Add
BankAccountInstantVerificationGatewayfor creating JWT tokens - Add
BankAccountInstantVerificationJwtandBankAccountInstantVerificationJwtRequestclasses - Add
bankAccountInstantVerification()method to main Gateway class - Add ACH mandate support for US Bank Account transactions
- Add
achMandateTextandachMandateAcceptedAtfields to Transaction and PaymentMethod create signatures - Add
usBankAccountparameter support for ACH mandate details - Add
INSTANT_VERIFICATION_ACCOUNT_VALIDATIONas a new US Bank Account verification method - Add
senderandreceivertotransferinTransaction - Add
achRejectReasonfield toTransaction - Add
isDeviceTokenandmerchantTokenIdentifiertoApplePayCardandApplePayDetails - Add
paymentAccountReferencetoApplePayCardDetails,GooglePayCardDetails,CreditCardDetailsandCreditCardVerification
- Add
upcomingRetryDateto Transaction - Add
remainingFileEvidenceStoragetoDispute - Add
transaction_retriedwebhook - Add
transfer typeto Transaction
- Add Session Id to Customer Recommendations Payload
- Add
accountInformationInquiryto:CreditCard.createandCreditCard.updatePaymentMethod.createandPaymentMethod.updateCreditCardVerification.create
- 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 support for
PayPalPaymentResourcerequests - Add prepaid_reloadable from bin data in credit card responses
- 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
SamsungPayCard - Updated expiring pinned vendor SSL certificates
- Add
payer_name,bicandiban_last_charsto LocalPaymentCompleted webhook - Fixes "Array to String conversion" error when an international phone number is included in customer details
- Add
editPaypalVaultIdto PayPalAccount - Add
aniFirstNameResponseCodeandaniLastNameResponseCodeto CreditCardVerification - Add
shippingTaxAmountto Transaction - Add
networkTokenizationAttributesparameter toTransaction.sale - Add
CREDIT_CARD_NETWORK_TOKENIZATION_ATTRIBUTE_CRYPTOGRAM_IS_REQUIREDto validation error codes.
- Add
foreignRetailerto Transaction - Add
internationalPhonetoAddressandCustomer - Add
fundingSourceDescriptionto PayPalAccount - Add missing
GooglePayCarderror code - Add
REFUND_FAILEDto WebhookNotification - Add
final_captureto TransactionsubmitForPartialSettlement - Deprecate
paypalTrackingIdin favor ofpaypalTrackerId
- Deprecate
CreditCard::creditin favor ofTransaction::credit - Deprecate
CreditCard::salein favor ofTransaction::sale - Add
domainsparameter support toClientToken::generate - Refactor key validation in
ClientTokenGateway
- Add
UNDER_REVIEWDispute Status - Add
DISPUTE_UNDER_REVIEWWebhookNotification - Add
debitNetworksupportTransactionandTransactionSearch - Add
process_debit_as_credittoTransactionOptionsCreditCardRequest
- Deprecate
threeDSecureTokenin favor ofthreeDSecureAuthenticationId - Deprecate
venmoSdkSession,venmoSdkPaymentMethodCode, andisVenmoSdk() - Add
PICKUP_IN_STOREtoShippingMethodenum - Add to
CreditCardVerificationcreate requestexternalVaultpaymentMethodNonceriskDatathreeDSecureAuthenticationIdthreeDSecurePassThru
- Add
phoneNumbertoAddress,CreditCardGateway,PaymentMethodGatewayandCustomerGateway - Add
packagestoTransaction - Add
packageTrackingmethod toTransactionGatewayto make request to add tracking information to transactions - Add check for empty
liabilityShiftinRiskData - Add
imageUrl,upcCode, andupcTypetolineItemsinTransactionGateway
- Add
billingAddressandshippingAddresstoVenmoProfileDataforPaymentMethodCustomerDataUpdatedwebhook - Add
MetaCheckoutCardandMetaCheckoutTokenpayment methods - Add
MetaCheckoutCardDetailsandMetaCheckoutTokenDetailsto Transaction object - Add
verificationAddOnsandadditionalProcessorResponsetoPaymentMethodCreatefor ACH Network Check - Add
dateOfBirthandcountryCodetoindustry_data
- Add
arrivalDateandticketIssuerAddressto Transaction object - Add
SUBSCRIPTION_BILLING_SKIPPEDWebhookNotification
- Add
retry_idsandretry_transaction_idto Transaction object - Add
processing_overridestoTransaction.saleoptions
- Add subscriptions for SEPA direct debit account
- Add
merchant_advice_codeandmerchant_advice_code_texttoTransaction
TestingGatewaymethods return type isResult\Errorfor validation errors.
- Resolved various dynamic property warnings for PHP 8.2 (thanks to @mvoelker & @markdavidsonEE)
- Add
preDisputeProgramtoDisputeandDisputeSearch - Add
AUTO_ACCEPTEDDispute Status - Add
DISPUTE_AUTO_ACCEPTEDWebhookNotification - Add
EXCESSIVE_RETRYtoGatewayRejectionReason
- Add
SEPADirectDebitAccountpayment method - Add
SEPADirectDebitAccountDetailsto transaction object - Add
SEPA_DIRECT_DEBIT_ACCOUNTto payment instrument type - Add SEPA Direct Debit specific error codes
- Add SEPA Direct Debit array to customer object
- Deprecate
chargebackProtectionLeveland addprotectionLeveltoDisputeandDisputeSearch
- Address PHP 8.2 deprecation warnings due to string interpolation patterns. (thanks @Ayesh)
- Add
TRANSACTION_REASON_CODEto search for transaction that have any ach return response with reason code associated. - Add
reasonCodecriteria toTransactionSearch - Add
achReturnResponsesCreatedAtcriteria toTransactionSearch - Add
LiabilityShiftclass andliabilityShiftto RiskData - Add support for
ExchangeRateQuoteAPI - Fix various PHP 8.1
nullwarnings (thanks @simoheinonen & @robbieaverill)
- Add
retriedtoTransaction
- Fix lint errors on unit test
- Add
PaymentMethodCustomerDataUpdatedwebhook notification support
- Address PHP 8.1 Deprecation warnings
- Add plan create/update/find API endpoint
- Add
TransactionReviewwebhook notification
- Add
exchangeRateQuoteIdtoTransaction.sale - Add error code
EXCHANGE_RATE_QUOTE_ID_IS_TOO_LONG - Added the following fields to GooglePayCard and ApplePayCard:
commercialdebitdurbinRegulatedhealthcarepayrollprepaidproductIdcountryOfIssuanceissuingBank
- Add
LocalPaymentExpiredandLocalPaymentFundedwebhook notification support
- Add
paymentReaderCardDetailsparameter toTransaction.sale - Add error code
TRANSACTION_TAX_AMOUNT_IS_REQUIRED_FOR_AIB_SWEDISHfor attributetaxAmountintransactionkey for AIB:Domestic transactions in Sweden.
- Add
chargebackProtectionLeveltoDisputeandDisputeSearch - Add
skipAdvancedFraudCheckingto:CreditCard.createandCreditCard.updatePaymentMethod.createandPaymentMethod.update
- Add
paypalMessagestoDispute - Fix bug where
__issetmethods inInstanceandBaseclasses treatednullvalue as set (Thanks @sklodzio) - Add
tax_identifiersparameter toCustomer.createandCustomer.update - Add webhook sample for
GrantedPaymentMethodRevoked - Add sample webhook notifications for
SUBSCRIPTION_EXPIRED,SUBSCRIPTION_CANCELEDandSUBSCRIPTION_WENT_PAST_DUE(thanks @antonvolokha)
- Add
LocalPaymentReversedwebhook - Add
adjustAuthorizationmethod to Transaction, for supporting multiple authorizations on a single transaction - Add
storeIdandstoreIdsto Transaction search - Add
merchantAccountIdparameter to Transaction refund - Parameters that supported DateTime objects can also support DateTimeImmutable objects (closes #278)
- Add
toArrayfunction to Base and Instance classes (resolves #289) - Add
jsonSerializeto Instance class - Breaking Changes:
- Require PHP 7.3 or higher
- Rename
AndroidPayCardtoGooglePayCard - Rename
AndroidPayCardDetailstoGooglePayCardDetails - Remove Configuration#isAuthenticatedInstanceProxy method in favor of Configuration#isAuthenticatedProxy
- Remove Configuration#isUsingInstanceProxy method in favor of Configuration#isUsingProxy
- Remove
TRANSACTION_EXTERNAL_VAULT_CARD_TYPE_IS_INVALIDandRISK_DATA_CUSTOMER_BROWSER_IS_TOO_LONGerror codes - Remove
customer_ipandcustomer_browsersnake case parameters in favor of camel casecustomerIpandcustomerBrowseraccepted inCustomer#createandTransaction#sale - Remove
AmexExpressCheckoutCardandAmexExpressCheckoutCardDetails - Remove
MasterpassCardandMasterpassCardDetails - Remove deprecated parameters:
deviceSessionIdfrom CreditCardGateway#update, CreditCardGateway#create, CustomerGateway#create, CustomerGateway#update, PaymentMethodGateay#update, and TransactionGateway#createfraudMerchantIdfrom CreditCardGateway#update, CreditCardGateway#create, CustomerGateway#create, CustomerGateway#update, PaymentMethodGateay#update, and TransactionGateway#create
- Add
scaExemptionto Transaction sale - Deprecate
deviceSessionIdandfraudMerchantIdinCreditCardGateway,CustomerGateway,PaymentMethodGateway, andTransactionGatewayclasses - Add
installmentsto Transaction sale - Add
counttoinstallments
- Add
AcquirerReferenceNumbertoTransaction - Add
billingAgreementIdtoPayPalDetails - Deprecate
recurringin Transaction sale - Deprecate
tagin Dispute add text evidence
- Deprecate
masterpassCardandamexExpressCheckoutCardpayment methods - Deprecate
amexExpressCheckoutCardDetails
- Add
RISK_THRESHOLDtoGatewayRejectionReasonconstants - Add
networkTransactionIdtoCreditCardVerification - Add
processedWithNetworkTokentoTransaction - Add
isNetworkTokenizedtoCreditCard - Add
productSkutoTransaction - Add
phoneNumberandshippingMethodtoAddress - Add
customerDeviceId,customerLocationZip, andcustomerTenuretoRiskData - Add error codes
TRANSACTION_PRODUCT_SKU_IS_INVALIDTRANSACTION_SHIPPING_METHOD_IS_INVALIDTRANSACTION_SHIPPING_PHONE_NUMBER_IS_INVALIDTRANSACTION_BILLING_PHONE_NUMBER_IS_INVALIDRISK_DATA_CUSTOMER_BROWSER_IS_TOO_LONGRISK_DATA_CUSTOMER_DEVICE_ID_IS_TOO_LONGRISK_DATA_CUSTOMER_LOCATION_ZIP_INVALID_CHARACTERSRISK_DATA_CUSTOMER_LOCATION_ZIP_IS_INVALIDRISK_DATA_CUSTOMER_LOCATION_ZIP_IS_TOO_LONGRISK_DATA_CUSTOMER_TENURE_IS_TOO_LONGRISK_DATA_CUSTOMER_TENURE_IS_INVALID
- Add
retrieval_reference_numbertoTransaction - Fix class alias issue where Exceptions could not be thrown for missing libraries or older PHP versions.
- Fix issue where
proxyHost,proxyPort,proxyType,proxyUser,proxyPassword, andsslVersionwere not being set on Gateway or Configuration objects.
- Add
threeDSecurePassThruparameters toCustomer.create,PaymentMethod.create,CreditCard.create,Customer.update,PaymentMethod.updateandCreditCard.update - Add
recurringCustomerConsentandrecurringMaxAmounttoauthenticationInsightOptionsforPaymentMethodNonce.create - Add
DOCUMENT_UPLOAD_FILE_IS_EMPTYerror code - phpDocs fixes (thanks @pupitooo)
- Add
DISPUTE_ACCEPTED,DISPUTE_DISPUTED, andDISPUTE_EXPIREDwebhook constants - Breaking Changes:
- Upgrade API version to retrieve declined refund transactions
- Throw
RequestTimeoutinstead ofTimeoutfor transaction search - Drop PSR-0 Support and remove class aliases
- Remove EuropeBankAccount and IbanBankAccount modules
- Remove deprecated SEPA error codes
- Remove
paypalVaultWithoutUpgrade - Invalid transaction IDs are validated by the gateway and not the SDK
- Add
Authentication Insightto payment method nonce create - Add
threeDSecureAuthenticationIdsupport to transaction sale - Add ThreeDSecure test payment method nonces
- Add test
AuthenticationIds
- Add
RefundAuthHardDeclinedandRefundAuthSoftDeclinedto validation errors - Add level 2 processing options
purchaseOrderNumber,taxAmount, andtaxExemptto Transaction submit for settlement - Add level 3 processing options
discountAmount,shippingAmount,shipsFromPostalCode, andlineItemsto Transaction submit for settlement
- Add
isNetworkTokenizedtoAndroidPayCardandAndroidPayCardDetails - Add GraphQL ID to
CreditCardVerification,Customer,Dispute, andTransaction - Add support for PHP 7.4 (#262 thanks @slt)
- Add
threeDSecurePassThruparams to PaymentMethod update
- Add
PROCESSOR_DOES_NOT_SUPPORT_MOTO_FOR_CARD_TYPEto validation errors - Make errors JSON serializable (#256 thanks @sebdesign)
- Add
AMOUNT_NOT_SUPPORTED_BY_PROCESSORto validation errors - Forward
forwardedCommentstoprocessorComments
- Add
PayPalHereDetailsto transactions - Add
network_response_codeandnetwork_response_texttoTransactionandCreditCardVerification - Add
xid,cavv,eciFlag,dsTransactionId, andthreeDSecureVersiontoThreeDSecureInfo - Add
threeDSecureInfotoCreditCardVerification - Add
GraphQLClienttoBraintreeGatewayclass
- Add
captureIdtoLocalPaymentDetails - Add
debugIdtoLocalPaymentDetails - Add
refundIdtoLocalPaymentDetails - Add
transactionFeeAmounttoLocalPaymentDetails - Add
transactionFeeCurrencyIsoCodetoLocalPaymentDetails - Add
refundFromTransactionFeeAmounttoLocalPaymentDetails - Add
refundFromTransactionFeeCurrencyIsoCodetoLocalPaymentDetails - Add
threeDSecureVersion,authenticationResponse,directoryResponse,cavvAlgorithmanddsTransactionIdto 3DS pass thru fields - Add
payerInfotoPaymentMethodNoncedetails - Add
roomTaxfield to Transaction sale - Add
noShowfield to Transaction sale - Add
advancedDepositfield to Transaction sale - Add
fireSafefield to Transaction sale - Add
propertyPhonefield to Transaction sale - Add
additionalChargesfield to Transaction sale - Add
PostalCodeIsRequiredForCardBrandAndProcessorto validation errors
- Add
revokedAtfield toPayPalAccount - Add support for
PAYMENT_METHOD_REVOKED_BY_CUSTOMERwebhook - Add
payment_method_noncefield toLocalPaymentCompletedwebhook - Add
transactionfield toLocalPaymentCompletedwebhook - Add
localPaymentDetailto transactions - Add
TOKEN_ISSUANCEgatewayRejectionReason enum toTransaction
- Add support for PHP 7 (Thanks to @briandotdev)
- Require PHP 7.2 or higher
- Remove support for HHVM and PHP 5
- Update to PHPUnit 7
- Remove deprecated
GRANTED_PAYMENT_INSTRUMENT_UPDATE - Remove deprecated Coinbase payment method
- Remove deprecated iDEAL payment method
- Remove deprecated
MerchantAccountGatewaycreation withapplicantDetails. Please useindividual,business, andfunding. - When a
Customeris created, thecustomFieldsproperty is always an array rather than potentiallynull. - Remove Transparent Redirect
- Remove
riskData,applePay,applePayCard,threeDSecure, andvenmo.profileIdsnakecase attributes - HTTPS requests throw an
SSLCertificateexception when related to SSL, otherwise aConnectionexception is thrown. - Rename
DownForMaintenceException toServiceUnavailable. ThrowTimeoutexception for transaction search errors instead ofDownForMaintenance. - Add
RequestTimeoutandGatewayTimeoutexceptions. - Add
revokedAtfield toPayPalAccount - Add support for
PAYMENT_METHOD_REVOKED_BY_CUSTOMERwebhook
- Deprecate
GRANTED_PAYMENT_INSTRUMENT_UPDATEand addGRANTOR_UPDATED_GRANTED_PAYMENT_METHODandRECIPIENT_UPDATED_GRANTED_PAYMENT_METHOD - Add
accountTypefield toTransactionGateway,CreditCardGateway,PaymentMethodGateway, andCreditCardVerification. - Add Hiper and Hipercard test numbers.
- Add
refundFromTransactionFeeAmountfield toPayPalDetails - Add
refundFromTransactionFeeCurrencyIsoCodefield toPayPalDetails
- Add
binfield topaymentMethodNonceDetails - Add Error indicating pdf uploads too long for dispute evidence.
- Add
GrantedPaymentMethodRevokedwebhook response objects
- Add
fraudServiceProviderfield inriskData - Fix issue where merchant reporting calls would throw an exception in PHP 7 (#236)
- Add
processorResponseTypetoTransaction,AuthorizationAdjustment, andCreditCardVerification. - Add
authorizationExpiresAttoTransaction - Add support for additional PayPal options when vaulting a PayPal Order during customer update
- Allow PayPal payment ID and payer ID to be passed during transaction create
- Add
travel_flightsupport to industry-specific data
- Fix dispute results in transactions not showing the correct status sometimes
- Add
externalVaultoption to transaction sale - Add
LocalPaymentCompletedwebhook
- Add subscription charged unsuccessfully sample webhook to webhook testing gateway
- Add
processor_response_codeandprocessor_response_textto authorization adjustments subfield in transaction response. - Fix issue where result objects could not be printed with
echo(thanks @cmeon) - Add Samsung Pay support
- Allow payee ID to be passed in options params for transaction create
- Add
merchant_idtoConnectedMerchantStatusTransitionedandConnectedMerchantPayPalStatusChangedAuth webhooks - Fix webhook testing sample xml for dispute webhooks to include
amount-wonandamount-disputed(closes #225)
- Fix WebhookTestingGateway to use local configuration
- Add Disbursement type field and methods
- Add support for US Bank Account verifications API
- Fix issue where webhook verification would fail due to missing global public key configuration value
- Fix issue where webhook testing did not work on instantiated gateway
- Add support for VCR compelling evidence dispute representment
- Add
oauthAccessRevocationtoWebhookNotifications - Add support for
profileIdin Transaction#create options for VenmoAccounts - Add support for dispute search by
customerId,disbursementDate, andeffectiveDate - Make
CustomerGateway::findbackward compatible - Remove
sepaMandateTypeandsepaMandateAcceptanceLocationparams fromClientTokenGateway
- Add support for
association_filter_idinCustomer#find - Add support for setting
timeoutandacceptGzipEncodingvalues on construction ofConfigurationinstances
- Add support for Level 3 summary parameters:
shippingAmount,discountAmount, andshipsFromPostalCode - Add support for
tax_amountfield on transactionline_items - Add
sourceMerchantIdproperty toWebhookNotifications if present - Deprecate
TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_MUST_BE_GREATER_THAN_ZEROerror in favor ofTRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_CANNOT_BE_NEGATIVE. - Deprecate
TRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZEROerror in favor ofTRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_CANNOT_BE_NEGATIVE. - Deprecate
Braintree\Transaction\LineItemin favor ofBraintree\TransactionLineItem. - Add
findAllstatic method toTransactionLineItemclass - Add support for
profile_idin Transaction#create options for VenmoAccounts
- Add support for Level 3 summary parameters:
shippingAmount,discountAmount, andshipsFromPostalCode - Add support for transaction line items
- Add support for tagged evidence in
DisputeGateway::addTextEvidence(Beta release) - Update https certificate bundle
- Deprecate
OAuthGateway::computeSignature - Fix spec to expect PayPal transactions to move to settling rather than settled
- Fix AchMandate acceptedAt attribute parsing
- Add support for upgrading a PayPal future payment refresh token to a billing agreement
- Address deprecation warnings for create_function with PHP 7 (#193, thanks @chrisdeeming)
- Add
cardHolderNametoCreditCardDetails(#201, thanks @Samistine) - Add GrantedPaymentInstrumentUpdate webhook support
- Allow paypal => options params to be passed in camel case
- Add ability to create a transaction from a shared nonce
- Implement JsonSerializable on Braintree Objects for easier logging (#200, thanks @hfmikep)
- Fix spec to expect PayPal transaction to settle immediately after successful capture
- Add
options->paypal->shippingfor creating & updating customers as well as creating payment methods - Add
options->paypal->descriptionfor creating and updating subscriptions - Add
binDatatoPaymentMethodNonce - Add
bintoApplePayCard - Add
deviceDataCapturedfield inriskData
- Add
submitForSettlementoption toSubscription::retryCharge - Support
eci_indicatorfor Transaction sale with raw Apple Pay parameters - Add
acceptmethod for the Dispute API - Add
addTextEvidencemethod for the Dispute API - Add
addFileEvidencemethod for the Dispute API - Add
finalizemethod for the Dispute API - Add
findmethod for the Dispute API - Add
removeEvidencemethod for the Dispute API - Add
searchmethod for the Dispute API - Add DocumentUpload
- Add AuthorizationAdjustment class and
authorizationAdjustmentsto Transaction - Add iDEAL webhook support
- Add
IDEAL_PAYMENTtoPaymentInstrumentType - Create Braintree class to be PSR compliant
- Coinbase is no longer a supported payment method.
PAYMENT_METHOD_NO_LONGER_SUPPORTEDwill be returned for Coinbase operations. - Add
ApplePayfor web domain registration. - Add facilitated details to Transaction if present
- Update link to transaction api documentation (thanks @qoheleth-tech!).
- Fix TransactionGateway return types (thanks @jjok!).
- Update return type for client token (thanks @jlaswell!).
- Fix token generator return type - thanks @jjok!
- Improve error reporting for connection issues - thanks @montymxb!
- 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 - Add SDK support for skip AVS and skip CVV
- Add option to disable Accept-Encoding: gzip header for Google App Engine
- Fix a bug where
merchantAccount->allwould attempt to fetch too many pages of merchant accounts
- Add back in
options->three_d_secureto transaction params that was accidentally removed in v3.14.0
- Allow optional configuration of SSL version
- Replace
var_dumpwithprint_r. Thanks, @mnlg - Add functionality to list all merchant accounts for a merchant with
merchantAccount->all - Stop sending account_description field from us bank accounts
- Add option
skip_advanced_fraud_checkfor transaction flows
- Add multi-currency updates to merchants onboarded through Braintree Auth
- Raise an exception if fetching pages of results times out during a transaction search
- Fix
UsBankAccountsupport forCustomers - Update
Grantapi to support options hash
- Add 'UsBankAccount' payment method
- Add authenticated proxy functionality
- Add constant for Venmo Account payment instrument type
- Add validation error for verifications with submerchants
- Add 'default_payment_method' option for Customer
Note: This version introduced an unintentional breaking change where the options->three_d_secure transaction parameter was changed to options->threeDSecure. Starting in v3.21.1, both case conventions are supported for backwards compatibility.
- Add OrderId to refund
- Add 3DS Pass thru support
- Expose IDs in resource collections
- Add leading slash to the namespace. Thanks, @bocharsky-bw
- Stop modifying DateTime parameters during XML generation. Thanks, @jodarove
- Add method of revoking OAuth access tokens.
- Add Transaction
update_details - Support for Too Many Requests response codes
- Add ability to count errors in ErrorCollection object. Thanks, @bocharsky-bw
- Improve Type Hinting
- Remove final from classes. Thanks, @ibrahimlawal!
- Add currency to Transaction search
- Add timeout attribute
- Add start-date and end-date to SUBSCRIPTION_CHARGED_SUCCESSFULLY test webhook response
- Add AccountUpdaterDailyReport webhook parsing
- Add payment method revoke
- Add support for options in
submit_for_settlementtransaction flows - Add verification create API
- Update https certificate bundle
- Add VenmoAccount
- Allow order_id and descriptor to be passed in for Transaction submit_for_settlement
- Add facilitator details onto transactions
- Add check webhook constant
- Fix PSR-0 style namespacing when using Symfony
- Add support for proxy servers
- Add PSR-4 namespacing support
- Add support for AMEX Express Checkout
- Add support for new fields in dispute webhooks (
dateWon,dateOpened,kind) - Add transaction data to sucessful subscription webhook
- Add support for raw ApplePay params on Transaction create
- Add sourceDescription method to Android Pay and Apple Pay payment methods
- Add new Android Pay test nonces
- Add billing agreement ID to PayPal Account
- Support amex rewards transactions
- Add new test payment method nonces
- Allow passing description on PayPal transactions
- Add methods to change transaction settlement status in sandbox
- Fix issue where customer with an id of 0 could not be found
- Add Europe Bank Account functionality
- Add additional search criteria
- Add support for HHVM
- Validate that configuration is valid before verifying webhooks
- Make OAuth methods conform more to existing API
- Expose customer paymentMethods as an attribute
- Add support for Android Pay
- Deprecate PHP 5.2 and 5.3
- Validate webhook challenge payload
- Bugfix for calling
__toString()on objects that contain a\DateTime
- Add missing criteria to credit card verification search
- Bugfix for autoloading files with Composer
- Add oauth functionality
- Add 3DS info to the server side
- Update payment instrument types and test nonces
- Add missing valid params to PaymentMethodGateway
- 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
- Fix E_STRICT errors
- Expose subscription status details
- Bugfix for auto loading files
- Allow PayPal fields in transaction.options.paypal
- Add error code constants
- Internal refactoring
- 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
- Add prefix to sample Webhook to simulate webhook query params
- Allow descriptor to be passed in Funding Details options params for Merchant Account create and update.
- Add additionalProcessorResponse 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
- 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
- Adds support for v.zero SDKs.
- Make webhook parsing more robust with newlines
- Add messages to InvalidSignature exceptions
- Updated secureCompare to correctly compare strings in consistent time
- Add better error messages around webhook verification
- Include Dispute information on Transaction
- Search for Transactions disputed on a certain date
- Disbursement Webhooks
- Fix factories on AddOn and Discount (thanks stewe)
- Allow billingAddressId on transaction create
- Merchant account find API
- Merchant account update API
- Merchant account create API v2
- Update configuration URLs
- Official Partnership support
- Add Partner Merchant Declined webhook
- use preg_callback_replace instead of preg_replace (thanks jonthornton!)
- Adds missing test contstant to library namespace
- Adds holdInEscrow method
- Add error codes for verification not supported error
- Add companyName and taxId to merchant account create
- Adds cancelRelease method
- Adds releaseFromEscrow functionality
- Adds phone to merchant account signature.
- Adds merchant account phone error code.
- Fix casing issues with Braintree_Http and Braintree_Util references (thanks steven-hadfield!)
- Fixed transaction initialization arguments to be optional (thanks karolsojko!)
- Enable device data.
- Fixed getting custom fields with valueForHtmlField. Thanks to Miguel Manso for the fix.
- Adds disbursement details to transactions.
- Adds image url to transactions.
- Adds channel field to transactions.
- Adds country of issuance and issuing bank bin database fields
- 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 field to credit cards (possible values include Yes, No, Unknown)
- Adds composer support (thanks till)
- Fixes erroneous version number
- Braintree_Plan::all() returns empty array if no plans exist
- Adds webhook gateways for parsing, verifying, and testing notifications
- 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 problematic case in ResourceCollection when no results are returned from a search.
- Fixed customer search, which returned customers when no customers matched search criteria
- Added new error message for merchant accounts that do not support refunds
- Added ability to retrieve all Plans, AddOns, and Discounts
- Added Transaction cloning
- Added Braintree_SettlementBatchSummary
- Wrap dependency requirement in a function, to prevent pollution of the global namespace
- Added subscriptionDetails to Transaction
- Added flag to store in vault only when a transaction is successful
- Added new error code
- Added a new transaction state, AUTHORIZATION_EXPIRED.
- Enabled searching by authorizationExpiredAt.
- 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 billingAddressId to allowed parameters for credit cards create and update
- Allow searching on subscriptions that are currently in a trial period using inTrialPeriod
- Added ability to perform multiple partial refunds on Braintree_Transactions
- Allow passing expirationMonth and expirationYear separately when creating Braintree_Transactions
- Added revertSubscriptionOnProrationFailure flag to Braintree_Subscription update that specifies how a Subscription should react to a failed proration charge
- Deprecated Braintree_Subscription nextBillAmount in favor of nextBillingPeriodAmount
- Deprecated Braintree_Transaction refundId in favor of refundIds
- Added new fields to Braintree_Subscription:
- balance
- paidThroughDate
- nextBillingPeriodAmount
- Added Braintree_AddOns/Braintree_Discounts
- Enhanced Braintree_Subscription search
- Enhanced Braintree_Transaction search
- Added constants for Braintree_Result_CreditCardVerification statuses
- Added EXPIRED and PENDING statuses to Braintree_Subscription
- Allowed prorateCharges to be specified on Braintree_Subscription update
- Added Braintree_AddOn/Braintree_Discount details to Braintree_Transactions that were created from a Braintree_Subscription
- Removed 13 digit Visa Sandbox Credit Card number and replaced it with a 16 digit Visa
- Added new fields to Braintree_Subscription:
- billingDayOfMonth
- daysPastDue
- firstBillingDate
- neverExpires
- numberOfBillingCycles
- Added ability to specify country using countryName, countryCodeAlpha2, countryCodeAlpha3, or countryCodeNumeric (see ISO_3166-1)
- Added gatewayRejectionReason to Braintree_Transaction and Braintree_Verification
- Added unified message to result objects
- Added unified Braintree_TransparentRedirect url and confirm methods and deprecated old methods
- Added functions to Braintree_CreditCard to allow searching on expiring and expired credit cards
- Allow card verification against a specified merchant account
- Added ability to update a customer, credit card, and billing address in one request
- Allow updating the paymentMethodToken on a subscription
- 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 long compatible with the gateway
- Add the ability to specify merchant_account_id when verifying credit cards
- Add subscription_id to transactions created from subscriptions
- 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
- Correctly handle xml with nil=true
- 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)
- Fixed a bug with Customer::all
- Added constants for error codes
- Added methods to get both shallow and deep errors from a Braintree_ValidationErrorCollection
- Added the ability to make a credit card the default card for a customer
- Added constants for transaction statuses
- Updated Quick Start in README.md to show a workflow with error checking
- Added subscription search
- Provide access to associated subscriptions from CreditCard
- Switched from using Zend framework for HTTP requests to using curl extension
- Fixed a bug in Transparent Redirect when arg_separator.output is configured as & instead of &
- Increased http request timeout
- Fixed a bug where ForgedQueryString exception was being raised instead of DownForMaintenance
- Updated SSL CA files
- Added Braintree_Transaction::refund
- Added Braintree_Transaction::submitForSettlementNoValidate
- Fixed a bug in errors->onHtmlField when checking for errors on custom fields when there are none
- Added support for passing merchantAccountId for Transaction and Subscription
- Added recurring billing support
- Fixed bug with Braintree_Error_ErrorCollection.deepSize
- Added methods for accessing validation errors and params by html field name
- Initial release