Changelog
Release notes and version history for the VECU Identity Verification Web SDK.
Internal Implementation Details
Endpoint paths and internal details mentioned in changelog entries are implementation details managed by the SDK. Do not call these endpoints directly.
v2.2.2-rc3 (Release Candidate)
Status: In testing — not yet released as stable. The current stable release is v2.2.1.
New Features
- Editable Personal Email at the address-confirmation step — New
allowEmailOverrideconfiguration option (defaultfalse) lets the user provide a separate personal email when their session was started with a company email. When enabled, the address-confirmation form renders an editable Personal Email field above a readonly Company Email field. The Personal Email is the value sent to the verification provider; the Company Email is informational only ("we already have this") and is not transmitted in the patch. Useful when the email known at session start (e.g. corporate / dealer email) is not the email the user wants verified. See Configuration → allowEmailOverride.
Migration Notes
No action required for existing integrations. The default (false) preserves
the previous behavior — a pre-populated email renders as a single readonly
field that is sent verbatim. Opt in by passing config.allowEmailOverride: true to startVerificationWithCustomer().
v2.2.1 (Latest)
Released: April 21, 2026
Bug Fixes
- Fix Incode reverification completion event — On reverification flows backed by the Incode provider, the
onSuccesscallback passed tostartReverificationwas not firing on completion: the provider was emittingVERIFICATION_COMPLETEDwhile the reverify-flow listener subscribes toREVERIFICATION_COMPLETED. Reverify-prefixed verification IDs now correctly emitREVERIFICATION_COMPLETED, matching the behavior already in place for the other provider.
Migration Notes
No action required. If you previously worked around this by polling status
after reverification, you can rely on the onSuccess callback again.
v2.1.4
Released: March 24, 2026
Bug Fixes
- Name validation tightened to match verification provider requirements — Names containing special characters like
/,!,@,#,$were passing SDK validation but causing the verification provider to silently reject the request before document capture. The SDK now validates names against an allowlist of accepted characters (letters, digits, accented characters, spaces, hyphens, apostrophes, and periods) and returns aVALIDATION_ERRORwith field-specific details so integrators can prompt users to correct their name before retrying. - International phone numbers no longer rejected at init — Phone validation in
startVerificationWithCustomerwas hardcoded to US parsing, causing valid international numbers (e.g., North Macedonian, Bulgarian) to fail before any API call. Now uses the same fallback strategy as the address confirmation form: try international format first, then country hint from customer address data, then US default.
Migration Notes
Name validation: Names with characters like /, !, @ will now be
rejected with a VALIDATION_ERROR before the verification starts. Handle this
in your onError callback to prompt users to correct their name.
v2.1.3
Released: March 20, 2026
Bug Fixes
- Auto-close provider capture tab on mobile — In mobile in-app browsers, the provider's document capture opens in a new tab that stays open after upload, leaving users on a dead-end "verification complete" screen. The SDK now intercepts the tab reference when the provider opens it and automatically closes it when document upload completes, returning the user to the address confirmation step.
Migration Notes
No action required. This fix is transparent to integrators — no API changes, no configuration changes. The capture tab is closed automatically after document upload in all environments.
v2.1.2
Released: March 12, 2026
Bug Fixes
- Server time calibration now works correctly — The clock skew calibration introduced in v2.1.1 was not activating because the backend timestamps include a malformed timezone suffix (
+00:00Zinstead ofZ), which JavaScript'sDateparser rejects. The SDK now normalizes the timestamp before parsing, so the device-to-server time offset is correctly applied to address confirmation submissions.
Migration Notes
No action required. This fix completes the clock skew correction from v2.1.1 and v2.0.4. Address confirmation now works reliably for users whose device clocks are ahead of server time.
v2.1.1
Released: March 12, 2026
Improvements
- Improved device clock skew handling — Refined the server time calibration introduced in v2.0.4 to use the UTC timestamp present in API response payloads rather than the HTTP
Dateresponse header. This ensures reliable time correction across all deployment environments and proxy configurations where response headers may vary.
Migration Notes
No action required. This is a transparent improvement to the clock skew fix from v2.0.4.
v2.1.0
Released: March 12, 2026
New Features
- Editable phone number field — New
allowPhoneEditconfiguration option allows users to correct their phone number on the address confirmation form when the pre-populated number (from Central Dispatch via the identity provider) is a company number rather than a personal number. The SDK tracks whether the phone was edited and signals the backend accordingly. - Hide email display — New
hideEmailDisplayconfiguration option hides the email field from the address confirmation form while still including it in the API payload.
UX Improvements
- Updated address confirmation form title to "Verify Your Personal Information"
- Added a warning banner reminding users to use personal information
- Added helper text for address and phone fields
Migration Notes
No action required unless you want to enable the new configuration options.
Set allowPhoneEdit: true to let users edit the phone field, and
hideEmailDisplay: true to hide the email field from the form.
v2.0.4
Released: March 9, 2026
Bug Fixes
- Romanian National ID (CNP) validation corrected — Valid Romanian CNPs were being rejected for the majority of Romanian customers due to a regex flaw that only accepted a narrow subset of birth years. All valid 13-digit CNPs now pass validation correctly.
- International phone number pre-population fixed — Customers whose phone numbers are supplied in local national format without a
+country prefix (common with Central Dispatch data for countries such as Bulgaria) would see an empty phone field with a US flag instead of their correct number. The SDK now uses the customer's country from their address data to resolve local-format numbers correctly. - Address confirmation failure on devices with skewed clocks — Customers on devices whose system clocks were more than 60 seconds ahead of UTC would receive a generic error when submitting the "Confirm Information" form. The SDK now automatically calibrates against server time, so submissions succeed regardless of device clock accuracy.
Migration Notes
No action required. All three fixes are transparent to integrators — no API changes, no configuration changes.
v2.0.0
Released: February 4, 2026
Breaking Changes
- EIN removed from US National ID field — Employer Identification Number (EIN) is no longer offered as a document type for US customers. Only SSN (Social Security Number) and ITIN (Individual Taxpayer Identification Number) are supported. EIN is a business identifier and was causing confusion in an individual identity verification context.
Migration Notes
No code changes are required to your SDK integration. If your user-facing documentation or onboarding materials reference EIN as an accepted ID type, update them to reflect that only SSN and ITIN are supported for US customers.
v1.7.1
Released: February 4, 2026
Technical Details
- Updated Event types:
SdkEventenum introduced instead of plain strings (e.g.,'verification:completed'becomes SdkEvent.VERIFICATION_COMPLETED)
v1.5.5
Released: January 7, 2026
Bug Fixes
- Backend Validation Error Propagation: Fixed error handling to surface specific backend validation error messages (e.g., "The zip code is invalid") instead of generic "No provider document ID received" errors
- SDK now checks
errorfield BEFORE checkingproviderDocumentIdfor correct error precedence in both verification and reverification flows
New Features
- New Validation Error Codes:
INVALID_ZIP_CODE,INVALID_ADDRESS,INVALID_STATE,INVALID_CITY,INVALID_PHONE - Enhanced Error Response Structure: Errors now include
code,message,category,recoverable,timestamp, andproviderfields - Recoverable Error Flag: Validation errors marked as recoverable, allowing applications to guide users to correct data and retry
Technical Details
- Added new helper function
handleBackendValidationError()to process and throw validation errors with full context - Updated
startVerificationWithCustomer()andstartReverification()to check error field before providerDocumentId - Comprehensive test coverage added in
backendErrorPropagation.test.tscovering all validation error scenarios
Migration Notes
Fully backward compatible. Handle the new validation error codes in your
onError callback to provide specific guidance when users enter invalid
address data. The recoverable flag indicates users can fix and retry.
v1.5.4
Released: December 16, 2025
Technical Details
- Simplified Bundle Build Pipeline: Bundle now outputs directly to
bundle.jsinstead ofbundle.min.js, eliminating redundant copy step - Eliminated
copy:bundlescript fromprepublishOnly- simplified from two commands to one - Updated documentation to reference
bundle.jsinstead ofbundle.min.js - No functional changes to SDK behavior
Migration Notes
No code changes required. If you are referencing bundle.min.js directly in
your script tags, update to bundle.js. The file is still minified for
production.
v1.5.3
Released: December 15, 2025
Bug Fixes
- CRITICAL: Script Tag Loading Error: Fixed "Uncaught ReferenceError: ALLOW_CUSTOM_API_URL is not defined" error that affected users loading SDK via script tag in versions 1.5.1 and 1.5.2
- API URL Resolver: Fixed incorrect API URL resolver in SDK configuration (now uses
getAccessTokenApiUrl()instead ofgetTokenExchangeApiUrl())
Technical Details
- Removed broken bundle build section from
rollup.config.jsthat did not properly replace constants - Updated
prepublishOnlyscript to properly build and copy bundle files - Proper separation of dev (custom URL allowed) and prod (deployment stage only) bundles maintained
Migration Notes
Highly recommended upgrade if using v1.5.1 or v1.5.2 via script tag. No API changes required - this is purely a build fix. Users loading the SDK via npm/yarn/pnpm were not affected by this issue.
v1.5.2
Released: December 11, 2025
New Features
- Anti-Tampering Detection for Readonly Fields: Added client-side defense-in-depth feature that detects when users modify pre-filled (verified) email and phone fields during address confirmation
- Tampering Behavior Configuration: New
tamperingBehaviorconfig option controls how the SDK responds to field tampering:'warn'(default) emits warning events but allows submission, or'block'prevents form submission - Tampering Events: New event types for tampering detection:
address:field_tampering_detectedandaddress:field_tampering_blockedprovide audit trail and early user feedback - Improved Document Verification Flow: Enhanced processing for passports and documents without MRZ address data, with contact information (email/phone) now pre-populated when available
Bug Fixes
- Fixed ~23 second loading delay when verifying passports and documents without MRZ by improving status polling logic
- Fixed missing email/phone fields in address confirmation for documents without MRZ address data
Technical Details
- Refactored API client architecture with new
BaseAPIClient,TokenAPIClient, andVecuIdvApiClientclasses for improved maintainability - Enhanced workflow management with new
ActionManagerclass featuring exponential backoff for verification status polling - Test infrastructure improvements for better CI/LLM compatibility (changed default test behavior to run-once mode)
- Verification completion flow reliability improvements with temporary fallback for API response mapping
Migration Notes
This release is fully backward compatible. The tamperingBehavior option
defaults to 'warn', allowing form submission while providing audit trail
through events. Client-side validation is not a security boundary - backend
validation remains the primary control.
v1.5.0
Released: November 17, 2025
New Features
- Country Selection Fields: Aligned National ID, Address, and Phone Number with consistent options and styling, plus validation improvements
- Authentication Error Events: Added
authentication:token_failureevent that emits when bearer token exchange fails during runtime operations - TokenExchangeError Class: New dedicated error class for token exchange failures with structured error information
- Automatic 401 Token Retry: SDK automatically retries API requests when receiving 401 Unauthorized by refreshing the access token
- Conditional Email/Phone Fields: Added
showEmailandshowPhoneconfiguration options to control field visibility in address confirmation - Pre-Verification Validation: Email and phone formats are now validated before API calls using libphonenumber-js
Technical Details
- Applications can now subscribe to
authentication:token_failureevents usingsdk.on()to handle bearer token expiration gracefully - Token retry logic moved to
fetchWithRetrymethod for proper 401 interception at network layer - Event emission integrated with error handling in
init(),startVerificationWithCustomer(), andstartReverification() - ValidationError class added for structured validation error handling
Migration Notes
This release is fully backward compatible. All new features are opt-in. Handle
the new TOKEN_EXCHANGE_FAILED error code in your error handling to provide
better user experience when sessions expire.
v1.3.9
Released: November 7, 2025
New Features
- Identity Reverification: Added new
startReverification()method to enable returning users to re-verify their identity by reusing existing document data and capturing a fresh selfie - Streamlined User Experience: Reverification automatically skips address confirmation for completed verifications, reducing friction for returning users
- Reverification Events: Added new event types for reverification flow:
reverification:started,reverification:progress,reverification:completed, andreverification:failed - Automatic Flow Detection: SDK automatically detects reverification flows based on verification ID pattern (starts with "reverify")
- Optional SMS Notifications: Reverification supports optional
phoneNumberparameter for SMS notifications to user's mobile device
Technical Details
- Reverification uses a dedicated internal endpoint with dynamic status polling
- Event system extended to support separate reverification event types
- Flow detection implemented using verification ID prefix matching
- Provider integration updated to support reverification flow with minimal code duplication
Migration Notes
Fully backward compatible. All existing startVerificationWithCustomer()
calls continue to work unchanged. Reverification is opt-in via the new
startReverification() method.
v1.3.8
Released: November 4, 2025
Bug Fixes
- Address Confirmation Skip Logic: Fixed address confirmation to use
providerData.statusinstead of top-levelstatusfield for determining when to skip address confirmation screen. This ensures proper handling of verification status when status is CLOSED.
v1.3.7
New Features
- Emulator Provider Support: Added support for emulator provider in SDK for testing and development scenarios
- Enterprise Error Handling: Added enterprise-level error handling with custom error classes for better error tracking and debugging
Bug Fixes
- Name Validation: Fixed validation to properly support special characters in names (hyphens, apostrophes, etc.)
- Phone Input Overflow: Resolved phone input overflow issues and updated tests to match permissive validation
- Date Input Display: Prevented date input overflow by adding max-width constraint for better mobile display
- Error Code Detection: Fixed double-nested event data structure that was causing error code detection failures
v1.3.6
New Features
- Intelligent National ID Selector: Added smart National ID field with auto-detection for SSN/ITIN/EIN. The field automatically detects and validates the appropriate ID type based on input format.
- Enhanced National ID UX: Improved user experience with better validation feedback and mobile Safari date input overflow fixes
Improvements
- Backward Compatibility: Maintained backward compatibility for
showSsnOnInitialFormconfiguration option
National ID Auto-Detection
The National ID field now intelligently detects the type of identification number being entered:
- SSN (Social Security Number): XXX-XX-XXXX format
- ITIN (Individual Taxpayer ID): 9XX-XX-XXXX format
- EIN (Employer ID Number): XX-XXXXXXX format
No configuration required - Auto-detection works automatically in SDK v1.3.6+
v1.3.5
Released: October 17, 2025
New Features
- Date of Birth Field: Added mandatory Date of Birth (DOB) field to information confirmation screen with validation and auto-population support
- Enhanced Identity Verification: DOB data improves identity verification accuracy and matching
- Updated Success Messages: Changed success message to "Information Updated Successfully!" to reflect multiple data points being verified
Technical Details
- Added
dateOfBirthfield toIAddressDatainterface - DOB field pre-populates from
providerData.dobwhen available - Validation: required, age 18-120, no future dates, 4-digit year
- Format: YYYY-MM-DD (ISO 8601 date format)
- Verification scores and national ID flags are automatically tracked
No configuration changes required - DOB field is automatically included in SDK v1.3.5+
v1.3.4
Bug Fixes
- API Routing: Fixed API routing to correctly route requests to appropriate backend services
v1.3.3
New Features
- SSN Field Visibility Control: Added
showSsnOnInitialFormconfiguration option to control visibility of SSN/National ID field in information confirmation form - Enhanced Input Validation: Improved sanitization and validation for SSN/National ID field
// Hide SSN field for GDPR compliance
await sdk.startVerificationWithCustomer('#container', {
customerInfo: {
/* ... */
},
config: {
showSsnOnInitialForm: false, // Hide SSN field
},
});
v1.3.2
Bug Fixes
- VECU IDV Endpoints: Updated VECU IDV endpoints
v1.3.1
Bug Fixes
- CiP Token Exchange Endpoint: Fixed token exchange endpoint handling for CiP verifications
v1.3.0
New Features
- Token Exchange Authentication: Implemented token exchange authentication flow with dual endpoint architecture
- X-SDK-Version Header: Added automatic SDK version header inclusion for API requests
- Enhanced Information Verification: Added optional SSN/National ID field to information verification form
- Contact Info Pre-population: Email and phone fields now auto-populate from verification response data
v1.2.1
Improvements
- Enhanced modal handling with seamless transitions between verification steps
- Improved loading experience with immediate visual feedback
- Better error handling for address confirmation with 409 conflict resolution
v1.2.0
New Features
- Resumable Verifications: Existing verifications can now be resumed using the same
referenceId. Verification Status will be in_progress while case is awaiting address confirmation
Breaking Changes
referenceIdis now required: This field is now required for verification tracking and resumability- Country field in address object is now optional
- Address object is now completely optional in customer information
Migration Guide
The referenceId field is now required for all verification calls. Use the
same ID to resume existing verifications. The country field and entire
address object are now optional. Minimal configuration requires firstName,
lastName, referenceId, and either email or phone.
Version Format Guide
Version Numbers
The SDK follows semantic versioning (SemVer): MAJOR.MINOR.PATCH
- MAJOR: Breaking changes that require code updates
- MINOR: New features that are backward-compatible
- PATCH: Bug fixes and small improvements
Pre-release Tags
- alpha: Early development versions
- beta: Feature-complete versions undergoing testing
- rc: Release candidates ready for production