# Changelog

We periodically release new versions of the VGS Collect.js library whenever we make changes. The library follows [semantic versioning (semver)](https://semver.org/) principles.

## Version 3.3.0 (11/21/2025)

* Added ABA Routing Number validation rule.

## Version 3.2.2 (10/08/2025)

* Fixed card autocomplete issue in Safari 26 version.

## Version 3.2.0 (07/16/2025)

* Introduced new method for CMP card creation `.createCard()`.
* Added specialized helper methods to simplify the creation of standard payment fields—cardNumberField, cardExpirationDateField, cardCVCField, and cardholderNameField. Each method automatically sets predefined properties such as type, name, placeholder, and default validations (where applicable), while still allowing optional overrides via the properties parameter.

## Version 3.0.1 (06/30/2025)

* Security updates
* Added support for optional fields in the Vault API

## Version 3.0.0 (05/15/2025)

* Added Vault API v2 support through the new `.createAliases()` method.
* Enforced HSTS (`Strict-Transport-Security`) header for the library.

## Version 2.27.5 (05/13/2025)

* Added 19-digit BIN support for Dinersclub, Discover and JCB cards.
* Added ability to disable `autocomplete` attribute for the payment fields.

## Version 2.27.4 (05/08/2025)

* Added `report-uri` to iframe's CSP.

### Version 2.27.2 (01/24/2025)

* Removed redundant `console.log`.

### Version 2.27.1 (01/24/2025)

* Added verification if the element exists for autocomplete.
* Fixed security vulnerabilities.

### Version 2.27.0 (12/02/2024)

* Added ability to customize `alt` text for the card icons.

### Version 2.26.0 (11/28/2024)

* Added 8 digit BIN support for the custom card brands.

### Version 2.25.1 (10/25/2024)

* Added async function for dynamic headers generation.

### Version 2.24.6 (05/02/2024)

* Fixed RTL (Right-To-Left) text input allignment.

### Version 2.24.4 (04/10/2024)

* Added SRI to the scripts.

### Version 2.24.1 (03/27/2024)

* Added support for new alias format: `ALPHANUMERIC_SIX_T_FOUR`.

### Version 2.24.0 (03/26/2024)

* Added support for new alias formats: `ALPHANUMERIC_LENGTH_PRESERVING`, `ALPHANUMERIC_LENGTH_PRESERVING_T_FOUR`, `ALPHANUMERIC_SSN_T_FOUR`, `ALPHANUMERIC_LENGTH_PRESERVING_SIX_T_FOUR`.

### Version 2.23.0 (02/29/2024)

* Fixed issue with iframe CSPs.

### Version 2.22.0 (12/29/2023)

* Custom iframe `title` attribute.

### Version 2.21.0 (10/23/2023)

* Fixed BIN range for the Mastercard.
* Fixed caret behavior for 19-digit cards.

### Version 2.20.0 (07/24/2023)

* Fixed securuty vulnerabilities.
* Reduced bundle size.

### Version 2.19.0 (04/27/2023)

* Plugin system for the Partnership Integrations.
* Fixed security vulnerabilities.

### Version 2.18.6 (04/20/2023)

* Performance updates.
* Security updates.

### Version 2.18.5 (03/22/2023)

* Fix a bug with multiple fields `type=file` and serializer `base64` in one Collect form.

### Version 2.18.4 (03/13/2023)

* Improved accessibility for the screen readers.
* Fixed issue with serializers when using `.tokenize()` method.
* Fixed issue with validation on prefill.

### Version 2.18.3 (02/23/2023)

* Fixed credit card fields autocomplete received from the password managers.

### Version 2.18.0 (11/08/2022)

* Exposing detailed information about validation error messages in the form state. It can be accesses from the `errors` property of the state object.
* Added ability to accept only preferred card brands. The library will run validation only against specified brands.
* Added support to the new input type `date`.
* Extended abilities of the custom validation rules.

### Version 2.17.0 (10/07/2022)

* CVC can be stored only in volatile storage.
* Added support for the `GENERIC_T_FOUR` (Generic - VGS Alias Last Four (T4)) token.

### Version 2.16.0 (09/08/2022)

* Fixed validation for the `yearLength: 4` setup.

### Version 2.15.0 (07/29/2022)

* Added 8-digit BIN support to Visa, MasterCard, and Maestro cards. It can be accessed in the form state.

### Version 2.14.0 (06/07/2022)

* Added integration with the [Tokenization API](https://github.com/verygoodsecurity/docs-content-vault/blob/update-content/tokenization/getting-started/README.md) to the library. Data from the Collect form can go directly to the VGS tokenization service using the new `.tokenize()` method. The token format for each field can be controlled through the `tokenization` property supported by the `.field()` method.

### Version 2.13.0 (05/24/2022)

* Fixed issue with `isFocused` state for the `ssn` and `zip-code` type of fields.
* [Custom request body](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#custom-request-body) feature now works with the `separate` serializer. `monthName` and `yearName` values can be used to generate desired payload.

### Version 2.12.0 (01/13/2022)

* Added support for the file extensions in the uppercase format.
* Added option to validate credit card number by performing only luhn check - [`validCardNumberLuhnCheck`](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#available-validations-types).

### Version 2.11.0 (10/04/2021)

* Added [.unmount()](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#form-unmount) method to the library.
* Added `lastModified` property to the uploaded file state.
* Added ability to simply [customize request body structure](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#custom-request-body).
* Fixed issue with duplicated telemetry iframe appears after multiple form initializations.
* Fixed issue with extended card number validation.

### Version 2.10.0 (08/12/2021)

* Added input `type="file"` support.

### Version 2.9.0 (07/02/2021)

* Added [custom icons API](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/customization#override-default-icons).

### Version 2.8.2 (06/24/2021)

* Fixed issue with browser autocomplete for the `card-number` field.
* Fixed caret position issue when pasting value to the `card-number` field.

### Version 2.8.1 (06/07/2021)

* Added `hideValue` support to the `card-number` field type.

### Version 2.8.0 (05/14/2021)

* Added `withCredentials` parameter to the [`.submit()` method](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#setup-form-submission) which is indicating that the request should be made using credentials.
* Fixed security vulnerability.

### Version 2.7.0 (04/15/2021)

* Allow passing a [custom expiration date separator](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/formatting#define-an-expiration-date-separator) for month and year values.
* Resolve `field.promise` when the field is rendered.

### Version 2.6.0 (04/02/2021)

* Added [event handlers](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#event-handlers) for the following events - `focus`, `blur`, `update`, `delete`, `keyup`, `keydown`, `keypress`.

### Version 2.5.0 (03/17/2021)

* New `Field.update` API [is added](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#update-field).

### Version 2.4.0 (03/02/2021)

* Value masking for CVV field is available now.
* [New validation type](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#available-validations-types) `compareValue` which allows to confirm that field values are the same.
* Updated [card icons](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/customization#card-brand-identification).
* Card icon with security code location for [CVV field](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/customization#card-brand-identification).
* Performance and bundle optimizations.

### Version 2.3.0 (02/02/2021)

* VGS Collect.js is now mapping the field state to the [input](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/customization#how-to-style) and [container classes](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#create-and-setup-form-fields). Using CSS rules you can easily style different field states.
* New `isTouched` property in the [field state](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#form-state).
* Added ability to [merge arrays](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#setup-form-submission) when using `mapDotToObject` property inside `.submit()` method.
* Fixed `mapDotToObject` conflicting behavior with `.separate()` serializer.

### Version 2.2.1 (01/26/2021)

* Fix moving caret for iOS devices.
* Fix submit bug for European live vaults.

### Version 2.2.0 (12/03/2022)

* Add `enterPress` event to allow [submitting the form](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#handle-enter-press-event) when a user hits `Enter` button.

### Version 2.1.1 (12/02/2020)

* Extend Maestro card range for card numbers validation.
* Fix a security vulnerability.
* Fix CNAME support.
* Reduce bundle size by more than a half.
* Split the bundle to modern and legacy builds. Users with modern browsers will load less code now since we exclude some polyfills from the bundle.
* Make JavaScript inside the iframe cacheable.

### Version 2.1.0 (10/22/2020)

* Fix navigating by the keyboard for Firefox and Safari. Now the form has better accessibility across all modern browsers.
* Fix forms for IE11 and Safari 10.
* Add `field.reset` and `form.reset` API. [Read more.](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#form-reset)
* Add `field.promise` and `field.loadingState` API. [Read more](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#handling-field-loading-state)
* Improve expiry date validation so that the maximum expiry date is 21 years from now.
* Improve forms loading.

### Version 2.0

* Versioning support
* [Ability to create custom card brands](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/customization#add-custom-card-brands)
* New `validCardNumberExtended` validation allows handle even unsupported card brands (Calculates digit sequence checksum using Luhn algorithm)
* [Smart CVC](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/customization#smart-cvc-validation)
* [Dynamic CNAME support](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#vgs-collect-with-cname) (Manage CNAMEs for Collect.js from the Dashboard)
* Data region support, example EU region
* Security improvements
* New [field type](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#available-type-values) (`ssn`) and [validation](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#available-validations-types) (`validSSN`) is available for a Social Security number.

## Ensuring Script Integrity for PCI Compliance

With the introduction of PCI DSS version 4.0, a new requirement has been put forth to ensure the integrity of scripts that run on payment pages. Script Integrity is crucial in maintaining the security and trustworthiness of online payment systems, as any unauthorized modifications to these scripts could potentially lead to data breaches or fraudulent activities. To meet this requirement, organizations must implement mechanisms to verify the integrity of each script utilized on their payment pages.

<table><thead><tr><th width="104.48046875">Version</th><th width="444.42578125">SHA384 Hash</th><th>Timestamp (ISO 8601)</th></tr></thead><tbody><tr><td>3.3.0</td><td>sha384-3GER/VocsepBswB7HVyPa16hhWRGWPEgUScuh2VrTt0N8co9EVurSxJT9OaE8MvK</td><td>2025-11-21T19:58:03.000Z</td></tr><tr><td>3.2.2</td><td>sha384-YXvleED0q049Gx5rqUHI/hOTud/jKaLiL757lVq26oVFAd9SjTDHBoOviWw6XmPo</td><td>2025-08-04T12:48:03.000Z</td></tr><tr><td>3.2.1</td><td>sha384-LwaMuUQqEXi3Pu8zWZGhPKirAnX1OO8Q1KPozJQgIcai6c01CFT/oAtGPoO+0PpW</td><td>2025-07-31T00:26:41.000Z</td></tr><tr><td>3.2.0</td><td>sha384-NWgbc0GT1ZzgvPVr2ziOGm5PlCKd40LF9YtO3dasqkvHVtIIKWtCzesDoZpLkQM6</td><td>2025-07-16T23:24:37.000Z</td></tr><tr><td>3.1.0</td><td>sha384-jeNMsWhgbXdgB5zP7knXSn1ayUqoTzD2KBT0SmGz/h2bsUtub/cWEQzWOxFBOLrE</td><td>2025-07-02T13:23:49.000Z</td></tr><tr><td>3.0.1</td><td>sha384-sMGU8J1IBBOc6NzxRI7zK7JZgQUX40I+UApjJiQSLyVGJN5n1PdIcX+ZeKakY5uU</td><td>2025-06-12T12:33:03.000Z</td></tr><tr><td>3.0.0</td><td>sha384-3SxWNFsDTqRsvAOxEu3i4HBaQoCtYFcLfDENd6QtLXQFfc99bxRBS2/GiWYNuqiY</td><td>2025-05-16T14:00:36.000Z</td></tr><tr><td>2.27.5</td><td>sha384-7unApPnccBLlScXpvgi8mTKNq2ePQWGdD77gPr639gHFkhA5GSTE8poz8fyQToHo</td><td>2025-05-13T17:06:16.000Z</td></tr><tr><td>2.27.4</td><td>sha384-a3ggKYlJoInboRfmha77sT56R2JBQ2Bo8MRfn4+v2ypQs7iiTKhzhgP7Kkm7skv9</td><td>2025-05-08T17:55:24.000Z</td></tr><tr><td>2.27.2</td><td>sha384-ddxU1XAc77oB4EIpKOgJQ3FN2a6STYPK0JipRqg1x/eW+n5MFn1XbbZa7+KRjkqc</td><td>2025-01-24T22:06:09.000Z</td></tr><tr><td>2.27.1</td><td>sha384-dvkvMDQ/RYuNI6IXsyg4sUwUP3gK7YbbFQMnpj04/r/iFQZ4buk1UO8CDrLGdqc3</td><td>2025-01-24T17:06:25.000Z</td></tr><tr><td>2.27.0</td><td>sha384-33571i7lErkb7dEijUiTGXZGV7QPNnvg69LTP1e6MfXz4dhTc9SAj6dmdN/SrIOv</td><td>2024-12-02T18:52:01.000Z</td></tr><tr><td>2.26.0</td><td>sha384-uq8LetJAphAF+TR/Sq9NUZw9gdclC1Fm8ZSpI7OP661EfpK9E8APOZRH+1MilBrq</td><td>2024-11-28T14:52:50.000Z</td></tr><tr><td>2.25.1</td><td>sha384-YCRzHwHlD4XJ4i89IEUJ5Qrs7Hjzi/2e6w4d/H9Ulf5c5IR5kU9vgLSPj2oqxssy</td><td>2024-10-25T15:10:51.000Z</td></tr><tr><td>2.25.0</td><td>sha384-nOf4lFX7W1pQobH5WbfJH7986iJ2ekCXwC3VNblZ/IS1qwYN38IfRZpHFTMXmHnd</td><td>2024-10-24T22:30:22.000Z</td></tr><tr><td>2.24.6</td><td>sha384-CuJklbpxX6FBBaeipz1ONCsfMvYjjcYBPITSWLe0irL+OiJpBbp44g18CYdt/OEQ</td><td>2024-04-30T17:21:37.000Z</td></tr><tr><td>2.24.4</td><td>sha384-STGHtboAf18kBhVVUccsY3AN7RAXJdfyfAEZrhlGkYnKdPxsKIyI8ajYAom0X2zP</td><td>2024-04-10T14:38:43.000Z</td></tr><tr><td>2.24.1</td><td>sha384-vfPPYwr0g3Mld6CL7lXexqH4R/d/xaL8rrGqNR8ca3iThK+cbGaNtXzAVaPv/7wf</td><td>2024-03-27T01:16:16.000Z</td></tr><tr><td>2.24.0</td><td>sha384-sAt/sR3qre8aonC3VbhurIMSIkyp/WB/0eW86VS63SetCYnMB/SIz5EkNqLmDu7R</td><td>2024-03-26T18:39:18.000Z</td></tr><tr><td>2.23.0</td><td>sha384-cp9A81llcl3+NLSQ1tLR244hX1Sd5bgz/SdaWZZ5iVwIEdq3UYoTUZQRnvMia1o5</td><td>2024-03-05T22:14:18.000Z</td></tr><tr><td>2.22.0</td><td>sha384-b3Dz6ThGLUd0xJTJRYT5lkF1fXKi9KZQ0fzybmIalDj8hFJDxCssYCG2mbYViuRE</td><td>2024-02-27T11:36:37.000Z</td></tr><tr><td>2.21.0</td><td>sha384-IJRILsbKtDxMyAVzqu25S9bifqsXKKQ9Dq6MAnKSlZj8UmZpfRuebFdNt6U9pjTk</td><td>2023-10-24T20:56:47.000Z</td></tr><tr><td>2.20.2</td><td>sha384-FO+kZRsTnvEH6wqTu682aKV/RTIeNqzhYRQz85o7i5ZarmclWZP/0CUfPZLGboSU</td><td>2023-09-21T21:00:30.000Z</td></tr><tr><td>2.20.1</td><td>sha384-0KdFHkByt18D4kunUyqEcK1uTrDX2gKFOOowlWsVY/myTJJD3El4SOZNor9vDcsw</td><td>2023-09-11T19:37:01.000Z</td></tr><tr><td>2.20.0</td><td>sha384-Uu7gPq57ZmeYuV9Sz1ue1ce9r9ljNzwSzPShyGN9nTtvOcTxD9rxoXJib7NdURAq</td><td>2023-07-26T21:17:07.000Z</td></tr><tr><td>2.19.0</td><td>sha384-T9VHtJg2VhRZBf7AGfbK8sgN0Iu3K9kB07X1Mf/80ydE8toaSP6EXR3YsZe/nFEv</td><td>2023-06-08T19:21:19.000Z</td></tr><tr><td>2.18.6</td><td>sha384-vetHmOGg3GDe12zWibdFl5m2ExcNWuQlaoOaZsw7i4iddguO9LhVYXHRye3/7cJt</td><td>2023-04-24T18:44:47.000Z</td></tr><tr><td>2.18.5</td><td>sha384-r34w9sPgqle5EO8oUiBLYErJTAoQVHqKf1TtbM39iTMRLsiFEpI/Z8R2yRzfdWFu</td><td>2023-03-22T16:14:23.000Z</td></tr><tr><td>2.18.4</td><td>sha384-4Fu9K1o2mZstGkfkY+KGVCQ72NbM5pKbcpXhjZGevxyPBbv+S3g4Ja2eqHlGCis3</td><td>2023-03-16T10:25:11.000Z</td></tr><tr><td>2.18.3</td><td>sha384-Z+Li43OUm5pTSN4fDwY8bZ+gmWZVb7bcxo0e7ZIt+zA5icp3I9tUG6QrRxxxUkLE</td><td>2023-02-23T19:34:58.000Z</td></tr><tr><td>2.18.2</td><td>sha384-DiFXuKyjOLxSxtSKw20RyoIC3XbSUtA/574nlRkTA+ewdzFcBvr7o50JD9WpmCy+</td><td>2023-02-06T18:44:29.000Z</td></tr><tr><td>2.18.1</td><td>sha384-nlUQAUMszhLd7ZkIBV6rw8IfvxrRbkjVoO9sk7mTbB0wsM+DAJy8h1NEc9srfo2+</td><td>2022-11-16T18:58:20.000Z</td></tr><tr><td>2.18.0</td><td>sha384-+P6XWgi3QO3j9c3dif3cPg1+y+sCpNqll0kA3YFcbw2WviXkoeQGqC6WETLhkzm0</td><td>2022-11-08T10:12:22.000Z</td></tr><tr><td>2.17.0</td><td>sha384-oakCbEN9pEBrizeA4EjMZMoOVELE0nnY+Dp9eI7wxcSEIxg/gm8nEldqISd+EHjX</td><td>2022-10-06T15:15:19.000Z</td></tr><tr><td>2.16.0</td><td>sha384-eZBrkrTOZIWUAcaiLI09/l8rEmYX7/CeLKIm0MPwn8L7IcaEoPf4Nfgu3KsJz4GU</td><td>2022-09-08T20:36:19.000Z</td></tr><tr><td>2.15.0</td><td>sha384-bFaJ8ofJs+NMcVRQ+iDcxmehVD+sldFjGhWbcYCqI3g4LinZHlzrxd4kSiNACOed</td><td>2022-07-29T00:17:04.000Z</td></tr><tr><td>2.14.0</td><td>sha384-DSw56TEjOMg/skCZ99RyrIz2cqsYfs6f/Ll+ZhGE2R0Puf/9vjQm4E9qh1L4k/wR</td><td>2022-06-07T22:01:21.000Z</td></tr><tr><td>2.13.0</td><td>sha384-A0p5vtd5f3UBtLJ+rS2bXMdTjkIIvf74FlLOKVZprFVwYWs/7rPg20JuBcouPtCB</td><td>2022-05-24T22:02:18.000Z</td></tr><tr><td>2.12.0</td><td>sha384-MX1Fs5oVLd5VZdMmuAJz3BwEmiXlLmpK7XMVtrE0DTeagIaEQcsVlpdYg4iFuu2k</td><td>2022-01-13T22:01:35.000Z</td></tr><tr><td>2.11.0</td><td>sha384-OAhqTH5wdrE4mMKqcT13FWs1OdbQFk9TSzt9bB+8bajMSy5JcONsKrfijfumNICt</td><td>2021-10-05T18:27:17.000Z</td></tr><tr><td>2.10.0</td><td>sha384-iWc2ALFAuiLaxx5VMqCciWw47iJ87/0ypxoi40izMT0gCpPEFYqQf63nybpOSngE</td><td>2021-08-18T19:58:44.000Z</td></tr><tr><td>2.9.0</td><td>sha384-Hl9MMc3cXlQsXOXROb+W6ahv4k28QkTmCiLggwPeqn7tsTd3r605wNqhB5CsQOey</td><td>2021-07-02T14:39:44.000Z</td></tr><tr><td>2.8.2</td><td>sha384-p7h5qh8TeXW/4tIr63YYBH5vKrBrMRdIKu7/IWMe+hfWNYfE+ShDZbMKD8iXA1Ev</td><td>2021-06-24T19:34:44.000Z</td></tr><tr><td>2.8.1</td><td>sha384-1bI1pGw7sslZsvjXJdUA+Z7y7y6O3HEHahm4CfaMuEuFyWEGOz/REwSh5E5yGxwu</td><td>2021-06-07T14:13:39.000Z</td></tr><tr><td>2.8.0</td><td>sha384-FYGwcu3z0JKsr0YTmhkPR3Zkfr7jMqkaSpyvNfKItcnW4BXEnNyZkzRxwDqM1Azs</td><td>2021-05-13T17:44:48.000Z</td></tr><tr><td>2.7.0</td><td>sha384-gyEvpgfbAMQ0nwYq+qUVElM+3KkNdjG7qKiCXKUASrhwjUEKK9IgicxXU2JD5N/J</td><td>2021-04-13T15:13:05.000Z</td></tr><tr><td>2.6.0</td><td>sha384-OQb1TGLatWwC38oQ1Dxl3o8tZPIuhYRH6srM4qZ7GjRe4iTVv7GelqVHIyNoWauG</td><td>2021-04-02T17:07:38.000Z</td></tr><tr><td>2.5.0</td><td>sha384-a3GdJNRjJQMME0UMAhqcTyzVLpbd9qDvg5swc4v6YbTuCSucslhfysZ8Mdz4lKgw</td><td>2021-03-17T17:59:18.000Z</td></tr><tr><td>2.4.0</td><td>sha384-UcLMRXrINL33XiPeJn5nlRkBKbWjs+qkkTooKyAYynlhmy+L5HbrQ1Nv3K2F+toS</td><td>2021-03-02T19:49:18.000Z</td></tr><tr><td>2.3.0</td><td>sha384-3jY9cpO/L07bdQxXA/70Gs9QFXlG+ABk0JWAlc+i+6p3qNA+73BrqE/ynYwdZZyM</td><td>2021-02-02T18:38:36.000Z</td></tr><tr><td>2.2.1</td><td>sha384-W1J+ZgXtbpLbhjf0KhyX5i9hHGgLhcXcEcKu779sNPjpr3D9SuJuuSNcNc2t7/d6</td><td>2020-12-10T15:25:05.000Z</td></tr><tr><td>2.2.0</td><td>sha384-A8AIltTzP0yD2gYu0hZCpNqfQIYOJeICymg1WfkDK5m2LsM+X86OhuWTOZfAgsbM</td><td>2020-12-03T16:53:21.000Z</td></tr><tr><td>2.1.1</td><td>sha384-AUa925G+LKPx5OErBm8k6M0rgZhKP5GIMtvwjQthAkGaugQjxLj8WynOVRChuvas</td><td>2020-12-02T12:25:56.000Z</td></tr><tr><td>2.1.0</td><td>sha384-mjHfRLPOsOWZOnwVKsAFF9zKNsK/zX1SV/ZG1AsDCm0j1Bv+X43awyq0tnUIUUWF</td><td>2020-10-22T11:57:19.000Z</td></tr><tr><td>2.0.31</td><td>sha384-HBmgqqtv/wIUeggMeUIyH/iP+4V6aHDpk09P6YEgCPTbEeQlIAa9bCVW/+3ns/zC</td><td>2020-10-14T18:12:41.000Z</td></tr></tbody></table>

Example:

```html
<script type="text/javascript" src="https://js.verygoodvault.com/vgs-collect/3.2.2/vgs-collect.js" integrit
```

## Migrating from VGS Collect.js v1 to v2

VGS Collect.js v2 has no organization ID in the file path. To migrate, you need to:

1. Include a new script path to your application.
2. Update your initialization script by adding an additional parameter for the VGS environment `sandbox`, `live` or `live-eu-...` for a specific data region.

> If you have previously used CNAME with VGS Collect v1, it's required to enable CNAMEs on a [Dashboard](https://dashboard.verygoodsecurity.com/) and execute `.useCname()` method. You can find detailed instructions [here](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-collect/integration#vgs-collect-with-cname).
