diff --git a/enveloped-application.json b/enveloped-application.json
index e2395d5..4c868df 100644
--- a/enveloped-application.json
+++ b/enveloped-application.json
@@ -298,7 +298,6 @@
}
}
],
- "summary": "",
"responses": {
"200": {
"description": "successful operation",
@@ -369,6 +368,41 @@
}
],
"description": "Get application list.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/startDate"
+ },
+ {
+ "$ref": "#/components/parameters/endDate"
+ },
+ {
+ "$ref": "#/components/parameters/statusFilter"
+ },
+ {
+ "$ref": "#/components/parameters/countryFilter"
+ },
+ {
+ "$ref": "#/components/parameters/docTypeFilter"
+ },
+ {
+ "$ref": "#/components/parameters/platformFilter"
+ },
+ {
+ "$ref": "#/components/parameters/authorFilter"
+ },
+ {
+ "$ref": "#/components/parameters/flowFilter"
+ },
+ {
+ "$ref": "#/components/parameters/pageLimit"
+ },
+ {
+ "$ref": "#/components/parameters/offset"
+ },
+ {
+ "$ref": "#/components/parameters/idsOnly"
+ }
+ ],
"responses": {
"200": {
"description": "OK",
@@ -440,14 +474,84 @@
}
}
},
+ "/api/v1/tokenized-url": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "get url with token to get one-time verification page",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "description": "name of flow",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "externalId",
+ "description": "unique id",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "flow url"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SdkConfig"
+ }
+ }
+ }
+ }
+ }
+ },
"/api/v1/translations": {
- "security": [
- {
- "ApiKeyAuth": []
+ "get": {
+ "summary": "Set all custom translations for SDK",
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Dictionaries"
+ }
+ }
+ }
+ }
}
- ],
+ },
"post": {
- "summary": "Set dictionary for SDK",
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Uploads a dictionary for SDK",
"responses": {
"200": {
"description": "successful operation",
@@ -488,25 +592,33 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Dictionary"
+ "$ref": "#/components/schemas/Dictionaries"
}
}
}
}
}
},
- "/api/v1/dictionary/{dictionaryName}": {
+ "/api/v1/translations/{dictionary}/{locale}": {
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
- "summary": "Delete dictionary by name",
+ "summary": "Delete dictionary by dictionary and locale",
"parameters": [
{
"in": "path",
- "name": "dictionaryName",
+ "name": "dictionary",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "path",
+ "name": "locale",
"required": true,
"schema": {
"type": "string"
@@ -578,6 +690,128 @@
"description": "You can find token on settings page.\nIt's required for all API methods.\n"
}
},
+ "parameters": {
+ "startDate": {
+ "name": "startDate",
+ "in": "query",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ "endDate": {
+ "name": "endDate",
+ "in": "query",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ "statusFilter": {
+ "name": "statusFilter",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "declined",
+ "approved",
+ "needs-review",
+ "error",
+ "pending"
+ ]
+ }
+ }
+ },
+ "countryFilter": {
+ "name": "countryFilter",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "Alpha3 country code"
+ }
+ }
+ },
+ "docTypeFilter": {
+ "name": "docTypeFilter",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "passport",
+ "id-card",
+ "driving-licence",
+ "residence-permit",
+ "voter-card",
+ "tax-card",
+ "unknown"
+ ]
+ }
+ }
+ },
+ "platformFilter": {
+ "name": "platformFilter",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "api",
+ "web",
+ "ios",
+ "android"
+ ]
+ }
+ }
+ },
+ "authorFilter": {
+ "name": "authorFilter",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "description": "array of userNames, available option \"No author\" - returns applications without author",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "flowFilter": {
+ "name": "flowFilter",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "description": "array of verification flows",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "pageLimit": {
+ "name": "pageLimit",
+ "in": "query",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ "offset": {
+ "name": "offset",
+ "in": "query",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ "idsOnly": {
+ "name": "idsOnly",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ },
"schemas": {
"ApplicationListRequest": {
"type": "object",
@@ -591,52 +825,29 @@
"statusFilter": {
"type": "array",
"items": {
- "type": "string",
- "enum": [
- "declined",
- "approved",
- "needs-review",
- "error",
- "pending"
- ]
+ "type": "string"
}
},
"countryFilter": {
"type": "array",
"items": {
- "type": "string",
- "description": "Alpha3 country code"
+ "type": "string"
}
},
"docTypeFilter": {
"type": "array",
"items": {
- "type": "string",
- "enum": [
- "passport",
- "id-card",
- "driving-licence",
- "residence-permit",
- "voter-card",
- "unknown"
- ]
+ "type": "string"
}
},
"platformFilter": {
"type": "array",
"items": {
- "type": "string",
- "enum": [
- "api",
- "web",
- "ios",
- "android"
- ]
+ "type": "string"
}
},
"authorFilter": {
"type": "array",
- "description": "array of userNames, available option \"No author\" - returns applications without author",
"items": {
"type": "string"
}
@@ -675,11 +886,11 @@
"type": "integer"
}
},
- "additionalProperties": false,
"required": [
"applicationsListTotalItems",
"responseCode"
- ]
+ ],
+ "additionalProperties": false
},
"EnvelopedApplication": {
"type": "object",
@@ -774,7 +985,10 @@
"description": "The data to verify",
"properties": {
"fields": {
- "type": "array"
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Fields"
+ }
},
"documents": {
"type": "array",
@@ -809,24 +1023,24 @@
},
"example": [
{
- "contentType": "string",
"category": "First name",
- "content": "Artem"
+ "content": "John",
+ "contentType": "string"
},
{
- "contentType": "string",
"category": "Last name",
- "content": "Gerus"
+ "content": "Doe",
+ "contentType": "string"
},
{
- "contentType": "sex",
"category": "Gender",
- "content": "M"
+ "content": "male",
+ "contentType": "sex"
},
{
- "contentType": "bool",
"category": "Agree on something",
- "content": "true"
+ "content": "true",
+ "contentType": "bool"
}
]
},
@@ -895,192 +1109,34 @@
"additionalProperties": false
},
"Field": {
- "type": "object",
- "oneOf": [
- {
- "$ref": "#/components/schemas/StringField"
- },
- {
- "$ref": "#/components/schemas/DateField"
- },
- {
- "$ref": "#/components/schemas/SexField"
- },
- {
- "$ref": "#/components/schemas/BoolField"
- },
- {
- "$ref": "#/components/schemas/CountryField"
- },
- {
- "$ref": "#/components/schemas/NumberField"
- }
- ]
- },
- "StringField": {
"type": "object",
"properties": {
- "contentType": {
- "type": "string",
- "enum": [
- "string"
- ]
- },
"category": {
"type": "string",
- "description": "Kind of data.\nFor example: First name, Last name\n",
+ "description": "Kind of data.\nFor example: First name, Last name, Date of birth, Gender\n",
"example": "First name"
},
"content": {
"type": "string",
"minLength": 1,
- "description": "The string value",
+ "description": "The field value. It must be compliant with the category's format.\nThe gender field can take only two values: male, female\nDates must be in YYYY-MM-DD format\nCountry fields must be in [alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements) format\nOther fields are plain strings\n",
"example": "John"
- }
- },
- "required": [
- "contentType",
- "category",
- "content"
- ],
- "additionalProperties": false
- },
- "DateField": {
- "type": "object",
- "properties": {
- "contentType": {
- "type": "string",
- "enum": [
- "date"
- ]
- },
- "category": {
- "type": "string",
- "description": "Kind of data.\nFor example: Date of birth\n",
- "example": "Date of birth"
- },
- "content": {
- "format": "date",
- "type": "string",
- "description": "Date in YYYY-MM-DD format",
- "example": "1996-12-31"
- }
- },
- "required": [
- "contentType",
- "category",
- "content"
- ],
- "additionalProperties": false
- },
- "SexField": {
- "type": "object",
- "properties": {
- "contentType": {
- "type": "string",
- "enum": [
- "sex"
- ]
- },
- "category": {
- "type": "string",
- "enum": [
- "Gender"
- ]
- },
- "content": {
- "type": "string",
- "enum": [
- "male",
- "female"
- ]
- }
- },
- "required": [
- "contentType",
- "category",
- "content"
- ],
- "additionalProperties": false
- },
- "NumberField": {
- "type": "object",
- "properties": {
- "contentType": {
- "type": "string",
- "enum": [
- "number"
- ]
- },
- "category": {
- "type": "string",
- "description": "Kind of data."
- },
- "content": {
- "type": "string",
- "pattern": "^[0-9]+$",
- "description": "The number value"
- }
- },
- "required": [
- "contentType",
- "category",
- "content"
- ],
- "additionalProperties": false
- },
- "CountryField": {
- "type": "object",
- "properties": {
- "contentType": {
- "type": "string",
- "enum": [
- "country"
- ]
},
- "category": {
- "type": "string",
- "description": "Kind of data.\nFor example: Country of birth\n"
- },
- "content": {
- "type": "string",
- "description": "The country code\n([alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)\nor [alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements))\n",
- "pattern": "^[a-zA-Z]{2,3}$",
- "example": "JPN"
- }
- },
- "required": [
- "contentType",
- "category",
- "content"
- ],
- "additionalProperties": false
- },
- "BoolField": {
- "type": "object",
- "properties": {
"contentType": {
"type": "string",
+ "description": "Deprecated",
"enum": [
- "bool"
+ "string",
+ "number",
+ "sex",
+ "date",
+ "country",
+ "bool",
+ "boolean"
]
- },
- "category": {
- "type": "string",
- "description": "Kind of data."
- },
- "content": {
- "enum": [
- "true",
- "false"
- ],
- "type": "string",
- "description": "The bool value",
- "example": "true"
}
},
"required": [
- "contentType",
"category",
"content"
],
@@ -1098,6 +1154,10 @@
"type": "string",
"format": "media-data-uri",
"example": "data:video/webm;base64,aGVsbG8="
+ },
+ "kind": {
+ "type": "string",
+ "example": "selfie, selfie-video, video, nfc-face, selfieVideo, liveness-video, liveness-full-face"
}
},
"required": [
@@ -1135,10 +1195,6 @@
"DocumentMedia": {
"type": "object",
"properties": {
- "id": {
- "type": "string",
- "description": "file id (filled automatically when missing)"
- },
"kind": {
"type": "string",
"description": "kind of document page",
@@ -1149,16 +1205,53 @@
],
"example": "front"
},
+ "id": {
+ "type": "string",
+ "description": "file id (filled automatically when missing)"
+ },
"uri": {
"description": "Data URI of the media\nAll common image formats are acceptable.\n",
"type": "string",
"format": "media-data-uri",
"example": "data:image/png;base64,aGVsbG8="
+ },
+ "size": {
+ "type": "integer",
+ "description": "size of document in bytes"
}
},
"required": [
- "uri",
- "kind"
+ "kind",
+ "uri"
+ ],
+ "additionalProperties": false
+ },
+ "AdditionalFileMedia": {
+ "type": "object",
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of the file. Should be in kebab-case.",
+ "example": "trade-reference"
+ },
+ "id": {
+ "type": "string",
+ "description": "file id (filled automatically when missing)"
+ },
+ "uri": {
+ "description": "Data URI of the media\nAll common image formats are acceptable.\n",
+ "type": "string",
+ "format": "media-data-uri",
+ "example": "data:image/png;base64,aGVsbG8="
+ },
+ "size": {
+ "type": "integer"
+ }
+ },
+ "description": "size of document in bytes",
+ "required": [
+ "kind",
+ "uri"
],
"additionalProperties": false
},
@@ -1204,8 +1297,14 @@
"description": "Summary verification result (omitted if state is `processing`)",
"properties": {
"status": {
- "description": "The worst result from all services",
- "$ref": "#/components/schemas/VerificationStatus"
+ "allOf": [
+ {
+ "description": "The worst result from all services"
+ },
+ {
+ "$ref": "#/components/schemas/VerificationStatus"
+ }
+ ]
},
"comments": {
"type": "array",
@@ -1292,9 +1391,63 @@
"validationDate"
]
},
+ "SummaryResult": {
+ "type": "object",
+ "description": "Summary verification result (omitted if state is `processing`)",
+ "properties": {
+ "status": {
+ "description": "The worst result from all services",
+ "$ref": "#/components/schemas/VerificationStatus"
+ },
+ "document": {
+ "$ref": "#/components/schemas/ResultDocument"
+ },
+ "concerns": {
+ "description": "A summary of concern",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "service": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ }
+ }
+ },
+ "example": [
+ {
+ "service": "face-matching",
+ "status": "declined",
+ "comment": "photo is not a selfie"
+ },
+ {
+ "service": "doc-check",
+ "status": "needs-review",
+ "comment": "Extracted last name doesn't match data from the profile"
+ }
+ ]
+ },
+ "validationDate": {
+ "type": "string",
+ "description": "The date of validation completion",
+ "format": "date-time",
+ "example": "2020-03-17T20:28:37.061Z"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "status",
+ "validationDate"
+ ]
+ },
"VerificationStatus": {
"type": "string",
- "description": "The result of verification:\n* `approved` - no problems are found\n* `declined` - application is declined due to any facts defined as critical in settings\n* `needs-review` - some facts are defined as considered in settings\n* `error` - error was occured (wrong or missing input data; service error)\n",
+ "description": "The result of verification:\n* `approved` - no problems are found\n* `declined` - application is declined due to any facts defined as critical in settings\n* `needs-review` - some facts are defined as considered in settings\n* `error` - error was occurred (wrong or missing input data; service error)\n",
"enum": [
"declined",
"approved",
@@ -1302,6 +1455,16 @@
"error"
]
},
+ "BreakdownStatus": {
+ "type": "string",
+ "description": "Breakdown status:\n* `approved` - check is succeed\n* `declined` - check is failed\n* `needs-review` - check is failed, manual review is needed\n* `disabled` - check is disabled\n",
+ "enum": [
+ "declined",
+ "approved",
+ "needs-review",
+ "disabled"
+ ]
+ },
"ProcessingState": {
"type": "string",
"enum": [
@@ -1311,8 +1474,11 @@
"description": "Application processing state:\n * `done` - processing is finished\n * `processing` - application is being processed\n"
},
"SourceMetadata": {
- "$ref": "#/components/schemas/BaseMetadata",
- "additionalProperties": false
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/BaseMetadata"
+ }
+ ]
},
"BaseMetadata": {
"type": "object",
@@ -1347,14 +1513,6 @@
"description": "The version of the acceptor client which received the request",
"example": "1.0.0"
},
- "labels": {
- "type": "object",
- "description": "Custom key-value labels (maximum 30)",
- "maxProperties": 30,
- "additionalProperties": {
- "type": "string"
- }
- },
"ipAddress": {
"type": "string",
"description": "IP from which the request was sent",
@@ -1384,6 +1542,14 @@
"type": "boolean",
"description": "allows to disable customer support check",
"example": true
+ },
+ "labels": {
+ "type": "object",
+ "description": "Custom key-value labels (maximum 30)",
+ "maxProperties": 30,
+ "additionalProperties": {
+ "type": "string"
+ }
}
},
"example": {
@@ -1498,10 +1664,10 @@
"items": {
"properties": {
"files": {
- "description": "two file ids which were involved in checking",
+ "description": "file ids which were involved in checking",
"type": "array",
- "minItems": 2,
- "maxItems": 2,
+ "minItems": 0,
+ "maxItems": 3,
"uniqueItems": true,
"items": {
"type": "string"
@@ -1570,57 +1736,7 @@
"$ref": "#/components/schemas/ProcessingState"
},
"extracted": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "documentId": {
- "type": "string",
- "description": "ID of the document which data was extracted"
- },
- "ocr": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/DataExtractionResult"
- }
- },
- "mrz": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/DataExtractionResult"
- }
- },
- "nfc": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/DataExtractionResult"
- }
- },
- "images": {
- "type": "array",
- "items": {
- "properties": {
- "kind": {
- "type": "string",
- "example": "portrait"
- },
- "uri": {
- "description": "Temporary link to the media",
- "type": "string",
- "format": "uri",
- "example": "https://some.site/image.jpeg?t=123"
- }
- },
- "additionalProperties": false,
- "required": [
- "kind",
- "uri"
- ]
- }
- }
- },
- "additionalProperties": false
- }
+ "$ref": "#/components/schemas/Extracted"
}
},
"required": [
@@ -1718,6 +1834,9 @@
"type": "string",
"description": "The format of extracted date, applicable if date presented not in default format YYYY-MM-DD",
"example": "YYYY-MM"
+ },
+ "valid": {
+ "type": "boolean"
}
},
"required": [
@@ -1756,6 +1875,59 @@
}
}
},
+ "Extracted": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "documentId": {
+ "type": "string",
+ "description": "ID of the document which data was extracted"
+ },
+ "ocr": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DataExtractionResult"
+ }
+ },
+ "mrz": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DataExtractionResult"
+ }
+ },
+ "nfc": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DataExtractionResult"
+ }
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "properties": {
+ "kind": {
+ "type": "string",
+ "example": "portrait"
+ },
+ "uri": {
+ "description": "Temporary link to the media",
+ "type": "string",
+ "format": "uri",
+ "example": "https://some.site/image.jpeg?t=123"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "kind",
+ "uri"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
"ProfileCheck": {
"type": "object",
"properties": {
@@ -1892,10 +2064,14 @@
"type": "boolean"
},
"status": {
- "type": {
- "$ref": "#/components/schemas/VerificationStatus"
- },
- "description": "Status of check data"
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/BreakdownStatus"
+ },
+ {
+ "description": "Status of data check"
+ }
+ ]
},
"documentId": {
"type": "string",
@@ -1936,10 +2112,14 @@
"description": "Document field validation result (false means that value is incorrect)"
},
"status": {
- "type": {
- "$ref": "#/components/schemas/VerificationStatus"
- },
- "description": "Status of check data"
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/BreakdownStatus"
+ },
+ {
+ "description": "Status of check data"
+ }
+ ]
},
"message": {
"type": "string"
@@ -2028,7 +2208,8 @@
"watchlists",
"face-matching",
"data-extraction",
- "cross-checking"
+ "cross-checking",
+ "liveness"
]
},
"example": [
@@ -2046,6 +2227,7 @@
"driving-licence",
"residence-permit",
"voter-card",
+ "tax-card",
"unknown"
],
"example": "id-card"
@@ -2056,12 +2238,12 @@
"properties": {
"text": {
"type": "string",
- "description": "Text of comment",
- "example": ""
+ "description": "Comment text",
+ "example": "Everything's OK"
},
"author": {
"type": "string",
- "description": "Login of user who save comment",
+ "description": "Author's login",
"example": "admin"
},
"createdAt": {
@@ -2164,65 +2346,102 @@
"considers"
]
},
- "Dictionary": {
+ "SdkConfig": {
"type": "object",
"properties": {
- "dictionary": {
- "description": "Key - value pairs for translations",
+ "locale": {
+ "type": "string",
+ "description": "Predefine locale",
+ "example": "de"
+ },
+ "profile": {
"type": "object",
- "example": {
- "EN": {
- "Form_header": "Form header",
- "IdSelfie_header": "Selfie header",
- "CountryAndDocument_header": "Choose document",
- "IdCapture_header": "Document front photo",
- "IdCaptureBack_header": "Document back photo",
- "ThankYou_header": "Thank you",
- "isFail_header": "Cannot send data",
- "Form_subHeader": "Please provide personal details.",
- "IdSelfie_subHeader": "Please place your face inside the oval.",
- "IdCapture_subHeader": "Please place the document inside the frame.",
- "IdCaptureBack_subHeader": "Please place the document inside the frame.",
- "CountryAndDocument_subHeader": "Document issuing country and its type.",
- "ThankYou_subHeader": "The identification process is complete.",
- "isFail_subHeader": "Error occurs when you try to send data to the server.",
- "CountryAndDocument_country-placeholder": "Choose country",
- "button_next": "next",
- "button_back": "back",
- "button_submit": "submit",
- "button_retake": "retake",
- "button_agree": "I agree",
- "button_start_over": "start over",
- "choose_flow_button": "Choose Flow",
- "retry_button": "Retry",
- "cancel_button": "Cancel",
- "exists_header": "Application already exists.",
- "exists_subHeader": "Please contact your provider for further information.",
- "done_button": "Done",
- "file_input_tooltip": "Allowed formats: jpg, png, pdf.",
- "button_make_photo": "make photo",
- "photo_tip": "Please use Spacebar key to make photo",
- "consent": "I have read and understand or I have read and understood Privacy policy",
- "error_header": "Something was wrong",
- "error_subHeader": "Please contact your provider for further information.",
- "camera_error_not_found": "No available devices were found",
- "camera_error_generic": "To make a photo you need to give access for webcam"
- }
- },
- "additionalProperties": {
- "type": "object",
- "description": "Dictionary with uniq _lang_key_.",
- "additionalProperties": {
+ "description": "Pre-fill Form fields according SDK configuration"
+ },
+ "redirects": {
+ "type": "object",
+ "description": "Specify url to redirect",
+ "properties": {
+ "onComplete": {
+ "type": "string",
+ "description": "redirect after Complete event",
+ "example": "https://google.com"
+ },
+ "onFail": {
"type": "string",
- "description": "Pairs stringKey -> traslation string."
+ "description": "redirect after Fail event",
+ "example": "https://google.com"
}
}
}
+ }
+ },
+ "Dictionaries": {
+ "type": "array",
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string",
+ "description": "It is the string which will be viewed in the translation list"
+ },
+ "dictionary": {
+ "type": "string",
+ "description": "Name of custom dictionary (You should use this name in SDK config)"
+ },
+ "locale": {
+ "type": "string",
+ "description": "locale"
+ },
+ "default": {
+ "type": "boolean",
+ "description": "use this translation by default"
+ },
+ "items": {
+ "properties": {
+ "dictionaries": {
+ "description": "Key - value pairs for translations",
+ "type": "object"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "label",
+ "dictionary",
+ "locale",
+ "items"
+ ]
},
- "additionalProperties": false,
- "required": [
- "dictionary"
- ]
+ "example": {
+ "dictionaries": [
+ {
+ "locale": "en",
+ "label": "English",
+ "dictionary": "custom",
+ "default": true,
+ "items": {
+ "CountryAndDocument_header": "Choose document type",
+ "CountryAndDocument_subHeader": "Carefully choose document type of document you want to provide for identification",
+ "CountryAndDocument_next": "Go next",
+ "CountryAndDocument_back": "Go back",
+ "CountryAndDocument_countryPlaceholder": "Choose country"
+ }
+ },
+ {
+ "locale": "ru",
+ "label": "Русский",
+ "dictionary": "custom",
+ "items": {
+ "CountryAndDocument_header": "Выберите тип документа",
+ "CountryAndDocument_subHeader": "Внимательно выберите тип документа для прохождения идентификации",
+ "CountryAndDocument_next": "Дальше",
+ "CountryAndDocument_back": "Назад",
+ "CountryAndDocument_countryPlaceholder": "Выберите страну"
+ }
+ }
+ ]
+ }
}
}
}
diff --git a/enveloped-application.yaml b/enveloped-application.yaml
index 996ed0d..7829e2e 100644
--- a/enveloped-application.yaml
+++ b/enveloped-application.yaml
@@ -183,7 +183,6 @@ paths:
required: true
schema:
type: string
- summary: ''
responses:
'200':
description: successful operation
@@ -225,6 +224,18 @@ paths:
security:
- ApiKeyAuth: []
description: Get application list.
+ parameters:
+ - $ref: '#/components/parameters/startDate'
+ - $ref: '#/components/parameters/endDate'
+ - $ref: '#/components/parameters/statusFilter'
+ - $ref: '#/components/parameters/countryFilter'
+ - $ref: '#/components/parameters/docTypeFilter'
+ - $ref: '#/components/parameters/platformFilter'
+ - $ref: '#/components/parameters/authorFilter'
+ - $ref: '#/components/parameters/flowFilter'
+ - $ref: '#/components/parameters/pageLimit'
+ - $ref: '#/components/parameters/offset'
+ - $ref: '#/components/parameters/idsOnly'
responses:
"200":
description: OK
@@ -263,11 +274,54 @@ paths:
"application/json":
schema:
$ref: "#/components/schemas/ApplicationListRequest"
+
+ /api/v1/tokenized-url:
+ post:
+ security:
+ - ApiKeyAuth: []
+ summary: 'get url with token to get one-time verification page'
+ parameters:
+ - in: query
+ name: name
+ description: 'name of flow'
+ schema:
+ type: string
+ required: true
+ - in: query
+ name: externalId
+ description: unique id
+ schema:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ content:
+ 'application/json':
+ schema:
+ properties:
+ url:
+ type: string
+ description: flow url
+ requestBody:
+ content:
+ "application/json":
+ schema:
+ $ref: "#/components/schemas/SdkConfig"
+
/api/v1/translations:
- security:
- - ApiKeyAuth: []
+ get:
+ summary: 'Set all custom translations for SDK'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ "application/json":
+ schema:
+ $ref: "#/components/schemas/Dictionaries"
post:
- summary: 'Set dictionary for SDK'
+ security:
+ - ApiKeyAuth: []
+ summary: 'Uploads a dictionary for SDK'
responses:
'200':
description: successful operation
@@ -294,15 +348,20 @@ paths:
content:
"application/json":
schema:
- $ref: "#/components/schemas/Dictionary"
- '/api/v1/dictionary/{dictionaryName}':
+ $ref: "#/components/schemas/Dictionaries"
+ '/api/v1/translations/{dictionary}/{locale}':
delete:
security:
- ApiKeyAuth: []
- summary: 'Delete dictionary by name'
+ summary: 'Delete dictionary by dictionary and locale'
parameters:
- in: path
- name: dictionaryName
+ name: dictionary
+ required: true
+ schema:
+ type: string
+ - in: path
+ name: locale
required: true
schema:
type: string
@@ -346,6 +405,96 @@ components:
description: |
You can find token on settings page.
It's required for all API methods.
+ parameters:
+ startDate:
+ name: startDate
+ in: query
+ schema:
+ type: integer
+ endDate:
+ name: endDate
+ in: query
+ schema:
+ type: integer
+ statusFilter:
+ name: statusFilter
+ in: query
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - declined
+ - approved
+ - needs-review
+ - error
+ - pending
+ countryFilter:
+ name: countryFilter
+ in: query
+ schema:
+ type: array
+ items:
+ type: string
+ description: Alpha3 country code
+ docTypeFilter:
+ name: docTypeFilter
+ in: query
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - passport
+ - id-card
+ - driving-licence
+ - residence-permit
+ - voter-card
+ - tax-card
+ - unknown
+ platformFilter:
+ name: platformFilter
+ in: query
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - api
+ - web
+ - ios
+ - android
+ authorFilter:
+ name: authorFilter
+ in: query
+ schema:
+ type: array
+ description: array of userNames, available option "No author" - returns applications without author
+ items:
+ type: string
+ flowFilter:
+ name: flowFilter
+ in: query
+ schema:
+ type: array
+ description: array of verification flows
+ items:
+ type: string
+ pageLimit:
+ name: pageLimit
+ in: query
+ schema:
+ type: integer
+ offset:
+ name: offset
+ in: query
+ schema:
+ type: integer
+ idsOnly:
+ name: idsOnly
+ in: query
+ schema:
+ type: boolean
schemas:
ApplicationListRequest:
type: object
@@ -358,40 +507,20 @@ components:
type: array
items:
type: string
- enum:
- - declined
- - approved
- - needs-review
- - error
- - pending
countryFilter:
type: array
items:
type: string
- description: Alpha3 country code
docTypeFilter:
type: array
items:
type: string
- enum:
- - passport
- - id-card
- - driving-licence
- - residence-permit
- - voter-card
- - unknown
platformFilter:
type: array
items:
type: string
- enum:
- - api
- - web
- - ios
- - android
authorFilter:
type: array
- description: array of userNames, available option "No author" - returns applications without author
items:
type: string
pageLimit:
@@ -401,6 +530,7 @@ components:
idsOnly:
type: boolean
additionalProperties: false
+
ApplicationListResponse:
type: object
properties:
@@ -416,10 +546,11 @@ components:
type: integer
responseCode:
type: integer
- additionalProperties: false
required:
- applicationsListTotalItems
- responseCode
+ additionalProperties: false
+
EnvelopedApplication:
type: object
properties:
@@ -432,6 +563,7 @@ components:
required:
- application
additionalProperties: false
+
VerificationResult:
type: object
properties:
@@ -489,8 +621,8 @@ components:
properties:
fields:
type: array
- # TODO return back to "$ref: '#/components/schemas/Fields'"
- # it's temporary workaround to return f, m, F, M
+ items:
+ $ref: '#/components/schemas/Fields'
documents:
type: array
description: Documents for data extraction or cross-checking
@@ -516,18 +648,18 @@ components:
items:
$ref: "#/components/schemas/Field"
example:
- - contentType: string
- category: First name
- content: Artem
- - contentType: string
- category: Last name
- content: Gerus
- - contentType: sex
- category: Gender
- content: M
- - contentType: bool
- category: Agree on something
+ - category: First name
+ content: John
+ contentType: string
+ - category: Last name
+ content: Doe
+ contentType: string
+ - category: Gender
+ content: male
+ contentType: sex
+ - category: Agree on something
content: "true"
+ contentType: bool
Document:
type: object
@@ -585,125 +717,36 @@ components:
additionalProperties: false
Field:
- type: object
- oneOf:
- - $ref: "#/components/schemas/StringField"
- - $ref: "#/components/schemas/DateField"
- - $ref: "#/components/schemas/SexField"
- - $ref: "#/components/schemas/BoolField"
- - $ref: "#/components/schemas/CountryField"
- - $ref: "#/components/schemas/NumberField"
-
- StringField:
type: object
properties:
- contentType:
- type: string
- enum: [string]
category:
type: string
description: |
Kind of data.
- For example: First name, Last name
+ For example: First name, Last name, Date of birth, Gender
example: First name
content:
type: string
minLength: 1
- description: The string value
- example: John
- required: [contentType, category, content]
- additionalProperties: false
-
- DateField:
- type: object
- properties:
- contentType:
- type: string
- enum: [date]
- category:
- type: string
description: |
- Kind of data.
- For example: Date of birth
- example: Date of birth
- content:
- format: date
- type: string
- description: Date in YYYY-MM-DD format
- example: "1996-12-31"
- required: [contentType, category, content]
- additionalProperties: false
-
- SexField:
- type: object
- properties:
- contentType:
- type: string
- enum: [sex]
- category:
- type: string
- enum: [Gender]
- content:
- type: string
- enum: [male, female]
- required: [contentType, category, content]
- additionalProperties: false
-
- NumberField:
- type: object
- properties:
- contentType:
- type: string
- enum: [number]
- category:
- type: string
- description: Kind of data.
- content:
- type: string
- pattern: ^[0-9]+$
- description: The number value
- required: [contentType, category, content]
- additionalProperties: false
-
- CountryField:
- type: object
- properties:
- contentType:
- type: string
- enum: [country]
- category:
- type: string
- description: |
- Kind of data.
- For example: Country of birth
- content:
- type: string
- description: |
- The country code
- ([alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)
- or [alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements))
- pattern: ^[a-zA-Z]{2,3}$
- example: JPN
- required: [contentType, category, content]
- additionalProperties: false
-
- BoolField:
- type: object
- properties:
+ The field value. It must be compliant with the category's format.
+ The gender field can take only two values: male, female
+ Dates must be in YYYY-MM-DD format
+ Country fields must be in [alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements) format
+ Other fields are plain strings
+ example: John
contentType:
type: string
- enum: [bool]
- category:
- type: string
- description: Kind of data.
- content:
+ description: Deprecated
enum:
- - "true"
- - "false"
- type: string
- description: The bool value
- example: "true"
- required: [contentType, category, content]
+ - string
+ - number
+ - sex
+ - date
+ - country
+ - bool
+ - boolean
+ required: [category, content]
additionalProperties: false
FacesMedia:
@@ -720,6 +763,9 @@ components:
type: string
format: media-data-uri
example: data:video/webm;base64,aGVsbG8=
+ kind:
+ type: string
+ example: selfie, selfie-video, video, nfc-face, selfieVideo, liveness-video, liveness-full-face
required: [uri]
additionalProperties: false
@@ -746,9 +792,6 @@ components:
DocumentMedia:
type: object
properties:
- id:
- type: string
- description: file id (filled automatically when missing)
kind:
type: string
description: kind of document page
@@ -757,6 +800,32 @@ components:
- back
- single-page
example: front
+ id:
+ type: string
+ description: file id (filled automatically when missing)
+ uri:
+ description: |
+ Data URI of the media
+ All common image formats are acceptable.
+ type: string
+ format: media-data-uri
+ example: data:image/png;base64,aGVsbG8=
+ size:
+ type: integer
+ description: size of document in bytes
+ required: [kind, uri]
+ additionalProperties: false
+
+ AdditionalFileMedia:
+ type: object
+ properties:
+ kind:
+ type: string
+ description: The kind of the file. Should be in kebab-case.
+ example: trade-reference
+ id:
+ type: string
+ description: file id (filled automatically when missing)
uri:
description: |
Data URI of the media
@@ -764,7 +833,10 @@ components:
type: string
format: media-data-uri
example: data:image/png;base64,aGVsbG8=
- required: [uri, kind]
+ size:
+ type: integer
+ description: size of document in bytes
+ required: [kind, uri]
additionalProperties: false
ResultDocumentMedia:
@@ -799,8 +871,9 @@ components:
description: Summary verification result (omitted if state is `processing`)
properties:
status:
- description: The worst result from all services
- $ref: "#/components/schemas/VerificationStatus"
+ allOf:
+ - description: The worst result from all services
+ - $ref: "#/components/schemas/VerificationStatus"
comments:
type: array
description: Array of results from all services (You can find full results in a servicesResults section)
@@ -844,7 +917,6 @@ components:
- service: face-matching
status: declined
comment: photo is not selfie
-
- service: crosschecking
status: needs-review
comment: Extracted last name doesn't match data from the field
@@ -860,6 +932,47 @@ components:
- status
- comments
- validationDate
+
+ SummaryResult:
+ type: object
+ description: Summary verification result (omitted if state is `processing`)
+ properties:
+ status:
+ description: The worst result from all services
+ $ref: "#/components/schemas/VerificationStatus"
+ document:
+ $ref: "#/components/schemas/ResultDocument"
+ concerns:
+ description: A summary of concern
+ type: array
+ items:
+ type: object
+ properties:
+ message:
+ type: string
+ service:
+ type: string
+ status:
+ type: string
+ example:
+ - service: face-matching
+ status: declined
+ comment: photo is not a selfie
+ - service: doc-check
+ status: needs-review
+ comment: Extracted last name doesn't match data from the profile
+
+ validationDate:
+ type: string
+ description: The date of validation completion
+ format: date-time
+ example: "2020-03-17T20:28:37.061Z"
+
+ additionalProperties: false
+ required:
+ - status
+ - validationDate
+
VerificationStatus:
type: string
description: |
@@ -867,12 +980,25 @@ components:
* `approved` - no problems are found
* `declined` - application is declined due to any facts defined as critical in settings
* `needs-review` - some facts are defined as considered in settings
- * `error` - error was occured (wrong or missing input data; service error)
+ * `error` - error was occurred (wrong or missing input data; service error)
enum:
- declined
- approved
- needs-review
- error
+ BreakdownStatus:
+ type: string
+ description: |
+ Breakdown status:
+ * `approved` - check is succeed
+ * `declined` - check is failed
+ * `needs-review` - check is failed, manual review is needed
+ * `disabled` - check is disabled
+ enum:
+ - declined
+ - approved
+ - needs-review
+ - disabled
ProcessingState:
type: string
enum:
@@ -883,8 +1009,8 @@ components:
* `done` - processing is finished
* `processing` - application is being processed
SourceMetadata:
- $ref: "#/components/schemas/BaseMetadata"
- additionalProperties: false
+ allOf:
+ - $ref: "#/components/schemas/BaseMetadata"
BaseMetadata:
type: object
@@ -916,12 +1042,6 @@ components:
type: string
description: The version of the acceptor client which received the request
example: 1.0.0
- labels:
- type: object
- description: Custom key-value labels (maximum 30)
- maxProperties: 30
- additionalProperties:
- type: string
ipAddress:
type: string
description: IP from which the request was sent
@@ -946,6 +1066,12 @@ components:
type: boolean
description: allows to disable customer support check
example: true
+ labels:
+ type: object
+ description: Custom key-value labels (maximum 30)
+ maxProperties: 30
+ additionalProperties:
+ type: string
example:
externalId: ID-2345
platform: android
@@ -987,6 +1113,7 @@ components:
profileCheck:
$ref: "#/components/schemas/ProfileCheck"
additionalProperties: false
+
FaceMatching:
type: object
description: Face-matching service compares photo on the document with selfie
@@ -1022,16 +1149,17 @@ components:
required:
- status
additionalProperties: false
+
FaceMatchingResult:
type: array
description: Result of face matching service
items:
properties:
files:
- description: two file ids which were involved in checking
+ description: file ids which were involved in checking
type: array
- minItems: 2
- maxItems: 2
+ minItems: 0
+ maxItems: 3
uniqueItems: true
items:
type: string
@@ -1046,6 +1174,7 @@ components:
- score
- files
additionalProperties: false
+
livenessCheck:
type: object
properties:
@@ -1058,7 +1187,7 @@ components:
processingState:
$ref: "#/components/schemas/ProcessingState"
livenessCheck:
- $ref: "#/components/schemas/CheckList"
+ $ref: "#/components/schemas/CheckList"
required:
- status
additionalProperties: false
@@ -1076,43 +1205,7 @@ components:
processingState:
$ref: "#/components/schemas/ProcessingState"
extracted:
- type: array
- items:
- type: object
- properties:
- documentId:
- type: string
- description: ID of the document which data was extracted
- ocr:
- type: array
- items:
- $ref: "#/components/schemas/DataExtractionResult"
- mrz:
- type: array
- items:
- $ref: "#/components/schemas/DataExtractionResult"
- nfc:
- type: array
- items:
- $ref: "#/components/schemas/DataExtractionResult"
- images:
- type: array
- items:
- properties:
- kind:
- type: string
- example: portrait
- uri:
- description: Temporary link to the media
- type: string
- format: uri
- example: https://some.site/image.jpeg?t=123
- additionalProperties: false
- required:
- - kind
- - uri
- additionalProperties: false
-
+ $ref: "#/components/schemas/Extracted"
required:
- status
additionalProperties: false
@@ -1175,6 +1268,8 @@ components:
type: string
description: The format of extracted date, applicable if date presented not in default format YYYY-MM-DD
example: YYYY-MM
+ valid:
+ type: boolean
required:
- contentType
- category
@@ -1201,6 +1296,44 @@ components:
dataExtractionConsistency:
$ref: "#/components/schemas/CheckList"
+ Extracted:
+ type: array
+ items:
+ type: object
+ properties:
+ documentId:
+ type: string
+ description: ID of the document which data was extracted
+ ocr:
+ type: array
+ items:
+ $ref: "#/components/schemas/DataExtractionResult"
+ mrz:
+ type: array
+ items:
+ $ref: "#/components/schemas/DataExtractionResult"
+ nfc:
+ type: array
+ items:
+ $ref: "#/components/schemas/DataExtractionResult"
+ images:
+ type: array
+ items:
+ properties:
+ kind:
+ type: string
+ example: portrait
+ uri:
+ description: Temporary link to the media
+ type: string
+ format: uri
+ example: https://some.site/image.jpeg?t=123
+ additionalProperties: false
+ required:
+ - kind
+ - uri
+ additionalProperties: false
+
ProfileCheck:
type: object
properties:
@@ -1283,6 +1416,7 @@ components:
required:
- status
additionalProperties: false
+
FieldChecking:
type: object
properties:
@@ -1298,9 +1432,9 @@ components:
equal:
type: boolean
status:
- type:
- $ref: "#/components/schemas/VerificationStatus"
- description: Status of check data
+ allOf:
+ - $ref: "#/components/schemas/BreakdownStatus"
+ - description: Status of data check
documentId:
type: string
@@ -1332,9 +1466,9 @@ components:
type: boolean
description: Document field validation result (false means that value is incorrect)
status:
- type:
- $ref: "#/components/schemas/VerificationStatus"
- description: Status of check data
+ allOf:
+ - $ref: "#/components/schemas/BreakdownStatus"
+ - description: Status of check data
message:
type: string
documentId:
@@ -1401,7 +1535,7 @@ components:
items:
type: string
enum:
- ["watchlists", "face-matching", "data-extraction", "cross-checking"]
+ ["watchlists", "face-matching", "data-extraction", "cross-checking", "liveness"]
example: ["watchlists", "face-matching", "data-extraction"]
DocumentType:
@@ -1413,6 +1547,7 @@ components:
- driving-licence
- residence-permit
- voter-card
+ - tax-card
- unknown
example: id-card
Comment:
@@ -1421,11 +1556,11 @@ components:
properties:
text:
type: string
- description: Text of comment
- example: ""
+ description: Comment text
+ example: "Everything's OK"
author:
type: string
- description: Login of user who save comment
+ description: Author's login
example: "admin"
createdAt:
type: string
@@ -1498,57 +1633,80 @@ components:
required:
- group
- considers
- Dictionary:
+ SdkConfig:
type: object
properties:
- dictionary:
- description: Key - value pairs for translations
+ locale:
+ type: string
+ description: Predefine locale
+ example: de
+ profile:
type: object
- example:
- { EN:{
- "Form_header": "Form header",
- "IdSelfie_header": "Selfie header",
- "CountryAndDocument_header": "Choose document",
- "IdCapture_header": "Document front photo",
- "IdCaptureBack_header": "Document back photo",
- "ThankYou_header": "Thank you",
- "isFail_header": "Cannot send data",
- "Form_subHeader": "Please provide personal details.",
- "IdSelfie_subHeader": "Please place your face inside the oval.",
- "IdCapture_subHeader": "Please place the document inside the frame.",
- "IdCaptureBack_subHeader": "Please place the document inside the frame.",
- "CountryAndDocument_subHeader": "Document issuing country and its type.",
- "ThankYou_subHeader": "The identification process is complete.",
- "isFail_subHeader": "Error occurs when you try to send data to the server.",
- "CountryAndDocument_country-placeholder": "Choose country",
- "button_next": "next",
- "button_back": "back",
- "button_submit": "submit",
- "button_retake": "retake",
- "button_agree": "I agree",
- "button_start_over": "start over",
- "choose_flow_button": "Choose Flow",
- "retry_button": "Retry",
- "cancel_button": "Cancel",
- "exists_header": "Application already exists.",
- "exists_subHeader": "Please contact your provider for further information.",
- "done_button": "Done",
- "file_input_tooltip": "Allowed formats: jpg, png, pdf.",
- "button_make_photo": "make photo",
- "photo_tip": "Please use Spacebar key to make photo",
- "consent": "I have read and understand or I have read and understood Privacy policy",
- "error_header": "Something was wrong",
- "error_subHeader": "Please contact your provider for further information.",
- "camera_error_not_found": "No available devices were found",
- "camera_error_generic": "To make a photo you need to give access for webcam"
- }
- }
- additionalProperties:
- type: object
- description: Dictionary with uniq _lang_key_.
- additionalProperties:
+ description: Pre-fill Form fields according SDK configuration
+ redirects:
+ type: object
+ description: Specify url to redirect
+ properties:
+ onComplete:
type: string
- description: Pairs stringKey -> traslation string.
- additionalProperties: false
- required:
- - dictionary
+ description: redirect after Complete event
+ example: https://google.com
+ onFail:
+ type: string
+ description: redirect after Fail event
+ example: https://google.com
+ Dictionaries:
+ type: array
+ items:
+ properties:
+ label:
+ type: string
+ description: It is the string which will be viewed in the translation list
+ dictionary:
+ type: string
+ description: Name of custom dictionary (You should use this name in SDK config)
+ locale:
+ type: string
+ description: locale
+ default:
+ type: boolean
+ description: use this translation by default
+ items:
+ properties:
+ dictionaries:
+ description: Key - value pairs for translations
+ type: object
+ additionalProperties: false
+ required:
+ - label
+ - dictionary
+ - locale
+ - items
+
+ example:
+ {
+ "dictionaries": [{
+ "locale" : "en",
+ "label": "English",
+ "dictionary": "custom",
+ "default": true,
+ "items": {
+ "CountryAndDocument_header" : "Choose document type",
+ "CountryAndDocument_subHeader" : "Carefully choose document type of document you want to provide for identification",
+ "CountryAndDocument_next" : "Go next",
+ "CountryAndDocument_back" : "Go back",
+ "CountryAndDocument_countryPlaceholder" : "Choose country"
+ }
+ },{
+ "locale" : "ru",
+ "label": "Русский",
+ "dictionary": "custom",
+ "items": {
+ "CountryAndDocument_header" : "Выберите тип документа",
+ "CountryAndDocument_subHeader" : "Внимательно выберите тип документа для прохождения идентификации",
+ "CountryAndDocument_next" : "Дальше",
+ "CountryAndDocument_back" : "Назад",
+ "CountryAndDocument_countryPlaceholder" : "Выберите страну"
+ }
+ }]
+ }