- Add error code
TRANSACTION_TAX_AMOUNT_IS_REQUIRED_FOR_AIB_SWEDISH
for attributetax-amount
intransaction
key for AIB:Domestic transactions in sweden
- Add
dataOnlyRequested
toThreeDSecureLookupRequest
- Add
paymentReaderCardDetails
toTransactionCreditCardRequest
- Add
chargebackProtectionLevel
toDispute
andDisputeSearchRequest
- Add
skipAdvancedFraudChecking
toCreditCardOptionsRequest
andPaymentMethodOptionsRequest
- Add
getPaypalMessages
toDispute
- Add webhook sample for
GrantedPaymentMethodRevoked
- Add
taxIdentifier
toCustomerRequest
- Add support for
LocalPaymentReversed
webhook notifications - Add
storeId
andstoreIds
toTransactionSearchRequest
- Add
merchantAccountId
toTransactionRefundRequest
- Add
Transaction.adjustAuthorization
method to support for multiple authorizations for a single transaction
- Add
decision_reasons
andtransaction_risk_score
toRiskData
- Add
scaExemption
toTransactionRequest
- Add
scaExemptionRequested
toTransaction
- Add validation error code:
TRANSACTION_SCA_EXEMPTION_IS_INVALID
- Pattern / regexp usage optimization : Re-use patterns / Avoid compiling / creating patterns when not needed (thanks @benbenw!)
- Add
currencyIsoCode
toTransaction
- Add
verificationCurrencyIsoCode
toCreditCard
,PaymentMethod
, andCustomer
- Add validation error codes:
CREDIT_CARD_OPTIONS_VERIFICATION_INVALID_PRESENTMENT_CURRENCY
TRANSACTION_INVALID_PRESENTMENT_CURRENCY
- Add
installments
toTransactionRequest
- Add
count
toInstallmentRequest
- Add
installment
andrefunded_installments
toTransaction
- Add
adjustment
toInstallment
- Fix bug in
ThreeDSecureInfo
loading auth data from wrong XML node (thanks @iainjames88!) - Avoid allocating memory / constructing object if the message is not going to be logged (thanks @benbenw!)
- Avoid multiple node traversal in webhooks parsing (thanks @benbenw!)
- No need to do a complex status message parsing if the server response is a success (thanks @benbenw!)
- Add
acquirerReferenceNumber
toTransaction
- Add
billingAgreementId
toPayPalDetails
- Add
isRecurring
to Transaction class - Deprecate
getRecurring
in Transaction class (useisRecurring
instead) - Deprecate
recurring
in TransactionRequest
- Deprecate
MasterpassCard
payment method - Deprecate
AmexExpressCheckoutCard
payment method - Deprecate
deviceSessionId
andfraudMerchantId
inCreditCardRequest
,CustomerRequest
,PaymentMethodRequest
, andTransactionRequest
classes - Fix issue where risk data was not included in
CustomerRequest
(fixes #85) - Add
getInstallmentCount()
method todispute.getTransaction()
on dispute webhooks - Update
lookup
method onThreeDSecureGateway
to return aResult
object - Add
implicitlyVaultedPaymentMethodToken
andimplicitlyVaultedPaymentMethodGlobalId
toPayPalDetails
- Add
RISK_THRESHOLD
toGatewayRejectionReason
- Add
networkTransactionId
toCreditCardVerification
- Add
productSku
toTransactionRequest
- Add
shippingMethod
andphoneNumber
toAddressRequest
,TransactionAddressRequest
- Add
customerDeviceId
,customerLocationZip
, andcustomerTenure
toAddressRequest
,TransactionAddressRequest
- Add validation error codes:
TRANSACTION_PRODUCT_SKU_IS_INVALID
TRANSACTION_SHIPPING_PHONE_NUMBER_IS_INVALID
TRANSACTION_BILLING_PHONE_NUMBER_IS_INVALID
RISK_DATA_CUSTOMER_BROWSER_IS_TOO_LONG
RISK_DATA_CUSTOMER_DEVICE_ID_IS_TOO_LONG
RISK_DATA_CUSTOMER_LOCATION_ZIP_INVALID_CHARACTERS
RISK_DATA_CUSTOMER_LOCATION_ZIP_IS_INVALID
RISK_DATA_CUSTOMER_LOCATION_ZIP_IS_TOO_LONG
RISK_DATA_CUSTOMER_TENURE_IS_TOO_LONG
- Add
isProcessedWithNetworkToken
toTransaction
- Add
isNetworkTokenized
toCreditCard
- Add
RequestTimeoutException
andGatewayTimeoutException
- Breaking Changes:
- Stop sending validation errors for declined refunds, instead send the transaction object
- Remove deprecated Coinbase references
- Remove deprecated Transparent Redirect, Ideal, SEPA modules, error codes, and functions
- Remove deprecated PaymentMethodForwardRequest class
- Remove deprecated methods from
Dispute
- Remove
getForwardedComments
(usegetProcessorComments
) - Remove
getTransactionDetails
(usegetTransaction
)
- Remove
- Remove deprecated
getTag
(usegetCategory
) fromDisputeEvidence
- Remove deprecated
paypalVaultWithoutUpgrade
fromPaymentMethodRequest
- Remove deprecated parameters from
SearchRequest
- Remove
transparentRedirectURLForCreate
- Remove
creditTrData
- Remove
- Remove deprecated
getNextBillAmount
fromSubscription
- Remove deprecated
tag
(usecategory
) fromTextEvidenceRequest
- Remove deprecated methods from
Transaction
- Remove
getRefundId
(usegetRefundIds
) - Remove
getSubscription
(usegetSubscriptionDetails
)
- Remove
- Remove deprecated method
getRows
(useTransactionLevelFeeReport#getCSVRecords
) fromTransactionLevelFeeReport
- Remove deprecated validation error codes
CUSTOMER_ID_IS_INVAILD
CUSTOMER_ID_IS_INVALID
TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_MUST_BE_GREATER_THAN_ZERO
TRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZERO
TRANSACTION_LINE_ITEM_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZERO
EUROPE_BANK_ACCOUNT_ACCOUNT_HOLDER_NAME_IS_REQUIRED
EUROPE_BANK_ACCOUNT_BIC_IS_REQUIRED
EUROPE_BANK_ACCOUNT_IBAN_IS_REQUIRED
SEPA_MANDATE_ACCOUNT_HOLDER_NAME_IS_REQUIRED
SEPA_MANDATE_BIC_INVALID_CHARACTER
SEPA_MANDATE_BIC_IS_REQUIRED
SEPA_MANDATE_BIC_LENGTH_IS_INVALID
SEPA_MANDATE_BIC_UNSUPPORTED_COUNTRY
SEPA_MANDATE_BILLING_ADDRESS_CONFLICT
SEPA_MANDATE_BILLING_ADDRESS_ID_IS_INVALID
SEPA_MANDATE_IBAN_INVALID_CHARACTER
SEPA_MANDATE_IBAN_INVALID_FORMAT
SEPA_MANDATE_IBAN_IS_REQUIRED
SEPA_MANDATE_IBAN_UNSUPPORTED_COUNTRY
SEPA_MANDATE_TYPE_IS_REQUIRED
SEPA_MANDATE_TYPE_IS_INVALID
TRANSACTION_AMOUNT_DOES_NOT_MATCH_IDEAL_PAYMENT_AMOUNT
TRANSACTION_IDEAL_PAYMENT_NOT_COMPLETE
TRANSACTION_IDEAL_PAYMENTS_CANNOT_BE_VAULTED
TRANSACTION_MERCHANT_ACCOUNT_DOES_NOT_MATCH_IDEAL_PAYMENT_MERCHANT_ACCOUNT
TRANSACTION_MERCHANT_ACCOUNT_NAME_IS_INVALID
TRANSACTION_ORDER_ID_DOES_NOT_MATCH_IDEAL_PAYMENT_ORDER_ID
TRANSACTION_ORDER_ID_IS_REQUIRED_WITH_IDEAL_PAYMENT
UNKOWN_VALIDATION_ERROR
(changed toUNKNOWN_VALIDATION_ERROR
)
- Error codes cannot be modified
- Remove
GRANTED_PAYMENT_INSTRUMENT_UPDATE
Webhook notification - Remove deprecated
greaterThanOrEqual
method for searches (usegreaterThanOrEqualTo
) - Remove deprecated
lessThanOrEqual
method for searches (uselessThanOrEqualTo
) DownForMaintenance
exception renamed toServiceUnavailable
Exception- Transaction searches throw
UnexpectedException
instead ofDownForMaintenance
when search response yields unexpected results - Remove
recurringCustomerConsent
andrecurringMaxAmount
parameters fromauthenticationInsightOptions
inPaymentMethodNonce.create()
- Add
threeDSecurePassThru
toCreditCard.create()
,CreditCard.update()
,Customer.create()
,Customer.update()
,PaymentMethod.create()
andPaymentMethod.update()
- Add missing
paymentMethodToken
search toCreditCardVerificationSearchRequest
- Add
recurringCustomerConsent
andrecurringMaxAmount
parameters toauthenticationInsightOptions
inPaymentMethodNonce.create()
- Add
DOCUMENT_UPLOAD_FILE_IS_EMPTY
error code - Add
getBillingAddress
method toPaymentMethodNonceDetailsPayerInfo
(#83 thanks @eliasjpr) - Add
getShippingAddress
method toPaymentMethodNonceDetailsPayerInfo
(#83 thanks @eliasjpr)
- Fix null pointer exception when 3DS lookup returns a
422
- Add ThreeDSecure test payment method nonces
- Add test
AuthenticationId
s - Add
DISPUTE_ACCEPTED
,DISPUTE_DISPUTED
, andDISPUTE_EXPIRED
webhook constants - Fix parsing for 3DS response authenticate fields
- Add
TRANSACTION_REFUND_AUTH_HARD_DECLINED
andTRANSACTION_REFUND_AUTH_SOFT_DECLINED
validation errors - Add
isNetworkTokenized
field toAndroidPayCard
andAndroidPayDetails
- Add GraphQL ID to
CreditCardVerification
,Customer
,Dispute
, andTransaction
- Add
retrievalReferenceNumber
field toTransaction
- Add
PROCESSOR_DOES_NOT_SUPPORT_MOTO_FOR_CARD_TYPE
to validation errors - Update
jackson-jr
to v2.9.9 to fix CVE-2018-11307 (#75 thanks @sehrope) - Add
threeDSecureAuthenticationId
toThreeDSecureInfo
- Add
acsTransactionId
toThreeDSecureInfo
- Add
paresStatus
toThreeDSecureInfo
- Add
threeDSecureServerTransactionId
toThreeDSecureInfo
- Add
threeDSecureLookupInfo
toThreeDSecureInfo
- Add
threeDSecureAuthenticateInfo
toThreeDSecureInfo
- Add
merchantAccountId
setter toThreeDSecureLookupRequest
- Add
getProcessorComments
toDispute
- Add
TRANSACTION_AMOUNT_NOT_SUPPORTED_BY_PROCESSOR
to validation errors - Deprecate
getForwardedComments
fromDispute
- Deprecate
getRows
fromTransactionLevelFeeReport
in favor ofgetCSVRecords
- Add
getUniqueNumberIdentifier
toCustomActionsPaymentMethodDetails
- Fix issue where billing address was not applied correctly in
ThreeDSecureLookupRequest
- Add
networkResponseCode
andnetworkResponseText
fields toTransaction
andCreditCardVerification
- Add
graphQLClient
to theBraintreeGateway
class - Add
threeDSecureInfo
toCreditCardVerification
- Add
xid
,cavv
,eciFlag
,dsTransactionId
, andthreeDSecureVersion
toThreeDSecureInfo
- Add
PayPalHereDetails
toTransaction
- Add more Venmo error codes to
ValidationErrorCode
- Add
CustomActionsPaymentMethod
support
- Add Venmo error codes to
ValidationErrorCode
- Avoid throwing an exception when Refunded Amount is empty in the Transaction-Level Fee Report
- Add
captureId
field toLocalPaymentDetail
- Add
refundId
field toLocalPaymentDetail
- Add
debugId
field toLocalPaymentDetail
- Add
transactionFeeAmount
field toLocalPaymentDetail
- Add
transactionFeeCurrencyIsoCode
field toLocalPaymentDetail
- Add
refundFromTransactionFeeAmount
field toLocalPaymentDetail
- Add
refundFromTransactionFeeCurrencyIsoCode
field toLocalPaymentDetail
- Add
dsTransactionId
toThreeDSecurePassthruRequest
- Fix serialization of
ThreeDSecureLookupAdditionalInformation
- Return
AuthenticationInsight
when requested onPaymentMethodNonce.create
- Add
roomTax
field toTransactionIndustryDataRequest
- Add
noShow
field toTransactionIndustryDataRequest
- Add
advancedDeposit
field toTransactionIndustryDataRequest
- Add
fireSafe
field toTransactionIndustryDataRequest
- Add
propertyPhone
field toTransactionIndustryDataRequest
- Add
additionalChargeRequests
field toTransactionIndustryDataRequest
- Add
payerInfo
toPaymentMethodNonceDetails
class - Add
PostalCodeIsRequiredForCardBrandAndProcessor
to validation errors
- Add
ThreeDSecureLookup
- Add
revokedAt
field toPayPalAccount
- Add support for
PAYMENT_METHOD_REVOKED_BY_CUSTOMER
webhook - Add
payment_method_nonce
field toLocalPaymentCompleted
webhook - Add
transaction
field toLocalPaymentCompleted
webhook - Add
LocalPaymentDetails
to transactions
- Add
refundFromTransactionFeeAmount
field toPayPalDetails
- Add
refundFromTransactionFeeCurrencyIsoCode
field toPayPalDetails
- Add
token_issuance
gateway reject status to support Venmo transactions - Add
threeDSecureVersion
toThreeDSecurePassthruRequest
- Add
accountType
toTransaction
,CreditCard
,PaymentMethod
, andCreditCardVerification
- Add
accountType
toTransaction
,CreditCard
,PaymentMethod
, andCreditCardVerification
- Deprecate
GRANTED_PAYMENT_INSTRUMENT_UPDATE
and addGRANTOR_UPDATED_GRANTED_PAYMENT_METHOD
andRECIPIENT_UPDATED_GRANTED_PAYMENT_METHOD
- Fix bug where dates in the Transaction-Level Fee Report could be parsed incorrectly due to timezone differences
- Add External Vault and Risk Data to
CreditCardVerificationRequest
- Add
prepaid
field toAndroidPayDetails
- Add
healthcare
field toAndroidPayDetails
- Add
debit
field toAndroidPayDetails
- Add
durbinRegulated
field toAndroidPayDetails
- Add
commercial
field toAndroidPayDetails
- Add
payroll
field toAndroidPayDetails
- Add
issuingBank
field toAndroidPayDetails
- Add
countryOfIssuance
field toAndroidPayDetails
- Add
productId
field toAndroidPayDetails
- Add
globalId
field toAndroidPayDetails
- Add
bin
field toPaymentMethodNonceDetails
- Add
prepaid
field toApplePayDetails
- Add
healthcare
field toApplePayDetails
- Add
debit
field toApplePayDetails
- Add
durbinRegulated
field toApplePayDetails
- Add
commercial
field toApplePayDetails
- Add
payroll
field toApplePayDetails
- Add
issuingBank
field toApplePayDetails
- Add
countryOfIssuance
field toApplePayDetails
- Add
productId
field toApplePayDetails
- Add
bin
field toApplePayDetails
- Add
globalId
field toApplePayDetails
- Add Error indicating pdf uploads too long for dispute evidence.
- Add
fraudServiceProvider
field toriskData
- Allow PayPal payment ID and payer ID to be passed during transaction create
- Fix bug where SDK expects
granted_payment_instrument_revoked
instead ofgranted_payment_method_revoked
- Add
travel_flight
support to industry-specific data
- Add
GrantedPaymentMethodRevoked
webhook response objects - Add missing
getCardholderName
method to ApplePayCard class - Add missing nonce detail params for non-credit card nonces
- Add
authorizationExpiresAt
toTransaction
- Add venmo account details to payment method nonce model
- Add
ProcessorResponseType
toTransaction
,AuthorizationAdjustment
, andCreditCardVerification
.
- Add
lastFour
toPaymentMethodNonceDetails
- Remove final specification from
MerchantAccountGateway
(#64) - Fix dispute results in transactions not showing the correct status sometimes
- Pass response message to http error (#66)
- Add
getNetworkTransactionId
as new field on subfield transaction response. - Add support for
ExternalVaultRequest
for TransactionRequest - Add support for
LocalPaymentCompleted
webhook notifications. - Close FileInputStream in
addFilePart
if an exception occurs when reading. - Add
ProcessorResponseType
toTransaction
,AuthorizationAdjustment
, andCreditCardVerification
.
- Restore Javadoc
- Add subscription charged unsuccessfully sample webhook to webhook testing gateway
- Add initial support for GraphQL API's
- Add Transaction-Level Fee Report API
- Add support for Samsung Pay
- Allow payee ID to be passed in options params for transaction create
- Add
processor_response_code
andprocessor_response_text
to authorization adjustments subfield in transaction response. - Add
getMerchantId
toConnectedMerchantStatusTransitioned
andConnectedMerchantPayPalStatusChanged
, andgetOauthApplicationClientId
to OAuthAccessRevocation webhooks - Fix webhook testing sample xml for dispute webhooks to include
amount-won
andamount-disputed
- Add support for US Bank Account verifications API
- Update
jackson-jr
to v2.9.5 to fix an incompatibility with Java 9 - Fix issue where multiple search criteria was not allowed. #62.
- Add support for
SubscriptionDetails
and deprecateSubscription
inTransaction
- Add support for
OAUTH_ACCESS_REVOKED
inWebhookNotification
s - Add support for dispute search by
customerId
,disbursementDate
, andeffectiveDate
- Add
payerId
accessor inPayPalAccount
- Add support for VCR compelling evidence dispute representment
- Fix possible NullPointerException in UsBankAccount
- Add support for
association_filter_id
inCustomer#find
- Deprecated
TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_MUST_BE_GREATER_THAN_ZERO
error in favor ofTRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_CANNOT_BE_NEGATIVE
- Deprecated
TRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZERO
error in favor ofTRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_CANNOT_BE_NEGATIVE
- Deprecated
TRANSACTION_LINE_ITEM_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZERO
error in favor ofTRANSACTION_LINE_ITEM_TAX_AMOUNT_CANNOT_BE_NEGATIVE
- Update https certificate bundle
- Add
getSourceMerchantId()
toWebhookNotification
s - Add support for taxAmount field on transaction lineItems
- Swap out
org.json
package forjackson-jr
to fix licensing issues (#58,#59) - Add support for
profile_id
in Transaction#create options for VenmoAccounts
- Add support for line_items
- Add support for tagged evidence in DisputeGateway#addTextEvidence (Beta release)
- Add support for raw Apple Pay processing
- Add support for setting connect timeout (#56)
- Add support for upgrading a PayPal future payment refresh token to a billing agreement
- Add loginOnly parameter to OAuth connect URL
- Add support for Granted Payment Instrument Update webhook
- Add ability to create a transaction from a shared nonce
- Fix spec to expect PayPal transaction to settle immediately after successful capture
- Add
options
->paypal
->shipping
for creating & updating customers as well as creating payment methods - Add
imageUrl
toApplePayDetails
- Deprecate
OAuthGateway::computeSignature
- Fix spec to expect PayPal transactions to move to settling rather than settled
- Add
deviceDataCaptured
field toRiskData
- Add
binData
toPaymentMethodNonce
- Throw error if
signature
orpayload
in webhook is null - Fix
receivedDate
/replyByDate
by returningDateRangeNode
inDisputeSearchRequest
(Note: this is a breaking change for limited relese disputes API)
- Add iDEAL webhook support
- Add
IDEAL_PAYMENT
toPaymentInstrumentType
- Add document upload API
- Add AuthorizationAdjustment class and
authorizationAdjustments
to Transaction - Coinbase is no longer a supported payment method.
PAYMENT_METHOD_NO_LONGER_SUPPORTED
will be returned for Coinbase operations - Add facilitated transaction details to Transaction if present
- Add
bin
toApplePayCard
- Add
submitForSettlement
toSubscriptionGateway.retryCharge
- Add
options
->paypal
->description
for creating and updating subscriptions - Add
accept
method for the Dispute API - Add
addTextEvidence
method for the Dispute API - Add
addFileEvidence
method for the Dispute API - Add
finalize
method for the Dispute API - Add
find
method for the Dispute API - Add
removeEvidence
method for the Dispute API - Add
search
method for the Dispute API
- Add additional properties to
PaymentMethodNonce
- Add
skipAvs
andskipCvv
options toTransactionOptionsRequest
CreditCardVerification
now containsamount
andcurrencyIsoCode
- Add iDEAL support
- Add Masterpass support
- Add Visa Checkout support
- Add support for additional PayPal options when vaulting a PayPal Order
- Stop sending
account_description
field from us bank accounts - Add
ConnectedMerchantStatusTransitioned
andConnectedMerchantPayPalStatusChanged
Auth webhooks
- Stop sending account_description field from us bank accounts
- Add functionality to list all merchant accounts for a merchant with
MerchantAccount.all
. - Update UsBank tests to use legal routing numbers.
- Add option
skip_advanced_fraud_check
for transaction flows. - Raise an exception if fetching pages of results times out during a transaction search.
- Fix
UsBankAccount
support forCustomer
s - Throw
ConfigurationException
for missing credentials - Refactor payment method grant and revoke APIs to accept
PaymentMethodGrantRequest
andPaymentMethodGrantRevokeRequest
objects as parameters
- Add 'UsBankAccount' payment method
- Use TLS v1.2 by default and fallback to TLS
- Add getPlanId() to SubscriptionStatusEvent
- Add createdAt to subscription search
- Log encoding error instead of printing stack trace
- Reuse SSLSocketFactory for http requests
- Allow proxy objects to be used to specify proxy config
- Add currency iso code
- Expose credit card product ID
- Add validation error for verifications with submerchants
- Allow passing OAuth scopes to
Merchant#create
- Support passing
transaction_source
for setting moto or recurring ECI flag - Add support for passing risk data
- Allow updating default_payment_method on Customer
- Add OrderId to refund
- Add 3DS Pass thru support
- Add verificiation amount option to Payment Method request
- Expose ids in resource collections
- Add method of revoking OAuth access tokens.
- Add transaction
UpdateDetails
- Add ssnLast4 to merchant account individual details
- Support for Too Many Requests response codes
- Add new landing_page param to OAuthConnectUrlRequest
- Add getSubscriptions method to PaymentMethod interface (Thanks @singhalkul!)
- Add establishedOn attribute to partner business data
- Allow passing companyName and currencies to
Merchant#create
- Remove java.util.logging.ConsoleHandler
- Add isInvalid error code for addresses
- Add timeout attribute to Configuration
- Adds shared vault parameters
- Add support for logging. Thanks @yatsenko-ihor!
- Add AccountUpdaterDailyReport webhook parsing
- Add support for OSGi bundling. Thanks, @lburgazzoli!
- Add verification create API
- Add support for options in
submit_for_settlement
transaction flows
- Include Coinbase Accounts in
Customer#getPaymentMethods
(Thanks @danmidwood) - Add VenmoAccount
- Adds
CHECK
webhook kind
- Fixes broken maven release
- Add kind, openedDate, and wonDate to Dispute
- Add support for partial settlement transactions
- Add transaction data to subsription charged successfully webhooks
- Add sourceDescription attribute to Android Pay and Apple Pay
- Add new Android Pay test nonces
- Add support for amex rewards transactions
- Add new test payment method nonces
- Allow passing description on PayPal transactions
- Expose transaction fee details on PayPal transactions
- Add support for PayPal billing agreements
- Add oauth support
- Add support for Android Pay
- Validate webhook challenge payload
- Fix ThreeDSecureInfo#find to be more consistent
- Add 3DS info to the server side
- Simplified SEPA workflow
- Close InputStreams after use
- Add additional PayPalDetails getters
- Surface Apple Pay payment instrument name in responses
- Support making 3DSecure required
- Add support for Coinbase
- Explicitly disconnect the HttpURLConnection after use (Thanks, @gsharma)
- New validation error constants
- Add ApplePayDetails#getLast4
- More searches from CreditCardVerificationSearchRequest
- Allow payee_email in transaction.options.paypal
- Allow PayPal custom field on transaction create
- Add support for Retrieval dispute reasons.
- 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
- ApplePay support
- 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
- Add support for dispute webhooks
- Support for v.zero SDKs.
- 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
- Merchant account find API
- Merchant account update API
- Merchant account create API v2
- Use new Braintree Gateway API endpoints
- Adds support for Partnerships
- Adds fraud to gatewayRejectionReason, unrecognized to all enums missing it.
- Adds holdInEscrow method
- Add error codes for verification not supported error
- Add companyName and taxId to ApplicantDetailsRequest
- Adds cancelRelease method
- Adds releaseFromEscrow functionality
- Adds merchant account phone error code.
- Adds device data to transactions, customers, and credit cards.
- Lots of cleanups [thanks to https://github.com/steve-nester-uk]
- Bumps version in maven pom.xml
- Adds disbursement details to transactions.
- Adds image url to transactions.
- Adds Venmo Touch support.
- Adds channel field to transactions.
- Adds country of issuance and issuing bank
- 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 on credit cards (possible values: Yes, No, Unknown)
- Adds webhook gateways for parsing, verifying, and testing incoming 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
- Adds new certificates for sandbox environment
- Added error code for invalid purchase order number
- Added error message for merchant accounts that do not support refunds
- Added ability to retrieve all Plans, Addons, and Discounts
- Added Transaction cloning
- Update README to include Maven repository documentation
- Implemented new NodeWrapper (SimpleNodeWrapper) that is much faster than the previous xpath implementation.
- Fixed a bug in SettlementBatchSummary that may have requested the wrong date when using a timezone other than UTC.
- Added SettlementBatchSummary
- Correctly report PAST_DUE status on Subscriptions.
- Added subscription 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 nextBillingDate and transactionId to subscription search
- Added addressCountryName 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 CreditCardRequest
- Allow searching on Subscriptions that are currently in a trial period using inTrialPeriod
- Added ability to perform multiple partial refunds on Transactions
- Deprecated Transaction getRefundId in favor of getRefundIds
- Added revertSubscriptionOnProrationFailure flag to Subscription update that specifies how a Subscription should react to a failed proration charge
- Deprecated Subscription getNextBillAmount in favor of getNextBillingPeriodAmount
- Added new properties to Subscription:
- balance
- paidThroughDate
- nextBillingPeriodAmount
- Added AddOns/Discounts
- Enhanced Subscription search
- Enhanced Transaction search
- Added AddOn/Discount details to Transactions that were created from a Subscription
- Added an enum for CreditCardVerification statuses
- Added EXPIRED and PENDING statuses to Subscription
- Allowed prorateCharges to be specified on Subscription update
- Renamed search methods greaterThanOrEqual and lessThanOrEqual to greaterThanOrEqualTo and lessThanOrEqualTo -- deprecated old methods
- All Braintree Exceptions now inherit from BraintreeException superclass
- Added new properties to Subscription:
- billingDayOfMonth
- daysPastDue
- firstBillingDate
- neverExpires
- numberOfBillingCycles
- Added unified message to result objects
- Added ability to specify country using countryName, countryCodeAlpha2, countryCodeAlpha3, or countryCodeNumeric (see ISO_3166-1)
- Added gatewayRejectionReason to Transaction and Verification
- When creating a Subscription, return failed transaction on the Result if the initial transaction is not successful
- Fixed a bug in confirming TransparentRedirect when returning an Error result
- Added unified TransparentRedirect url and confirm methods and deprecated old methods
- Added methods to CreditCardGateway to allow searching on expiring and expired credit cards
- Allow credit card verification against a specified merchant account
- 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)
- Read VERSION from a constant instead of a VERSION file, which can conflict with other VERSION files in load path.
- 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 getApproximateSize to getMaximumSize 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 the 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 isSuccess() on transaction results to return false on declined transactions
- Search results now implement Iterable and will automatically paginate data
- Added getCardholderName() to CreditCard
- Added option to change default credit card for a customer
- Added subscription search
- Return associated subscriptions when finding credit cards
- Updated forObject to return an empty ValidationErrors object instead of null if there are no errors
- Raise down for maintenance exception instead of forged query string when down for maintenance
- Added java 1.5 compatibility
- Updated production URL
- Added processorAuthorizationCode() to Transaction
- Fixed a bug preventing TransactionRequest objects with nested Customer objects from building properly
- Added getMaskedNumber() to CreditCard to return the masked credit card number
- Added recurring billing support
- Initial release