recurly/recurly-js

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Changelog

## [v4.32.0](https://github.com/recurly/recurly-js/tree/v4.32.0) (2024-10-04)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.31.1...v4.32.0)


**Merged Pull Requests**

- feat: Add support for tokenizing the CVV standalone [#902](https://github.com/recurly/recurly-js/pull/902) ([cbarton](https://github.com/cbarton))



## [v4.31.1](https://github.com/recurly/recurly-js/tree/v4.31.1) (2024-10-01)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.31.0...v4.31.1)


**Merged Pull Requests**

- Fix bug when preflightDeviceData is set to false [#903](https://github.com/recurly/recurly-js/pull/903) ([gilv93](https://github.com/gilv93))



## [v4.31.0](https://github.com/recurly/recurly-js/tree/v4.31.0) (2024-09-30)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.30.1...v4.31.0)


**Merged Pull Requests**

- Proactive 3DS changes [#896](https://github.com/recurly/recurly-js/pull/896) ([gilv93](https://github.com/gilv93))



## [v4.30.1](https://github.com/recurly/recurly-js/tree/v4.30.1) (2024-09-27)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.30.0...v4.30.1)


**Merged Pull Requests**

- Add destroy method for AlternatePaymentMethod class [#901](https://github.com/recurly/recurly-js/pull/901) ([Patrick-Duvall](https://github.com/Patrick-Duvall))



## [v4.30.0](https://github.com/recurly/recurly-js/tree/v4.30.0) (2024-09-18)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.29.4...v4.30.0)


**Merged Pull Requests**

- Adds Checkout session token fixture [#897](https://github.com/recurly/recurly-js/pull/897) ([chrissrogers](https://github.com/chrissrogers))
- feat: Add Google Pay through Braintree [#894](https://github.com/recurly/recurly-js/pull/894) ([cbarton](https://github.com/cbarton))



## [v4.29.4](https://github.com/recurly/recurly-js/tree/v4.29.4) (2024-08-26)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.29.2...v4.29.4)


**Merged Pull Requests**

- Ensures addons are not included in subscriptions with quantity = 0 [#895](https://github.com/recurly/recurly-js/pull/895) ([chrissrogers](https://github.com/chrissrogers))
- Ensures setup fees are not applied to subscriptions with quantity = 0 [#893](https://github.com/recurly/recurly-js/pull/893) ([chrissrogers](https://github.com/chrissrogers))
- chore: convert Google Pay element to a class from function [#892](https://github.com/recurly/recurly-js/pull/892) ([cbarton](https://github.com/cbarton))
- chore: extract loading braintree libraries to util/braintree [#891](https://github.com/recurly/recurly-js/pull/891) ([cbarton](https://github.com/cbarton))



## [v4.29.2](https://github.com/recurly/recurly-js/tree/v4.29.2) (2024-07-30)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.29.1...v4.29.2)


**Merged Pull Requests**

- Adds billing address override to CashApp implementation [#890](https://github.com/recurly/recurly-js/pull/890) ([chrissrogers](https://github.com/chrissrogers))
- Small venmo tweaks for development debugging [#841](https://github.com/recurly/recurly-js/pull/841) ([douglasmiller](https://github.com/douglasmiller))

**Closed Issues**

- SyntaxError: Invalid regular expression: missing terminating ] for character class [#880](https://github.com/recurly/recurly-js/issues/880)
- Recurly (3DS) in Test Mode with `<dialog />` elements [#876](https://github.com/recurly/recurly-js/issues/876)
- Recurly-JS is no longer updating the DefinitelyTyped repo [#875](https://github.com/recurly/recurly-js/issues/875)
- Formatting on DefinitelyTyped update [#856](https://github.com/recurly/recurly-js/issues/856)
- Inconsistent Autofill behavior with Recurly.js Elements [#845](https://github.com/recurly/recurly-js/issues/845)


## [v4.29.1](https://github.com/recurly/recurly-js/tree/v4.29.1) (2024-07-16)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.29.0...v4.29.1)


**Merged Pull Requests**

- Allows subscription quantities of zero on Pricing instances [#888](https://github.com/recurly/recurly-js/pull/888) ([chrissrogers](https://github.com/chrissrogers))
- Adding types/package.json [#887](https://github.com/recurly/recurly-js/pull/887) ([douglasmiller](https://github.com/douglasmiller))

**Closed Issues**

- Recurly-JS is no longer updating the DefinitelyTyped repo [#875](https://github.com/recurly/recurly-js/issues/875)


## [v4.29.0](https://github.com/recurly/recurly-js/tree/v4.29.0) (2024-05-30)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.28.2...v4.29.0)


**Merged Pull Requests**

- Support Cash App [#881](https://github.com/recurly/recurly-js/pull/881) ([gilv93](https://github.com/gilv93))



## [v4.28.2](https://github.com/recurly/recurly-js/tree/v4.28.2) (2024-04-16)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.28.1...v4.28.2)


**Merged Pull Requests**

- Upgrade Braintree SDK [#877](https://github.com/recurly/recurly-js/pull/877) ([arzitney](https://github.com/arzitney))



## [v4.28.1](https://github.com/recurly/recurly-js/tree/v4.28.1) (2024-04-08)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.28.0...v4.28.1)


**Merged Pull Requests**

- fix: Amazon Pay should be emitting the 'cancel' event when the window is manually closed [#879](https://github.com/recurly/recurly-js/pull/879) ([douglasmiller](https://github.com/douglasmiller))



## [v4.28.0](https://github.com/recurly/recurly-js/tree/v4.28.0) (2024-02-28)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.27.0...v4.28.0)


**Merged Pull Requests**

- Co-badge card support [#874](https://github.com/recurly/recurly-js/pull/874) ([gilv93](https://github.com/gilv93))



## [v4.27.0](https://github.com/recurly/recurly-js/tree/v4.27.0) (2024-02-14)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.26.5...v4.27.0)


**Merged Pull Requests**

- Handle Amazon Pay 3DS action tokens [#869](https://github.com/recurly/recurly-js/pull/869) ([gilv93](https://github.com/gilv93))



## [v4.26.5](https://github.com/recurly/recurly-js/tree/v4.26.5) (2024-01-27)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.26.4...v4.26.5)


**Merged Pull Requests**

- Adds hostname auth capability to Frame [#868](https://github.com/recurly/recurly-js/pull/868) ([chrissrogers](https://github.com/chrissrogers))



## [v4.26.4](https://github.com/recurly/recurly-js/tree/v4.26.4) (2024-01-24)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.26.3...v4.26.4)


**Merged Pull Requests**

- Update ApplePayPaymentAuthorizedEvent type to match actual object shape [#867](https://github.com/recurly/recurly-js/pull/867) ([shin-](https://github.com/shin-))
- refactor rjs to resolve button reload error and add types [#866](https://github.com/recurly/recurly-js/pull/866) ([jsanderson1130](https://github.com/jsanderson1130))
- Instantiates events only on demand [#865](https://github.com/recurly/recurly-js/pull/865) ([chrissrogers](https://github.com/chrissrogers))



## [v4.26.3](https://github.com/recurly/recurly-js/tree/v4.26.3) (2023-11-28)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.26.2...v4.26.3)


**Merged Pull Requests**

- pass gateway_code to choose if multiple Amazon gateway instances [#863](https://github.com/recurly/recurly-js/pull/863) ([jsanderson1130](https://github.com/jsanderson1130))



## [v4.26.2](https://github.com/recurly/recurly-js/tree/v4.26.2) (2023-11-13)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.26.1...v4.26.2)


**Merged Pull Requests**

- Added Address Collectiong and Web Login for Venmo on Braintree [#864](https://github.com/recurly/recurly-js/pull/864) ([arzitney](https://github.com/arzitney))
- Adds PUT support to Request [#860](https://github.com/recurly/recurly-js/pull/860) ([chrissrogers](https://github.com/chrissrogers))



## [v4.26.1](https://github.com/recurly/recurly-js/tree/v4.26.1) (2023-11-03)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.26.0...v4.26.1)


**Merged Pull Requests**

- fix tax calculations on next object with single-use coupons [#858](https://github.com/recurly/recurly-js/pull/858) ([wsethbrown](https://github.com/wsethbrown))



## [v4.26.0](https://github.com/recurly/recurly-js/tree/v4.26.0) (2023-10-10)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.10...v4.26.0)


**Merged Pull Requests**

- Amazon follow up [#855](https://github.com/recurly/recurly-js/pull/855) ([arzitney](https://github.com/arzitney))
- Fix ios 16 remote e2e [#854](https://github.com/recurly/recurly-js/pull/854) ([arzitney](https://github.com/arzitney))

**Closed Issues**

- Formatting on DefinitelyTyped update [#856](https://github.com/recurly/recurly-js/issues/856)


## [v4.25.10](https://github.com/recurly/recurly-js/tree/v4.25.10) (2023-09-27)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.9...v4.25.10)


**Merged Pull Requests**

- Adds hostname configuration pass-through [#851](https://github.com/recurly/recurly-js/pull/851) ([chrissrogers](https://github.com/chrissrogers))
- Updated images for iOS-15-Remote Browser for e2e tests [#850](https://github.com/recurly/recurly-js/pull/850) ([arzitney](https://github.com/arzitney))
- Add Amazon Pay [#848](https://github.com/recurly/recurly-js/pull/848) ([gilv93](https://github.com/gilv93))



## [v4.25.9](https://github.com/recurly/recurly-js/tree/v4.25.9) (2023-09-07)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.8...v4.25.9)


**Merged Pull Requests**

- feat(google pay): Add support for `existingPaymentMethodRequired` [#849](https://github.com/recurly/recurly-js/pull/849) ([cbarton](https://github.com/cbarton))



## [v4.25.8](https://github.com/recurly/recurly-js/tree/v4.25.8) (2023-08-21)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.7...v4.25.8)


**Merged Pull Requests**

- Prevent multiple 3ds instances [#847](https://github.com/recurly/recurly-js/pull/847) ([ajkelso](https://github.com/ajkelso))



## [v4.25.7](https://github.com/recurly/recurly-js/tree/v4.25.7) (2023-08-04)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.6...v4.25.7)


**Merged Pull Requests**

- Expose Venmo Device Data [#844](https://github.com/recurly/recurly-js/pull/844) ([arzitney](https://github.com/arzitney))
- Add Support for Sofort on Adyen Components [#843](https://github.com/recurly/recurly-js/pull/843) ([douglaslise](https://github.com/douglaslise))
- add kount debugging [#842](https://github.com/recurly/recurly-js/pull/842) ([smagdicatrecurly](https://github.com/smagdicatrecurly))



## [v4.25.6](https://github.com/recurly/recurly-js/tree/v4.25.6) (2023-07-25)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.5...v4.25.6)


**Merged Pull Requests**

- Accept Billing Address in AlternativePaymentMethods Submit [#838](https://github.com/recurly/recurly-js/pull/838) ([douglaslise](https://github.com/douglaslise))



## [v4.25.5](https://github.com/recurly/recurly-js/tree/v4.25.5) (2023-07-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.4...v4.25.5)


**Merged Pull Requests**

- Consolidate Braintree client version constants to a single file [#840](https://github.com/recurly/recurly-js/pull/840) ([douglasmiller](https://github.com/douglasmiller))



## [v4.25.4](https://github.com/recurly/recurly-js/tree/v4.25.4) (2023-07-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.3...v4.25.4)


**Merged Pull Requests**

- Update to latest version of Braintree JS Client [#839](https://github.com/recurly/recurly-js/pull/839) ([douglasmiller](https://github.com/douglasmiller))



## [v4.25.3](https://github.com/recurly/recurly-js/tree/v4.25.3) (2023-07-13)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.2...v4.25.3)


**Merged Pull Requests**

- fix: load Google Pay when `window.google` exists [#837](https://github.com/recurly/recurly-js/pull/837) ([cbarton](https://github.com/cbarton))

**Closed Issues**

- Cannot read properties of undefined (reading 'api') [#836](https://github.com/recurly/recurly-js/issues/836)


## [v4.25.2](https://github.com/recurly/recurly-js/tree/v4.25.2) (2023-06-29)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.1...v4.25.2)


**Merged Pull Requests**

- feat(apple pay): Improve support [#834](https://github.com/recurly/recurly-js/pull/834) ([cbarton](https://github.com/cbarton))



## [v4.25.1](https://github.com/recurly/recurly-js/tree/v4.25.1) (2023-06-26)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.25.0...v4.25.1)


**Merged Pull Requests**

- Renamed PayPalCommerce to PayPalComplete [#833](https://github.com/recurly/recurly-js/pull/833) ([arzitney](https://github.com/arzitney))



## [v4.25.0](https://github.com/recurly/recurly-js/tree/v4.25.0) (2023-06-19)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.24.0...v4.25.0)


**Merged Pull Requests**

- Add PayPal Fraudnet Script [#830](https://github.com/recurly/recurly-js/pull/830) ([douglaslise](https://github.com/douglaslise))



## [v4.24.0](https://github.com/recurly/recurly-js/tree/v4.24.0) (2023-05-23)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.23.2...v4.24.0)


**Merged Pull Requests**

- PayPal Complete 3DS [#826](https://github.com/recurly/recurly-js/pull/826) ([douglaslise](https://github.com/douglaslise))
- PayPal Complete using PayPal Method [#823](https://github.com/recurly/recurly-js/pull/823) ([douglaslise](https://github.com/douglaslise))



## [v4.23.2](https://github.com/recurly/recurly-js/tree/v4.23.2) (2023-05-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.23.1...v4.23.2)


**Merged Pull Requests**

- Add ApplePay coupon code changed support [#825](https://github.com/recurly/recurly-js/pull/825) ([cbarton](https://github.com/cbarton))
- Change Artifact Upload Path [#824](https://github.com/recurly/recurly-js/pull/824) ([douglaslise](https://github.com/douglaslise))
- fix(dev server): Updates for webpack version bump [#821](https://github.com/recurly/recurly-js/pull/821) ([cbarton](https://github.com/cbarton))
- add iframe titles on update [#807](https://github.com/recurly/recurly-js/pull/807) ([smagdicatrecurly](https://github.com/smagdicatrecurly))



## [v4.23.1](https://github.com/recurly/recurly-js/tree/v4.23.1) (2023-04-21)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.23.0...v4.23.1)


**Merged Pull Requests**

- fix(types): Fix type declarations for apple and google pay [#816](https://github.com/recurly/recurly-js/pull/816) ([cbarton](https://github.com/cbarton))
- fix(apple pay): simplify newRecurringPaymentRequest handling [#815](https://github.com/recurly/recurly-js/pull/815) ([cbarton](https://github.com/cbarton))
- fix(apple pay): callbacks with promises resolve correctly [#814](https://github.com/recurly/recurly-js/pull/814) ([cbarton](https://github.com/cbarton))



## [v4.23.0](https://github.com/recurly/recurly-js/tree/v4.23.0) (2023-04-19)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.9...v4.23.0)


**Merged Pull Requests**

- chore(paypal): add types for display options [#812](https://github.com/recurly/recurly-js/pull/812) ([cbarton](https://github.com/cbarton))
- fix(apple pay): Do not teardown Braintree on cancel [#811](https://github.com/recurly/recurly-js/pull/811) ([cbarton](https://github.com/cbarton))
- fix(types): add type definition for Recurly#ready [#810](https://github.com/recurly/recurly-js/pull/810) ([cbarton](https://github.com/cbarton))
- feat(google pay): add support for the paymentDataRequest [#809](https://github.com/recurly/recurly-js/pull/809) ([cbarton](https://github.com/cbarton))
- feat(Apple Pay): allow for customization of event updates [#808](https://github.com/recurly/recurly-js/pull/808) ([cbarton](https://github.com/cbarton))
- Update config type with requiredShippingContactFields [#806](https://github.com/recurly/recurly-js/pull/806) ([BARK-RMILLER](https://github.com/BARK-RMILLER))
- feat(apple pay): add support for `recurringPaymentRequest`, move to `options.paymentRequest` [#804](https://github.com/recurly/recurly-js/pull/804) ([cbarton](https://github.com/cbarton))
- fix(apple pay): emit events when restore pricing addresses [#803](https://github.com/recurly/recurly-js/pull/803) ([cbarton](https://github.com/cbarton))
- chore(apple pay): capture async test errors to fail faster [#802](https://github.com/recurly/recurly-js/pull/802) ([cbarton](https://github.com/cbarton))
- feat(apple pay): populate contacts with pricing addresses [#801](https://github.com/recurly/recurly-js/pull/801) ([cbarton](https://github.com/cbarton))
- feat(apple pay): allow for supportedNetworks selection [#800](https://github.com/recurly/recurly-js/pull/800) ([cbarton](https://github.com/cbarton))
- feat(apple pay): update tax when billing/shipping contact changes [#798](https://github.com/recurly/recurly-js/pull/798) ([cbarton](https://github.com/cbarton))
- feat(apple pay): populate billingContact with form address fields [#797](https://github.com/recurly/recurly-js/pull/797) ([cbarton](https://github.com/cbarton))
- feat(Apple Pay): validate and support more ApplePayPaymentRequest features [#794](https://github.com/recurly/recurly-js/pull/794) ([cbarton](https://github.com/cbarton))
- [feat][google-pay] send raw payment data to server [#789](https://github.com/recurly/recurly-js/pull/789) ([cbarton](https://github.com/cbarton))

**Closed Issues**

- property 'ready' does not exist on type 'Recurly'.ts [#795](https://github.com/recurly/recurly-js/issues/795)
- PayPal.d.ts is missing amount [#732](https://github.com/recurly/recurly-js/issues/732)
- Missing types definitions for `coupon` method [#698](https://github.com/recurly/recurly-js/issues/698)
- If formRef unmounts during call, recurly.token fails silently. [#697](https://github.com/recurly/recurly-js/issues/697)
- The user can enter 4 digits as the month value in the expiration date field. [#678](https://github.com/recurly/recurly-js/issues/678)


## [v4.22.9](https://github.com/recurly/recurly-js/tree/v4.22.9) (2023-02-28)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.8...v4.22.9)


**Merged Pull Requests**

- Installing `httplib2` and `crcmod` as needed by `gsutil` in the last build step [#791](https://github.com/recurly/recurly-js/pull/791) ([douglaslise](https://github.com/douglaslise))
- Fix Tiered Unit Pricing Labels [#790](https://github.com/recurly/recurly-js/pull/790) ([douglaslise](https://github.com/douglaslise))
- [feat][apple-pay] send hostname to server and specify applicationData [#788](https://github.com/recurly/recurly-js/pull/788) ([cbarton](https://github.com/cbarton))



## [v4.22.8](https://github.com/recurly/recurly-js/tree/v4.22.8) (2023-01-12)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.7...v4.22.8)


**Merged Pull Requests**

- Include tiered addon math [#781](https://github.com/recurly/recurly-js/pull/781) ([ELepolt](https://github.com/ELepolt))
- Add IE11 partitions to travis config [#776](https://github.com/recurly/recurly-js/pull/776) ([abachman](https://github.com/abachman))

**Closed Issues**

- Apple Pay via Braintree causes CSP violation [#767](https://github.com/recurly/recurly-js/issues/767)


## [v4.22.7](https://github.com/recurly/recurly-js/tree/v4.22.7) (2022-11-30)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.6...v4.22.7)


**Merged Pull Requests**

- Multi form fraud detection [#780](https://github.com/recurly/recurly-js/pull/780) ([smagdicatrecurly](https://github.com/smagdicatrecurly))
- Handle stripe js error when attaching the stripe element [#779](https://github.com/recurly/recurly-js/pull/779) ([cyberxander90](https://github.com/cyberxander90))



## [v4.22.6](https://github.com/recurly/recurly-js/tree/v4.22.6) (2022-11-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.5...v4.22.6)


**Merged Pull Requests**

- Set type of kount fraud_session_id input to 'hidden' [#774](https://github.com/recurly/recurly-js/pull/774) ([abachman](https://github.com/abachman))

**Closed Issues**

- Apple Pay via Braintree causes CSP violation [#767](https://github.com/recurly/recurly-js/issues/767)


## [v4.22.5](https://github.com/recurly/recurly-js/tree/v4.22.5) (2022-11-14)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.4...v4.22.5)


**Merged Pull Requests**

- Update Minimum Apple Pay Version to v4 [#773](https://github.com/recurly/recurly-js/pull/773) ([cbarton](https://github.com/cbarton))
- Replace denodeify [#772](https://github.com/recurly/recurly-js/pull/772) ([wsethbrown](https://github.com/wsethbrown))
- Revert "Cartes Bancaires and Co-Branding support" [#760](https://github.com/recurly/recurly-js/pull/760) ([douglaslise](https://github.com/douglaslise))
- Adding challenge window size selections [#757](https://github.com/recurly/recurly-js/pull/757) ([tilley-kyle](https://github.com/tilley-kyle))
- Replace $ExpectError with @ts-expect-error [#755](https://github.com/recurly/recurly-js/pull/755) ([douglasmiller](https://github.com/douglasmiller))
- Cartes Bancaires and Co-Branding support [#752](https://github.com/recurly/recurly-js/pull/752) ([douglaslise](https://github.com/douglaslise))



## [v4.22.4](https://github.com/recurly/recurly-js/tree/v4.22.4) (2022-09-22)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.3...v4.22.4)


**Merged Pull Requests**

- Add google-pay type definition to recurly.d.ts [#753](https://github.com/recurly/recurly-js/pull/753) ([cyberxander90](https://github.com/cyberxander90))



## [v4.22.3](https://github.com/recurly/recurly-js/tree/v4.22.3) (2022-09-16)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.2...v4.22.3)


**Merged Pull Requests**

- Sequential Preflight Calls [#749](https://github.com/recurly/recurly-js/pull/749) ([isaacvance1027](https://github.com/isaacvance1027))



## [v4.22.2](https://github.com/recurly/recurly-js/tree/v4.22.2) (2022-07-26)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.1...v4.22.2)


**Merged Pull Requests**

- Adyen 3ds risk strategy frame update [#744](https://github.com/recurly/recurly-js/pull/744) ([isaacvance1027](https://github.com/isaacvance1027))



## [v4.22.1](https://github.com/recurly/recurly-js/tree/v4.22.1) (2022-07-20)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.22.0...v4.22.1)


**Merged Pull Requests**

- Update Adyen sdk libUrl for 3ds risk strategy [#742](https://github.com/recurly/recurly-js/pull/742) ([isaacvance1027](https://github.com/isaacvance1027))
- Credit card types refactor [#736](https://github.com/recurly/recurly-js/pull/736) ([douglaslise](https://github.com/douglaslise))



## [v4.22.0](https://github.com/recurly/recurly-js/tree/v4.22.0) (2022-07-11)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.21.1...v4.22.0)


**Merged Pull Requests**

- Add more BIN ranges for UnionPay [#735](https://github.com/recurly/recurly-js/pull/735) ([douglaslise](https://github.com/douglaslise))
- Adding support to google-pay [#733](https://github.com/recurly/recurly-js/pull/733) ([cyberxander90](https://github.com/cyberxander90))



## [v4.21.1](https://github.com/recurly/recurly-js/tree/v4.21.1) (2022-05-26)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.21.0...v4.21.1)


**Merged Pull Requests**

- ApplePay tokenize tax fields [#730](https://github.com/recurly/recurly-js/pull/730) ([cyberxander90](https://github.com/cyberxander90))
- Allow CNPJ as new tax id [#729](https://github.com/recurly/recurly-js/pull/729) ([horozcorecurly](https://github.com/horozcorecurly))



## [v4.21.0](https://github.com/recurly/recurly-js/tree/v4.21.0) (2022-05-21)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.20.2...v4.21.0)


**Merged Pull Requests**

- Fix snapshots for android10 [#728](https://github.com/recurly/recurly-js/pull/728) ([cyberxander90](https://github.com/cyberxander90))
- Select PayPal gateway [#727](https://github.com/recurly/recurly-js/pull/727) ([rlew421](https://github.com/rlew421))



## [v4.20.2](https://github.com/recurly/recurly-js/tree/v4.20.2) (2022-05-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.20.1...v4.20.2)


**Merged Pull Requests**

- Accepts custom udf on kount [#720](https://github.com/recurly/recurly-js/pull/720) ([cyberxander90](https://github.com/cyberxander90))



## [v4.20.1](https://github.com/recurly/recurly-js/tree/v4.20.1) (2022-05-04)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.20.0...v4.20.1)


**Merged Pull Requests**

- add gateway suggested field to braintree 3ds flow [#724](https://github.com/recurly/recurly-js/pull/724) ([isaacvance1027](https://github.com/isaacvance1027))



## [v4.20.0](https://github.com/recurly/recurly-js/tree/v4.20.0) (2022-04-28)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.19.1...v4.20.0)


**Merged Pull Requests**

- ApplePay through Braintree [#715](https://github.com/recurly/recurly-js/pull/715) ([cyberxander90](https://github.com/cyberxander90))



## [v4.19.1](https://github.com/recurly/recurly-js/tree/v4.19.1) (2022-03-31)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.19.0...v4.19.1)


**Merged Pull Requests**

- Worldpay 3ds prod fix [#717](https://github.com/recurly/recurly-js/pull/717) ([smagdicatrecurly](https://github.com/smagdicatrecurly))
- remove redirectURL from WorldpayStrategy [#714](https://github.com/recurly/recurly-js/pull/714) ([ajkelso](https://github.com/ajkelso))



## [v4.19.0](https://github.com/recurly/recurly-js/tree/v4.19.0) (2022-02-24)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.18.1...v4.19.0)


**Merged Pull Requests**

- Added Sofort selection form and validations [#707](https://github.com/recurly/recurly-js/pull/707) ([gilv93](https://github.com/gilv93))
- IDeal and Sofort [#701](https://github.com/recurly/recurly-js/pull/701) ([cyberxander90](https://github.com/cyberxander90))
- Adding the eu api url for eu on rjs [#700](https://github.com/recurly/recurly-js/pull/700) ([flaviomuller](https://github.com/flaviomuller))

**Closed Issues**

- Error during 3DS fingerprint check with Stripe [#706](https://github.com/recurly/recurly-js/issues/706)


## [v4.18.1](https://github.com/recurly/recurly-js/tree/v4.18.1) (2021-11-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.18.0...v4.18.1)


**Merged Pull Requests**

- Round tax amount instead of ceil [#690](https://github.com/recurly/recurly-js/pull/690) ([judith](https://github.com/judith))

**Closed Issues**

- Outdated types on DefinitelyTyped [#694](https://github.com/recurly/recurly-js/issues/694)


## [v4.18.0](https://github.com/recurly/recurly-js/tree/v4.18.0) (2021-10-20)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.17.1...v4.18.0)


**Merged Pull Requests**

- Add elements to fix failing e2e tests [#696](https://github.com/recurly/recurly-js/pull/696) ([efeygelson](https://github.com/efeygelson))
- Update jsdoc [#695](https://github.com/recurly/recurly-js/pull/695) ([cyberxander90](https://github.com/cyberxander90))
- Add chase orbital 3ds strategy [#692](https://github.com/recurly/recurly-js/pull/692) ([cyberxander90](https://github.com/cyberxander90))



## [v4.17.1](https://github.com/recurly/recurly-js/tree/v4.17.1) (2021-08-19)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.17.0...v4.17.1)


**Merged Pull Requests**

- Add BIN range for Tarjeta Naranja [#689](https://github.com/recurly/recurly-js/pull/689) ([efeygelson](https://github.com/efeygelson))



## [v4.17.0](https://github.com/recurly/recurly-js/tree/v4.17.0) (2021-08-12)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.16.2...v4.17.0)


**Merged Pull Requests**

- Revert "add security to github CODEOWNER file" [#688](https://github.com/recurly/recurly-js/pull/688) ([eternal44](https://github.com/eternal44))
- Add support to SagePay 3DS2 [#687](https://github.com/recurly/recurly-js/pull/687) ([cyberxander90](https://github.com/cyberxander90))
- add security to github CODEOWNER file [#685](https://github.com/recurly/recurly-js/pull/685) ([eternal44](https://github.com/eternal44))
- Add test to support cuit tax identifiers [#684](https://github.com/recurly/recurly-js/pull/684) ([cyberxander90](https://github.com/cyberxander90))
- Add fields and details types to RecurlyError [#680](https://github.com/recurly/recurly-js/pull/680) ([cyberxander90](https://github.com/cyberxander90))

**Closed Issues**

- Add a line item for trial in apple pay payment sheet  [#686](https://github.com/recurly/recurly-js/issues/686)
- Better validation on fly ? [#679](https://github.com/recurly/recurly-js/issues/679)


## [v4.16.2](https://github.com/recurly/recurly-js/tree/v4.16.2) (2021-05-05)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.16.1...v4.16.2)


**Merged Pull Requests**

- Venmo Desktop [#670](https://github.com/recurly/recurly-js/pull/670) ([efeygelson](https://github.com/efeygelson))



## [v4.16.1](https://github.com/recurly/recurly-js/tree/v4.16.1) (2021-04-07)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.16.0...v4.16.1)


**Merged Pull Requests**

- Allow recurly.js implementer to specify if 3ds2 device data collection calls occur [#671](https://github.com/recurly/recurly-js/pull/671) ([glaubenstein](https://github.com/glaubenstein))



## [v4.16.0](https://github.com/recurly/recurly-js/tree/v4.16.0) (2021-02-25)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.15.1...v4.16.0)


**Merged Pull Requests**

- Allows a PricingPromise to be provided to the ApplePay constructor [#665](https://github.com/recurly/recurly-js/pull/665) ([chrissrogers](https://github.com/chrissrogers))
- Venmo support [#661](https://github.com/recurly/recurly-js/pull/661) ([efeygelson](https://github.com/efeygelson))

**Closed Issues**

- Is there a way to configure inputs to remove Chrome's autofill styles?  [#659](https://github.com/recurly/recurly-js/issues/659)


## [v4.15.1](https://github.com/recurly/recurly-js/tree/v4.15.1) (2020-11-18)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.15.0...v4.15.1)


**Merged Pull Requests**

- Support setup intents on 3ds2 [#653](https://github.com/recurly/recurly-js/pull/653) ([glaubenstein](https://github.com/glaubenstein))



## [v4.15.0](https://github.com/recurly/recurly-js/tree/v4.15.0) (2020-11-10)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.14.0...v4.15.0)


**Merged Pull Requests**

- Add support for 3ds2 transactions with cybersource [#652](https://github.com/recurly/recurly-js/pull/652) ([glaubenstein](https://github.com/glaubenstein))
- TypeScript updates and fixes [#648](https://github.com/recurly/recurly-js/pull/648) ([dbrudner](https://github.com/dbrudner))
- Adjust ELO BIN ranges [#647](https://github.com/recurly/recurly-js/pull/647) ([billkauf1](https://github.com/billkauf1))
- Fixes test-unit-debug Make target [#643](https://github.com/recurly/recurly-js/pull/643) ([chrissrogers](https://github.com/chrissrogers))
- Fixes DefinitelyTyped GitHub action trigger [#641](https://github.com/recurly/recurly-js/pull/641) ([dbrudner](https://github.com/dbrudner))
- Fixes error reporting [#638](https://github.com/recurly/recurly-js/pull/638) ([dbrudner](https://github.com/dbrudner))
- Fix dt checkout action [#637](https://github.com/recurly/recurly-js/pull/637) ([dbrudner](https://github.com/dbrudner))
- Adds e2e test for kount [#636](https://github.com/recurly/recurly-js/pull/636) ([dbrudner](https://github.com/dbrudner))
- Enhances types for BankAccount [#633](https://github.com/recurly/recurly-js/pull/633) ([dbrudner](https://github.com/dbrudner))

**Closed Issues**

- Incomplete typings [#646](https://github.com/recurly/recurly-js/issues/646)
- Not able to add new attribute maxlenth to element card element [#639](https://github.com/recurly/recurly-js/issues/639)


## [v4.14.0](https://github.com/recurly/recurly-js/tree/v4.14.0) (2020-07-30)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.13.1...v4.14.0)


**Merged Pull Requests**

- Adds support to tokenize tax_identifier [#629](https://github.com/recurly/recurly-js/pull/629) ([lexac1](https://github.com/lexac1))
- Adds tsdoc comments for types [#627](https://github.com/recurly/recurly-js/pull/627) ([dbrudner](https://github.com/dbrudner))
- Removes nonexistent token method from PayPal.d.ts [#626](https://github.com/recurly/recurly-js/pull/626) ([dbrudner](https://github.com/dbrudner))
- Adds Element.focus method to types [#625](https://github.com/recurly/recurly-js/pull/625) ([dbrudner](https://github.com/dbrudner))
- Fixes previous tabbing for Elements on non-mobile browsers [#618](https://github.com/recurly/recurly-js/pull/618) ([chrissrogers](https://github.com/chrissrogers))
- Adds Becs support [#614](https://github.com/recurly/recurly-js/pull/614) ([calebbarde](https://github.com/calebbarde))



## [v4.13.1](https://github.com/recurly/recurly-js/tree/v4.13.1) (2020-07-16)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.13.0...v4.13.1)


**Merged Pull Requests**

- Patches dtslint config to match DefinitelyTyped [#620](https://github.com/recurly/recurly-js/pull/620) ([dbrudner](https://github.com/dbrudner))



## [v4.13.0](https://github.com/recurly/recurly-js/tree/v4.13.0) (2020-06-23)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.12.0...v4.13.0)


**Merged Pull Requests**

- Use more inclusive terms [#616](https://github.com/recurly/recurly-js/pull/616) ([aaron-junot](https://github.com/aaron-junot))
- Fixes BankAccount type test [#615](https://github.com/recurly/recurly-js/pull/615) ([dbrudner](https://github.com/dbrudner))
- Updates dependencies [#613](https://github.com/recurly/recurly-js/pull/613) ([dbrudner](https://github.com/dbrudner))
- Adds e2e tests for electron [#610](https://github.com/recurly/recurly-js/pull/610) ([dbrudner](https://github.com/dbrudner))
- Adds Bacs Support [#608](https://github.com/recurly/recurly-js/pull/608) ([calebbarde](https://github.com/calebbarde))
- Throws missing plan code error if plan is an empty string [#603](https://github.com/recurly/recurly-js/pull/603) ([dbrudner](https://github.com/dbrudner))
- Sends requested currency in `GET /apple_pay/info` requests [#600](https://github.com/recurly/recurly-js/pull/600) ([chrissrogers](https://github.com/chrissrogers))
- Caches plan requests [#599](https://github.com/recurly/recurly-js/pull/599) ([chrissrogers](https://github.com/chrissrogers))
- Restructures types for DT [#595](https://github.com/recurly/recurly-js/pull/595) ([dbrudner](https://github.com/dbrudner))
- Increases the report collation period to 30 seconds [#594](https://github.com/recurly/recurly-js/pull/594) ([chrissrogers](https://github.com/chrissrogers))
- Adds electron as env for unit tests [#593](https://github.com/recurly/recurly-js/pull/593) ([dbrudner](https://github.com/dbrudner))
- Adds PayPal#destroy [#592](https://github.com/recurly/recurly-js/pull/592) ([dbrudner](https://github.com/dbrudner))
- Adds exports for types [#591](https://github.com/recurly/recurly-js/pull/591) ([dbrudner](https://github.com/dbrudner))

**Closed Issues**

- Add support for SEPA billing info [#606](https://github.com/recurly/recurly-js/issues/606)


## [v4.12.0](https://github.com/recurly/recurly-js/tree/v4.12.0) (2020-03-21)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.11.0...v4.12.0)


**Merged Pull Requests**

- Adds union pay [#590](https://github.com/recurly/recurly-js/pull/590) ([lexac1](https://github.com/lexac1))
- Fixes webpack-dev-server options in makefile [#585](https://github.com/recurly/recurly-js/pull/585) ([dbrudner](https://github.com/dbrudner))
- Adds support for tokenizing IBAN Bank accounts [#579](https://github.com/recurly/recurly-js/pull/579) ([chrissrogers](https://github.com/chrissrogers))
- Updates fraud detection endpoint consumer [#577](https://github.com/recurly/recurly-js/pull/577) ([chrissrogers](https://github.com/chrissrogers))
- Fixes discount calculations on free trial subscriptions with a single-use coupon [#574](https://github.com/recurly/recurly-js/pull/574) ([chrissrogers](https://github.com/chrissrogers))
- Fixes HostedFields reset on re-configuration preceding initialization [#573](https://github.com/recurly/recurly-js/pull/573) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Wrong discount and subtotal next values [#572](https://github.com/recurly/recurly-js/issues/572)
- Subsequent calls to `recurly.configure()` fail if hosted field(s) didn't fully load [#570](https://github.com/recurly/recurly-js/issues/570)


## [v4.11.0](https://github.com/recurly/recurly-js/tree/v4.11.0) (2019-12-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.10.3...v4.11.0)


**Merged Pull Requests**

- Add new Discover BINs [#569](https://github.com/recurly/recurly-js/pull/569) ([billkauf1](https://github.com/billkauf1))
- Elements [#568](https://github.com/recurly/recurly-js/pull/568) ([chrissrogers](https://github.com/chrissrogers))
- Checkout pricing items [#566](https://github.com/recurly/recurly-js/pull/566) ([chrissrogers](https://github.com/chrissrogers))
- Fixes an issue with paypal incorrectly emitting a cancel event on success [#564](https://github.com/recurly/recurly-js/pull/564) ([dbrudner](https://github.com/dbrudner))
- updates Frame to use enum instead of string types [#557](https://github.com/recurly/recurly-js/pull/557) ([dbrudner](https://github.com/dbrudner))

**Closed Issues**

- Recurly Issue on Internet Explorer - Can't Proceed with Payment [#562](https://github.com/recurly/recurly-js/issues/562)
- Safari Autofill does not seem to propagate Recurly change event state properly [#561](https://github.com/recurly/recurly-js/issues/561)
- Fix spacing of expiry and CVV in the Card field [#502](https://github.com/recurly/recurly-js/issues/502)


## [v4.10.3](https://github.com/recurly/recurly-js/tree/v4.10.3) (2019-09-24)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.10.2...v4.10.3)


**Merged Pull Requests**

- Fixes Braintree authentication amount display [#556](https://github.com/recurly/recurly-js/pull/556) ([chrissrogers](https://github.com/chrissrogers))
- Renders Wirecard 3DS challenge as an iframe instead of new window [#555](https://github.com/recurly/recurly-js/pull/555) ([chrissrogers](https://github.com/chrissrogers))
- adds lint step to travis-ci .yml [#554](https://github.com/recurly/recurly-js/pull/554) ([dbrudner](https://github.com/dbrudner))
- runs npm audit fix [#550](https://github.com/recurly/recurly-js/pull/550) ([dbrudner](https://github.com/dbrudner))



## [v4.10.2](https://github.com/recurly/recurly-js/tree/v4.10.2) (2019-09-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.10.1...v4.10.2)


**Merged Pull Requests**

- Fixes loading Braintree libraries [#549](https://github.com/recurly/recurly-js/pull/549) ([miscer](https://github.com/miscer))
- Adds 3D Secure support for Worldpay [#547](https://github.com/recurly/recurly-js/pull/547) ([chrissrogers](https://github.com/chrissrogers))
- adds error emission instead of throwing in Fraud [#546](https://github.com/recurly/recurly-js/pull/546) ([dbrudner](https://github.com/dbrudner))
- implement CIT for sagepay [#543](https://github.com/recurly/recurly-js/pull/543) ([calebbarde](https://github.com/calebbarde))
- Adds 'aria-hidden' tag to hidden input field [#542](https://github.com/recurly/recurly-js/pull/542) ([dbrudner](https://github.com/dbrudner))
- Emit PayPal cancel event on frame close [#525](https://github.com/recurly/recurly-js/pull/525) ([aaron-junot](https://github.com/aaron-junot))

**Closed Issues**

- Return an Error when actionTokenID is not provided to ThreeDSecure constructor [#536](https://github.com/recurly/recurly-js/issues/536)


## [v4.10.1](https://github.com/recurly/recurly-js/tree/v4.10.1) (2019-08-27)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.10.0...v4.10.1)


**Merged Pull Requests**

- Sets ThreeDSecureStrategy#container height and width to 100% [#538](https://github.com/recurly/recurly-js/pull/538) ([chrissrogers](https://github.com/chrissrogers))
- Requires actionTokenId to be provided when instantiating ThreeDSecure [#537](https://github.com/recurly/recurly-js/pull/537) ([chrissrogers](https://github.com/chrissrogers))
- Adds Wirecard 3D Secure support [#535](https://github.com/recurly/recurly-js/pull/535) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Return an Error when actionTokenID is not provided to ThreeDSecure constructor [#536](https://github.com/recurly/recurly-js/issues/536)


## [v4.10.0](https://github.com/recurly/recurly-js/tree/v4.10.0) (2019-06-21)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.7...v4.10.0)


**Merged Pull Requests**

- Updates StripeStrategy to resolve only the PaymentIntent.id [#531](https://github.com/recurly/recurly-js/pull/531) ([chrissrogers](https://github.com/chrissrogers))
- Corrects ApplePay completeShippingMethodSelection call signature [#529](https://github.com/recurly/recurly-js/pull/529) ([chrissrogers](https://github.com/chrissrogers))
- 3D Secure 2.0 [#527](https://github.com/recurly/recurly-js/pull/527) ([chrissrogers](https://github.com/chrissrogers))
- Use handleCardAction for post SCA [#524](https://github.com/recurly/recurly-js/pull/524) ([jpgnotgif](https://github.com/jpgnotgif))



## [v4.9.7](https://github.com/recurly/recurly-js/tree/v4.9.7) (2019-05-23)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.6...v4.9.7)


**Merged Pull Requests**

- Adds 'details' to token validation errors [#522](https://github.com/recurly/recurly-js/pull/522) ([chrissrogers](https://github.com/chrissrogers))



## [v4.9.6](https://github.com/recurly/recurly-js/tree/v4.9.6) (2019-03-25)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.5...v4.9.6)


**Merged Pull Requests**

- Adds specific tax amount overrides to SubscriptionPricing and CheckoutPricing [#515](https://github.com/recurly/recurly-js/pull/515) ([chrissrogers](https://github.com/chrissrogers))



## [v4.9.5](https://github.com/recurly/recurly-js/tree/v4.9.5) (2019-01-31)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.4...v4.9.5)


**Merged Pull Requests**

- Fixes Edge 44 bug when adding an iframe as a bus recipient [#510](https://github.com/recurly/recurly-js/pull/510) ([chrissrogers](https://github.com/chrissrogers))
- Adds adyen-error [#507](https://github.com/recurly/recurly-js/pull/507) ([chrissrogers](https://github.com/chrissrogers))
- Fixes detection of tabbing order on mobile browsers [#504](https://github.com/recurly/recurly-js/pull/504) ([chrissrogers](https://github.com/chrissrogers))
- Adds field type to reporter events on field focus and blur [#501](https://github.com/recurly/recurly-js/pull/501) ([chrissrogers](https://github.com/chrissrogers))
- Isolates buses across instances [#500](https://github.com/recurly/recurly-js/pull/500) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Unable click and fill up security code and expiration date using Microsoft Edge [#509](https://github.com/recurly/recurly-js/issues/509)
- Add "adyen-error" to ERRORS [#506](https://github.com/recurly/recurly-js/issues/506)
- Tabbing with multiple hosted fields in mobile Safari [#503](https://github.com/recurly/recurly-js/issues/503)


## [v4.9.4](https://github.com/recurly/recurly-js/tree/v4.9.4) (2018-12-11)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.3...v4.9.4)


**Merged Pull Requests**

- Fixes reference to Promise library [#499](https://github.com/recurly/recurly-js/pull/499) ([chrissrogers](https://github.com/chrissrogers))
- Fixes determination of individual field formatting configuration [#498](https://github.com/recurly/recurly-js/pull/498) ([chrissrogers](https://github.com/chrissrogers))
- Make fsevents optional to allow for builds on linux systems [#495](https://github.com/recurly/recurly-js/pull/495) ([jss79](https://github.com/jss79))
- Fixes coupon resolving when switching subscription plans [#489](https://github.com/recurly/recurly-js/pull/489) ([chrissrogers](https://github.com/chrissrogers))
- Fixes SubscriptionPricing addon removal [#487](https://github.com/recurly/recurly-js/pull/487) ([chrissrogers](https://github.com/chrissrogers))
- Fix pricing calculation for multiple addons [#471](https://github.com/recurly/recurly-js/pull/471) ([rstrand](https://github.com/rstrand))

**Closed Issues**

- Object doesn't support property or method 'assign' [#496](https://github.com/recurly/recurly-js/issues/496)
- Plan-restricted coupon works for another plan too [#488](https://github.com/recurly/recurly-js/issues/488)
- Removing an addon from Pricing instance causes "invalid-item" error [#486](https://github.com/recurly/recurly-js/issues/486)
- [Hosted pages] Current email address can be changed into an invalid email address with no error generated [#481](https://github.com/recurly/recurly-js/issues/481)
- [Payment form] The "Pay $10.00 USD/mo." button becomes clickable even though the invalid CC number error is displayed [#480](https://github.com/recurly/recurly-js/issues/480)
- Problem with Diners club number, the caret wrongly moves inside the string. [#476](https://github.com/recurly/recurly-js/issues/476)


## [v4.9.3](https://github.com/recurly/recurly-js/tree/v4.9.3) (2018-10-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.2...v4.9.3)


**Merged Pull Requests**

- Fixes storage availability check within hosted fields [#482](https://github.com/recurly/recurly-js/pull/482) ([chrissrogers](https://github.com/chrissrogers))



## [v4.9.2](https://github.com/recurly/recurly-js/tree/v4.9.2) (2018-10-03)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.1...v4.9.2)


**Merged Pull Requests**

- Adds Storage availability check and generic object fallback scenario [#478](https://github.com/recurly/recurly-js/pull/478) ([chrissrogers](https://github.com/chrissrogers))
- Catches non-critical worker init errors and reports them via debug [#477](https://github.com/recurly/recurly-js/pull/477) ([chrissrogers](https://github.com/chrissrogers))



## [v4.9.1](https://github.com/recurly/recurly-js/tree/v4.9.1) (2018-09-05)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.9.0...v4.9.1)


**Merged Pull Requests**

- Fixes issue where tax exemption results in negative taxes [#475](https://github.com/recurly/recurly-js/pull/475) ([chrissrogers](https://github.com/chrissrogers))
- Allow specifying requiredShippingContactFields in Apple Pay [#474](https://github.com/recurly/recurly-js/pull/474) ([emcro](https://github.com/emcro))



## [v4.9.0](https://github.com/recurly/recurly-js/tree/v4.9.0) (2018-08-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.7...v4.9.0)


**Merged Pull Requests**

- Recurly.Event [#459](https://github.com/recurly/recurly-js/pull/459) ([chrissrogers](https://github.com/chrissrogers))



## [v4.8.7](https://github.com/recurly/recurly-js/tree/v4.8.7) (2018-07-31)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.6...v4.8.7)


**Merged Pull Requests**

- Fixes Kount fraud detection when using Card field [#470](https://github.com/recurly/recurly-js/pull/470) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Fraud module and card field [#469](https://github.com/recurly/recurly-js/issues/469)


## [v4.8.6](https://github.com/recurly/recurly-js/tree/v4.8.6) (2018-05-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.5...v4.8.6)


**Merged Pull Requests**

- fix: switch to using window over global [#456](https://github.com/recurly/recurly-js/pull/456) ([thisislawatts](https://github.com/thisislawatts))
- chore: remove eval from minified file [#455](https://github.com/recurly/recurly-js/pull/455) ([thisislawatts](https://github.com/thisislawatts))
- Adds deviceId and sessionId [#454](https://github.com/recurly/recurly-js/pull/454) ([chrissrogers](https://github.com/chrissrogers))
- Moves request concerns out of main Recurly class module [#452](https://github.com/recurly/recurly-js/pull/452) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Hosted field focus issue in Firefox 59.0.2 (64-bit) [#460](https://github.com/recurly/recurly-js/issues/460)


## [v4.8.5](https://github.com/recurly/recurly-js/tree/v4.8.5) (2018-03-29)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.4...v4.8.5)


**Merged Pull Requests**

- Adds tabIndex configuration support [#448](https://github.com/recurly/recurly-js/pull/448) ([chrissrogers](https://github.com/chrissrogers))
- Cleans up errors and adds select generation to createHiddenInput [#445](https://github.com/recurly/recurly-js/pull/445) ([chrissrogers](https://github.com/chrissrogers))
- Removes dates from CHANGELOG [#443](https://github.com/recurly/recurly-js/pull/443) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Incorrect validation of card number [#441](https://github.com/recurly/recurly-js/issues/441)
- Checkout with PayPal in private window mode [#419](https://github.com/recurly/recurly-js/issues/419)
- Loading Font Weight 300 from Google Font [#360](https://github.com/recurly/recurly-js/issues/360)


## [v4.8.4](https://github.com/recurly/recurly-js/tree/v4.8.4) (2018-03-16)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.3...v4.8.4)


**Merged Pull Requests**

- Fixes hosted field forced-focus binding [#439](https://github.com/recurly/recurly-js/pull/439) ([chrissrogers](https://github.com/chrissrogers))
- Adds displayIcon field configuration option pass-through [#433](https://github.com/recurly/recurly-js/pull/433) ([chrissrogers](https://github.com/chrissrogers))
- Small cleanup for field injections [#431](https://github.com/recurly/recurly-js/pull/431) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Option to prevent font fetching [#424](https://github.com/recurly/recurly-js/issues/424)


## [v4.8.3](https://github.com/recurly/recurly-js/tree/v4.8.3) (2018-02-27)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.2...v4.8.3)


**Merged Pull Requests**

- Mobile Tabbing for multiple/combined card fields [#421](https://github.com/recurly/recurly-js/pull/421) ([jpgnotgif](https://github.com/jpgnotgif))



## [v4.8.2](https://github.com/recurly/recurly-js/tree/v4.8.2) (2018-02-15)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.1...v4.8.2)


**Merged Pull Requests**

- Apple pay zero amount authorizations [#426](https://github.com/recurly/recurly-js/pull/426) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Firefox: Red border around hosted fields [#427](https://github.com/recurly/recurly-js/issues/427)


## [v4.8.1](https://github.com/recurly/recurly-js/tree/v4.8.1) (2018-01-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.8.0...v4.8.1)


**Merged Pull Requests**

- Revert "Mobile Tabbing for Recurly.js" [#420](https://github.com/recurly/recurly-js/pull/420) ([chrissrogers](https://github.com/chrissrogers))
- Adds support for logo assignment in PayPal flow [#418](https://github.com/recurly/recurly-js/pull/418) ([chrissrogers](https://github.com/chrissrogers))
- Mobile Tabbing for Recurly.js [#396](https://github.com/recurly/recurly-js/pull/396) ([jpgnotgif](https://github.com/jpgnotgif))



## [v4.8.0](https://github.com/recurly/recurly-js/tree/v4.8.0) (2017-12-13)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.7.2...v4.8.0)


**Merged Pull Requests**

- Fix checkout coupon currency safety [#417](https://github.com/recurly/recurly-js/pull/417) ([chrissrogers](https://github.com/chrissrogers))
- Fixes vestigial coupons on Checkout Calculations [#416](https://github.com/recurly/recurly-js/pull/416) ([chrissrogers](https://github.com/chrissrogers))
- Adds safety check to calculation of discount amount [#415](https://github.com/recurly/recurly-js/pull/415) ([chrissrogers](https://github.com/chrissrogers))
- Updates recurly.css for cross-device standard appearance [#414](https://github.com/recurly/recurly-js/pull/414) ([chrissrogers](https://github.com/chrissrogers))
- Fix checkout deferred emitters [#413](https://github.com/recurly/recurly-js/pull/413) ([chrissrogers](https://github.com/chrissrogers))
- fix bug with listener not registered for cancel event on paypal [#412](https://github.com/recurly/recurly-js/pull/412) ([keemy](https://github.com/keemy))
- Fixes subscription sort for discount selection [#411](https://github.com/recurly/recurly-js/pull/411) ([chrissrogers](https://github.com/chrissrogers))
- Fixes taxation of credit adjustments [#410](https://github.com/recurly/recurly-js/pull/410) ([chrissrogers](https://github.com/chrissrogers))
- Fixes CheckoutPricing discount taxation [#408](https://github.com/recurly/recurly-js/pull/408) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with reporting of negative pricing amounts [#407](https://github.com/recurly/recurly-js/pull/407) ([chrissrogers](https://github.com/chrissrogers))
- Removes lodash.after dependency from BraintreeStrategy [#406](https://github.com/recurly/recurly-js/pull/406) ([chrissrogers](https://github.com/chrissrogers))
- Ensures an invalid coupon emits an error on CheckoutPricing [#405](https://github.com/recurly/recurly-js/pull/405) ([chrissrogers](https://github.com/chrissrogers))
- Adds Card Hosted Field support [#404](https://github.com/recurly/recurly-js/pull/404) ([chrissrogers](https://github.com/chrissrogers))
- Fixes dynamic removal of subscriptions and adjustments from CheckoutPricing/Attachment [#403](https://github.com/recurly/recurly-js/pull/403) ([chrissrogers](https://github.com/chrissrogers))
- Fixes CheckoutPricing attachment orphaned element discovery [#402](https://github.com/recurly/recurly-js/pull/402) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with detachment reference to observer [#401](https://github.com/recurly/recurly-js/pull/401) ([chrissrogers](https://github.com/chrissrogers))
- CheckoutPricing [#399](https://github.com/recurly/recurly-js/pull/399) ([chrissrogers](https://github.com/chrissrogers))
- CheckoutPricing: Attachment and Shipping Addresses [#398](https://github.com/recurly/recurly-js/pull/398) ([chrissrogers](https://github.com/chrissrogers))
- CheckoutPricing: Apply Pay & PayPal support [#394](https://github.com/recurly/recurly-js/pull/394) ([chrissrogers](https://github.com/chrissrogers))
- CheckoutPricing: Taxes and Adjustment Currencies [#393](https://github.com/recurly/recurly-js/pull/393) ([chrissrogers](https://github.com/chrissrogers))
- add support for adyen hpp checkout [#392](https://github.com/recurly/recurly-js/pull/392) ([adeitrick](https://github.com/adeitrick))
- CheckoutPricing: Gift cards [#391](https://github.com/recurly/recurly-js/pull/391) ([chrissrogers](https://github.com/chrissrogers))
- Updates README build status display [#387](https://github.com/recurly/recurly-js/pull/387) ([chrissrogers](https://github.com/chrissrogers))
- CheckoutPricing: Coupons [#385](https://github.com/recurly/recurly-js/pull/385) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Coupon impact on total price [#343](https://github.com/recurly/recurly-js/issues/343)
- Pricing.attach: check that event target is a valid data-recurly element [#181](https://github.com/recurly/recurly-js/issues/181)
- How to interrupt previous Pricing API call with promise? [#164](https://github.com/recurly/recurly-js/issues/164)
- Plan add-ons don't return a property indicating editable quantity [#162](https://github.com/recurly/recurly-js/issues/162)
- Error: Plan Undefined (Firefox/IE) when using Pricing on a form with add-ons [#158](https://github.com/recurly/recurly-js/issues/158)
- Use a Decimal implementation in place of Number. [#148](https://github.com/recurly/recurly-js/issues/148)
- Customer-facing error messages [#129](https://github.com/recurly/recurly-js/issues/129)
- Have the properties in Tokenized billing info be available w/o additional request [#116](https://github.com/recurly/recurly-js/issues/116)


## [v4.7.2](https://github.com/recurly/recurly-js/tree/v4.7.2) (2017-10-23)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.7.1...v4.7.2)


**Merged Pull Requests**

- Don’t require form for Apple Pay [#381](https://github.com/recurly/recurly-js/pull/381) ([snodgrass23](https://github.com/snodgrass23))



## [v4.7.1](https://github.com/recurly/recurly-js/tree/v4.7.1) (2017-10-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.7.0...v4.7.1)


**Merged Pull Requests**

- use Apple Pay contact data when form name and address are not supplied [#380](https://github.com/recurly/recurly-js/pull/380) ([snodgrass23](https://github.com/snodgrass23))



## [v4.7.0](https://github.com/recurly/recurly-js/tree/v4.7.0) (2017-09-15)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.6.4...v4.7.0)


**Merged Pull Requests**

- Fixes field style propagation [#378](https://github.com/recurly/recurly-js/pull/378) ([chrissrogers](https://github.com/chrissrogers))
- Adds ‘attached’ event to Pricing [#377](https://github.com/recurly/recurly-js/pull/377) ([chrissrogers](https://github.com/chrissrogers))
- Adds inputType configuration to HostedField.fieldConfig [#375](https://github.com/recurly/recurly-js/pull/375) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Recurly doesn't support authorization amounts greater than 1$ [#379](https://github.com/recurly/recurly-js/issues/379)
- Error styling [#376](https://github.com/recurly/recurly-js/issues/376)
- Autocomplete / Autofill does not work [#368](https://github.com/recurly/recurly-js/issues/368)
- Event/Promise when pricing.attach() is complete? [#270](https://github.com/recurly/recurly-js/issues/270)


## [v4.6.4](https://github.com/recurly/recurly-js/tree/v4.6.4) (2017-09-05)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.6.3...v4.6.4)


**Merged Pull Requests**

- Fixes Apple Pay pricing initialization [#374](https://github.com/recurly/recurly-js/pull/374) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Documentation: (1) Full list of recurly.configure options and (2) calling recurly.token with an object rather than form element [#373](https://github.com/recurly/recurly-js/issues/373)
- React compatible version? [#372](https://github.com/recurly/recurly-js/issues/372)
- Apple Pay init error - "" is not a valid amount [#371](https://github.com/recurly/recurly-js/issues/371)


## [v4.6.3](https://github.com/recurly/recurly-js/tree/v4.6.3) (2017-08-10)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.6.2...v4.6.3)


**Merged Pull Requests**

- Passes PayPal amount param to API start endpoint [#369](https://github.com/recurly/recurly-js/pull/369) ([chrissrogers](https://github.com/chrissrogers))
- Adds a missing error type [#367](https://github.com/recurly/recurly-js/pull/367) ([chrissrogers](https://github.com/chrissrogers))



## [v4.6.2](https://github.com/recurly/recurly-js/tree/v4.6.2) (2017-07-06)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.6.1...v4.6.2)


**Merged Pull Requests**

- Adds support for Braintree deviceData [#363](https://github.com/recurly/recurly-js/pull/363) ([chrissrogers](https://github.com/chrissrogers))
- Adds company attribute collection to ApplePay tokenizer [#361](https://github.com/recurly/recurly-js/pull/361) ([chrissrogers](https://github.com/chrissrogers))
- Adds support for ‘company’ field [#358](https://github.com/recurly/recurly-js/pull/358) ([chrissrogers](https://github.com/chrissrogers))
- Adds field container click event deference [#356](https://github.com/recurly/recurly-js/pull/356) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Can't make the Paypal example work w/ sandbox account [#359](https://github.com/recurly/recurly-js/issues/359)
- Add company name field to the supported data-recurly fields [#357](https://github.com/recurly/recurly-js/issues/357)


## [v4.6.1](https://github.com/recurly/recurly-js/tree/v4.6.1) (2017-06-08)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.6.0...v4.6.1)


**Merged Pull Requests**

- Adds package-lock.json [#355](https://github.com/recurly/recurly-js/pull/355) ([chrissrogers](https://github.com/chrissrogers))
- Fixes error handler within bus relay handler [#354](https://github.com/recurly/recurly-js/pull/354) ([chrissrogers](https://github.com/chrissrogers))
- Adds polyfill for Object.assign [#352](https://github.com/recurly/recurly-js/pull/352) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Object.assign not supported in IE [#350](https://github.com/recurly/recurly-js/issues/350)
- Option to show paypal in a popup window (instead of a new tab) [#296](https://github.com/recurly/recurly-js/issues/296)


## [v4.6.0](https://github.com/recurly/recurly-js/tree/v4.6.0) (2017-04-22)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.5.3...v4.6.0)


**Merged Pull Requests**

- PayPal Express Checkout [#348](https://github.com/recurly/recurly-js/pull/348) ([chrissrogers](https://github.com/chrissrogers))
- Adds support for local certificate assignment [#346](https://github.com/recurly/recurly-js/pull/346) ([chrissrogers](https://github.com/chrissrogers))



## [v4.5.3](https://github.com/recurly/recurly-js/tree/v4.5.3) (2017-03-28)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.5.2...v4.5.3)


**Merged Pull Requests**

- Fixes issue with new PayPal API usage of deprecated method [#345](https://github.com/recurly/recurly-js/pull/345) ([chrissrogers](https://github.com/chrissrogers))
- Removes old dependencies [#344](https://github.com/recurly/recurly-js/pull/344) ([chrissrogers](https://github.com/chrissrogers))
- Adds BraintreePayPal failure fallback [#336](https://github.com/recurly/recurly-js/pull/336) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Change placeholder text at runtime [#342](https://github.com/recurly/recurly-js/issues/342)
- After several times quickly open and close dialog with form, recurly fields are invisible [#337](https://github.com/recurly/recurly-js/issues/337)
- Hosted fields should force numbers-only for ALL browsers [#290](https://github.com/recurly/recurly-js/issues/290)


## [v4.5.2](https://github.com/recurly/recurly-js/tree/v4.5.2) (2017-03-14)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.5.1...v4.5.2)


**Merged Pull Requests**

- Makes origin checking compatible with IE11 + possibly others [#341](https://github.com/recurly/recurly-js/pull/341) ([davedevelopment](https://github.com/davedevelopment))
- Prevents relay from polluting main Recurly instance [#340](https://github.com/recurly/recurly-js/pull/340) ([chrissrogers](https://github.com/chrissrogers))
- Sends Braintree device fingerprint along with PayPal requests [#338](https://github.com/recurly/recurly-js/pull/338) ([chrissrogers](https://github.com/chrissrogers))
- Adds device data collection to Braintree PayPal instantiation [#333](https://github.com/recurly/recurly-js/pull/333) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Reset the recurly form on error [#334](https://github.com/recurly/recurly-js/issues/334)
- Bug: Recurly returns random 302 responses [#324](https://github.com/recurly/recurly-js/issues/324)
- Can labels be put into iframes for better accessibility? [#283](https://github.com/recurly/recurly-js/issues/283)


## [v4.5.1](https://github.com/recurly/recurly-js/tree/v4.5.1) (2017-02-27)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.5.0...v4.5.1)


**Merged Pull Requests**

- Fixes dependent module resolution to main [#332](https://github.com/recurly/recurly-js/pull/332) ([chrissrogers](https://github.com/chrissrogers))
- Patch for issue #329 [#330](https://github.com/recurly/recurly-js/pull/330) ([jchayan](https://github.com/jchayan))
- Adds parentVersion property [#325](https://github.com/recurly/recurly-js/pull/325) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Hosted fields change event should be compatible with HTML5 input change event [#331](https://github.com/recurly/recurly-js/issues/331)
- window.addEventListener('message') should verify the message origin [#329](https://github.com/recurly/recurly-js/issues/329)
- Month field validation when year is empty [#328](https://github.com/recurly/recurly-js/issues/328)


## [v4.5.0](https://github.com/recurly/recurly-js/tree/v4.5.0) (2017-02-21)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.4.1...v4.5.0)


**Merged Pull Requests**

- Removes some superfluous comments [#326](https://github.com/recurly/recurly-js/pull/326) ([chrissrogers](https://github.com/chrissrogers))
- Update Apple Pay init to receive payment form [#322](https://github.com/recurly/recurly-js/pull/322) ([snodgrass23](https://github.com/snodgrass23))
- Braintree-PayPal [#317](https://github.com/recurly/recurly-js/pull/317) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Hosted fields change event should be compatible with HTML5 input change event [#331](https://github.com/recurly/recurly-js/issues/331)


## [v4.4.1](https://github.com/recurly/recurly-js/tree/v4.4.1) (2017-02-10)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.1.1...v4.4.1)


**Merged Pull Requests**

- Also send name, address, etc fields for apple pay token creation [#320](https://github.com/recurly/recurly-js/pull/320) ([snodgrass23](https://github.com/snodgrass23))
- Apple Pay part 2 [#315](https://github.com/recurly/recurly-js/pull/315) ([chrissrogers](https://github.com/chrissrogers))
- Revert "Add support for tabbing in a Mobile browser." [#314](https://github.com/recurly/recurly-js/pull/314) ([chrissrogers](https://github.com/chrissrogers))
- Apple Pay [#313](https://github.com/recurly/recurly-js/pull/313) ([chrissrogers](https://github.com/chrissrogers))
- Include the responseText when json is invalid [#307](https://github.com/recurly/recurly-js/pull/307) ([geoffdutton](https://github.com/geoffdutton))
- Ensures configuration objects are not externally mutable [#303](https://github.com/recurly/recurly-js/pull/303) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with address attachment [#302](https://github.com/recurly/recurly-js/pull/302) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with config coercion [#301](https://github.com/recurly/recurly-js/pull/301) ([chrissrogers](https://github.com/chrissrogers))
- Adds support for shipping address [#300](https://github.com/recurly/recurly-js/pull/300) ([chrissrogers](https://github.com/chrissrogers))
- Restructures config object to nest fields more logically [#297](https://github.com/recurly/recurly-js/pull/297) ([chrissrogers](https://github.com/chrissrogers))
- Sends initial field config over hash instead of query [#295](https://github.com/recurly/recurly-js/pull/295) ([chrissrogers](https://github.com/chrissrogers))
- Add support for tabbing in a Mobile browser. [#293](https://github.com/recurly/recurly-js/pull/293) ([SteveDugas](https://github.com/SteveDugas))
- Fixes bug with pricing attachment of addons [#288](https://github.com/recurly/recurly-js/pull/288) ([chrissrogers](https://github.com/chrissrogers))
- Adds safety check to dom value get method [#282](https://github.com/recurly/recurly-js/pull/282) ([chrissrogers](https://github.com/chrissrogers))
- Allows a label tag paired to a field container to defer focus to the field [#279](https://github.com/recurly/recurly-js/pull/279) ([chrissrogers](https://github.com/chrissrogers))
- Fixes expiry validation for invalid input [#278](https://github.com/recurly/recurly-js/pull/278) ([chrissrogers](https://github.com/chrissrogers))
- Add giftcard support. [#275](https://github.com/recurly/recurly-js/pull/275) ([SteveDugas](https://github.com/SteveDugas))
- Refactors Pricing into class pattern [#273](https://github.com/recurly/recurly-js/pull/273) ([chrissrogers](https://github.com/chrissrogers))
- Don't try to calculate addons if there aren't any addons defined for … [#272](https://github.com/recurly/recurly-js/pull/272) ([SteveDugas](https://github.com/SteveDugas))
- Enables CORS by default [#269](https://github.com/recurly/recurly-js/pull/269) ([chrissrogers](https://github.com/chrissrogers))
- Remove UsageAddons from Calculations [#268](https://github.com/recurly/recurly-js/pull/268) ([SteveDugas](https://github.com/SteveDugas))
- Multiple instances [#267](https://github.com/recurly/recurly-js/pull/267) ([chrissrogers](https://github.com/chrissrogers))
- Fixes bug around initial pricing not respecting coupons [#264](https://github.com/recurly/recurly-js/pull/264) ([chrissrogers](https://github.com/chrissrogers))
- Emits a pricing error when a coupon is not found [#263](https://github.com/recurly/recurly-js/pull/263) ([chrissrogers](https://github.com/chrissrogers))
- Version 4.0.4 [#258](https://github.com/recurly/recurly-js/pull/258) ([snodgrass23](https://github.com/snodgrass23))
- Adding data-collector module for fraud checking [#254](https://github.com/recurly/recurly-js/pull/254) ([snodgrass23](https://github.com/snodgrass23))
- Version 4.0.3 [#251](https://github.com/recurly/recurly-js/pull/251) ([chrissrogers](https://github.com/chrissrogers))
- Updates discount type indication [#250](https://github.com/recurly/recurly-js/pull/250) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with trial ext coupon not zeroing totals [#249](https://github.com/recurly/recurly-js/pull/249) ([chrissrogers](https://github.com/chrissrogers))
- Version 4.0.2 [#247](https://github.com/recurly/recurly-js/pull/247) ([chrissrogers](https://github.com/chrissrogers))
- Adds pricing case for trial extension coupons [#246](https://github.com/recurly/recurly-js/pull/246) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- REXML::ParseException: #<REXML::ParseException: Missing end tag for 'meta' ﴾got "head"﴿ [#318](https://github.com/recurly/recurly-js/issues/318)
-  Tokenization error by recurly.token is not user friendly  [#316](https://github.com/recurly/recurly-js/issues/316)
- Is there a reason the tax estimation always rounds up partial cents? [#312](https://github.com/recurly/recurly-js/issues/312)
- Recurly 4.3.0 broken reinitialize: visibility:hidden on fields afterwards [#311](https://github.com/recurly/recurly-js/issues/311)
- Error in iFrame? [#310](https://github.com/recurly/recurly-js/issues/310)
- Allow first_name and last_name as text input [#308](https://github.com/recurly/recurly-js/issues/308)
- Help me : Could not verify Recurly's SSL certificate. [#306](https://github.com/recurly/recurly-js/issues/306)
- [4.3.0] Card fields invisible [#305](https://github.com/recurly/recurly-js/issues/305)
- Support for Amazon Payments [#304](https://github.com/recurly/recurly-js/issues/304)
- npm deployment or a commonjs build [#299](https://github.com/recurly/recurly-js/issues/299)
- Recurly js hosted field  iframe style visibility set to hidden [#298](https://github.com/recurly/recurly-js/issues/298)
- User-facing validation messages [#294](https://github.com/recurly/recurly-js/issues/294)
- Display validation messages next to hosted fields [#292](https://github.com/recurly/recurly-js/issues/292)
- Recurly returns a token when the credit card is valid and cvv is not present [#291](https://github.com/recurly/recurly-js/issues/291)
- Generic font family is requested from Google Web Fonts [#289](https://github.com/recurly/recurly-js/issues/289)
- Letter spacing css property [#287](https://github.com/recurly/recurly-js/issues/287)
- 'field:submit' event is not emitted when the enter key is pressed on a hosted field [#285](https://github.com/recurly/recurly-js/issues/285)
- Official NodeJS client [#284](https://github.com/recurly/recurly-js/issues/284)
- Allow setting textAlign via recurly.configure() [#281](https://github.com/recurly/recurly-js/issues/281)
- Onchange event crashes browser [#280](https://github.com/recurly/recurly-js/issues/280)
- hosted month/year fields incorrectly validate [#277](https://github.com/recurly/recurly-js/issues/277)
- Testing with WebDriver, but trouble with PhantomJsDriver [#274](https://github.com/recurly/recurly-js/issues/274)
- Focus input fields on click, tap, and focus within field containers [#271](https://github.com/recurly/recurly-js/issues/271)
- Surface coupon not-found errors [#262](https://github.com/recurly/recurly-js/issues/262)
- Include appropriate currency separator for prices over $999 USD [#261](https://github.com/recurly/recurly-js/issues/261)
- Set CSS padding via recurly.configure() [#260](https://github.com/recurly/recurly-js/issues/260)
- Configuring tax with recurly.Pricing() [#259](https://github.com/recurly/recurly-js/issues/259)
- V4 does not work when month and year fields are <select> items [#256](https://github.com/recurly/recurly-js/issues/256)
- Provide a NPM package or SRI signatures [#255](https://github.com/recurly/recurly-js/issues/255)
- recurly.configure does not reinject iframes. [#253](https://github.com/recurly/recurly-js/issues/253)
- Placeholder font color does not get set in chrome [#252](https://github.com/recurly/recurly-js/issues/252)
- Basic usage of library doesn't work. [#248](https://github.com/recurly/recurly-js/issues/248)
- Incorrect information when using recurly.Pricing in Chrome Beta Version 50.0.2661.57 beta (64-bit) [#245](https://github.com/recurly/recurly-js/issues/245)
- Incorrect information when using recurly.Pricing in Chrome Beta Version 50.0.2661.57 beta (64-bit) [#244](https://github.com/recurly/recurly-js/issues/244)
- Styling for Recurly fields [#241](https://github.com/recurly/recurly-js/issues/241)
- Is it possible to programmatically focus field in iframe? [#240](https://github.com/recurly/recurly-js/issues/240)
- Add DOM state check to configure call [#239](https://github.com/recurly/recurly-js/issues/239)
- Add max length support to hosted fields [#238](https://github.com/recurly/recurly-js/issues/238)
- iframe form divs empty [#235](https://github.com/recurly/recurly-js/issues/235)
- NPM package [#227](https://github.com/recurly/recurly-js/issues/227)
- Credit card validation bug [#226](https://github.com/recurly/recurly-js/issues/226)
- get coupon description - hosted_description [#225](https://github.com/recurly/recurly-js/issues/225)
- Example of how to implement backend-less recurly usage with CORS [#224](https://github.com/recurly/recurly-js/issues/224)
- allow `catch` a pricePromise after `done` [#223](https://github.com/recurly/recurly-js/issues/223)
- Add safety check to valueGet function [#220](https://github.com/recurly/recurly-js/issues/220)
- Token not updated when using recurly.paypal [#219](https://github.com/recurly/recurly-js/issues/219)
- Billing info form defaults to 'United States' regardless of country specified. [#218](https://github.com/recurly/recurly-js/issues/218)
- Update account details with v3 [#217](https://github.com/recurly/recurly-js/issues/217)
- Bower support [#216](https://github.com/recurly/recurly-js/issues/216)
- discount_next not shown correctly with coupon [#209](https://github.com/recurly/recurly-js/issues/209)
- Coupon handling suggestion [#203](https://github.com/recurly/recurly-js/issues/203)
- Enforce String passage of credit card number [#200](https://github.com/recurly/recurly-js/issues/200)
- Update cardType to validate new MasterCard BIN ranges [#185](https://github.com/recurly/recurly-js/issues/185)
- Single use coupons are included in `discount_next` calculation [#167](https://github.com/recurly/recurly-js/issues/167)
- Lack of VAT rate in Pricing API output [#163](https://github.com/recurly/recurly-js/issues/163)
- Strip `name` attributes out of PCI-concerned fields [#133](https://github.com/recurly/recurly-js/issues/133)


## [v3.1.1](https://github.com/recurly/recurly-js/tree/v3.1.1) (2017-02-09)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.4.0...v3.1.1)


**Merged Pull Requests**

- fix test that is now failing because expiry isn’t a future date anymore [#321](https://github.com/recurly/recurly-js/pull/321) ([snodgrass23](https://github.com/snodgrass23))



## [v4.4.0](https://github.com/recurly/recurly-js/tree/v4.4.0) (2017-01-25)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.3.0...v4.4.0)


**Merged Pull Requests**

- Apple Pay part 2 [#315](https://github.com/recurly/recurly-js/pull/315) ([chrissrogers](https://github.com/chrissrogers))
- Revert "Add support for tabbing in a Mobile browser." [#314](https://github.com/recurly/recurly-js/pull/314) ([chrissrogers](https://github.com/chrissrogers))
- Apple Pay [#313](https://github.com/recurly/recurly-js/pull/313) ([chrissrogers](https://github.com/chrissrogers))
- Include the responseText when json is invalid [#307](https://github.com/recurly/recurly-js/pull/307) ([geoffdutton](https://github.com/geoffdutton))
- Add support for tabbing in a Mobile browser. [#293](https://github.com/recurly/recurly-js/pull/293) ([SteveDugas](https://github.com/SteveDugas))

**Closed Issues**

- Is there a reason the tax estimation always rounds up partial cents? [#312](https://github.com/recurly/recurly-js/issues/312)
- Error in iFrame? [#310](https://github.com/recurly/recurly-js/issues/310)
- Allow first_name and last_name as text input [#308](https://github.com/recurly/recurly-js/issues/308)
- Help me : Could not verify Recurly's SSL certificate. [#306](https://github.com/recurly/recurly-js/issues/306)
- [4.3.0] Card fields invisible [#305](https://github.com/recurly/recurly-js/issues/305)
- Support for Amazon Payments [#304](https://github.com/recurly/recurly-js/issues/304)
- Recurly js hosted field  iframe style visibility set to hidden [#298](https://github.com/recurly/recurly-js/issues/298)
- recurly.configure does not reinject iframes. [#253](https://github.com/recurly/recurly-js/issues/253)
- Add DOM state check to configure call [#239](https://github.com/recurly/recurly-js/issues/239)
- Add max length support to hosted fields [#238](https://github.com/recurly/recurly-js/issues/238)


## [v4.3.0](https://github.com/recurly/recurly-js/tree/v4.3.0) (2016-11-01)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.2.0...v4.3.0)


**Merged Pull Requests**

- Ensures configuration objects are not externally mutable [#303](https://github.com/recurly/recurly-js/pull/303) ([chrissrogers](https://github.com/chrissrogers))
- Multiple instances [#267](https://github.com/recurly/recurly-js/pull/267) ([chrissrogers](https://github.com/chrissrogers))



## [v4.2.0](https://github.com/recurly/recurly-js/tree/v4.2.0) (2016-10-18)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.1.1...v4.2.0)


**Merged Pull Requests**

- Fixes issue with address attachment [#302](https://github.com/recurly/recurly-js/pull/302) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with config coercion [#301](https://github.com/recurly/recurly-js/pull/301) ([chrissrogers](https://github.com/chrissrogers))
- Adds support for shipping address [#300](https://github.com/recurly/recurly-js/pull/300) ([chrissrogers](https://github.com/chrissrogers))
- Restructures config object to nest fields more logically [#297](https://github.com/recurly/recurly-js/pull/297) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- npm deployment or a commonjs build [#299](https://github.com/recurly/recurly-js/issues/299)


## [v4.1.1](https://github.com/recurly/recurly-js/tree/v4.1.1) (2016-08-30)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.1.0...v4.1.1)


**Merged Pull Requests**

- Sends initial field config over hash instead of query [#295](https://github.com/recurly/recurly-js/pull/295) ([chrissrogers](https://github.com/chrissrogers))



## [v4.1.0](https://github.com/recurly/recurly-js/tree/v4.1.0) (2016-08-02)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.0.5...v4.1.0)


**Merged Pull Requests**

- Fixes bug with pricing attachment of addons [#288](https://github.com/recurly/recurly-js/pull/288) ([chrissrogers](https://github.com/chrissrogers))
- Adds safety check to dom value get method [#282](https://github.com/recurly/recurly-js/pull/282) ([chrissrogers](https://github.com/chrissrogers))
- Allows a label tag paired to a field container to defer focus to the field [#279](https://github.com/recurly/recurly-js/pull/279) ([chrissrogers](https://github.com/chrissrogers))
- Fixes expiry validation for invalid input [#278](https://github.com/recurly/recurly-js/pull/278) ([chrissrogers](https://github.com/chrissrogers))
- Add giftcard support. [#275](https://github.com/recurly/recurly-js/pull/275) ([SteveDugas](https://github.com/SteveDugas))
- Refactors Pricing into class pattern [#273](https://github.com/recurly/recurly-js/pull/273) ([chrissrogers](https://github.com/chrissrogers))
- Enables CORS by default [#269](https://github.com/recurly/recurly-js/pull/269) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Official NodeJS client [#284](https://github.com/recurly/recurly-js/issues/284)
- Allow setting textAlign via recurly.configure() [#281](https://github.com/recurly/recurly-js/issues/281)
- Onchange event crashes browser [#280](https://github.com/recurly/recurly-js/issues/280)
- hosted month/year fields incorrectly validate [#277](https://github.com/recurly/recurly-js/issues/277)
- Focus input fields on click, tap, and focus within field containers [#271](https://github.com/recurly/recurly-js/issues/271)
- Set CSS padding via recurly.configure() [#260](https://github.com/recurly/recurly-js/issues/260)
- Styling for Recurly fields [#241](https://github.com/recurly/recurly-js/issues/241)
- Is it possible to programmatically focus field in iframe? [#240](https://github.com/recurly/recurly-js/issues/240)
- Add safety check to valueGet function [#220](https://github.com/recurly/recurly-js/issues/220)
- Enforce String passage of credit card number [#200](https://github.com/recurly/recurly-js/issues/200)


## [v4.0.5](https://github.com/recurly/recurly-js/tree/v4.0.5) (2016-07-06)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.0.4...v4.0.5)


**Merged Pull Requests**

- Don't try to calculate addons if there aren't any addons defined for … [#272](https://github.com/recurly/recurly-js/pull/272) ([SteveDugas](https://github.com/SteveDugas))
- Remove UsageAddons from Calculations [#268](https://github.com/recurly/recurly-js/pull/268) ([SteveDugas](https://github.com/SteveDugas))
- Fixes bug around initial pricing not respecting coupons [#264](https://github.com/recurly/recurly-js/pull/264) ([chrissrogers](https://github.com/chrissrogers))
- Emits a pricing error when a coupon is not found [#263](https://github.com/recurly/recurly-js/pull/263) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Surface coupon not-found errors [#262](https://github.com/recurly/recurly-js/issues/262)


## [v4.0.4](https://github.com/recurly/recurly-js/tree/v4.0.4) (2016-05-23)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.0.3...v4.0.4)


**Merged Pull Requests**

- Version 4.0.4 [#258](https://github.com/recurly/recurly-js/pull/258) ([snodgrass23](https://github.com/snodgrass23))
- Adding data-collector module for fraud checking [#254](https://github.com/recurly/recurly-js/pull/254) ([snodgrass23](https://github.com/snodgrass23))

**Closed Issues**

- V4 does not work when month and year fields are <select> items [#256](https://github.com/recurly/recurly-js/issues/256)
- Provide a NPM package or SRI signatures [#255](https://github.com/recurly/recurly-js/issues/255)


## [v4.0.3](https://github.com/recurly/recurly-js/tree/v4.0.3) (2016-04-28)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.0.2...v4.0.3)


**Merged Pull Requests**

- Version 4.0.3 [#251](https://github.com/recurly/recurly-js/pull/251) ([chrissrogers](https://github.com/chrissrogers))
- Updates discount type indication [#250](https://github.com/recurly/recurly-js/pull/250) ([chrissrogers](https://github.com/chrissrogers))
- Fixes issue with trial ext coupon not zeroing totals [#249](https://github.com/recurly/recurly-js/pull/249) ([chrissrogers](https://github.com/chrissrogers))



## [v4.0.2](https://github.com/recurly/recurly-js/tree/v4.0.2) (2016-04-20)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.0.1...v4.0.2)


**Merged Pull Requests**

- Version 4.0.2 [#247](https://github.com/recurly/recurly-js/pull/247) ([chrissrogers](https://github.com/chrissrogers))
- Adds pricing case for trial extension coupons [#246](https://github.com/recurly/recurly-js/pull/246) ([chrissrogers](https://github.com/chrissrogers))

**Closed Issues**

- Incorrect information when using recurly.Pricing in Chrome Beta Version 50.0.2661.57 beta (64-bit) [#244](https://github.com/recurly/recurly-js/issues/244)
- iframe form divs empty [#235](https://github.com/recurly/recurly-js/issues/235)
- NPM package [#227](https://github.com/recurly/recurly-js/issues/227)
- get coupon description - hosted_description [#225](https://github.com/recurly/recurly-js/issues/225)
- Example of how to implement backend-less recurly usage with CORS [#224](https://github.com/recurly/recurly-js/issues/224)
- Token not updated when using recurly.paypal [#219](https://github.com/recurly/recurly-js/issues/219)
- Update account details with v3 [#217](https://github.com/recurly/recurly-js/issues/217)
- Lack of VAT rate in Pricing API output [#163](https://github.com/recurly/recurly-js/issues/163)
- Strip `name` attributes out of PCI-concerned fields [#133](https://github.com/recurly/recurly-js/issues/133)


## [v4.0.1](https://github.com/recurly/recurly-js/tree/v4.0.1) (2016-02-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v4.0.0...v4.0.1)



**Closed Issues**

- iframe form divs empty [#235](https://github.com/recurly/recurly-js/issues/235)
- NPM package [#227](https://github.com/recurly/recurly-js/issues/227)
- Credit card validation bug [#226](https://github.com/recurly/recurly-js/issues/226)
- get coupon description - hosted_description [#225](https://github.com/recurly/recurly-js/issues/225)
- Example of how to implement backend-less recurly usage with CORS [#224](https://github.com/recurly/recurly-js/issues/224)
- allow `catch` a pricePromise after `done` [#223](https://github.com/recurly/recurly-js/issues/223)
- Token not updated when using recurly.paypal [#219](https://github.com/recurly/recurly-js/issues/219)
- Update account details with v3 [#217](https://github.com/recurly/recurly-js/issues/217)
- Bower support [#216](https://github.com/recurly/recurly-js/issues/216)
- Lack of VAT rate in Pricing API output [#163](https://github.com/recurly/recurly-js/issues/163)


## [v4.0.0](https://github.com/recurly/recurly-js/tree/v4.0.0) (2016-01-14)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.1.0...v4.0.0)



**Closed Issues**

- Billing info form defaults to 'United States' regardless of country specified. [#218](https://github.com/recurly/recurly-js/issues/218)
- discount_next not shown correctly with coupon [#209](https://github.com/recurly/recurly-js/issues/209)
- Coupon handling suggestion [#203](https://github.com/recurly/recurly-js/issues/203)
- Single use coupons are included in `discount_next` calculation [#167](https://github.com/recurly/recurly-js/issues/167)


## [v3.1.0](https://github.com/recurly/recurly-js/tree/v3.1.0) (2015-05-07)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.11...v3.1.0)



**Closed Issues**

- price object emitted by the change event doesn't update total with discount [#201](https://github.com/recurly/recurly-js/issues/201)
- the example of coupon code doesn' work from the 3.0.11 version [#193](https://github.com/recurly/recurly-js/issues/193)


## [v3.0.11](https://github.com/recurly/recurly-js/tree/v3.0.11) (2015-03-19)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.10...v3.0.11)



**Closed Issues**

- Validating plan-restricted coupons [#175](https://github.com/recurly/recurly-js/issues/175)
- Invalid signature Error with Recurly.buildSubscriptionForm [#174](https://github.com/recurly/recurly-js/issues/174)
- Single use coupon not applied after recalculation [#173](https://github.com/recurly/recurly-js/issues/173)
- Error thrown on empty credit card number [#161](https://github.com/recurly/recurly-js/issues/161)


## [v3.0.10](https://github.com/recurly/recurly-js/tree/v3.0.10) (2014-12-18)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.9...v3.0.10)



**Closed Issues**

- Add plan price to pricing module [#145](https://github.com/recurly/recurly-js/issues/145)
- pricing.remove does not have documentation at https://docs.recurly.com/ [#136](https://github.com/recurly/recurly-js/issues/136)


## [v3.0.9](https://github.com/recurly/recurly-js/tree/v3.0.9) (2014-11-13)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.8...v3.0.9)





## [v3.0.8](https://github.com/recurly/recurly-js/tree/v3.0.8) (2014-11-06)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.7...v3.0.8)



**Closed Issues**

- Dankort (PBS) 76009244561 is not passing validation [#156](https://github.com/recurly/recurly-js/issues/156)
- IE: PayPal relay messages lost [#152](https://github.com/recurly/recurly-js/issues/152)
- Recommended currency based on ip [#149](https://github.com/recurly/recurly-js/issues/149)


## [v3.0.7](https://github.com/recurly/recurly-js/tree/v3.0.7) (2014-09-17)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.6...v3.0.7)



**Closed Issues**

- IE: PayPal relay messages lost [#152](https://github.com/recurly/recurly-js/issues/152)
- Submit button enabled AFTER successful payment [#114](https://github.com/recurly/recurly-js/issues/114)
- buildTransactionForm and Card Failure [#109](https://github.com/recurly/recurly-js/issues/109)
- Add a custom ID to the form generated by buildSubscriptionForm [#104](https://github.com/recurly/recurly-js/issues/104)
- Add a check for jquery version [#100](https://github.com/recurly/recurly-js/issues/100)
- generic.png referenced in css but missing in images resources [#84](https://github.com/recurly/recurly-js/issues/84)
- Translation requires separate scripts. [#79](https://github.com/recurly/recurly-js/issues/79)
- vat as part of buildTransactionForm [#77](https://github.com/recurly/recurly-js/issues/77)
- Provide form validation error callback [#76](https://github.com/recurly/recurly-js/issues/76)


## [v3.0.6](https://github.com/recurly/recurly-js/tree/v3.0.6) (2014-09-08)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.5...v3.0.6)



**Closed Issues**

- Rounding errors in tax calculation [#147](https://github.com/recurly/recurly-js/issues/147)
- Pricing module does not update elements with setup fee values [#144](https://github.com/recurly/recurly-js/issues/144)
- Another documentation typo [#143](https://github.com/recurly/recurly-js/issues/143)
- Documentation typo? [#142](https://github.com/recurly/recurly-js/issues/142)
- Documentation typo? [#141](https://github.com/recurly/recurly-js/issues/141)
- billing info tokenizes without phone number field [#135](https://github.com/recurly/recurly-js/issues/135)


## [v3.0.5](https://github.com/recurly/recurly-js/tree/v3.0.5) (2014-08-06)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.4...v3.0.5)





## [v3.0.4](https://github.com/recurly/recurly-js/tree/v3.0.4) (2014-07-24)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.3...v3.0.4)



**Closed Issues**

- Is it possible to get `plans` list from api.recurly.com? [#134](https://github.com/recurly/recurly-js/issues/134)


## [v3.0.3](https://github.com/recurly/recurly-js/tree/v3.0.3) (2014-06-10)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.2...v3.0.3)



**Closed Issues**

- `phone` field not included in billing info token [#119](https://github.com/recurly/recurly-js/issues/119)


## [v3.0.2](https://github.com/recurly/recurly-js/tree/v3.0.2) (2014-06-06)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.1...v3.0.2)



**Closed Issues**

- Uncaught ReferenceError: parse is not defined  for recurly.validate.cardType [#118](https://github.com/recurly/recurly-js/issues/118)


## [v3.0.1](https://github.com/recurly/recurly-js/tree/v3.0.1) (2014-05-29)

[Full Changelog](https://github.com/recurly/recurly-js/compare/v3.0.0...v3.0.1)





## [v3.0.0](https://github.com/recurly/recurly-js/tree/v3.0.0) (2014-05-13)