
Security News
Scaling Socket from Zero to 10,000+ Organizations
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.
@seontechnologies/seon-id-verification
Advanced tools
An advanced SDK for natural person identification through document scanning, facial recognition, designed for secure and efficient user verification.
Our SDK offers a comprehensive suite of features designed to cater to a wide range of document validation and recognition needs. Below is a breakdown of the key features available:
🤖 Document Validation and Content Verification
👨 Facial Recognition
Install the SDK in your project:
npm install @seontechnologies/seon-id-verification
To upgrade to v2.0.0, run:
npm install @seontechnologies/seon-id-verification@^2.0.0
v1.x.x:
import '@seontechnologies/seon-id-verification/styles';
v2.0.0:
This import is no longer required. All necessary styles are included automatically.
SeonIdVerification.initialize(config) and then call SeonIdVerification.start().initialize method is no longer required. You can pass the configuration directly to start:SeonIdVerification.start({
/* configuration options */
});
Note:
initializeis still available for backward compatibility, but is not required if you pass the configuration directly tostart.initializeis no longer async, so you do not need to useawaitor.then()with it.
Key differences in v2.0.0:
licenseKey, referenceId, type, and templateId are now top-level properties (not nested under SEONCustomerData).SEONCustomerData object is now renamed to customerData and contains only user/customer-specific fields. (such as email, phoneNumber, name, etc.).Before (v1.x.x):
SeonIdVerification.initialize({
baseUrl: 'https://idv-eu.seon.io',
SEONCustomerData: {
licenseKey: 'YOUR_LICENSE_KEY',
referenceId: 'YOUR_REFERENCE_ID',
email: 'user@example.com'
}
});
After (v2.0.0):
SeonIdVerification.start({
baseUrl: 'https://idv-eu.seon.io',
licenseKey: 'YOUR_LICENSE_KEY',
referenceId: 'YOUR_REFERENCE_ID',
customerData: {
email: 'user@example.com'
}
});
See the updated FlowConfiguration and customerData sections below for details.
start → startedcompletedSuccess, completedPending, completedFailed → now all trigger the completed event with an additional completion type/status argument.opened: Flow UI openedclosed: Flow UI closedExample:
SeonIdVerification.on('completed', (status) => {
// status: 'success' | 'pending' | 'failed' | 'unknown'
});
import { SeonIdVerification } from '@seontechnologies/seon-id-verification';
SeonIdVerification.initialize({
baseUrl: 'https://idv-eu.seon.io', // or https://idv-us.seon.io
licenseKey: 'YOUR_LICENSE_KEY',
referenceId: 'YOUR_REFERENCE_ID',
language: 'en',
templateId: 'YOUR_TEMPLATE_ID',
customerData: {...},
// ...other configuration options
});
// Start the verification flow
SeonIdVerification.start();
You can also omit the initialize call and pass the configuration object directly to the start method.
The SDK supports several rendering modes:
containerId required)Example (inline):
SeonIdVerification.initialize({
...config,
renderingMode: 'inline',
containerId: 'idv-container',
});
FlowConfiguration ReferenceThe main configuration object (FlowConfiguration) supports:
baseUrl (required): API base URLlicenseKey (required): Your SEON IDV license keyreferenceId (required): Unique reference for the verification flowlanguage: UI language (e.g., 'en')type: Verification type (e.g., 'registration', 'login')templateId: Template identifiercustomerData: Additional customer/user infotheme: Theme configurationalwaysTransferFromDesktop: Force desktop to mobile transferingrenderingMode: 'inline' | 'fullscreen' | 'popup' (default: 'fullscreen')containerId: DOM element ID to mount the flow (required if renderingMode is 'inline')See TypeScript types in src/types/FlowConfiguration.ts for advanced options.
customerData ReferenceThe customerData object allows you to pass additional user/customer information to the verification flow. This can improve the verification experience and is often required for compliance.
email: User's email addressphoneNumber: User's phone numbername: User's full nameuserId: Internal user identifiercountryISOCode: ISO country code, e.g., 'US'address: User's addressdateOfBirth: Object with user's date of birth
day: Day of birth (number)month: Month of birth (number)year: Year of birth (number)postalCode: Postal codeadditionalProperties: Object with extra key-value pairsExample:
customerData: {
email: 'user@example.com',
phoneNumber: '+1234567890',
name: 'John Doe',
userId: 'user-123',
countryISOCode: 'US',
address: '123 Main St, New York, NY',
dateOfBirth: {
day: 1,
month: 1,
year: 1990
},
postalCode: '10001',
additionalProperties: {
loyaltyId: 'abc-123',
customField: 'value'
}
}
You can listen for key events during the verification flow:
opened: Flow UI openedclosed: Flow UI closedstarted: Verification startedcompleted: Verification completed (with status)cancelled: Flow cancelled by usererror: Error occurred (with error code)Example:
SeonIdVerification.on('completed', (status) => {
// Handle completion (status: 'success' | 'pending' | 'failed' | 'unknown')
});
SeonIdVerification.on('error', (errorCode) => {
// Handle error
});
You can customize the appearance of the verification UI using the theme property in your FlowConfiguration object.
theme ReferenceThe theme object supports the following fields:
light: Light mode theme overrides
baseTextOnLight: Text color on light backgroundsbaseTextOnDark: Text color on dark backgroundsbaseAccent: Accent colorbaseOnAccent: Text color on accent backgroundslogoUrl: URL for custom logo in light modedark: Dark mode theme overrides
baseTextOnLight: Text color on light backgroundsbaseTextOnDark: Text color on dark backgroundsbaseAccent: Accent colorbaseOnAccent: Text color on accent backgroundslogoUrl: URL for custom logo in dark modefontFamily: Font family for the UIfontUrl: URL for the custom fontfontWeight: Font weights to useNotes:
Example:
{
theme: {
light: {
baseTextOnLight: '#3e5a93',
baseTextOnDark: 'rgb(255, 255, 255)',
baseAccent: '#467024',
baseOnAccent: 'rgb(255, 255, 255)',
logoUrl: 'https://example.com/light-logo.png',
},
dark: {
baseTextOnLight: '#dbfff1',
baseTextOnDark: 'rgb(255, 255, 255)',
baseAccent: 'hsl(52 86% 46% / 1)',
baseOnAccent: '#11361c',
logoUrl: 'https://example.com/dark-logo.png',
},
fontFamily: 'cursive',
fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap',
fontWeight: '400 500 600 700 800 900',
}
}
Notes:
import { SeonIdVerification } from '@seontechnologies/seon-id-verification';
SeonIdVerification.on('opened', () => {
console.log('SDK opened');
});
SeonIdVerification.on('closed', () => {
console.log('SDK closed');
});
SeonIdVerification.on('started', () => {
console.log('Flow started');
});
SeonIdVerification.on('error', (err) => {
console.log('Error code: ', err);
});
SeonIdVerification.on('completed', (type) => {
console.log('Flow completed with type: ', type);
});
SeonIdVerification.initialize({
baseUrl: 'YOUR_BASE_URL',
customerData: {
licenseKey: 'YOUR_LICENSE_KEY',
referenceId: 'YOUR_REFERENCE_ID',
type: 'id-verification',
email: 'test-elek@seon.io',
phoneNumber: '+36301234567',
name: 'Test Elek',
userId: 'test-elek',
countryISOCode: 'us',
address: '132, My Street, New York 12',
templateId: 'YOUR_TEMPLATE_ID',
dateOfBirth: {
day: 1,
month: 1,
year: 2000,
},
postalCode: '12345',
additionalProperties: {
additionalProp1: 'value1',
additionalProp2: 'value2',
additionalProp3: 'value3',
},
},
language: 'en',
});
SeonIdVerification.start();
| Browser | Version |
|---|---|
| Chrome | 96 |
| Safari | 15 |
| Firefox | 79 |
| Opera | 82 |
| iOS Safari | 15 |
| Android Browser | 81 |
| Chrome for android | 96 |
| Firefox for android | 79 |
The detailed license terms can be viewed at the following link: ®️SEON License Terms.
FAQs
An advanced SDK for natural person identification through document scanning, facial recognition, designed for secure and efficient user verification.
The npm package @seontechnologies/seon-id-verification receives a total of 1,524 weekly downloads. As such, @seontechnologies/seon-id-verification popularity was classified as popular.
We found that @seontechnologies/seon-id-verification demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.

Research
Socket Threat Research maps a rare inside look at OtterCookie’s npm-Vercel-GitHub chain, adding 197 malicious packages and evidence of North Korean operators.

Research
Socket researchers identified a malicious Chrome extension that manipulates Raydium swaps to inject an undisclosed SOL transfer, quietly routing fees to an attacker wallet.