braintree-web
Version:
A suite of tools for integrating Braintree in the browser
1,728 lines (1,385 loc) • 70.8 kB
Markdown
# CHANGELOG
## 3.117.1
- Venmo
- fix to set `cspNonce` if `allowDeskopWebLogin` is enabled
## 3.117.0
- Venmo
- Add missing analytics events for Popup Bridge
- Add `styleCspNonce` option to provide nonce to whitelist injected style in content support policy.
- Fraudnet
- Add new option `cb1` to `dataCollector.create()` to allow specifying a callback name that will be invoked when fraudnet has finished initializing.
## 3.116.3
- PayPal Checkout
- Adding public documentation for riskCorrelationId in createPayment
## 3.116.2
- Fastlane
- Previous fix for a bug that occured when `termsAndConditionsCountry` was not available for tokenization did not cover all edge cases
## 3.116.1
- Fastlane
- Fix bug that occured when `termsAndConditionsCountry` was not available for tokenization
## 3.116.0
- Fastlane
- add `termsAndConditionsCountry` in tokenization
- 3D Secure
- Remove Legacy framework as v1 has been deprecated completely
- Analytics
- Changed Popup Bridge analytics to standardize around all Braintree SDKs
## 3.115.2
- Apple Pay
- Add `isDeviceToken` to `TokenizePayload`
## 3.115.1
- Update restricted-input to v4.0.3
- Update dependencies
- UglifyJS to 3.19.3
- Update browserify task
- Setting UglifyJS `arrows` option to `false`
## 3.115.0
- Docs update
- Add `internationalPhone` option to `shippingAddressOverride` in PayPal Checkout JSDoc
- Update dependencies
- framebus to v6.0.3
- Local Payment Methods
- Allow redirect flow to work when inside an iframe
## 3.114.0
- PayPal Checkout
- Add `recipientEmail` option to `shippingAddressOverride`
- Update dependencies
- @braintree/asset-loader to v2.0.2
- @braintree/browser-detection to v2.0.2
- @braintree/iframer to v2.0.1
- @braintree/uuid to v1.0.1
- card-validator to v10.0.2
- credit-card-type to v10.0.2
- framebus to v6.0.2
- inject-stylesheet to v6.0.2
- PayPal Checkout
- Add support for `shippingCallbackUrl` in `createPayment
- Data Collector
- Deprecate Kount
## 3.113.0
- Local Payment Methods
- Fix hasTokenizationParams to account for token URL param
- Hosted Fields
- add support for `-webkit-text-fill-color` CSS rule
## 3.112.1
- Venmo
- Fix a bug where, after redirecting in the mobile web flow, we were passing in a null context ID to a graphql API call. The fix is to set the Venmo instance's venmoPaymentContextId based on resource_id in url.
## 3.112.0
- Local Payment
- Remove support of `bic` field for iDeal payments
- Update documentation for redirectUrl
- Utility Functions
- Ensure camelCaseToSnakeCase handles null values correctly
## 3.111.1
- Node.js
- Updated from Node.js v14 to Node.js v20
## 3.111.0
- Local Payment Methods
- Add Full Page Redirect
## 3.110.0
- SEPA
- Add support for new full page redirect flow
## 3.109.0
- PayPal Checkout
- Add `userAuthenticationEmail` to `createPayment` to enable MPE
## 3.108.0
- PayPal
- Support Checkout with Vault on v2 orders API
## 3.107.1
- Hosted Fields
- Fix passing through a sessionId value
## 3.107.0
- Hosted Fields
- Add support for passing through a sessionId value
- PayPal Checkout
- Enable option to pass through client-metadata-id
- Fastlane
- Add support for loading the Fastlane component in an AMD environment
- Local Payment
- Added Support for Local Payment `mbway` and `bancomatpay`
## 3.106.0
- Fraudnet
- Truncate session id to 32 characters.
## 3.105.0
- PayPal Checkout
- Add client-metadata-id as a data attribute when loading the PayPal SDK
- Google Pay
- Add string conversion for totalPrice
## 3.104.0
- Fastlane
- Add support for Fastlane.
- DataCollector
- Correlation ID now defaults to match Client Session ID if no Correlation ID is passed when creating DataCollector.
## 3.103.0
- Package updates:
- Updates @braintree/asset-loader to v2.0.1
- Updates @braintree/browser-detection to v2.0.1
- Updates @braintree/extended-promise to v1.0.0
- Updates @braintree/iframer to v2.0.0
- Updates @braintree/sanitize-url to v7.0.4
- Updates card-validator to v10.0.0
- Updates credit-card-type to v10.0.1
- Updates framebus to v6.0.0
- Updates inject-stylesheet to v6.0.1
- ThreeDS
- Update base `verifyCard` to accept amount = 0
## 3.102.0
- PayPal
- Support new `amountBreakdown` and its subfields in the `updatePayment` method
## 3.101.3
- FrameService
- Updated to limit messages sent between popup and iframe from the window parent.
## 3.101.2
- Venmo
- Fix issue introduced in previous patch that would sometimes cause the Venmo flow to crash
## 3.101.1
- Venmo
- Fix issue where the Venmo Desktop flow would sometimes report as a mobile web transaction
## 3.101.0
- Venmo
- Add support for `isFinalAmount` flag to Venmo create
- Package updates
- Updated @braintree/sanitize-url to 7.0.1
## 3.100.0
- 3D Secure
- Remove call to V1 modal as 3DS v1 is unsupported
- Local Payment
- Add support for recurrent local payment
## 3.99.2
- Venmo
- Fix race condition in previous bug fix.
## 3.99.1
- Venmo
- Fix bug where the Venmo Desktop Popup would sometimes return a tokenization error when a customer canceled within the modal.
- Package updates
- Replace `tomashanacek/gulp-envify` with `ladjs/gulp-envify` due to missing dependency (`tomashanacek/loose-envify`).
## 3.99.0
- Venmo
- Update `isBrowserSupported` to return true for iOS Chrome when `allowNewBrowserTab` is true and Venmo is not presented in an iFrame.
## 3.98.0
- Local Payment
- Add support for seamless/oneclick BLIK local payment
## 3.97.4
- Venmo
- Change overlay container to be on top of other page components and prevent click-through.
## 3.97.3
- JS Docs
- Venmo
- Add clarification to `isBrowserSupported` for iOS Chrome.
## 3.97.2
- JS Docs
- PayPal
- Add clarification to `updatePayment` options
- Apple Pay
- Updated `displayName` docs for `performValidation` to indicate that maximium length is 64 characters
## 3.97.1
- JS docs
- Add more details about content security policy
- Hosted Fields
- Fix bug where keyboard navigation would sometimes not work in FireFox
## 3.97.0
- 3D Secure
- Updated documentation for `requestVisaDAF` parameter on `verifyCard`
- SEPA
- Add support for new mandate params, `locale` and `billingAddress`
- PayPal
- Remove PayPal private url and user agreement url from PayPal configuration response as deprecated
- Venmo
- Change overlay container to `position: fixed` to cover the entire viewport.
- Package updates
- Updated @braintree/sanitize-url to 6.0.4
- Updated @braintree/browser-detection to 1.17.1
## 3.96.1
- Venmo
- Fix bug that does not receive the right `enrichedCustomerDataEnabled` flag
## 3.96.0
- Update framebus to v5.2.1
- Hosted Fields
- Remove `inputmode="numerical"` attribute from the postal code input so the alphanumerical keyboard is presented on iOS devices.
- 3D Secure
- Add `requestVisaDAF` option to `verifyCard`
- Add `customFields` param to `verifyCard`
- PayPal
- Add support for v2/orders
## 3.95.0
- 3D Secure
- Add `merchantName` option to `verifyCard`
- Venmo
- Fix `isBrowserSupported` for Venmo web desktop login
- Venmo
- Add `collectCustomerBillingAddress`, `collectCustomerShippingAddress`,
`totalAmount`, `subTotalAmount`, `discountAmount`, `taxAmount`, `shippingAmount`,
and `lineItems` params to `createVenmoPaymentContext` for rendering in Venmo paysheet
## 3.94.0
- 3D Secure
- Adds `collectDeviceData` opt-in flag for 3DS lookups
## 3.93.0
- Updated documentation in regards to 3D secure and CSP recommendations
- Local Payment
- Add support for Pay Upon Invoice local payment type: `pay_upon_invoice`
## 3.92.2
- Remove dependency on `promise-polyfill`
- Drop depenency on `@braintree/class-list`
- Drop specific behavior for Internet Explorer (IE)
- Drop handling extra async setting of Hosted Fields iframe src
- Remove special handling for IE9 keyup event in Hosted Fields
- Drop dependencies on code for checking for IE useragents
- Drop specific Frame Service IE open bug handling
- Client/All Components
- Drop support for requests on Internet Explorer 9 over the http protocol
- Package updates
- Moved cached-path-relative to devDependencies
- Moved decode-uri-component to devDependencies
- Moved json5 to devDependencies
- Moved minimist to devDependencies
- Moved terser to devDependencies
## 3.92.1
- Hosted Fields
- Fixed bug related to cardholderName having wrong inputmode
- Package updates
- Updated @braintree/sanitize-url to 6.0.2
- Updated json5 to 2.2.3
- Updated decode-uri-component to 0.2.2
- Updated terser to 4.8.1
- Updated minimist to 1.2.8
- Updated cached-path-relative to 1.1.0
## 3.92.0
- Venmo
- Fix issue resulting in blocked popups in desktop web login flow
- PayPal
- Remove `amount` calculation in `updatePayment`; now `amount` param is required.
- 3D Secure
- Clarify format of IP Address in `AdditionalInformation` object
## 3.91.0
- 3D Secure
- Add `requestedExemptionType` option to `verifyCard`
- Deprecate `exemptionRequested` option in `verifyCard`
- Made `verifyCard` BIN param required
- Add error on use of v1
- Hosted Fields
- Improved accessibility for screen readers
## 3.90.0
- Paypal
- Add support for `updatePayment`
## 3.88.6
- Venmo
- Fix Desktop Web Login flow running from an iframe
## 3.88.5
- Venmo
- Update constants to use correct deeplinking url for Venmo
## 3.88.4
- 3D Secure
- Update the regex to validate cardinal commerce domain
- Venmo Desktop
- Use latest framebus for more secure messaging
## 3.88.3
- Update framebus to v5.2.0
- Hosted Fields
- Improve iframe communication with parent page
## 3.88.2
- Sepa: fix jsdoc entry for `tokenize`
- 3D Secure: update jsdoc entry for `teardown`
- Client
- Validate graphQL url when instantiating in an iframe/popup
- Hosted Fields
- Patch `binAvailable` to only send bind detals to parent page
- Local payments
- Fix canceled or failed flow for PopupBridge use cases
## 3.88.1
- Venmo:
- fix cases where nonce payload data was missing after tokenization
## 3.88.0
- Venmo
- add `allowAndroidRecreation` for addressing Android PopupBridge use cases
- Update terminology around desktop web login
- 3D Secure
- Add check to verify acsUrl if not a cardinal commerce domain
## 3.87.0
- Venmo fix mobileWebFallback url reference
- Add support for SEPA Direct Debit
## 3.86.0
- Add support for Desktop Web Login flow
- Add support for Mobile Web Fallback
## 3.85.5
- Fix internal build issue
## 3.85.4
- Update @braintree/browser-detection to v1.14.0
## 3.85.3
- Update @braintree/sanitize-url to v6.0.0
- Update promise-polyfill to v8.2.3
- Update restricted-input to v3.0.5
- Venmo
- Fix issue where Samsung Browser was reporting as a supported browser
- Local Payments
- Fix issue where query strings from URLs with a hash fragment _before_ the query string could not be parsed correctly
- Clarify Vault Manager `options.defaultFirst` functionality in JSDoc
## 3.85.2
- Venmo
- Fix issue where iOS Chrome was reporting as a supported browser when Venmo was configured for desktop
- Improve Venmo modal UX in desktop flow
- UnionPay
- Fix typo in our GraphQL Tokenization CREDIT_CARD_BRAND_MAP
## 3.85.1
- Venmo
- Fix issue where iOS Chrome was reporting as a supported browser
## 3.85.0
- Client
- Add Elo, Hiper, and Hipercard graphQL adapters to card
tokenization responses
- Hosted Fields
- Add support for Elo, Hiper, and Hipercard in tokenization
payload
- Fix issue where Hosted Fields won't lose focus if scrolled out
of view on iOS
- Payment Request
- Add support for Elo, Hiper, and Hipercard in tokenization
payload
- Venmo
- Expose `paymentContextId` when available
## 3.84.0
- Client
- Add Elo, Hiper, and Hipercard to `supportedCardTypes`
- Fix issue where analytics event would report redundant errors
when client fails to set up (\#606)
- Venmo
- Adjust UI for better navigation
## 3.83.0
- Data Collector
- Updates `clientMetadataId` to `riskCorrelationId`
(`clientMetadataId` is treated as an alias)
- Hosted Fields
- Allow passing `iframeTitle` in fields configuration to customize
iframe titles for field (\#545)
- Local Payments
- Add `options.displayName` to `startPayment`
- Venmo
- Fix issue where Facebook on Android would report as a supported
browser
## 3.82.0
- Update @braintree/browser-detection to v1.12.1
- Update inject-stylesheet@v5.0.0
- Venmo
- Correct issue where the Venmo app could not be launched
succesfully from the Facebook app
- Data Collector
- Updates `correlationId` to `clientMetadataId` (`correlationId`
is treated as an alias)
## 3.81.1
- Venmo
- Fix issue where `@` was sometimes not returned in username param
upon successful tokenization
## 3.81.0
- Data Collector
- Allow passing custom correlation id when initializing data
collector
- Visa Checkout
- Add `encryptionKey` to `createInitOptions`
## 3.80.0
- 3D Secure
- deprecate `cardAdd` in `verifyCard` in favor of
`cardAddChallengeRequested` (`cardAdd` can still be used as an
alias)
- update `cardAddChallengeRequested` in `verifyCard` to allow
passing `false`
- add `type` to `verifyCard` response payload
- fix issue where v1 fallback could result in an unrecoverable
exception (\#582)
## 3.79.1
- Hosted Fields
- Fix issue where inputs could not tab forward in iOS Safari 14.5+
(tabbing backward is still broken) (\#456)
## 3.79.0
- Fix issue where SDK could not be used with server side rendering in
Node v16 (\#576)
- Hosted Fields
- Fix issue where integrations with `select` configuraitons for
expiration month and year would throw an error (\#578)
- PayPal Checkout
- Fix issue in `loadPayPalSDK` where data attributes could be
passed in with an extra `data-` prefix
- 3D Secure
- Add `cardAdd` param to `verifyCard`
- Google Pay
- Support Maestro cards
## 3.78.3
- Update restricted-input to v3.0.4
- Hosted Fields
- Fix issued where `binAvailable` event would not fire off when
pasting a new credit card number over the previous card
- Fix issue where some Mac OS input sources would not format
correctly in Safari
## 3.78.2
- Hosted Fields
- Fix issue where Safari could not programatically focus to input
(\#456)
- Fix issue where iOS Safari could not tab forward through inputs
(\#460)
- Fix issue where Desktop Safari required 2 tabs to tab forward
(\#490)
## 3.78.1
- Venmo
- Fix issue where Chrome for iOS would leave behind a blank
window, making it difficult to return to the merchant page in
manual return flow
## 3.78.0
- Update browser-detection to v1.12.0
- Apple Pay
- Support Elo cards
- Google Pay
- Support Elo cards
- Venmo
- Add `displayName` option
- Fix issue where payment contexts where not cancelled correctly
## 3.77.0
- Update @braintree/sanitize-url to v5.0.2
- Venmo
- Add `paymentMethodUsage` parameter to create
## 3.76.4
- Update card-validator to v8.1.1
- Local Payments
- Fix issue where local payment window may not open
- Fix issue where customer could get stranded when cancelling from
a mobile banking app
## 3.76.3
- Update @braintree/sanitize-url to v5.0.1
- Venmo
- Fix issue where profile id was not being passed to Venmo Desktop
flow
## 3.76.2
- Update browser-detection to v1.11.1
- Hosted Fields
- Fix issue where nested Shadow DOM elements would not allow the
iframes to initialize
- Venmo
- Fix issue where `venmo.isSupported({ allowNewBrowserTab: false })` was returning `true` for Firefox on iOS
## 3.76.1
- Local Payments
- Correct error code for a payment that fails on the bank side of
the payment (was previously reported as the customer canceling
the process)
## 3.76.0
- Venmo
- Add `useRedirectForIOS` flag as an alternate way to open Venmo
flow in iOS environments
## 3.75.0
- Hosted Fields
- Add support for `box-shadow` style (\#559)
- PayPal
- Add `offerPayLater` to PayPal `tokenize`
- PayPal Checkout
- Correct default `intent` parameter to `tokenize` in
`loadPayPalSDK` when using `vault: true`
- Venmo
- Correct issue where incorrect return url could be constructed
when merchant page url included an empty `#`
- Fix issue with `requireManualReturn` flow in iOS webviews
## 3.74.0
- PayPal Checkout
- Default `intent` parameter to `authorize` in `loadPayPalSDK`
when using `vault: true` to eliminate console error about using
`tokenize` for intent (\#544)
- Fix issue where dispatch frame would not get cleaned up when
calling `teardown` (\#555)
- Local Payments
- Add `bic` property to `options` parameter for iDEAL transactions
- Update default size of window to 1282 X 720
- Allow height and width of the window to be specified with
`windowOptions.height` and `windowOptions.width` when calling
`startPayment`
## 3.73.1
- Update framebus to v5.1.2
- Fix issue where components dependent on framebus (Hosted Fields,
PayPal, etc) would not load in IE11 (\#554)
## 3.73.0
- Venmo
- Add `cancelTokenization` for programatic cancelation of the
`tokenize` flow
- Fix issue where venmo component may not yet be ready when
beginning tokenization
- Fix issue where Venmo would fail when embedded in an iframe
## 3.72.0
- 3D Secure
- Add `accountType` param to `verifyCard`
## 3.71.1
- Update framebus to v5.1.0
- Data Collector
- Fix issue where sandbox environment was not set for Advanced
Fraud Protection
## 3.71.0
- Update promise-polyfill to v8.2.0
- Update credit-card-type to v9.1.0
- Hosted Fields
- Fix issue where card number would present as invalid when
autofilled from cardholder name field (\#547)
- Allow maxlength field to be greater than 10 for postal code
inputs (\#551)
## 3.70.0
- Local Payments
- Add `paymentTypeCountryCode` as supported field when starting a
local payment
## 3.69.0
- Update @braintree/browser-detection to v1.11.0
- Update @braintree/extended-promise to v0.4.1
- Update framebus to v5.0.0
- Hosted Fields
- Fix issue where multiple Hosted Fields instances would issue
warnings in the console about duplicate ids (closes \#533)
- PayPal Checkout
- Support displaying a customer's vaulted PayPal account when
rendering the PayPal SDK using `options.autoSetDataUserIdToken`
in the create call
## 3.68.0
- Update framebus to v4.0.4
- Apple Pay
- Support Maestro cards
- Hosted Fields
- Support `text-align` style
- PayPal Checkout
- Fix issue in `loadPayPalSDK` where PayPal SDK should have been
loaded in the head of the document instead of the body to allow
re-loading the SDK dynamically
## 3.67.0
- Update @braintree/sanitize-url to v5.0.0
- Client
- Provide `CLIENT_AUTHORIZATION_INVALID` error when client token
has expired or a tokenization key has been deactivated or
deleted
- Venmo
- Add `allowWebviews` configuration to `isBrowserSupported`
## 3.66.0
- Hosted Fields
- Fix issue where cardholder name field would present a number
keyboard on iOS devices (closes \#523)
- Fix issue where incorrect keyboard would be used for mobile
devices that do not support input formatting
- Fix issue where autocomplete cannot run multiple times (closes
\#479)
- Add autofill handling for every hosted field (closes \#480)
- PayPal Checkout
- In sandbox, use client id found in merchant configuration for
`loadPayPalSDK` instead of always using `sb`
- Allow data attributes to be passed to `loadPayPalSDK`
- Fix issue when tokenizing during `requestBillingAgreement: true`
flows
- Fix issue where `intent` used in `createPayment` was not passed
to `tokenizePayment` in PayPal JS SDK
- Venmo
- Remove use of `global` (use `window` instead for better
compatibility)
- 3D Secure
- Add `authentication-modal-render` and
`authentication-modal-close` events
## 3.65.0
- Update @braintree/event-emitter to v0.4.1
- Update card-validator to v8.1.0
- Update restricted-input to v3.0.3
- Hosted Fields
- Allow setting `margin-top`, `margin-right`, `margin-bottom`,
`margin-left` in styles (\#513)
- Allow setting `padding-top`, `padding-right`, `padding-bottom`,
`padding-left` in styles (\#513)
- Fix issue where autofilling with a Google Pay card while using
`maskInput` would fail to fill the card number
- Fix issue where fields in shadow DOM would have incorrect high
compared to container
- Add `cardholderName` as supported field
- Add `cardholderName` as a field in the tokenization payload
- PayPal Checkout
- Add `requestBillingAgreement` and `billingAgreementDetails` to
createPayment
- 3D Secure
- Add event for when a customer cancels the verification
- Add `rawCardinalSDKVerificationData` to `verifyCard` payload
## 3.64.2
- Update inject-stylesheet to v4.0.0
- Hosted Fields
- Fix issue where inputs would not load if `-moz` attributes are
used in Google Chrome (\#516)
- Fix issue where `preventAutofill` did not work in the Chrome
browser
## 3.64.1
- Update restricted-input to v3.0.2
## 3.64.0
- Use @braintree/uuid for uuid generation
- Update @braintree/browser-detection to v1.10.0
- Update card-validator to v8.0.0
- Update credit-card-type to v9.0.1
- Update iframer to v1.1.0
- Update inject-stylesheet to v3.0.0
- Update restricted-input to v3.0.1
- Update @braintree/asset-loader to v0.4.4
- Update @braintree/class-list to v0.2.0
- Update @braintree/event-emitter to v0.4.0
- Update @braintree/extended-promise to v0.4.0
- Update @braintree/sanitize-url to v4.1.1
- Update @braintree/wrap-promise to v2.1.0
- Hosted Fields
- Allow internal labels to be configured for localization with
`internalLabel` field property
- Mark hidden inputs inside iframe (used to support autofill
capabilities in browsers) with `aria-hidden`
- Fix issue where autofill would not function in Chrome for iOS
(closes \#491)
- Allow opt out of credit card autofill with `preventAutofill`
option
- Support web components (closes \#495)
## 3.63.0
- Update framebus to v4.0.2 (fixes \#504)
- Update restricted-input to v2.1.1
- Update @braintree/extended-promise to v0.3.1
- Use `window` instead of `global` in source code (closes \#401)
- PayPal Checkout
- Add `loadPayPalSDK` method to dynamically load the v5 PayPal SDK
## 3.62.2
- Update framebus to v4.0.1
## 3.62.1
- Google Pay
- Fix issue where PayPal via Google Pay would not be enabled for
eligible merchants
## 3.62.0
- Venmo
- Fix issue where a single page app's router may disrupt the Venmo
tokenization
- Add `ignoreHistoryChanges` to create options
- Fix issue where Android webviews could not app switch correctly
## 3.61.0
- Update sanitize-url to v4.0.1
- Google Pay
- Add `bin` to GooglePayment `tokenizedPayload`
## 3.60.0
- Apple Pay
- Add `useDeferredClient` option when creating instance
- `createPaymentRequest` will return a promise if instantiated
with `useDeferredClient` and `authorization` instead of a client
- Google Pay
- Add `useDeferredClient` option when creating instance
- `createPaymentDataRequest` will return a promise if instantiated
with `useDeferredClient` and `authorization` instead of a client
- PayPal Checkout
- Added `cobrandedCardLabel` to the `tokenizePayment` response
- 3D Secure
- Update to use deferred client
- Venmo
- Update to use deferred client
- Vault Manager
- Update to use deferred client
## 3.59.0
- Data Collector
- Add `useDeferredClient` option when creating instance
- Add `getDeviceData` method to get device data asynchronously
- Hosted Fields
- add `getChallenges` method
- add `getSupportedCardTypes` method
- PayPal Checkout
- Provide way to opt-out of auto-vaulting behavior
- Add `getClientId` method
## 3.58.0
- Update `@braintree/extended-promise` to v0.3.0
- Data Collector
- Hide Kount iframe from screen readers (\#484 thanks @iamstratos)
- Hosted Fields
- Fixes issue where React frameworks could not pass DOM nodes in
as `container` in `fields` (\#487)
- Venmo
- Fix issue where webview integrations could not tokenize
- Add `processResultsDelay` configuration to `tokenize`
## 3.57.0
- 3D Secure
- Fix issue where cardinal sdk options were not being used
- Falls back to a v1 flow if v2 SDK setup fails
## 3.56.0
- 3D Secure
- Add `cardinalSDKConfig` option to `create` method. Supported
properties:
- `timeout`
- `maxRequestRetries`
- `logging`
- `payment.displayLoading`
- `payment.displayExitButton`
- Venmo
- Use `hashchange` event listener to detect when Venmo
tokenization has completed
## 3.55.0
- Fix issue where not passing in an `authorization` to components
would throw a misleading error
- Update restricted-input to v2.1.0
- Client
- Retry failed connections to Braintree Gateway due to TCP
Preconnect errors in all browsers
- Google Pay
- Add support for `isNetworkTokenized` param in `parseResponse`
method
- Hosted Fields
- Fix issue where pasting a card number over an Amex number could
cut off the last digit
- PayPal Checkout
- Added support for shipping_options
- Add `vaultInitiatedCheckoutPaymentMethodToken` parameter to
`createPayment`
## 3.54.2
- Update @braintree/sanitize-url to v4.0.0
- Client
- Fix issue where client may emit an uncaught exception error in
the console for an invalid authorization (fixes \#465)
- Local Payments
- Fix issue where callback could not be used in Mobile fallback
flow
## 3.54.1
- Venmo
- Fix issue where params may be malformed upon tokenization
## 3.54.0
- 3D Secure
- Add `2-bootstrap3-modal` as a `version` option
- Add `2-inline-iframe` as a `version` option
- Fix issue where billing address information was not being sent
to lookup if no additional information was sent
## 3.53.0
- Update `@braintree/browser-detection` to v1.9.0
- Hosted Fields
- Pass back new regulation environments dynamically as they become
available
- Fix issue where Firefox would require two shift-tabs to navigate
away from a field
- Fix issue where IE9-11 could not tab correctly
- 3D Secure
- Allow raw string to be passed into
`initializeChallengeWithLookupResponse` method
- Deprecate `onLookupComplete` param in `verifyCard` in favor of
setting a listener for `lookup-complete`
- Add `requiresUserAuthentication` param to lookup data in
`onLookupComplete` callback
- Fix issue where `initializeChallengeFrameWithLookupResponse`
would error if called too quickly after creation
## 3.52.1
- Update credit-card-type to v8.3.0
- Hosted Fields
- Software keyboards can now navigate hosted fields even when
they're interspersed with merchant fields
- Fix bug on desktop where fields could not navigate between
fields with native inputs between the hosted fields
- Fix issue where regulation environment information was not
parsed correctly
## 3.52.0
- Update event-emitter to v0.3.0
- Hosted Fields
- Add `margin` to allowed CSS rules (closes \#449)
- 3D Secure
- Fix issue where `bin` was not being passed along to Cardinal SDK
## 3.51.0
- Hosted Fields
- Add `authenticationInsight` option to tokenization
- Fix issue where validation errors without field errors could
cause a syntax error
- 3D Secure
- Enable `cancelVerifyCard` method for 3D Secure version 2
integrations
- Update songbird.js script urls
## 3.50.1
- Update restricted-input to v2.0.2
- Update browser-detection to v1.8.0
- 3D Secure
- Fix issue where an error may be thrown when cancelling the 3D
Secure flow
- Add better handling for lookup errors
- Fix issue where component would throw an error when creating a
3ds component without a Cardinal Authentication JWT
- Google Pay
- Fix issue where Google Pay would error in Edge (\#446)
- Hosted Fields
- Fix issue where chrome books could not input correctly with a
soft keyboard
## 3.50.0
- Hosted Fields
- Add `expirationMonth` and `expirationYear` to tokenization
payload
## 3.49.0
- Hosted Fields
- Add `binAvailable` event
- 3D Secure
- Add `threeDSecureInfo` to the `verifyCard` response
## 3.48.0
- Us Bank Account
- Bring out of Beta into General Availability
## 3.47.0
- Update `asset-loader` to v0.3.1
- Update `event-emitter` to v0.2.0
- Data Collector
- Pass back invalid options error at beginning of data collector
setup
- Hosted Fields
- Add `container` param for field, to pass in CSS selector or a
DOM node as field container
- Make `selector` param an alias for `container`
- Add `off` method for unsubscribing from events without tearing
down
- Add `setMonthOptions` method to dynamically update options for
expiration month's configured as select elements (\#393)
- 3D Secure
- Add 3DS version 2 support
- Deprecate version 1 flow
- UnionPay
- Fix issue where calling `fetchCapabilities` twice in quick
succession causes the subsequent requests to not fire (\#441)
## 3.46.0
- Update restricted-input to v2.0.1
- Update inject-stylesheet to v2.0.0
- Add `title` and `aria-hidden` attributes to iframes created within
`frameService` for accessibility (\#434, thanks @TomPridham)
- Hosted Fields
- Add configuration to validate specific card brands, overriding
merchant control panel settings
## 3.45.0
- Update @braintree/wrap-promise to v2.0.0 - errors thrown inside
developer supplied callback functions will log to the console
- Update restricted-input to v2.0.0
- Google Pay
- Throw an error if an unsupported version of Google Pay API is used
- Use GooglePayment PayPal client ID
- Hosted Fields
- Allow specifying only a subset of fields to be validated and
tokenized
- Fix issue where Chrome iOS autofill would not fill in full card
number
- Local Payments
- Update endpoint for creating local payments
## 3.44.2
- Update @braintree/sanitize-url to v3.1.0
- Google Pay
- Fix issue where tokenization details for Google Payments could
accidentally be dropped
- Masterpass
- Fix issue with invalid callback url
- PayPal Checkout
- Fix bug where merchant account id was not being applied in vault
flows
## 3.44.1
- Hosted Fields
- Fix issue tabbing between fields on mobile devices
- Update credit-card-type to v8.2.0, fixes an issue where UnionPay
cards of lengths 14 or 15 were not marked as valid
- Local Payment
- Fix typo where the fallback scenario could not succesfully
tokenize
## 3.44.0
- Data Collector
- Fix issue where PayPal data collection could not teardown all
scripts
- Fix issue where PayPal data collection would not setup correctly
when initialized more than once
- Speed up PayPal data collection setup when initialized more than
once
- Local Payment
- Fix issue where fallback URL was not decoded correctly
## 3.43.0
- Update credit-card-type to v8.1.0
- Client
- Add bin to credit card tokenization payload
- Hosted Fields
- Add bin to credit card tokenization payload
- Payment Request
- Add bin to credit card tokenization payload
- PayPal Checkout
- Update component for compatibility with
<https://www.paypal.com/sdk/js>
## 3.42.0
- Update @braintree/sanitize-url to v3.0.0
- Hosted Fields
- Fixes issue where inputs would not focus after initial touch
event on iOS Safari (\#405, thanks @lgodziejewski)
- Allow `maxCardLength` in `number` field
- Fix issue where UnionPay cards were not checked for luhn
validity
- PayPal Checkout
- When passing in `authorization` instead of a `client` in
component creation, the client will be created in the background
(improves loading time)
- Payment Request
- Add canMakePayment method
## 3.41.0
- Add Local Payments component
- PayPal Checkout
- Add support for `lineItems`
- Payment Request
- Support Google Pay v2
- Support PayPal in Google Pay
## 3.40.0
- Update framebus to v3.0.2
- 3D Secure
- Allow creating component with an `authorization` instead of a
`client`
- American Express
- Allow creating component with an `authorization` instead of a
`client`
- Apple Pay
- Allow creating component with an `authorization` instead of a
`client`
- Data Collector
- Allow creating component with an `authorization` instead of a
`client`
- Google Payment
- Allow Google Pay Version 2 requests
- Allow direct tokenization of PayPal accounts
- Allow creating component with an `authorization` instead of a
`client`
- Hosted Fields
- Allow creating component with an `authorization` instead of a
`client` (added in v3.38.1, documented in v3.40.0)
- Masterpass
- Allow creating component with an `authorization` instead of a
`client`
- Payment Request
- Allow creating component with an `authorization` instead of a
`client`
- PayPal
- Allow creating component with an `authorization` instead of a
`client`
- PayPal Checkout
- Fix issue where `merchantAccountId` option could not be used
when the default Merchant Account did not have PayPal enabled
- Allow creating component with an `authorization` instead of a
`client`
- UnionPay
- Allow creating component with an `authorization` instead of a
`client`
- US Bank Account
- Allow creating component with an `authorization` instead of a
`client`
- Vault Manager
- Allow creating component with an `authorization` instead of a
`client`
- Venmo
- Fix issue where url may be overwritten when a hash is not
present \#394 (thanks @arettberg)
- Add `deepLinkReturnUrl` to `venmo.create`
- Allow creating component with an `authorization` instead of a
`client`
- Visa Checkout
- Allow creating component with an `authorization` instead of a
`client`
## 3.39.0
- PayPal Checkout
- Add `merchantAccountId` to PayPal `options`
- Update promise-polyfill to v8.1.0
- Use @braintree/class-list for manipulating classes
- Use @braintree/asset-loader for loading assets
- Client
- Speed up client creation caching and prevent race conditions
- Hosted Fields
- Fix issue where analytics in iframe could be out of sync with
analytics on merchant page
## 3.38.1
- Update credit-card-type to v8.0.0
- Update card-validator to v6.0.0
## 3.38.0
- Hosted Fields
- Only accepts Luhn valid UnionPay cards. Previously, non-Luhn
valid card numbers were accepted even though they were not
supported by Braintree
- Payment Request
- Fix issue where npm browser builds could not load payment
request (\#388)
## 3.37.0
- Provide browser compatible files on npm for each component in
`dist/browser/component-name.js` (\#366)
- Update credit-card-type to v7.1.0
- Hosted Fields
- Detect if `Mir` credit card is entered
- Fix issue where Android text field would be selected when
focused after inputting data (\#379)
- Fix error emitted by Chrome (in verbose logging mode) for not
using a passive flag for `touchstart` event
## 3.36.0
- Update promise-polyfill to v8.0.0
- Provide browser compatible file on npm in `dist/browser` (\#366)
- Google Pay
- Preserve `allowedCardNetworks` from default configuration in
`cardRequirements` if not overwritten in
`createPaymentDataRequest`
- Hosted Fields
- Add option to reveal last four of credit card number when
masking input
- Expose error when no field keys are passed into fields object
(\#355)
## 3.35.0
- Add title attribute to iframes to improve accessibility for
screenreaders (\#374)
- Vault Manager
- Expose if fetched payment methods have an associated
subscription
## 3.34.1
- Update credit-card-type to v7.0.0
- Update card-validator to v5.0.0
- Client
- Fix client cache issue when using teardown
- Data Collector
- Hide 1px Kount iframe
- Hosted Fields
- Fix improper validation on iPad keyboards for expiration date
field
[\#369](https://github.com/braintree/braintree-web/issues/369)
- Fix issue where extra history events would be added in Chrome
and Firefox
- Venmo
- Add validation for profile ids (must be strings)
## 3.34.0
- Apple Pay
- Fix issue with Apple Pay configuration
[\#365](https://github.com/braintree/braintree-web/issues/365)
- Hosted Fields
- Include data about the containers for invalid fields in
tokenization error (\#359)
- Fix issue where inputs would not mask in iOS
- 3D Secure
- Fix issue where payment method details were not provided in the
flow where an iframe is not needed
- Fix issue where description in verify card payload was coming
back with `+` symbols instead of spaces
- Add binData property to verify card payload
## 3.33.0
- Internal performance optimizations
- Update framebus to v3.0.1
- Update credit-card-type to v6.3.0
- Hosted Fields
- Allow passing in class name for style configuration (\#361)
- Fix issue where tokenization could not take place because the
`window.length` variable had been overwritten
- Fix regression where sending card numbers with - or spaces would
result in cardType unknown in the payload (\#241)
- Payment Request
- Fix issue with changing shipping address and shipping options
which could cause Chrome to crash
## 3.32.1
- Payment Request
- Expose errors more gracefully
- Hosted Fields
- Revert fix issue where Roboform could not autofill cards
[\#356](https://github.com/braintree/braintree-web/issues/356).
It was causing an issue where the inputs would be hidden in
Safari if their container was changed from `display: none` to
`display: block`
## 3.32.0
- Venmo
- Add support for Venmo profile IDs
- Google Pay is no longer in beta.
- Masterpass
- Fix issue where error would not surface correctly for window
being blocked by a popup blocker
- PayPal
- Fix issue where error would not surface correctly for window
being blocked by a popup blocker
- Hosted Fields
- Fix issue where autocomplete properties were not applied (closes
\#353)
- Ensure that focus state is maintained when focus is called
programatically
- Cards that cannot be processed by the merchant can invalidate
Hosted Fields by adding a `fields.number.rejectUnsupportedCards`
option to the object passed into Hosted Fields `create`. See
documentation for adding this property.
- Fix issue where Roboform could not autofill cards
[\#356](https://github.com/braintree/braintree-web/issues/356)
- PayPal Checkout
- Fix error handling around not having a linked PayPal sandbox
account
- 3D Secure
- Add support for American Express SafeKey params
## 3.31.0
- Update credit-card-type to v6.2.0
- Update card-validator to v4.3.0
- Venmo
- Add browser support detection helper as static method on
`braintree.venmo.isBrowserSuppported`
## 3.30.0
- Update promise-polyfill to v7.0.2 (\#350 thanks @Macavity)
- Fixes issues with promises not working in IE from
v3.28.0-v3.29.0
- Hosted Fields
- Add `padding` to supported CSS attributes (\#104)
## 3.29.0
- Update credit-card-type to v6.1.1
- Update jsdoc-template to v3.2.0
- Hosted Fields
- Fix issue where some series 2 Mastercard bin ranges were not
being detected (internal assets for v3.19.1 forward have this
fix applied)
**BREAKING CHANGES**
- Google Pay - Beta
- Switch from using iframe based solution to Google pay.js script
tag solution
- `braintree.googlePayment.isSupported` has been removed
- `tokenize` and `createSupportedPaymentMethodsConfiguration`
and `on` methods and has been removed. See documentation
example for new integration pattern.
## 3.28.1
- Update @braintree/sanitize-url to v2.1.0
## 3.28.0
- Update promise-polyfill to v7.0.0
- American Express
- Add missing `teardown` method
- Apple Pay
- Add missing `teardown` method
- Client
- Add missing `teardown` method
- Google Pay
- References to Pay with Google have now been converted to Google
Pay in accordance with Google's brand guidelines
- PayPal Checkout
- Add missing `teardown` method
- Vault Manager
- Add missing `teardown` method
- Venmo
- Add missing `teardown` method
- Visa Checkout
- Add missing `teardown` method
**BREAKING CHANGES**
- Google Pay - Beta
- Error codes that included `PAY_WITH_GOOGLE` have been updated to
`GOOGLE_PAYMENT`
- PAYMENT_REQUEST_PAY_WITH_GOOGLE_FAILED_TO_TOKENIZE
-\> PAYMENT_REQUEST_GOOGLE_PAYMENT_FAILED_TO_TOKENIZE
- PAYMENT_REQUEST_PAY_WITH_GOOGLE_PARSING_ERROR -\>
PAYMENT_REQUEST_GOOGLE_PAYMENT_PARSING_ERROR
- Payment Request - Beta
- Change `payWithGoogle` property to `googlePay` property when
instantiating a Payment Request component with
`enabledPaymentMethods` option
## 3.27.0
- Update card-validator to v4.2.0
- Internal performance optimizations
- Prefer popup bridge before browser supporting popups in frame
service (\#341, thanks @night)
- Hosted Fields
- Send back timeout error if Hosted Fields takes longer than 60
seconds to set up
- Allow locality (the city) to be sent as part of billing address
fields
- Allow region (the state) to be sent as part of billing address
fields
- Allow cvv to have minlength be applied when using cvv only
integration
- Masterpass
- Throw MASTERPASS_POPUP_FAILED if required params returned by
masterpass are missing
- Payment Request - Beta
- Support `requestShipping` option
- Pay with Google - Beta
- Support `requestShipping` option
## 3.26.0
- Hosted Fields
- Correct bug where pasting in on an iOS device would mangle the
input (<https://github.com/braintree/restricted-input/pull/46>)
- Update credit-card-type to version 6.1.0 (accept JCB cards of
length 17-19)
## 3.25.0
- Hosted Fields
- Add `setMessage` for screenreader-compatible error messages
- Fix issue where autofill would not work in selects with month
values 1-9 (\#\#331)
- Allow fields to be prefilled with values
- Payment Request - Beta
- Add `lastFour` to tokenize payload
## 3.24.1
- Update credit-card-type to v6.0.0
- Update card-validator to v4.1.1
- Hosted Fields
- `niceType` for Mastercard will now render as `Mastercard`
instead of `MasterCard` to match Mastercard's brand guidelines
- Pay with Google - Beta
- Correct isSupported to only return true on Android Chrome v61
and higher
## 3.24.0
- 3D Secure
- Error early in creation if a tokenization key is used for
authorization
- Add liablity shift info to top level of cancelVerifyCard payload
- Payment Request - Beta
- Add billing address details to tokenization payload
- Pay with Google - Beta
- Apply field to allow tokenization with tokenization key
- Properly wrap Pay with Google so callbacks can be used
**BREAKING CHANGES**
- Payment Request and Pay with Google - Beta
- Some non-essential fields from tokenize payload removed
## 3.23.0
- Add beta Pay with Google Component
- Add beta Payment Request Component
- Update sanitize-url to version 2.0.2
- Update restricted-input to version 1.2.6
- Data Collector
- Update sjcl to 1.0.7
- Provide raw device data object as `instance.rawDeviceData`
- Hosted Fields
- Add `billingAddress.extendedAddress` as a tokenization option
- Add `billingAddress.company` as a tokenization option
- Add `billingAddress.firstName` as a tokenization option
- Add `billingAddress.lastName` as a tokenization option
- 3D Secure
- Allow opting out of bank frame loader
- Vault Manager
- Provide bin data if present
## 3.22.2
- Update sanitize-url to version 2.0.0
- 3D Secure
- Add `liabilityShifted` and `liabilityShiftPossible` to the top
level when 3DS lookup fails to open a 3DS iframe.
- Hosted Fields
- Fix issue where inputs would not mask correctly when autofilled
- Update credit-card-type to version 5.0.4
- Fix issue where placeholder would not load in IE9
## 3.22.1
- Security improvements
- Data Collector
- Fix bug where Data Collector with Kount could not be torn down
more than once (\#314)
## 3.22.0
- Hosted Fields
- Fix regression where postal code input would not display alpha
numeric keyboard on iOS
- Add bin data to tokenization payload
- Add option for input masking
## 3.21.1
- Hosted Fields
- Fix regression where iframes could not load on IE 9 and 10
## 3.21.0
- Hosted Fields
- Fix issue where phone number keyboard would display on iOS
devices
- Allow passing `countryName`, `countryCodeAlpha2`,
`countryCodeAlpha3`, and `countryCodeNumeric` under
`billingAddress` as a tokenization option
- Fix issue where Apple based browsers (Safari, iOS Chrome, iOS
Firefox, etc) would add multiple history states when Hosted
Fields loads
## 3.20.1
- Update browser-detection to v1.6.0
- Hosted Fields
- Fix issue where field would not blur on iOS when tapping out of
the Hosted Fields inputs
- PayPal
- Fix issue in iOS Firefox where PayPal window would not open
## 3.20.0
- Client
- Add request retries for TCP preconnect errors in Internet
Explorer and Edge
- Hosted Fields
- Update restricted-input to version 1.2.5
- Fix bug where placeholder would be set to null after
autocomplete fires if no placeholder was set
- Allow passing `streetAddress` under `billingAddress` as a
tokenization option
- Fix issue where Hosted Fields would not load intermittently in
Edge and IE11
- Fix issue where Hosted Fields validity would not update after
paste events (\#308)
## 3.19.1
- Client
- Cache client creation when using the same authorization
- Hosted Fields
- Update credit-card-type to v5.0.3 to fix a bug where certain
MasterCard bins were not being marked as potentially valid
- Inline JS in HTML frames
## 3.19.0
- Hosted Fields
- Allow `cardholderName` to be passed while tokenizing the card
- Fix bug disabling fields when enter is pressed
## 3.18.0
- Hosted Fields
- Fix autofill issues for Chrome and Safari (\#239)
## 3.17.0
- Hosted Fields
- Add `minlength` to fields options to set the `minlength` of
postal code inputs
- Update credit-card-type dependency (UnionPay detection fixes)
- Update restricted-input dependency to 1.2.1 (Browser Detection
updates)
- PayPal
- Frame fixes in iOS
## 3.16.0
- Client
- Access version with `getVersion()`
- Hosted Fields
- Fix bug where inputs would not load intermittently on old
browsers (\#233)
- Typing `1/` in an expiration date field will now result in `01 /` formatting (\#221)
- Fix bug where certain webviews would cause inputs to be
untypable after tapping a second time (\#207)
- Masterpass
- Enable Masterpass as a payment option
- PayPal
- Mark PayPal component as deprecated in favor of using PayPal
Checkout
## 3.15.0
- Hosted Fields
- Fix bug where expiration dates using select boxes would print an
error when selected on mobile devices
- Fix a bug where Android Webviews on KitKat could not enter more
than 4 characters in inputs
- Add supportsInputFormatting method to check if browser will
support input formatting
- Data Collector
- Cache and reuse device data when created multiple times with the
same Kount merchant id
- Fix issue where Kount data was not collected by additional Data
Collector instances
## 3.14.0
- American Express
- `americanExpress.create` returns a promise if no callback is
provided
- `americanExpress.getRewardsBalance` returns a promise if no
callback is provided
- `americanExpress.getExpressCheckoutProfile` returns a promise if
no callback is provided
- Apple Pay
- `applePay.create` returns a promise if no callback is provided
- `applePay.performValidation` returns a promise if no callback is
provided
- `applePay.tokenize` returns a promise if no callback is provided
- Hosted Fields
- `hostedFields.tokenize` returns a promise if no callback is
provided
- `hostedFields.addClass` returns a promise if no callback is
provided
- `hostedFields.removeClass` returns a promise if no callback is
provided
- `hostedFields.setAttribute` returns a promise if no callback is
provided
- `hostedFields.removeAttribute` returns a promise if no callback
is provided
- `hostedFields.setPlaceholder` returns a promise if no callback
is provided
- `hostedFields.clear` returns a promise if no callback is
provided
- `hostedFields.focus` returns a promise if no callback is
provided
- PayPal
- Add support for PayPal Credit in Vault flow
- `paypal.create` returns a promise if no callback is provided
- `paypal.tokenize` returns a promise if no callback is provided
- `paypal.teardown` returns a promise if no callback is provided
- `paypal.closeWindow` closes the PayPal window if open
- `paypal.focusWindow` focuses the PayPal window if open
- PayPal Checkout
- Add support for PayPal Credit in Vault flow
- 3D Secure
- `threeDSecure.create` returns a promise if no callback is
provided
- `threeDSecure.verifyCard` returns a promise if no callback is
provided
- `threeDSecure.cancelVerifyCard` returns a promise if no callback
is provided
- `threeDSecure.teardown` returns a promise if no callback is
provided
- Union Pay
- `unionPay.create` returns a promise if no callback is provided
- `unionPay.enroll` returns a promise if no callback is provided
- `unionPay.fetchCapabilities` returns a promise if no callback is
provided
- `unionPay.teardown` returns a promise if no callback is provided
- `unionPay.tokenize` returns a promise if no callback is provided
- Visa Checkout
- `visaCheckout.create` returns a promise if no callback is
provided
- `visaCheckout.tokenize` returns a promise if no callback is
provided
## 3.13.0
- Hosted Fields