- Add
fail_on_duplicate_payment_method_for_customer
option toClientToken
PaymentMethod
CreditCard
- Fix billing address bug for credit card verification.
- Add
blik_aliases
to LocalPaymentCompleted webhook and LocalPaymentDetail - Deprecate
SamsungPayCard
- Add
PayerName
,Bic
andIbanLastChars
to LocalPaymentCompleted webhook - Add
edit_paypal_vault_id
toPayPalAccount
- Add
AniFirstNameResponseCode
andAniLastNameResponseCode
toCreditCardVerification
- Add
ShippingTaxAmount
toTransaction
andTransactionRequest
- Add
networkTokenizationAttributes
toTransactionCreditCardRequest
- Add
NetworkTokenizationAttributesRequest
class - Add validation error codes:
CREDIT_CARD_NETWORK_TOKENIZATION_ATTRIBUTE_CRYPTOGRAM_IS_REQUIRED
- Add attributes to
ThreeDSecureLookupRequest
MerchantInitiatedRequestType
PriorAuthenticationId
MerchantOnRecordName
PriorAuthenticationDetails
- Add
ForeignRetailer
toTransaction
andTransactionRequest
- Add
InternationalPhone
toAddress
andCustomer
- Add
fundingSourceDescription
toPayPalAccount
- Add missing
AndroidPayCard
error code - Add
REFUND_FAILED
toWebhookKind
- Add
FinalCapture
to TransactionTransactionRequest
- Deprecate
paypal_tracking_id
in favor ofpaypal_tracker_id
in PackageDetails
- Add
domains
parameter support toClientTokenRequest
- Add
UNDER_REVIEW
toDisputeStatus
- Add
DISPUTE_UNDER_REVIEW
toWebhookKind
- Add
DebitNetwork
toTransaction
- Add
TransactionDebitNetwork
enum toTransaction
- Add
DebitNetwork
toTransactionSearchRequest
to search by debitNetworks - Add
ProcessDebitAsCredit
toTransactionOptionsCreditCardRequest
- Add
PackageTracking
andPackageTrackingAsync
methods toTransactionGateway
to make request to add tracking information to transactions - Add
PackageDetails
andPackageTrackingRequest
classes - Add
UpcCode
,UpcType
,ImageUrl
toTransactionLineItem
andTransactionLineItemRequest
- Deprecate
threeDSecureToken
in favor ofthreeDSecureAuthenticationId
- Deprecate
VenmoSdkSession
,VenmoSdkPaymentMethodCode
, andIsVenmoSdk
- Add
PICKUP_IN_STORE
toShippingMethod
enum - Add
ExternalVault
andRiskData
toCreditCardVerificationRequest
- Add
DateOfBirth
andCountryCode
toIndustryDataRequest
- Add
BillingAddress
andShippingAddress
toVenmoProfileData
- Add
VerificationAddOns
andAdditionalProcessorResponse
toUsBankAccountVerification
- Add
MetaCheckoutCard
andMetaCheckoutToken
to payment method - Add
MetaCheckoutCardDetails
andMetaCheckoutTokenDetails
to Transaction
- Add
SUBSCRIPTIONBILLINGSKIPPED
webhook notification support - Add
implicitlyVaultedPaymentMethodToken
andimplicitlyVaultedPaymentMethodGlobalId
toLocalPaymentDetails
- Add
MerchantTokenIdentifier
,SourceCardLast4
toApplePayCard
andApplePayDetails
- Add
ThreeDSecureAuthenticationId
toCustomerRequest
andPaymentMethodRequest
- Add
processing_overrides
toTransaction.sale
options - Add industry data fields to
TransactionRequest
ArrivalDate
TicketIssuerAddress
- Remove
byte[]
toString
content conversion for requests containing files inBraintreeService
- Add
MerchantAdviceCode
andMerchantAdviceCodeText
toTransaction
- Add
cardAddChallengeRequested
toThreeDSecureLookupRequest
- Add
RetryIds
andRetriedTransactionId
toTransaction
- Add subscriptions for SEPA direct debit account
- Add device data fields to
ThreeDSecureLookupRequest
BrowserAcceptHeader
BrowserColorDepth
BrowserJavaEnabled
BrowserJavascriptEnabled
BrowserLanguage
BrowserScreenHeight
BrowserScreenWidth
BrowserTimeZone
DeviceChannel
IpAddress
UserAgent
- Add
IntendedTransactionSource
toCreditCardVerificationRequest
- Add
PaymentMethodNonce
toCreditCardVerificationRequest
- Add
ThreeDSecureAuthenticationID
toCreditCardVerificationRequest
- Add
ThreeDSecurePassThru
toCreditCardVerificationRequest
- Add support for Plan creation/updating with
AddOns
andDiscounts
- Bump Newtonsoft.Json from 9.0.1 to 13.0.1
- Add
PreDisputeProgram
toDispute
andDisputeSearchRequest
- Add
AUTO_ACCEPTED
toDisputeStatus
- Add
DISPUTE_AUTO_ACCEPTED
toWebhookKind
- Add
EXCESSIVE_RETRY
toGatewayRejectionReason
- Add
SepaDirectDebitAccount
payment method - Add
SepaDirectDebitAccountDetails
andSepaDirectDebitReturnCode
to transaction object - Add
SepaDebitPayPalV2OrderId
to transaction search request object - Add
MandateType
enum to payment method nonce details object - Add
SEPA_DIRECT_DEBIT_ACCOUNT
to payment instrument type - Add SEPA Direct Debit specific error codes
- Add SEPA Direct Debit array to customer object
- Add
PaymentMethodNonceDetailsSepaDirectDebit
to payment method nonce details - Add
RequestedExemptionType
toThreeDSecureLookupRequest
- Deprecate
ChargebackProtectionLevel
and addProtectionLevel
toDispute
andDisputeSearch
- Add a check for path canonicalization in request URI creation
- Add
AchReturnResponsesCreatedAt
toTransactionSearchRequest
to search for specific date for transaction that have any reason codes. - Add
ReasonCode
toTransactionSearchRequest
to search for transactions that have return reason codes. - Add
TransactionSearchRequest.ANY_REASON_CODE
toTransactionSearchRequest
for reason code search that matches all reason codes. - Add
LiabilityShift
toRiskData
- Add ExchangeRateQuote API
- Add
AchReturnCode
to transaction object - Add
Retried
to transaction object
- Add
PaymentMethodCustomerDataUpdated
webhook notification support
- Add plan create/update/find API endpoint
- Add
TransactionReview
webhook notification support
- Add
LocalPaymentExpired
andLocalPaymentFunded
webhook notification support
- Add error code
TRANSACTION_TAX_AMOUNT_IS_REQUIRED_FOR_AIB_SWEDISH
for attributetax_amount
intransaction
key for AIB:Domestic Transactions in Sweden - Add
ExchangeRateQuoteId
toTransactionRequest
- Add
EXCHANGE_RATE_QUOTE_ID_IS_TOO_LONG
toValidationErrorCode
- Add the following fields to
AndroidPayCard
andApplePayCard
:Commercial
Debit
DurbinRegulated
Healthcare
Payroll
Prepaid
ProductId
CountryOfIssuance
IssuingBank
- Add the following fields to
PaypalDetails
:TaxId
TaxIdType
- Add
PaymentReaderCardDetails
toTransactionCreditCardRequest
- Add
SkipAdvancedFraudChecking
to:Customer.create
andCustomer.update
CreditCard.create
andCreditCard.update
PaymentMethod.create
andPaymentMethod.update
- Add
DataOnlyRequested
toThreeDSecureLookupRequest
- Add
ChargebackProtectionLevel
toDisputeSearch
- Add
PayPalMessages
toDispute
- Add
TaxIdentifiers
toCustomerRequest
- Add webhook sample for
GrantedPaymentMethodRevoked
- Add
StoreId
andStoreIds
toTransactionSearchRequest
- Add support for
LocalPaymentReversed
webhook notifications - Add
Transaction.AdjustAuthorization
method to support for multiple authorizations for a single transaction - Add
MerchantAccountId
toTransactionRefundRequest
- Add
PhoneNumber
toAddress
(thanks @glennsdavis!)
- Add missing
ExpirationMonth
,ExpirationYear
, andIsNetworkTokenized
fields inPaymentMethodNonceDetails
(thanks @glennsdavis forExpirationMonth
andExpirationYear
!) - Add
ThreeDSecureAuthenticationInfo
andThreeDSecureLookupInfo
classes - Add
AcsTransactionId
,ParesStatus
,ThreeDSecureTransactionId
,Lookup
, andAuthentication
toThreeDSecureInfo
- Add
DecisionReasons
andTransactionRiskScore
fields toRiskData
- Add overload on
SubmitForSettlementAsync
method to includeTransactionRequest
(thanks @edtyl3r!)
- Add
scaExemption
toTransaction
- Deprecate
DeviceSessionId
andFraudMerchantId
in theCreditCardRequest
andTransactionRequest
classes - Add
currencyIsoCode
field toTransactionRequest
- Add
verificationCurrencyIsoCode
field toCreditCardOptionsRequest
andPaymentMethodOptionsRequest
- Add validation error codes:
CREDIT_CARD_OPTIONS_VERIFICATION_INVALID_PRESENTMENT_CURRENCY
TRANSACTION_INVALID_PRESENTMENT_CURRENCY
- Add
Installments
toTransactionRequest
- Add
Count
toInstallmentRequest
- Add
Installments
andRefundedInstallments
toTransaction
- Add
Adjustment
toInstallment
- Add
AcquirerReferenceNumber
toTransaction
- Add
BillingAgreementId
toPayPalDetails
- Add
extensions
toGraphQLResponse
- Deprecate
Recurring
in TransactionRequest
- Add
InstallmentCount
toDisputeTransaction
on dispute webhooks - Add
ImplicitlyVaultedPaymentMethodToken
andImplicitlyVaultedPaymentMethodGlobalId
toPayPalDetails
- Add
RequestTimeoutException
andGatewayTimeoutException
- Add
RISK_THRESHOLD
to GatewayRejectionReason constants - Add
processedWithNetworkToken
toTransaction
- Add
isNetworkTokenized
toCreditCard
Breaking changes: - Drop support for .NET Core versions less than 2.1 (v1.0, v1.3, v2.0, etc)
- Drop .NET Standard 1.3 from
TargetFrameworks
- Remove deprecated
TransparentRedirect
,iDEAL
,Coinbase
, andIbanAccount
classes - Remove deprecated SEPA mandate and Europe Bank Account error codes, test payment method nonces, and payment intrument types
- Remove
ForwardedComments
fromDispute
- Remove
PayPalVaultWithoutUpgrade
fromPaymentMethodRequest
- Remove deprecated validation error codes:
SEPA_BANK_ACCOUNT_ACCOUNT_HOLDER_NAME_IS_REQUIRED
SEPA_BANK_ACCOUNT_BIC_IS_REQUIRED
SEPA_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_LOCALE_IS_UNSUPPORTED
SEPA_MANDATE_TYPE_IS_REQUIRED
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_ORDER_ID_DOES_NOT_MATCH_IDEAL_PAYMENT_ORDER_ID
TRANSACTION_ORDER_ID_IS_REQUIRED_WITH_IDEAL_PAYMENT
- Remove deprecated webhook kinds:
GRANTED_PAYMENT_INSTRUMENT_UPDATE
IDEAL_PAYMENT_COMPLETE
IDEAL_PAYMENT_FAILED
- Rename
DownForMaintenanceException
toServiceUnavailableException
- Transaction searches and Transaction Line Items FindAll calls throw
UnexpectedException
instead ofDownForMaintenance
when search response yields unexpected results - Remove
UseStaticHttpClient
configuration option for .NET Core integrations - Remove
MasterpassCard
payment method - Remove
AmexExpressCheckoutCard
payment method - Bump API version to support declined refund objects
- Convert custom
Enumeration
subclasses to C#Enum
types (fixes #86):CreditCardCardType
(additionally, type MASTER_CARD was renamed to MASTERCARD)CreditCardCommercial
CreditCardCustomerLocation
CreditCardDebit
CreditCardDurbinRegulated
CreditCardHealthcare
CreditCardPayroll
CreditCardPrepaid
DisbursementType
DisputeKind
DisputeReason
DisputeStatus
DocumentUploadKind
FundingDestination
IndustryDataAdditionalChargeKind
MerchantAccountStatus
PaymentInstrumentType
PlanDurationUnit
ProcessorResponseType
ShippingMethod
SubscriptionDurationUnit
SubscriptionSource
SubscriptionStatus
TransactionCreatedUsing
TransactionEscrowStatus
TransactionGatewayRejectionReason
TransactionIndustryType
TransactionLineItemKind
TransactionSource
TransactionStatus
TransactionType
UsBankAccountVerificationMethod
UsBankAccountVerificationStatus
VerificationStatus
WebhookKind
- Add
ThreeDSecurePassThru
toCreditCard.create()
,CreditCard.update()
,Customer.create()
,Customer.update()
,PaymentMethod.create()
andPaymentMethod.update()
- Add ThreeDSecure test payment method nonces
- Add test
AuthenticationId
s - Add
DISPUTE_ACCEPTED
,DISPUTE_DISPUTED
, andDISPUTE_EXPIRED
webhook constants - Add Authentication Insight to
PaymentMethodNonce.Create
- Add
DOCUMENT_UPLOAD_FILE_IS_EMPTY
error code - Add
RetrievalReferenceNumber
toTransaction
- Remove
Expect:100-Continue
header from requests to stop sporadic failed requests. - Add
FromNonceAsync
method toCreditCardGateway
(#97 thanks @ronnieoverby) - Add
NetworkTransactionId
toCreditCardVerification
- Fix blocking in HttpService for .NET Core async methods (#100 thanks @roblascelles)
- Add
ProductSku
toTransactionRequest
- Add
PhoneNumber
andShippingMethod
toAddressRequest
- Add
CustomerDeviceId
,CustomerLocationZip
, andCustomerTenure
toRiskDataRequest
- 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
RefundAuthHardDeclined
andRefundAuthSoftDeclined
to validation errors - Add
PROCESSOR_DOES_NOT_SUPPORT_MOTO_FOR_CARD_TYPE
to validation errors - Add
isNetworkTokenized
toAndroidPayCard
andAndroidPayDetails
- Add GraphQL ID to
CreditCardVerification
,Customer
,Dispute
, andTransaction
- Fix issue where GraphQL errors from transaction fee reports could not be parsed
- Add
ThreeDSecureAuthenticationId
toThreeDSecureInfo
- Add
ThreeDSecureAuthenticationId
support to Transaction.Sale
- Add
ProcessorComments
to Disputes - Deprecate
ForwardedComments
- Add
AMOUNT_NOT_SUPPORTED_BY_PROCESSOR
to validation errors
- Add
ThreeDSecureLookup
(beta)
- Add
GraphQLClient
instance toBraintreeGateway
class
- Add
PayPalHereDetails
to transactions - Add
CaptureId
toLocalPaymentDetails
- Add
RefundId
toLocalPaymentDetails
- Add
DebugId
toLocalPaymentDetails
- Add
RefundFromTransactionFeeAmount
toLocalPaymentDetails
- Add
RefundFromTransactionFeeCurrencyIsoCode
toLocalPaymentDetails
- Add
TransactionFeeAmount
toLocalPaymentDetails
- Add
TransactionFeeCurrencyIsoCode
toLocalPaymentDetails
- Add
Cavv
,Xid
,DsTransactionId
,EciFlag
, andThreeDSecureVersion
toThreeDSecureInfo
- Add
ThreeDSecureVersion
,AuthenticationResponse
,DirectoryResponse
,CavvAlgorithm
, andDsTransactionId
to 3DS pass thru fields - Add
PayerInfo
toPaymentMethodNonceDetails
class - Add
NetworkResponseCode
andNetworkResponseText
fields toTransaction
andCreditCardVerification
- Add
ThreeDSecureInfo
toCreditCardVerification
- Add
token_issuance
gateway rejected status to support Venmo transactions - Add
payment_method_nonce
field toLocalPaymentCompleted
webhook - Add
transaction
field toLocalPaymentCompleted
webhook - Add
LocalPaymentDetails
to transactions - Add
RoomTax
field toIndustryDataRequest
- Add
NoShow
field toIndustryDataRequest
- Add
AdvancedDeposit
field toIndustryDataRequest
- Add
FireSafe
field toIndustryDataRequest
- Add
PropertyPhone
field toIndustryDataRequest
- Add
AdditionalChargeRequest
class and addAdditionalCharges
field toIndustryDataRequest
- Add
PostalCodeIsRequiredForCardBrandAndProcessor
to validation errors - Resolve an issue when building the project in some configurations
- Add
RefundFromTransactionFeeAmount
field toPayPalDetails
- Add
RefundFromTransactionFeeCurrencyIsoCode
field toPayPalDetails
- Add
RevokedAt
field toPayPalAccount
- Add support for
PAYMENT_METHOD_REVOKED_BY_CUSTOMER
webhook
- Add
AccountType
field toTransaction
,CreditCard
,PaymentMethod
, andCreditCardVerification
- Add
RefundFromTransactionFeeAmount
field toPayPalDetails
- Add
RefundFromTransactionFeeCurrencyIsoCode
field toPayPalDetails
- Add
RevokedAt
field toPayPalAccount
- Add support for
PAYMENT_METHOD_REVOKED_BY_CUSTOMER
webhook
- Resolve an issue with
PackageReleaseNotes
inBraintree.csproj
that prevented building the project
- Deprecate
GRANTED_PAYMENT_INSTRUMENT_UPDATE
and addGRANTOR_UPDATED_GRANTED_PAYMENT_METHOD
andRECIPIENT_UPDATED_GRANTED_PAYMENT_METHOD
- 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
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
- Cross compile for netstandard 2.0
- ResourceCollection now implements IEnumerable
- Add Error indicating pdf uploads too long for dispute evidence.
- Add
bin
field toPaymentMethodNonceDetails
- Fix creating transaction from local payment webhook data
- Add
GrantedPaymentMethodRevoked
webhook response objects - Add
Username
andVenmoUserId
toPaymentMethodNonceDetails
.
- Allow PayPal payment ID and payer ID to be passed during transaction create
- Add
travel_flight
support to industry-specific data - Add
fraudServiceProvider
field toRiskData
- Add
UseStaticHttpClient
to configuration to reuse the same http client instance in each request
- Add
AuthorizationExpiresAt
toTransaction
- Add
ProcessorResponseType
toTransaction
,AuthorizationAdjustment
, andCreditCardVerification
- Allow environemnt parsing to be case insensitive (#75)
- Add
LastFour
toPaymentMethodNonceDetails
- Add subscription charged unsuccessfully sample webhook to webhook testing gateway
- Fix dispute results in transactions not showing the correct status sometimes
- Add
network_transaction_id
as new field on subfield transaction response. - Add support for
ExternalVaultRequest
for TransactionRequest - Add support for
LocalPaymentCompleted
webhook notifications.
- Add Samsung Pay support
- Add
processor_response_code
andprocessor_response_text
to authorization adjustments subfield in transaction response.
- Add
MerchantId
toConnectedMerchantStatusTransitioned
andConnectedMerchantPayPalStatusChanged
, andOauthApplicationClientId
to OAuthAccessRevocation webhooks - Fix webhook testing sample xml for dispute webhooks to include
amount-won
andamount-disputed
- Fix CreditCard not correctly identifying Union Pay card type
- Allow payee ID to be passed in options params for transaction create
- Add support for US Bank Account verifications API
- Add dispute error code DISPUTE_VALID_EVIDENCE_REQUIRED_TO_FINALIZE
- Fix incorrectly named FileEvidenceRequest.DocumentId parameter
- Add support for VCR compelling evidence dispute representment
- Remove non-CLS compliant
generate
andgenerateAsync
methods fromClientTokenGateway
. UseGenerate
orGenerateAsync
. - Add
SubscriptionDetails
class and changeTransaction.Subscription
property toTransaction.SubscriptionDetails
. - Add
CustomerDetails
class and changeTransaction.Customer
property toTransaction.CustomerDetails
. - Remove
RefundId
fromTransaction
. UseRefundIds
instead. - Remove
TransparentRedirectURLForCreate
,TransparentRedirectURLForUpdate
, andConfirmTransparentRedirect
fromCreditCardGateway
,CustomerGateway
, andTransactionGateway
. Usegateway.TransparentRedirect.Url
orgateway.TransparentRedirect.Confirm()
instead. - Remove
CUSTOMER_ID_IS_INVAILD
,TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_MUST_BE_GREATER_THAN_ZERO
, andTRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZERO
, andTRANSACTION_MERCHANT_ACCOUNT_NAME_IS_INVALID
. UseCUSTOMER_ID_IS_INVALID
,TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_CANNOT_BE_NEGATIVE
,TRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_CANNOT_BE_NEGATIVE
, orTRANSACTION_MERCHANT_ACCOUNT_ID_IS_INVALID
instead. - If an
AccessToken
andEnvironment
are specified inConfiguration
, an exception will be thrown if the environment does not match the access token's environment. - For
RangeNode
decimal values passed toSearchCriteria
, use.ToString(InvariantCulture)
to prevent localization issues (#68). - Change
OAuthGateway.ComputeSignature
to be an internal method. - Migrate the xproj build files to MSBuild csproj build files and update Dockerfile images for support.
- Add
PayerId
accessor inPayPalAccount
- Add support for searching disputes by
effectiveDate
,disbursementDate
, andcustomerId
- Add support for
association_filter_id
inCustomer#find
- Add support for
OAUTH_ACCESS_REVOKED
inWebhookNotification
s - 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
TaxAmount
field on transaction LineItems - Deprecate TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_MUST_BE_GREATER_THAN_ZERO error in favor of TRANSACTION_LINE_ITEM_DISCOUNT_AMOUNT_CANNOT_BE_NEGATIVE.
- Deprecate TRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_MUST_BE_GREATER_THAN_ZERO error in favor of TRANSACTION_LINE_ITEM_UNIT_TAX_AMOUNT_CANNOT_BE_NEGATIVE.
- Fix bug in
TransactionLineItemRequest
to use decimal, rather than double, for currency amount field. This is a backwards incompatible bug fix. - Add
SourceMerchantId
property toWebhookNotification
s if present - Add support for
profile_id
in Transaction#create options for VenmoAccounts
- Change namespacing of Rakefile, so that Mono tests are run with
rake mono:test:all
and Core tests are run withrake core:test:all
- Add support for Level 3 summary parameters
shippingAmount
,discountAmount
, andshipsFromPostalCode
- Add support for transaction line items
- Add support for tagged evidence in
DisputeGateway#AddTextEvidence
andAddTextEvidenceAsync
(Beta release)
- Deprecate
OAuthGateway::ComputeSignature
- Fix spec to expect PayPal transactions to move to settling rather than settled
- Fix absolute Url being passed to
SetWebProxy
in .NET Core
- Add GrantedPaymentInstrumentUpdate webhook support
- Add loginOnly parameter to OAuth connect URL
- 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
- Add
BinData
toPaymentMethodNonce
- Add
IDEAL_PAYMENT
toPaymentInstrumentType
- Improve async for .NET 4.5 (Thanks, @onlyann)
- Add additional properties to PaymentMethodNonce
- 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 information to Transaction if present
- Add
SubmitForSettlement
forSubscriptionGateway.RetryCharge
- Add
options
->paypal
->description
for creating and updating subscriptions - Add
Dispute
API - Add
DocumentUpload
API - Add
Bin
toApplePayCard
- Add
deviceDataCaptured
field toRiskData
- Fix bug where
DeviceData
was not included inCustomerRequest
- Fix bug where
VisaCheckoutCards
andMasterpassCards
were not included inCustomer
- Add support for upgrading a PayPal future payment refresh token to a billing agreement
- Add support for additional PayPal options when vaulting a PayPal Order
- Add Visa Checkout support
- Add ConnectedMerchantStatusTransitioned and ConnectedMerchantPayPalStatusChanged Auth webhooks
- Parse access tokens properly
- Remove unused dependencies
- Add async support (thanks, @ejohnsonTKTNET and @ebonilla40!)
- Update Accept-Encoding and User-Agent headers in dotnet core
- Add stricter XML processing
- Stop sending account_description field from us bank accounts
- Add multi-currency support for OAuth Onboarded Merchants
- Add functionality to list all merchant accounts for a merchant with
MerchantAccount.all
- Add payer_status accessor to paypal_details object
- Add option
skip_advanced_fraud_check
for transaction flows
- Allow custom verification amount in
PaymentMethodOptionsRequest
- Allow
PaymentMethod.find(token)
to returnUsBankAccount
- Make Newtonsoft.json a test-only dependency
- Change compatibility from .NET Standard 1.6 to 1.3 (Thanks, @hughbe)
- Add
UsBankAccount
payment method - Throw
ConfigurationException
for missing credentials
- Add createdAt to SubscriptionSearch
- Add cannot clone marketplace transaction error
- Add PlanId to subscription status event
- Add grant and revoke APIs to PaymentMethodGateway
- Support TLS v1.2
- Support netstandard 1.3
- Throw configuration exception for empty strings
- Change compatibility with .NET Core 1.0 to .NET Standard 1.6 (Thanks, @thoughtentity!)
- Change to dotnet pack deployment strategy (Thanks, @devscott!)
- Remove compatibility with .NET 4.5.1 and below
- Add compatibility with .NET Core 1.0
- Add validation error for verifications with sub-merchants
- Expose credit card product ID
- Add currency iso code
- Update ValidationErrors.DeepAll() to be virtual
- Accept WebProxy in Configuration
- Set PaymentInstrumentType to VenmoAccount for Pay with Venmo transactions
- Add support for passing risk data on Customer and Transaction requests
- Add support for passing
transaction_source
to set MOTO or recurring ECI flag
- Set DefaultPaymentMethod when updating Customer
- Allow passing OAuth scopes to merchant create
- Add OrderId to refund
- Add 3DS Pass thru support
- Expose ids in resource collections
- Add method of revoking OAuth access tokens
- Add Transaction
UpdateDetails
- Support for Too Many Request response code
- Add support for custom HttpWebRequest in configuration
- Add landing_page param to ConnectUrlRequest
- 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 establishedOn to partner business data
- Add timeout attribute to Configuration
- Add shared vault parameters
- Add AccountUpdaterDailyReport webhook parsing
- Add Strong Naming support
- Fix proxy setup to only set proxy if it is set in configuration. Thanks @chrisjdiver
- Support setting environment with just a string
- Add support for easy mocking during testing (thanks @richardlawley)
- Add new error codes
- Add VenmoAccount payment method
- Add
CHECK
webhook kind
- Add support for partial settlement transactions
- Add customer_id to payment methods
- Add sourceDescription attribute to Android Pay and Apple Pay
- Add new Android Pay test nonces
- Add BillingAgreementId to PayPalAccount
- Add support for amex rewards transactions
- Add new test payment method nonces
- Add methods to change transaction settlement status in sandbox
- Fix issue with Dispute Status of Open returning Unrecognized
- Add Description parameter for PayPal email receipts to be passed on Transaction.Sale request
- Add PayPal transaction fees and transaction fee currency in Transaction.Sale response
- Add Transaction Details to Dispute webhook notifications
- Add support for OAuth based authentication
- Add support for Android Pay
- Validate webhook challenge payload
- Add 3DS info the server side
- Add 3D Secure transaction fields
- Add ability to create nonce from vaulted payment methods
- Add Coinbase support
- Surface Apple Pay payment instrument name
- Support making 3D Secure required
- Surface subscription status events
- Allow PayPal fields in transaction.options.paypal
- Add error code constants
- 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
- Add support for dispute webhooks
- Add 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
- Properly expose SsnLastFour for merchant accounts
- Disbursement Webhooks
- Allow a service fee of 0 in transaction create.
- Expose current billing cycle on add ons and discounts.
- Accept billing address id in transaction create.
- Merchant account find API
- Merchant account update API
- Merchant account create API v2
- Use new Braintree Gateway API endpoints
- Adds support for Partnerships
- Add unrecognized to enumerables, fraud to GatewayRejectionReason
- Fixed typo with DeviceData.
- Fixed typo in MerchantAccount.
- 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 applicant details.
- Adds merchant account phone error code.
- Expose image_url attribute on credit cards
- Adds device data to transactions, customers, and credit cards.
- Set .NET Framework compatibility back to 2.0+
- Adds disbursement details to transactions.
- Adds image url to transactions.
- Adds Venmo Touch support.
- Fixes bug with zero dollar subscriptions.
- Adds channel field to transactions.
- Adds country of issuance and issuing bank
- Add 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
- Add prepaid attribute to credit card (possible values include Yes, No, Unknown)
- Fix warnings for Visual Studio
- 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
- Changes
internal
functions toprotected internal
functions for easier unit testing
- Exposes plan_id on transactions
- Fixed Date parsing for hosts ahead of UTC (thanks to Jasmin Muharemovic)
- 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
- Added SettlementBatchSummary
- 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:
- TaxAmount
- TaxExempt
- PurchaseOrderNumber
- Added BillingAddressId to CreditCardRequest
- Allow searching on Subscriptions that are currently in a trial period using InTrialPeriod
- Added support for non-US cultures. Decimal values are now correctly formatted for the gateway and parsed for the client.
- Added ability to perform multiple partial refunds on Transactions
- Added RevertSubscriptionOnProrationFailure flag to Subscription update that specifies how a Subscription should react to a failed proration charge
- Deprecated Transaction RefundId in favor of RefundIds
- Deprecated Subscription NextBillAmount in favor of NextBillingPeriodAmount
- Added new properties to Subscription:
- Balance
- PaidThroughDate
- NextBillingPeriodAmount
- Added AddOns/Discounts
- Enhanced Subscription search
- Enhanced Transaction search
- Made gateway operations threadsafe when using multiple configurations
- Added VerificationStatus Enumeration
- Added EXPIRED and PENDING statuses to Subscription
- Allowed ProrateCharges to be specified on Subscription update
- Added AddOn/Discount details to Transactions that were created from a Subscription
- All Braintree Exceptions now inherit from BraintreeException superclass
- Added new properties to Subscription:
- BillingDayOfMonth
- DaysPastDue
- FirstBillingDate
- NeverExpires
- NumberOfBillingCycles
- Updated the Environment class to lazily use environment variables -- this enables use when access to environment variables is restricted
- Added ability to specify Country using CountryName, CountryCodeAlpha2, CountryCodeAlpha3, or CountryCodeNumeric
- Added GatewayRejectionReason to Transaction and Verification
- Added Message to Result
- Added BuildTrData method to TransparentRedirectGateway
- Added unified TransparentRedirect url and confirm methods and deprecated old methods
- Renamed CreditCard.Default to IsDefault
- Added methods to CreditCardGateway to allow searching on expiring and expired credit cards
- 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)
- Return AvsErrorResponseCode, AvsPostalCodeResponseCode, AvsStreetAddressResponseCode, CurrencyIsoCode, CvvResponseCode with Transaction
- Return CreatedAt, UpdatedAt with Address
- Allow verification against a specified merchant account when creating or updating a CreditCard
- Return SubscriptionId with Transaction
- 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 ApproximateCount to MaximumCount 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
- Properly handle Transaction Options in TR Data
- 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
- Backwards incompatible change: CreditCardRequest.BillingAddress has changed from type AddressRequest to CreditCardAddressRequest
- Updated IsSuccess() on transaction results to return false on declined transactions
- Search results now implement IEnumerable and will automatically paginate data
- Escape all XML
- Updated quick start example in README
- Added subscription search
- Return associated subscriptions when finding credit cards
- Added option to change default credit card for a customer
- Added an All method to ValidationErrors to return List of all errors at that level
- Added a DeepAll method to ValidationErrors to return List of all errors at that level and all errors below
- Renamed DeepSize() to DeepCount
- Added ProcessorAuthorizationCode to Transaction
- Allow setting MerchantAccountId when creating or updating subscriptions
- 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
- Fixed bug in TotalPages if there are zero total items