Migrate from V2.0 to V2.1¶
Overview¶
This guide provides a visual migration reference to help transition your configuration JSON from version 2.0 to version 2.1. Each section in this documentation corresponds to a specific screen or functional block, and presents a side-by-side comparison between the old configuration and the new one.
The goal is to make the migration process as intuitive as possible, highlighting what needs to be removed, what can be kept, and what should be added.
In addition to the visual comparison, each section also provides contextual information about the changes, explaining the reasons behind them and how they impact the configuration. This helps ensure not only that the migration is successful, but also that it is well understood.
IMPORTANT NOTE
This guide will help you migrate your configuration related to user experience (UX) and application functionality.
How the Visual Comparison Works¶
For each screen, you will find a table that displays:
- On the left, the original JSON structure used in v2.0.
- On the right, the updated JSON structure for v2.1.
Changes are color-coded to clearly indicate the migration actions required:
Color Legend¶
| Color | Meaning |
|---|---|
| 🔴 Red | Keys or sections that have been deprecated and should be removed. |
| 🟢 Green | Keys or structures that are new and should be added if applicable. |
| ⚪️ No color (default) | Keys that remain unchanged and require no action. |
This approach allows you to quickly scan and understand the differences, and apply the necessary updates to your configuration with confidence.
Migration Example (Simplified)¶
| Old configuration | New configuration |
|---|---|
"backgroundColor": "..." 🔴 |
(removed) |
"geolocation": true |
"geolocation": true |
| (not present) | "texts": Object 🟢 |
Setup Configuration Components¶
Loading¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
In the following comparison, it can be seen that the setup loading, which included the configuration of texts and colors, has been removed.
In the new version, the texts are configured under texts.loading.
| Old configuration | New configuration |
|---|---|
|
|
QR¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within qr.setup have been deprecated.
In the new version, the texts are configured under texts.qr.
| Old configuration | New configuration |
|---|---|
|
|
Document¶
Autoclassification selector¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
All parameters under document.autoclassificationSelector have been deprecated, as they were used to configure texts and colors.
In the new version, the texts are configured under texts.document[0-2].autoclassificationSelector.
| Old configuration | New configuration |
|---|---|
|
|
Document & country selector¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within documentSelector.setup have been deprecated.
In the new version, the texts are configured under texts.document[0-2].documentSelector.
| Old configuration | New configuration |
|---|---|
|
|
Document capture¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within document.captures[0-2].setup have been deprecated. In addition, new parameters have been added that change the functionality of the product.
In the new version, the texts are configured under:
texts.document[0-2].capture.texts.document[0-2].error.texts.document[0-2].instructions.texts.document[0-2].review.
| Old configuration | New configuration |
|---|---|
|
|
Selfie capture¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within selfie.setup have been deprecated. In addition, new parameters have been added that change the functionality of the product.
In the new version, the texts are configured under texts.selfie
| Old configuration | New configuration |
|---|---|
|
|
Video capture¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within video.setup have been deprecated. In addition, new parameters have been added that change the functionality of the product.
In the new version, the texts are configured under texts.video
| Old configuration | New configuration |
|---|---|
|
|
Esign¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within esign.setup have been deprecated. In addition, new parameters have been added that change the functionality of the product.
In the new version, the texts are configured under texts.esign
| Old configuration | New configuration |
|---|---|
|
|
Success¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within setup.success have been deprecated.
In the new version, the texts are configured under texts.processResult.success, and the media files are configured under the key medias.processResult.success.
| Old configuration | New configuration |
|---|---|
|
|
Error¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within setup.success have been deprecated.
In the new version, the texts are configured under texts.processResult.error, and the media files are configured under the key medias.processResult.error.
| Old configuration | New configuration |
|---|---|
|
|
Error modal¶
Visual comparison¶
Below is a visual comparison of the document selector screen.
| Desktop screenshot v2.0 | Desktop screenshot v2.1 |
|---|---|
![]() |
![]() |
| Mobile screenshot v2.0 | Mobile screenshot v2.1 |
|---|---|
![]() |
![]() |
Complete configuration migration¶
The parameters that configured texts and colors within setup.errorModal have been deprecated.
In the new version, the texts are configured under texts.errorModals.
| Old configuration | New configuration |
|---|---|
|
|
Example¶
XpressID v2.0¶
Document capture¶
{
"platform": "web",
"operationMode": "idv",
"flowSetup": {
"stages": ["document"],
"core": {
"confirmProcess": true
},
"options": {
"document": {
"captures": [
{
"documentTypes": ["ES2_ID"],
"setup": {
"sdkDocument": {
"views": {
"reviewImage": {
"card": {
"title": "Check that all data in the document is clearly readable and that there are no glares",
"buttons": {
"continue": {
"text": "Continue"
},
"repeat": {
"text": "Repeat"
}
}
}
}
}
}
}
}
]
}
}
},
"setup": {
"success": {
"text": "Process completed successfully",
"textColor": "#000D44",
"iconColor": "#078B3C"
},
"errorModal": {
"document": {
"obverse": {
"message": "The front of the document is not valid"
},
"reverse": {
"message": "The back of the document is not valid"
}
}
},
"loading": {
"progressIndicator": {
"color": "#FF7777",
"backgroundColor": "#FFFFFF"
},
"textColor": "#000D44",
"backgroundColor": "#000D44"
}
}
}
Document Selector + document capture + selfie passive capture¶
{
"platform": "web",
"operationMode": "idv",
"flowSetup": {
"stages": ["qr","document","selfie"],
"core": {
"confirmProcess": true
},
"options": {
"document": {
"captures": [
{
"documentTypes": ["SelectedByUser"],
"setup": {
"sdkDocument": {
"views": {
"reviewImage": {
"card": {
"title": "Check that all data in the document is clearly readable and that there are no glares",
"buttons": {
"continue": {
"text": "Continue"
},
"repeat": {
"text": "Repeat"
}
}
}
}
}
}
},
"documentSelector": {
"setup": {
"title": {
"text": "Document selector",
"textColor": "#000D44"
},
"countryChooser": {
"title" : {
"text" : "Select your country"
},
"picker": {
"borderColor": "#000D44"
}
},
"documentChooser": {
"buttons": {
"textColor": "#000D44",
"borderColor": "#000D44"
}
}
}
}
}
]
},
"selfie": {
"liveness": "passive",
"setup": {
"sdkSelfie": {
"views": {
"reviewImage": {
"card": {
"buttons": {
"continue": {
"text": "Continue"
},
"repeat": {
"text": "Repeat"
}
}
}
}
}
}
}
},
"qr": {
"redirectionUrl": "https://yourDomain.com/?sessionid=1672632&language=es",
"setup": {
"title": {
"text": "Scan the QR code"
},
"buttons": {
"continue": {
"text": "Continue",
"backgroundColor": "#FF7777"
}
}
}
}
}
},
"setup": {
"success": {
"text": "Process completed successfully",
"textColor": "#000D44",
"iconColor": "#078B3C"
},
"errorModal": {
"document": {
"obverse": {
"message": "The front of the document is not valid"
},
"reverse": {
"message": "The back of the document is not valid"
}
},
"selfie": {
"message": "The selfie is not valid"
}
},
"loading": {
"progressIndicator": {
"color": "#FF7777",
"backgroundColor": "#FFFFFF"
},
"textColor": "#000D44",
"backgroundColor": "#000D44"
}
}
}
Document capture + selfie active capture¶
{
"platform": "web",
"operationMode": "idv",
"flowSetup": {
"stages": ["document","selfie"],
"core": {
"confirmProcess": true
},
"options": {
"document": {
"captures": [
{
"documentTypes": ["ES2_ID"],
"setup": {
"sdkDocument": {
"views": {
"reviewImage": {
"card": {
"title": "Check that all data in the document is clearly readable and that there are no glares",
"buttons": {
"continue": {
"text": "Continue"
},
"repeat": {
"text": "Repeat"
}
}
}
}
}
}
}
}
]
},
"selfie": {
"liveness": "active",
"challengeLength": 2,
"setup": {
"sdkSelfie": {
"views": {
"reviewImage": {
"card": {
"buttons": {
"continue": {
"text": "Continue"
},
"repeat": {
"text": "Repeat"
}
}
}
},
"instructions": {
"card": {
"media": {
"head": ["https://docs.veridas.com/xpressid/web/v3.8/assets/images/logo.svg"]
},
"buttons": {
"previous": {
"text": "Next"
}
}
}
},
"capture": {
"head": {
"card": {
"title": {
"finish": "Great!"
}
}
}
}
}
}
}
}
}
},
"setup": {
"success": {
"text": "Process completed successfully",
"textColor": "#000D44",
"iconColor": "#078B3C"
},
"errorModal": {
"document": {
"obverse": {
"message": "The front of the document is not valid"
},
"reverse": {
"message": "The back of the document is not valid"
}
}
},
"loading": {
"progressIndicator": {
"color": "#FF7777",
"backgroundColor": "#FFFFFF"
},
"textColor": "#000D44",
"backgroundColor": "#000D44"
}
}
}
XpressID v2.1¶
Document capture¶
{
"platform": "web",
"operationMode": "idv",
"flowSetup": {
"stages": ["document"],
"core": {
"confirmProcess": true
},
"options": {
"document": {
"captures": [
{
"documentTypes": ["ES2_ID"]
}
]
}
}
},
"texts": {
"document" : [
{
"step": 1,
"review": {
"obverse": {
"subtitle": "Check that all data in the document is clearly readable and that there are no glares",
"continueButton": "Continue",
"repeatButton": "Repeat"
},
"reverse": {
"subtitle": "Check that all data in the document is clearly readable and that there are no glares",
"continueButton": "Continue",
"repeatButton": "Repeat"
}
}
}
],
"processResult": {
"success": {
"subtitle": "Process completed successfully"
}
},
"errorModals": {
"document": {
"obverse": {
"bodyText": "The front of the document is not valid"
},
"reverse": {
"bodyText": "The back of the document is not valid"
}
}
}
}
}
Document Selector + document capture + selfie passive capture¶
{
"platform": "web",
"operationMode": "idv",
"flowSetup": {
"stages": ["qr","document","selfie"],
"core": {
"confirmProcess": true
},
"options": {
"qr": {
"redirectionUrl": "https://yourDomain.com/?sessionid=1672632&language=es"
},
"document": {
"captures": [
{
"documentTypes": ["SelectedByUser"]
}
]
},
"selfie": {
"liveness": "passive",
"setup": {
"reviewShow": true
}
}
}
},
"texts": {
"qr": {
"title": "Scan the QR code",
"continueDesktopButton": "Continue"
},
"document" : [
{
"step": 1,
"documentSelector": {
"title": "Document selector",
"countrySelectorTitle": "Select your country"
},
"review": {
"obverse": {
"continueButton": "Continue",
"repeatButton": "Repeat"
},
"reverse": {
"continueButton": "Continue",
"repeatButton": "Repeat"
}
}
}
],
"selfie": {
"review": {
"continueButton": "Continue",
"repeatButton": "Repeat"
}
},
"processResult": {
"success": {
"subtitle": "Process completed successfully"
}
},
"errorModals": {
"document": {
"obverse": {
"bodyText": "The front of the document is not valid"
},
"reverse": {
"bodyText": "The back of the document is not valid"
}
},
"selfie": {
"bodyText": "The selfie is not valid"
}
}
},
"styles": {
"theme": {
"darkTextColor": "#000D44"
},
"components": {
"button": {
"backgroundColorOutline": "#FF7777"
}
}
}
}
Document capture + selfie active capture¶
{
"platform": "web",
"operationMode": "idv",
"flowSetup": {
"stages": ["document","selfie"],
"core": {
"confirmProcess": true
},
"options": {
"document": {
"captures": [
{
"documentTypes": ["ES2_ID"]
}
]
},
"selfie": {
"liveness": "active",
"challengeLength": 2
}
}
},
"texts": {
"document" : [
{
"step": 1,
"documentSelector": {
"title": "Document selector",
"countrySelectorTitle": "Select your country"
},
"review": {
"obverse": {
"subtitle": "Check that all data in the document is clearly readable and that there are no glares",
"continueButton": "Continue",
"repeatButton": "Repeat"
},
"reverse": {
"subtitle": "Check that all data in the document is clearly readable and that there are no glares",
"continueButton": "Continue",
"repeatButton": "Repeat"
}
}
}
],
"selfie": {
"instructions": {
"backButton": "Back"
},
"capture": {
"feedback": {
"successfulCapture": "Great!"
}
}
},
"processResult": {
"success": {
"subtitle": "Process completed successfully"
}
},
"errorModals": {
"document": {
"obverse": {
"bodyText": "The front of the document is not valid"
},
"reverse": {
"bodyText": "The back of the document is not valid"
}
}
}
},
"styles": {
"theme": {
"darkTextColor": "#000D44"
},
"components": {
"button": {
"backgroundColorOutline": "#FF7777"
}
}
},
"medias": {
"selfie": {
"instructions": {
"desktopPassive": "https://docs.veridas.com/xpressid/web/v3.8/assets/images/logo.svg",
"desktopActive": "https://docs.veridas.com/xpressid/web/v3.8/assets/images/logo.svg",
"mobilePassive": "https://docs.veridas.com/xpressid/web/v3.8/assets/images/logo.svg",
"mobileActive": "https://docs.veridas.com/xpressid/web/v3.8/assets/images/logo.svg"
}
}
}
}









































