# Changelog

## 3.36.0

- Add `acceptPartialAuthorization` to `TransactionGateway` and `partiallyAuthorized` in `Transaction`
- Deprecate transactions for `visa_checkout_card` and maintain search functionality
- Add `achType` and `requestedAchType` to `Transaction`
- Add `achType` to `TransactionOptionsUsBankAccount`

## 3.35.0

- Add `middleName` to sender and receiver, and `dateOfBirth` to sender in transfer on Transaction
- Change error path from authorizationAdjustment to transaction for authorization adjustment validation errors
- Filter `CreditCardVerification.search()` to only return credit card verifications

## 3.34.0

- Add Bank Account Instant Verification functionality for Open Banking flow
  - Add `BankAccountInstantVerificationGateway` with `createJwt()` method
  - Add `BankAccountInstantVerificationJwt` and `BankAccountInstantVerificationJwtRequest` classes
  - Add `bankAccountInstantVerification` gateway to main `BraintreeGateway`
- Add ACH mandate support for US Bank Account transactions
  - Add `achMandateText` and `achMandateAcceptedAt` parameters to transaction gateway
  - Add `usBankAccount` parameters support in transaction creation
- Add `InstantVerificationAccountValidation` method to `UsBankAccountVerification.VerificationMethod`
- Add `achRejectReason` to `Transaction`
- Add `sender` and `receiver` to `transfer` in `Transaction`
- Add `isDeviceToken` to `ApplePayCard` and `ApplePayDetails`
- Add `paymentAccountReference` to `CreditCard`, `ApplePayCard`, `AndroidPayCard`, and `CreditCardVerification`
- Add missing `transfer` validation error codes in `Transaction`
- Add `processingMerchantCategoryCode` to `TransactionRequest`

## 3.33.1

- Remove unneeded npm dependency

## 3.33.0

- Add `upcomingRetryDate` to `Transaction`
- Add `remainingFileEvidenceStorage` to Dispute
- Add `transaction_retried` webhook
- Add transfer type to `Transaction`

## 3.32.0

- Add Session Id to Customer Recommendations Payload

## 3.31.0

- Add `accountInformationInquiry` to
  - `Customer.create` and `Customer.update`
  - `CreditCardVerificationGateway`
- Enhancements to PayPal customer recommendations
  - Create a session and get recommendations in one call
  - Hash customer email and phone number
- Add business, consumer, corporate, and purchase from bin data in credit card responses

## 3.30.0

- Removes marketplace features
- Add support for capturing payment facilitator and sub-merchant details with transactions

## 3.29.0

- Fixes export for GraphQL classes
- Updates comments for customer session
- Add support for `PayPalPaymentResource` requests
- Add prepaid_reloadable from bin data in credit card responses

## 3.28.0

- Add support for creating and updating PayPal customer session
- Add support for getting PayPal customer recommendations

## 3.27.0

- Add recipient/contact info: `recipient_email`and `recipient_phone` to `Transaction

## 3.26.0

- Add `fail_on_duplicate_payment_method_for_customer` option to
  - `ClientToken`
  - `PaymentMethod`
  - `CreditCard`
- Add `blik_aliases` to LocalPaymentCompleted webhook and LocalPaymentDetails
- Deprecate `SamsungPayCard`

## 3.25.0

- Add `payerName`, `bic` and `iban_last_chars` to LocalPaymentCompleted webhook
- Add `editPaypalVaultId` to PayPalAccount
- Add `aniFirstNameResponseCode` and `aniLastNameResponseCode` to CreditCardVerificationGateway
- Add `shippingTaxAmount` to Transaction
- Add `networkTokenizationAttributes` to `Transaction.sale`
- Add error code `NetworkTokenizationAttributeCryptogramIsRequired` for attribute `cryptogram` in `networkTokenizationAttributes`

## 3.24.0

- Add `foreignRetailer` to Transaction
- Add `internationalPhone` to `Address` and `Customer`
- Add `fundingSourceDescription` to PayPalAccount
- Add missing `AndroidPayCard` error code
- Add `RefundFailed` to `WebhookNotification.Kind`
- Add `finalCapture` to Transaction `_submitForPartialSettlementSignature`
- Deprecate `paypalTrackingId` in favor of `paypalTrackerId`

## 3.23.0

- Add `domains` parameter support to `ClientToken.generate`
- Refactor key validation in `ClientTokenGateway`

## 3.22.0

- Add `UnderReview` to `Dispute.Status`
- Add `DisputeUnderReview` to `WebhookNotification.Kind`

## 3.21.0

- Add `packageTracking` method to `transaction_gateway` to make request to add tracking information to transactions
- Add `Packages` to Transaction object
- Add `upcCode`, `upcType`, and `imageUrl` to `lineItems` in `transaction_gateway`
- Add `process_debit_as_credit` to `credit_card` field in `transaction_gateway` for transaction `options`

## 3.20.0

- Add support for `phoneNumber` params in `Customer.create` and `Transaction.sale` requests
- Add parameters validation check for `CreditCardVerificationGateway` create request

## 3.19.0

- Add `dateOfBirth` and `countryCode` to `industry_data`
- Add `verificationAddOns` to `PaymentMethod` create options for ACH `NetworkCheck`
- Add `MetaCheckoutCard` and `MetaCheckoutToken` to Transaction object

## 3.18.0

- Add `arrivalDate` and `ticketIssuerAddress` to `Transaction.sale` request
- Add `SubscriptionBillingSkipped` to `WebhookNotification.Kind`
- Add `debitNetwork` to `Transaction.sale`
- Add `DebitNetwork` enum to `CreditCard`
- Add `debitNetwork` to search criteria in `Transaction.search`

## 3.17.0

- Add `merchantTokenIdentifier` and `sourceCardLast4` to `ApplePayCard` and `ApplePayDetail`
- Add `processing_overrides` to `Transaction.sale` options

## 3.16.0

- Add `merchant_advice_code` and `merchant_advice_code_text` to Transaction object

## 3.15.0

- Update `xml2js` to v0.5.0

## 3.14.0

- Add `intendedTransactionSource` to `CreditCardVerificationGateway`
- Add `paymentMethodNonce` to `CreditCardVerificationGateway`
- Add `threeDSecureAuthenticationId` to `CreditCardVerificationGateway`
- Add `threeDSecurePassThru` to `CreditCardVerificationGateway`
- Deprecated `threeDSecureToken` in favor of `threeDSecureAuthenticationId`
- Deprecate `venmoSdkPaymentMethodCode` and `venmoSdkSession` in `TransactionGateway`, `CustomerGateway`, and `CreditCardGateway`
- Add support for subscriptions in SEPA direct debit accounts

## 3.13.0

- Add `SEPADirectDebitAccount` payment method
- Add `SEPADirectDebitAccountDetails` to transaction object
- Add `SEPADirectDebitNonceDetails` to payment method nonce object
- Add `SEPA_DIRECT_DEBIT_ACCOUNT` to payment instrument type
- Add `SepaDirectDebitAccount` to customer object
- Add `sepaDebitPaypalV2_OrderId` to transaction search text fields
- Add SEPA Direct Debit specific error codes
- Add SEPA Direct Debit array to customer object
- Bump ansi-regex from 3.0.0 to 3.0.1
- Bump eslint-config-prettier from 8.4.0 to 8.5.0
- Bump prettier from 2.5.1 to 2.7.1
- Add `preDisputeProgram` to `Dispute` and `DisputeSearch`
- Add `AutoAccepted` to `Dispute.Status`
- Add `DisputeAutoAccepted` to `WebhookNotification.Kind`
- Deprecate `chargebackProtectionLevel` and add `protectionLevel` to `Dispute`

## 3.12.0

- Add support for `ExchangeRateQuote` API
- Add `LiabilityShift` class and `liabilityShift` to RiskData
- Add `ReasonCode` to search for transactions that have ach return response reason code associated with them.
- Add `reasonCode` to search criteria in TransactionSearch`
- Add `achReturnResponsesCreatedAt` to `TransactionSearch`

## 3.11.0

- Added test for `retried` field on transaction.sale response

## 3.10.0

- Add `PaymentMethodCustomerDataUpdated` webhook notification support

## 3.9.0

- Add support for passing a custom [http agent](https://nodejs.org/api/http.html#class-httpagent) in Configuration (thanks @blugavere & @James1x0!)

## 3.8.0

- Add support for `TransactionReview` webhook notification
- Add plan create/update/find API endpoint

## 3.7.0

- Add error code `TaxAmountIsRequiredForAibSwedish` for attribute `tax_amount` in `transaction` key for AIB:Domestic transactions in Sweden
- Add `exchangeRateQuoteId` to `TransactionGateway`
- Add `ExchangeRateQuoteIdIsTooLong` to `validation_error_codes`
- Add the following fields to `AndroidPayCard` and `ApplePayCard`:
  - `commercial`
  - `debit`
  - `durbinRegulated`
  - `healthcare`
  - `payroll`
  - `prepaid`
  - `productId`
  - `countryOfIssuance`
  - `issuingBank`
- Add `localPaymentFunded` and `localPaymentExpired` webhook notication support

## 3.6.0

- Fix issue where webhook data passed to `LocalPaymentReversed` webhook class is missing
- Add `grantedPaymentInstrumentUpdate` to `WebhookNotification`

## 3.5.0

- Add `paymentReaderCardDetails` parameter to `Transaction.sale`
- Add `skipAdvancedFraudChecking` to `Customer.create` and `Customer.update`
- Add webhook sample for `GrantedPaymentMethodRevoked`
- Add `venmoAccountDetails` to `Transaction`
- Add `chargebackProtectionLevel` into dispute search

## 3.4.0

- Add `taxIdentifiers` parameter to `Customer.create` and `Customer.update`

## 3.3.0

- Add `LocalPaymentReversed` webhook notification support
- Support all options for `gateway.transaction.submitForSettlement` and `gateway.transaction.submitForPartialSettlement`
- Fix issue where options passed to `gateway.transaction.submitForSettlement` were being ignored (closes #168)
- Fix issue where options passed to `gateway.transaction.submitForPartialSettlement` were being ignored
- Add `storeId` and `storeIds` fields to `Transaction.search`
- Add `Transaction.adjustAuthorization()` method to support multiple authorizations for a single transaction

## 3.2.2

- Update `dateformat` module to v4.5.1

## 3.2.1

- Remove unnecessary `user` package (#186)

## 3.2.0

- `plan.all`, `discount.all` and `addOn.all` return collections of plan, discount and addOn objects respectively. (fixes #178)
- Deprecate `deviceSessionId` and `fraudMerchantId` in the `CrediteCardGateway`, `CustomerGateway`, `PaymentMethodGateway`, and `TransactionGateway` classes

* Add `installments` to `Transaction` requests
* Add `count` to `installments`
* Add `scaExemption` to `TransactionGateway`
* Add exceptions defined in `exceptions.js` as an export (thanks @jtcooper10!)

## 3.1.0

- Add `AcquirerReferenceNumber` to `Transaction`
- Deprecate `recurring` in `transaction.sale()` requests

## 3.0.0

- Add `RequestTimeoutError` and `GatewayTimeoutError` exceptions
- Remove several no-longer-used dependencies (underscore, semver and readable-stream)
- Breaking Changes
  - Rename `braintree/lib/test` to `braintree/lib/test_values` to avoid accidental removal of directories named `test` (fixes #98 and #174)
  - Remove deprecated iDEAL, Coinbase, and Transparent Redirect
  - Remove deprecated `connect` method
  - Config class now throws an error when token environment does not match passed environment
  - Remove `GrantedPaymentInstrumentUpdate` (deprecated in 2.16.0)
  - Remove `InvalidTransparentRedirectHashError`
  - Remove `SEPA` test nonce
  - Remove deprecated `tag` parameter from dispute calls
  - Remove deprecated validation error codes:
    - `DiscountAmountMustBeGreaterThanZero`
    - `UnitTaxAmountMustBeGreaterThanZero`
    - `SEPABankAccount`:
      - `IBANIsRequired`
      - `BICIsRequired`
      - `AccountHolderNameIsRequired`
    - `SEPAMandate`:
      - `AccountHolderNameIsRequired`
      - `BICIsRequired`
      - `IBANIsRequired`
      - `TypeIsRequired`
      - `IBANInvalidCharacter`
      - `BICInvalidCharacter`
      - `BICLengthIsInvalid`
      - `BICUnsupportedCountry`
      - `IBANUnsupportedCountry`
      - `IBANInvalidFormat`
      - `BillingAddressConflict`
      - `BillingAddressIdIsInvalid`
      - `TypeIsInvalid`
    - `AmountDoesNotMatchIdealPaymentAmount`
    - `IdealPaymentNotComplete`
    - `IdealPaymentsCannotBeVaulted`
    - `MerchantAccountDoesNotMatchIdealPaymentMerchantAccount`
    - `OrderIdDoesNotMatchIdealPaymentOrderId`
    - `OrderIdIsRequiredWithIdealPayment`
  - Rename `DownForMaintenanceError` to `ServiceUnavailableError`
  - Transaction searches throw `UnexpectedError` instead of `DownForMaintenanceError` when search response yields unexpected results
  - Remove Masterpass Card support
  - Remove Amex Express Checkout Card support
  - Rename `braintree/lib/test` to `braintree/lib/test_values` to avoid accidental removal of directories named `test` (fixes #98 and #174)
  - Fix bug where `expired` and `expiringBetween` methods on `CreditCardGateway` did not return full credit card results
  - Bump API version to support declined refund objects.

## 2.24.0

- Add \* `GatewayRejectionReason.RiskThreshold` to `Transaction`
- Update @braintree/wrap-promise to v2.1.0
- Add `networkTransactionId` to `CreditCardVerification`
- Add `retrievalReferenceNumber` to `Transaction`
- Add `productSku` to `Transaction`
- Add `phoneNumber` and `shippingMethod` to `Address`
- Add `customerDeviceId`, `customerLocationZip`, and `customerTenure` to `RiskData`
- Add validation errors:
  - `Transaction.ProductSkuIsInvalid`
  - `Transaction.ShippingMethodIsInvalid`
  - `Transaction.ShippingPhoneNumberIsInvalid`
  - `Transaction.BillingPhoneNumberIsInvalid`
  - `RiskData.CustomerBrowserIsTooLong`
  - `RiskData.CustomerDeviceIdIsTooLong`
  - `RiskData.CustomerLocationZipInvalidCharacters`
  - `RiskData.CustomerLocationZipIsInvalid`
  - `RiskData.CustomerLocationZipIsTooLong`
  - `RiskData.CustomerTenureIsTooLong`
- Add `processedWithNetworkToken` to `Transaction`
- Add `isNetworkTokenized` to `CreditCard`

## 2.23.0

- Add `threeDSecurePassThru` parameters to `Customer.create`, `PaymentMethod.create`, `CreditCard.create`, `Customer.update`, `PaymentMethod.update` and `CreditCard.update`
- Add `threeDSecureAuthenticationId` support on transaction sale
- Add ThreeDSecure test payment method nonces
- Add test `AuthenticationId`s Unreleased
- Add `DisputeAccepted`, `DisputeDisputed`, and `DisputeExpired` webhook constants
- Add `Authentication Insight` support to payment method nonce create
- Add `recurringCustomerConsent` and `recurringMaxAmount` to `authenticationInsightOptions` for `PaymentMethodNonce.create`
- Add `FileIsEmpty` error code

## 2.22.0

- Add `RefundAuthHardDeclined` and `RefundAuthSoftDeclined` to validation errors
- Add GraphQL ID to `CreditCardVerification`, `Customer`, `Dispute`, and `Transaction`
- Add level 2 processing options `purchaseOrderNumber`, `taxAmount`, and `taxExempt` on transaction submitForSettlement
- Add level 3 processing options `discountAmount`, `shippingAmount`, `shipsFromPostalCode`, and `lineItems` on transaction submitForSettlement

## 2.21.0

- Add `AmountNotSupportedByProcessor` validation error to Transaction
- Add `ProcessorDoesNotSupportMotoForCardType` to validation errors
- Fix issue where `SettlementBatchSummary` did not include some custom fields

## 2.20.0

- Add Venmo `TokenIssuance` gateway rejection reason

## 2.19.0

- Add `PostalCodeIsRequiredForCardBrandAndProcessor` to validation errors
- Add `PayPalHereDetails` to Transaction
- Add `xid`, `cavv`, `eciFlag`, `dsTransactionId`, and `threeDSecureVersion` to `ThreeDSecureInfo`
- Add `ThreeDSecureInfo` to `CreditCardVerification`
- Add `GraphQLClient` to `BraintreeGateway` class

## 2.18.0

- Add `captureId` field to localPayment
- Add `refundId` field to localPayment
- Add `debugId` field to localPayment
- Add `transactionFeeAmount` field to localPayment
- Add `transactionFeeCurrencyIsoCode` field to localPayment
- Add `refundFromTransactionFeeAmount` field to localPayment
- Add `refundFromTransactionFeeCurrencyIsoCode` field to localPayment
- Add `threeDSecureVersion`, `authenticationResponse`, `directoryResponse`, `cavvAlgorithm` and `dsTransactionId` to 3DS pass thru fields
- Add `payerInfo` field to paymentMethodNonce
- Add `roomTax` support on transaction sale
- Add `noShow` support on transaction sale
- Add `advancedDeposit` support on transaction sale
- Add `fireSafe` support on transaction sale
- Add `propertyPhone` support on transaction sale
- Add `additionalCharges` support on transaction sale

## 2.17.0

- Update @braintree/wrap-promise to v2.0.0
  - Errors thrown inside developer provided callback functions will log in the console instead of killing the node process [wrap-promise#4](https://github.com/braintree/wrap-promise/issues/4)
- Add `refundFromTransactionFeeAmount` field to paypalAccount
- Add `refundFromTransactionFeeCurrencyIsoCode` field to paypalAccount
- Add `LocalPaymentDetails` to transactions
- Add `revokedAt` field to paypalAccount
- Add support for `PaymentMethodRevokedByCustomer` webhook
- Add `payment_method_nonce` field to `LocalPaymentCompleted` webhook
- Add `transaction` field to `LocalPaymentCompleted` webhook

## 2.16.0

- Deprecate `GrantedPaymentInstrumentUpdate` and add `GrantorUpdatedGrantedPaymentMethod` and `RecipientUpdatedGrantedPaymentMethod`
- Add `accountType` to `Transaction`, `PaymentMethod`, and `CreditCardVerification`.

## 2.15.0

- Add `bin` field to `paymentMethodNonceDetails`
- Add Error indicating pdf uploads too long for dispute evidence.
- Add `GrantedPaymentMethodRevoked` webhook response objects
- Add ability to instantiate a new Braintree Gateway directly
- Add `GraphQL` to main module (`require('braintree').GraphQL`)

## 2.14.0

- Add `processor_response_type` to `Transaction`, `AuthorizationAdjustment`, and `CreditCardVerification`.
- Add `authorizationExpiresAt` to `Transaction`
- Fix `webhookNotification.grantedPaymentInstrumentUpdate` typo to be the correct name
- Allow PayPal payment ID and payer ID to be passed during transaction create
- Add `fraudServiceProvider` field in `riskData`
- Add `travel_flight` support to industry-specific data

## 2.13.1

- Fix `transaction.lineItems` method when returned from transaction searches (#146)

## 2.13.0

- Add missing UsBankAccountVerification export
- Fix dispute results in transactions not showing the correct status sometime
- Fix issue with request lib when used with testing tools (#147)
- Add `externalVault` option to transaction sale
- Visa transactions will now contain a `networkTransactionIdentifier` in the response
- Add `LocalPaymentCompleted` webhook notification support

## 2.12.0

- Add subscription charged unsuccessfully sample webhook to webhook testing gateway
- Add `processor_response_code` and `processor_response_text` to authorization adjustments subfield in transaction response.
- Add `Dispute` to top level `braintree` object
- Add Samsung Pay support
- Add processor respone code and processor response text to authorization adjustments subfield in transaction response.

## 2.11.0

- Throw error if invalid Payload on `CustomerGateway.create`
- Allow payee ID to be passed in options params for transaction create
- Add `merchant_id` alias to ConnectedMerchantStatusTransitioned and ConnectedMerchantPayPalStatusChanged Auth webhooks
- Fix webhook testing sample xml for dispute webhooks to include `amount-won` and `amount-disputed`
- `Config` creation with `AccessToken` should not require `environment`. An `Error` will be logged if optional `environment` does not match with `AccessToken`'s parsed environment
- Add processor respone code and processor response text to authorization adjustments subfield in transaction response.

## 2.10.0

- Bank Account verifications API

## 2.9.0

- Add `oauthAccessRevocation` to `WebhookNotification`s
- Add support for dispute search by `customerId`, `effectiveDate`, and `disbursementDate`
- Remove `sepaMandateType` and `sepaMandateAcceptanceLocation` params from `ClientTokenGateway`
- Add support for categorized dispute evidence

## 2.8.0

- Fix binary multipart uploads.
- Add support for `association_filter_id` in `Customer#find`

## 2.7.0

- Fixes issue where some response objects were not serializable (#126)
- Throw error if signature or payload is null in `WebhookNotificationGateway`.
- Add support for `profile_id` in Transaction#create options for VenmoAccounts.

## 2.6.0

- Deprecated `LineItem/DiscountAmountMustBeGreaterThanZero` error in favor of `DiscountAmountCannotBeNegative`.
- Deprecated `LineItem/UnitTaxAmountMustBeGreaterThanZero` error in favor of `UnitTaxAmountCannotBeNegative`.
- Add `sourceMerchantId` to `WebhookNotification`s if present
- Add support for `taxAmount` field on transaction `lineItems`
- Add `lineItems` method to `Transaction`

## 2.5.0

- Add support for Level 3 summary parameters: `shippingAmount`, `discountAmount`, and `shipsFromPostalCode`
- Fix spec to expect PayPal transactions to move to settling rather than settled
- Add support for transaction line items
- Add support for tagged evidence in `DisputeGateway#addTextEvidence` (Beta release)

## 2.4.0

- Add Too Many Requests error
- Add GrantedPaymentInstrumentUpdate webhook support
- 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 Visa Checkout and Masterpass payment instrument types (Thanks @yijielee)

## 2.3.0

- Add AuthorizationAdjustment class and `authorizationAdjustments` to Transaction
- Coinbase is no longer a supported payment method. `PaymentMethodNoLongerSupported` will be returned for Coinbase operations.
- Add facilitated details to Transaction if present
- Add `submit_for_settlement` to `Subscription.retryCharge`
- Add `options` -> `paypal` -> `description` for creating and updating subscriptions
- Add Dispute API
- Add DocumentUpload API
- Add `deviceDataCaptured` field in `riskData`
- Add support for upgrading a PayPal future payment refresh token to a billing agreement

## 2.2.0

- Fixes wrap-promise issue (closes #102) - Thanks @targunp
- Add iDEAL to PaymentInstrumentTypes
- Adds support for gzip

## 2.1.1

- Fixes request timeout issue (closes #99)

## 2.1.0

- All async methods (with the exception of search methods) return a promise if no callback is provided
- Add support for additional PayPal options when vaulting a PayPal Order
- Add iDEAL support
- Add Visa Checkout Support
- Add Masterpass support
- Add ConnectedMerchantPayPalStatusChanged and ConnectedMerchantStatusTransitioned webooks

## 2.0.2

- Fix a bug where merchantAccounts.all would attempt to fetch too many pages of merchant accounts
- Fix a bug where OAuth connect urls did not properly escape special characters

## 2.0.1

- Fix bug where SDK version number was not being sent in requests

## 2.0.0

- Drop support for Node versions < 4
- `transaction.submitForSettlement` can no longer take an arbitrary number of arguments
- Call callback with an error when invalid keys are used instead of logging a deprecation warning

## 1.47.0

- Fix a bug where xml parsing errors were not being caught
- Stop sending account_description field from us bank accounts

## 1.46.0

- Add functionality to list all merchant accounts for a merchant with `merchantAccount.all`

## 1.45.0

- Add multi-currency updates to merchants onboarded through Braintree Auth

## 1.44.0

- Update UsBank tests to use legal routing numbers
- Add option `skip_advanced_fraud_check` for transaction flows
- Raise an exception when advanced search times out

## 1.43.0

- Spec updates for deprecated keys
- Added error handling for missing configuration credentials
- Fix `UsBankAccount` support for `Customer`s

## 1.42.0

- Add 'UsBankAccount' payment method

## 1.41.0

- Add support for passing risk data
- Allow updating default_payment_method on customer
- Support passing `transaction_source` to set MOTO or recurring ECI flag

## 1.40.0

- Add OrderId to refund
- Add 3DS Pass thru support
- Export missing Payment Instrument Types (Thanks, @kamilwaheed)

## 1.39.0

- Add method of revoking OAuth access tokens

## 1.38.0

- Add transaction `UpdateDetails`
- Add multi-currency support for merchant `create`
- Add logic to stop duplicate callbacks in timeouts (closes issue #76)

## 1.37.1

- Fix issue when checking the instance of a customer's payment method

## 1.37.0

- Add timeout attribute to config
- Add AddOns.all method

## 1.36.0

- Add AccountUpdaterDailyReport webhook parsing

## 1.35.1

- Fix bug in test transaction webhooks

## 1.35.0

- Add verification create API
- Add options to `submit_for_settlement` transaction flows

## 1.34.0

- Update version number

## 1.33.0

- Add deprecation warnings for unknown parameters in `submitForSettlement`
- Add transaction validation errors ProcessorDoesNotSupportUpdatingOrderId and ProcessorDoesNotSupportUpdatingDescriptor

## 1.32.0

- Add payment method revoke
- Make payment method grant return a result object

## 1.31.0

- Add VenmoAccount
- Add support for Set Transaction Context supplementary data
- Add check webhook kind constant

## 1.30.0

- Add transaction data to subscription charged successful webhook
- Add new ProcessorDoesNotSupportAuths error
- Export validation error codes
- Add constants for dispute kind
- Add support for partial settlement transactions
- Add date-opened and date-won to dispute webhooks
- Expose amex express checkout method

## 1.29.0

- Add sourceDescription to Android Pay and Apple Pay
- Add billingAgreementId to PaypalAccount
- Add support for Amex rewards transactions

## 1.28.0

- Add new test payment method nonces
- Allow passing description on PayPal transactions
- Add methods to change transaction settlement status in sandbox

## 1.27.0

- Add oauth support

## 1.26.0

- Add support for Android Pay

## 1.25.0

- Validate webhook challenge payload
- Add missing criteria to CreditCardVerification search

## 1.24.0

- Add 3DS info to server side

## 1.23.0

- Add Coinbase support
- Add support for 3DSecure
- Surface Apple Pay payment instrument name in responses

## 1.22.0

- Add error code constants
- Allow PayPal parameters inside of options.paypal

## 1.21.0

- 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

## 1.20.0

- Allow descriptor to be passed in Funding Details options params for Merchant Account create and update.

## 1.19.0

- Add additional_processor_response to transaction

## 1.18.1

- Allow payee_email to be passed in options params for Transaction create

## 1.18.0

- Added paypal specific fields to transaction calls
- Added SettlementPending, SettlementDeclined transaction statuses

## 1.17.0

- Add descriptor url support

## 1.16.0

- 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 supoort for dispute webhooks

## 1.15.0

- Support for v.zero SDKs.

## 1.14.1

- Changed Braintree exceptions to Error objects (thanks Raynos)
- Make webhook parsing more robust with newlines
- Add messages to InvalidSignature exceptions

## 1.14.0

- Include Dispute information on Transaction
- Search for Transactions disputed on a certain date

## 1.13.0

- Disbursement Webhooks

## 1.12.0

- Expose constants for advanced search

## 1.11.2

- Adds ability to consume search results as a readable stream in node versions prior to 0.10

## 1.11.1

- Adds ability to consume credit card verification search results as a readable stream

## 1.11.0

- Adds ability to consume search results as a readable stream

## 1.10.0

- Merchant account find API

## 1.9.2

- Merchant account update API
- Merchant account create API v2

## 1.9.1

- Update configuration URLs

## 1.9.0

- Adds support for Partnerships

## 1.8.0

- Adds holdInEscrow method
- Add error codes for verification not supported error
- Supports company_name and tax_id on merchant account create
- Adds cancel_release method
- Adds release_from_escrow functionality
- Adds merchant account phone error code.

## 1.7.0

- Adds disbursement details to transactions.
- Adds image url to transactions.

## 1.6.0

- Adds channel field to transactions.

## 1.5.0

- Adds country of issuance and issuing bank

## 1.4.0

- Adds verification search

## 1.3.0

- 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

## 1.2.0

- Add prepaid field to credit card (possible values include Yes, No, Unknown)

## 1.1.2

- Compatibility with Node 0.8.x

## 1.1.1

- Fix dateFormat bug with months after October in CreditCardGateway
- Fix TransparentRedirecteGateway url method to return full url (thanks to [sberryman](https://github.com/sberryman))

## 1.1.0

- Add webhook gateways for parsing, verifying, and testing incoming notifications
- Use util.log instead of sys.puts for logging
- Add underscore as a dependency
- Allow failing on credit card creation if a duplicate card already exists

## 1.0.0

- Add search functionality

## 0.5.1

- Exposes plan_id on transactions

## 0.5.0

- Update to be compatible with Node 0.6.6 and replace o3-xml with xml2js (special thanks to [thepatrick](https://github.com/thepatrick))
