About

Below is a log of changes to the Persona API. Updates that affect only products or features in beta or limited release may not be reflected.

Each change can be described as either a breaking change or an ongoing change.

  • Breaking changes = new API version: When we make any backwards-incompatible changes, we release a new version of the API. In addition to being assigned a new API version, these changes are marked in the changelog with the 💥 symbol. You’re in charge of when you get breaking changes—you get them when you upgrade your API version. Learn how to try out and upgrade to newer API versions.
  • Ongoing changes: Ongoing changes are backwards-compatible, and are added on an ongoing basis. You don’t need to update your API version to get these updates.
SDK changelogs

Each Persona SDK has a separate changelog: Android SDK, iOS SDK, React Native SDK, Javascript SDK, Inlined React SDK, Inlined Vue SDK

Key

🌱 New feature

🍃 Improvement

🔧 Fix

💥 Breaking change

🔒 Security-related

Verifications

  • 🌱 Add check metadata and extracted identity to Business Website Verifications: Business Website Verifications now expose two additional sets of data:

    1. Check metadata — The business_website_backlink_detection check now includes backlink-count (number of root domains linking to the site) and backlink-threshold (configured minimum to pass) in its metadata object. These values are captured at check-run time and remain stable even after raw verification data expires.

    2. Extracted identity — A new top-level extracted-identity attribute exposes the business names, addresses, phone numbers, and email addresses found on the website as clean, flat arrays. Each entry includes the extracted value and the source URL it was found on. This data was previously only accessible nested inside the identity_comparison check.

    See the Retrieve a Verification endpoint for details.

  • 📝 Clarification — malicious website detection signals are in reasons: The business_website_malicious_website_detection check surfaces its IPQS and Google Web Risk detection signals (e.g. malware, phishing, spam-source) in the reasons array rather than metadata. If you are looking for which threat types were detected, inspect checks[].reasons on this check.

Reports

  • 🌱 Add ownership information to Business Associated Persons Reports: Business Associated Persons Reports now include an ownership_information object containing an owners array. Each owner includes its type (person or business), name, birthdate, address, and roles. See the Retrieve a Report endpoint for details.

API Logs

  • 🍃 Add redacted_at attribute to API Logs: API Logs now include a redacted_at attribute which indicates when an API Log has been redacted.

Reports

  • 🌱 Add phone_city, phone_subdivision, and phone_country_code to Phone Risk Reports: Phone Risk Reports now expose phone location data.

Accounts

Inquiries

  • 🌱 Add endpoint to search Inquiries: You can now use complex queries to search for Inquiries via the search endpoint. Using search is a faster alternative to using the list all Inquiries endpoint. It is not appropriate for read-after-write flows because the data is not immediately available to search.

Relays

  • 🌱 Add new Relay API for privacy-preserving identity claims: You can now create a Relay and read its claim through the API. Relay returns an anonymized identity claim (such as age-over-18 or live-human-presence) without exposing the underlying PII.
    • Create a Relay returns the relay-token, relay-secret, and session access token needed to redeem the claim.
    • Generate a Relay claim returns the claim payload. It is authenticated with a Privacy Pass token (RFC 9577) and requires the Persona-Relay-Secret header.
    • Create a Privacy Pass blind-signs a client-provided token (Blind RSA, RFC 9578) so it can be redeemed anonymously when generating a claim.

Transactions

Cases

  • 🌱 Add endpoint to remove attached objects from Cases: You can now remove attached objects such as inquiries, accounts, and reports from cases via the remove-objects endpoint.

Account Types and Case Templates

  • 🌱 New endpoints to retrieve Account Types and Case Templates by ID: You can now retrieve a specific Account Type or Case Template by its public ID. Both responses include a field-schemas array under data.attributes, where each entry describes one configured field (type, key, label, config) so you can programmatically validate that your application’s fields match what’s configured in Persona. The new endpoints require the account_type.read and case_template.read permissions, respectively. API keys created after the rollout date automatically include both permissions; API keys with explicit permission lists must add account_type.read and/or case_template.read before they can call the new endpoints.

Filings

  • 🔒 Filing endpoints now require the filing.write permission: Creating, updating, and adding objects to Filings now require API keys to have the filing.write permission. Existing API keys have been backfilled with this permission, and newly created API keys include filing.write by default. API keys with a narrow custom permission set must include filing.write to call these endpoints.

Government ID Documents and Verifications

  • 🍃 Surface address county name extractions: Government ID Document and Verification resources now include address_county.

Documents

  • 🍃 Stop backfilling extraction-responses into extraction-results: For API versions before 2021-08-18, the extraction-results attribute on Document responses was being synthetically computed from extraction-responses. This backwards-compatibility behavior has been removed. If you are on an API version before 2021-08-18 and rely on extraction-results, please use the extraction-responses attribute instead.

  • 🍃 Remove non-GET Document endpoint documentation: The create, update, and submit endpoints for Documents have been removed from the API reference. These endpoints are deprecated in favor of Transactions. The GET endpoints (retrieve and list) remain available.

Events

  • 🍃 Add related-txn-id field to Relation Event contexts: added-relation and removed-relation events send related-account-id in their event context. When the relation points to a Transaction, the context will now use related-txn-id to specify the related object.

Webhooks

  • 💥 Webhook Event payloads no longer include related objects by default: Newly created webhooks will have an empty included array in their event payloads. To receive related objects, configure the allowlist on the webhook’s Payload Configuration tab. Existing webhooks are not affected.

Inquiries

  • 🍃 Add optional session tokens or one time links to Inquiry creation responses: The Inquiry create response can now return a session token or a one time link if you pass in certain flags. If you pass in auto-create-inquiry-session as true, the response includes a meta.session-token attribute. If you pass in auto-create-one-time-link as true, the response includes meta.one-time-link and meta.one-time-link-short attributes.

  • 🍃 Inquiry creation iOS App Attestation improvement: Inquiry create requests now accept meta.ios_app_attest_team_id and meta.ios_app_attest_bundle_id to allow iOS App Attestation on multiple apps on a single Inquiry Template. The properties override the template level configs and accepts either credential or both as overrides.

Reports

  • 🍃 Add Instagram URL and username to Social Media Reports: The response attributes for Social Media Reports now include an instagram_url and instagram_username attribute to represent the linked Instagram account. See the Retrieve a Report endpoint for details.

Reports

  • 🍃 Add position topics, start dates, and end dates to Politically Exposed Person Reports: The positions attribute in Politically Exposed Person Reports now exposes position topics as well as the start and end dates indicating the duration each position was held. See the Retrieve a Report endpoint for details.

Events

  • 🍃 Add context attribute to Events and Webhook Events: Events and Webhook Event resources now include a context attribute that can hold additional information for certain event types. To start, the account.added-relation and account.removed-relation events will have relation-schema-key and target-account-id attributes within context.

Accounts

  • 🌱 Add endpoint to search Accounts: You can now use complex queries to search for Accounts via the search endpoint. Using search is a faster alternative to using the list all Accounts endpoint. It is not appropriate for read-after-write flows because the data is not immediately available to search.