> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.withpersona.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withpersona.com/_mcp/server.

# JavaScript SDK Changelog

> Review fixes, features, and updates for the Persona JavaScript SDK.

The latest version of the SDK is:
[![Persona SDK latest](https://img.shields.io/npm/v/persona?label=persona\&color=4700EB)](https://www.npmjs.com/package/persona)

We are continually releasing fixes and updates which improve the end user experience. We recommend staying up-to-date with releases to make sure you are taking advantage of the latest functionality and improvements.

## 5.8.0

### Features

* Add new `eventsAllowlist` parameter to control which events are forwarded to the `onEvent` callback. Pass `'all'` to receive all events, or an array of specific event names. See [Client Callbacks](/embedded-flow-client-callbacks#onevent).
* Add new `onEvent` events: `step-transitioning`, `click`, and `form-update` (requires `eventsAllowlist`).

## 5.7.0

### Features

* Add new public property `customHost`

## 5.6.0

### Features

* Add support for passing navigation padding for inline flows

## 5.5.0

### Features

* Respond to border radius theme styles passed from inquiry for embedded flow types

## 5.4.0

### Fixes

* Set `role=dialog` to iframe modal and address accessibility issue

### 5.3.1

### Bug Fixes

* fix rendering of embedded iframe for safari and firefox

### 5.3.1-alpha.0

### Bug Fixes (experimental)

* fix rendering of embedded iframe for safari and firefox

## 5.3.0

### Features

* dynamically resize embedded iframe based on template preferred dimensions

## 5.2.1

### Fixes

* Properly accept custom hostnames without protocols

## 5.2.0

### Features

* Support passing custom hostnames via the `host` option. This option is not needed for most use cases.

## 5.1.1

### Fixes

* Expose `InquiryError` as a named type export for TypeScript users
* Expose `Inquiry` as a named export in `persona-react` for ESM users

## 5.1.0

### Features

* adds `widgetPadding` as a param. This parameter allows controlling the widget paddings for the inline flow, to allow for more flexible layouts.

## 5.0.0

### Features

* adds `Client.preload()`, which allows preloading static JavaScript assets ahead of time to speed up subsequent load times

### ⚠ BREAKING CHANGES

* the `Inquiry` export of this package (used for the Inline React integration) has been moved to a separate package `persona-react`, and has been removed from this package. To migrate, change `import { Inquiry } from 'persona'` to `import Inquiry from 'persona-react'`.

* The following features marked as deprecated in `persona@4.0.0` (released 2021-08-03) have been removed.

  * `prefill` (replaced by the `fields` parameter)
  * `lockedAttributes` (replaced by the `fields` parameter + template-level configuration)
  * `themeId` (only used by legacy inquiries)
  * The `InquiryAttributes` type export (only used by legacy inquiries)
  * The `InquiryErrorInvalidInquiryId` type (was never actually used)

## 4.13.0 (2024-03-06)

### Features

* remove dependencies on React, React DOM, and Styled Components, to reduce package size from 194kb to 50kb (74.23% reduction)

## 4.12.0 (2024-01-05)

### Features

* support auto create account params

## 4.11.0 (2023-11-01)

### Features

* **Client,InquiryInternal:** add canary as a host option

## 4.10.0 (2023-10-03)

### Features

* add iframeTitle for a11y purposes

## 4.9.0 (2023-06-29)

### Features

* add microphone permissions to iframe
* support passing routingCountry to speed up initial request

## 4.8.0 (2023-05-19)

### Features

* allow customizing iframe sandbox attributes
* support style variant in embedded flow
* support themeSetId

## 4.8.0-alpha (2023-02-09)

### Features (experimental)

* 🎸 client side collection events

### 4.7.1 (2022-11-11)

### Bug Fixes

* fix TypeScript types for complete and fail callbacks

## 4.7.0 (2022-10-27)

### Features

* add environmentId param to allow specifying any environment

## 4.6.0 (2022-04-26)

### Features

* allow configuring widget frame height/width

## 4.5.0 (2022-03-23)

### Features

* handle postMessage messages from subdomain.withpersona.com

## 4.4.0 (2022-02-15)

### Features

* support multiple iframe origins

## 4.3.0 (2022-01-31)

### Features

* add array field type

### 4.2.1 (2022-01-20)

### Bug Fixes

* update error types to include error message

## 4.2.0 (2021-11-22)

### Features

* add load camera failed event

## 4.1.0 (2021-10-13)

### Features

* add Client.destroy()
* Add option message-target-origin
* add options.parent
* sent notification on reopen

## 4.0.0 (2021-08-03)

### ⚠ BREAKING CHANGES

* removes callback `onStart`. The `onEvent` callback can be used as a replacement by listening for `Event.Start`.
* `onComplete` signature changed to use keyword arguments `inquiryId`, status`, and `field`. `status`should be inspected to determine if the inquiry passed or failed.`fields`is the same as the previous second argument.`onFail`callback removed;`onComplete\` will be called instead.
* `onExit`, `client.exit()` renamed `onCancel`, `client.cancel()`. This is to make it more clear that `onExit` is not called when closing the flow after the flow has been completed.
* Rather than potentially passing error objects as arguments to `onLoad` and `onReady` callbacks, passes them to the new `onError` instead.
* `accessToken` renamed to `sessionToken`. templates.
* `note` removed. Use custom fields instead.
* Not strictly related to `persona-verify`, but inquiries created via Inquiry Templates will no longer send the following events: `'country-select'`, `'verification-change'`. There are no replacements.

### Features

* support new Inquiry Templates

## 3.11.0 (2021-07-29)

### Features

* add fields, templateVersionId as client options

### Bug Fixes

* don't stringify null props in query string
* ignore mismatch in template IDs when empty

## 3.10.0 (2021-05-18)

### Features

* add onReady callback

## 3.9.0 (2021-04-19)

### Features

* add selfie start / capture events

### 3.8.1 (2021-04-09)

### Bug Fixes

* Add Identification Number as an attribute to lockedAttributes

## 3.8.0 (2021-04-07)

### Features

* add class names to widget overlay and iframe

### Bug Fixes

* fix exit() event

### 3.7.3 (2021-02-12)

### Bug Fixes

* undo 'export type' done in 3.7.2

### 3.7.2 (2021-02-10)

### Bug Fixes

* Add back onExit to type definition

### 3.7.1 (2021-02-08)

### Bug Fixes

* restore verify client events

## 3.7.0 (2021-02-04)

### Bug Fixes

* repoint npm to src, move styled components to peer dep

## 3.6.0 (2021-01-29)

### Features

* add inline Inquiry React component
* bump version for 3.5.2 release
* export as UMD module

## 3.5.1 (2020-11-17)

### Chores

* Updated to Webpack 5
* Updated to Styled Components 5
* Allow CommonJS package ('lib') in addition to a Webpack built distribution ('dist'), allowing NPM package installations to be reduced in size.
* Cleaned up other dependencies

## 3.5.0 (2020-11-03)

### Features

* Add containerId to client `message` listener

## 3.4.0 (2020-05-24)

### Features

* add `allow-top-navigation-by-user-activation`
* add locked attributes as a Client Option.
* Add note to embedded flow

### Bug Fixes

* **types:** make PrefillAttributes properties optional

## 3.3.0 (2020-03-10)

### Features

* add locked attributes as a Client Option.

### Bug Fixes

* **types:** make PrefillAttributes properties optional

## 3.2.0 (2020-02-25)

### Features

* add `allow-top-navigation-by-user-activation`

## 3.1.1 (2020-02-11)

### Bug Fixes

* unused onFailed callback should be named onFail

# 3.1.0 (2020-02-10)

### Features

* add onFailed callback