ID Proofing API
Orchestrate end-to-end identity-proofing sessions from reusable templates.
ID Proofing orchestrates end-to-end identity-proofing sessions. Spin up a session from a reusable template, route it through the right verification connectors, and collect the result — the way you compose document, biometric and data checks into a single proofing flow.
33 endpoints
across 12 resource groups.
ECDSA-signed
every request is signed with your key pair.
JSON over HTTPS
predictable REST, conventional status codes.
OpenAPI 3.0
Base URL
All ID Proofing endpoints are relative to your environment host. Examples on this page use the 1Kosmos pilot environment — swap in your production root when you go live.
Content type
Requests and responses use application/json.
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/healthz' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
Authentication
ID Proofing uses ECDSA key-pair authentication. Each request carries your credentials as
HTTP headers; verification-grade calls additionally sign the request body. Retrieve the system signing
key from /publickeys.
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/healthz' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/healthz", {
method: "GET",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/healthz",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json())Errors
ID Proofing uses conventional HTTP status codes: 2xx success, 4xx a problem
with the request, 5xx a service-side error.
| Status | Meaning | Description |
|---|---|---|
| 200 / 204 | OK | The request succeeded. |
| 400 | Bad Request | Validation failed. |
| 401 | Unauthorized | Missing or invalid credentials. |
| 403 | Forbidden | Authenticated, but not permitted. |
| 404 | Not Found | The resource does not exist. |
| 500 | Server Error | Something went wrong on our side. |
{
"statusCode": 400,
"error": "Bad Request",
"message": "Validation error"
}Proofing Session
Create and drive identity-proofing sessions.
Get proofing session details
Retrieves proofing session data including configuration settings for document capture. Returns session status, user information, workflow details, and capture configuration.
Headers Required:
- requestid: ECDSA encrypted JSON with appid, uuid, and timestamp
- publickey: ECDSA public key
Returns
Returns a proofing session data, which contains:
- status: Current status of the session
- user: User information
- id: Session id
- documentType: Which document is being uploaded
- license: Capture engine license
- workflowId: Workflow Id (nullable)
- wfInstanceId: Workflow Instance Id (nullable)
- useHighResolutionImages: Whether high resolution images from bucket storage are used
- bypassConfig: Array of bypass config objects
- autoDetectTimeout: Timeout in seconds for auto-detection
- postTimeoutCaptureMode: Capture mode after timeout (none/manual/auto)
- autoCaptureCountdownSeconds: Countdown seconds for auto-capture (nullable)
- autoCaptureCountdownVisible: Whether countdown is visible to user (nullable)
- selfieCaptureMode: Selfie capture mode (auto/manualWithFaceDetection)
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | Unique identifier for the proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | ECDSA encrypted request data - use Authorize button 🔒 |
| publickeyrequired | string | ECDSA public key - use Authorize button 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json()){
"status": "INPROGRESS",
"user": {
"uid": "user-123",
"username": "johndoe",
"firstname": "John",
"lastname": "Doe"
},
"id": "session-abc123",
"documentType": "dl_object",
"license": "license-key-xyz",
"selfieCaptureMode": "auto",
"workflowId": "workflow-xyz",
"wfInstanceId": "instance-789",
"useBucket": false,
"bypassConfig": [],
"autoDetectTimeout": 40,
"postTimeoutCaptureMode": "none",
"autoCaptureCountdownSeconds": 5,
"autoCaptureCountdownVisible": true
}// no response body
// no response body
Complete proofing session
This endpoint returns proofing session status
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a proofing session data
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/complete' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/complete", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/complete",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json()){
"completionStatus": "xxxxxxxxxx"
}// no response body
// no response body
// no response body
Decline proofing session
This endpoint returns proofing session data
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a proofing session data
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/decline' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/decline", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/decline",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
}
)
print(res.json()){
"status": "xxxxxxxxxx",
"user": {
"uid": "xxxxxxxxxx",
"username": "xxxxxxxxxx",
"firstname": "xxxxxxxxxx",
"lastname": "xxxxxxxxxx"
},
"id": "xxxxxxxxxx",
"documentType": "dl_object"
}// no response body
// no response body
// no response body
Retry proofing session
This endpoint is used to retry proofing session
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns 200 if retry is available. Else it will throw an error.
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/retry' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/retry", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/retry",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json())// no response body
// no response body
// no response body
To cancel retried proofing session
This endpoint is used to cancel the retries proofing session
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns 200 if retry is cancelled successfully. Else it will throw an error.
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/retry/cancel' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/retry/cancel", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/retry/cancel",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json())// no response body
// no response body
// no response body
start proofing session
This endpoint returns marks the session url as used
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a verifier url and session id
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/start' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/start", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/start",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json()){
"data": {
"_id": "xxxxxxxxxx",
"id": "xxxxxxxxxx",
"url": "xxxxxxxxxx",
"tenantDNS": "xxxxxxxxxx",
"tenantId": "xxxxxxxxxx",
"communityName": "xxxxxxxxxx",
"communityId": "xxxxxxxxxx",
"documentType": "dl_object",
"status": "PENDING",
"did": "did:example:123456789abcdefghi",
"dvcID": "dvc_123",
"expiryTS": 1640995200000,
"createdTS": 1640908800000,
"startedTS": 1640912400000,
"abandonedTS": 1640916000000,
"resultStatus": "xxxxxxxxxx",
"user": {
"uid": "xxxxxxxxxx",
"username": "xxxxxxxxxx",
"firstname": "xxxxxxxxxx",
"lastname": "xxxxxxxxxx"
},
"history": [
{
"activity": "STARTED",
"ipAddress": "192.168.1.1",
"userAgent": "Mozilla/5.0...",
"screenName": "WELCOME",
"ts": 1640912400000
}
]
}
}// no response body
// no response body
// no response body
validate proofing session
This endpoint returns result from validation of the proofing session
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a proofing session data
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/validate' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/validate", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/validate",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json()){
"status": "INPROGRESS",
"user": {
"uid": "user-123",
"username": "johndoe",
"firstname": "John",
"lastname": "Doe"
},
"id": "session-abc123",
"documentType": "dl_object",
"license": "license-key-xyz",
"selfieCaptureMode": "auto",
"workflowId": "workflow-xyz",
"wfInstanceId": "instance-789",
"useBucket": false,
"bypassConfig": [],
"autoDetectTimeout": 40,
"postTimeoutCaptureMode": "none",
"autoCaptureCountdownSeconds": 5,
"autoCaptureCountdownVisible": true
}// no response body
// no response body
// no response body
create presigned URLs
This endpoint returns presigned URLs
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a verified certificate
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains object below: for specific document attributes check individual connectors requirements/validations
{
"imagesUrl": array required - ["document_front_image", "document_front_image_compressed", "document_front_face", "document_back_image", "document_back_image_compressed", "document_back_imageBarcode", "document_back_imageBarcode_compressed", "selfie_liveness_image"]
}
| Field | Type | Description |
|---|---|---|
| imagesUrl | array<string> | Image URLs array ["document_front_image", "document_front_image_compressed", "document_front_face", "document_back_image", "document_back_image_compressed", "document_back_imageBarcode", "document_back_imageBarcode_compressed", "selfie_liveness_image"] |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/presignedurls/xxxxxxxxxx' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'Content-Type: application/json' \
-d '{"imagesUrl": ["string"]}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/presignedurls/xxxxxxxxxx", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"imagesUrl": [
"string"
]
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/presignedurls/xxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
},
json={
"imagesUrl": [
"string"
]
},
)
print(res.json()){
"document_front_image": "https://bucket/document_front_image.png",
"document_front_image_compressed": "https://bucket/document_front_image_compressed.jpeg",
"document_front_face": "https://bucket/document_front_face.jpeg",
"document_back_image": "https://bucket/document_back_image.png",
"document_back_image_compressed": "https://bucket/document_back_image_compressed.jpeg",
"document_back_imageBarcode": "https://bucket/document_back_imageBarcode.png",
"document_back_imageBarcode_compressed": "https://bucket/document_back_imageBarcode_compressed.jpeg"
}// no response body
// no response body
// no response body
// no response body
// no response body
Fetch session list
Fetch session list. This endpoint also has filters.
- Only a system or service key can be used to get sessions list.
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Request Body
tenantId (required)
communityId (required)
pIndex (required)
pSize (required)
query.id (optional)
Filter by session ID
query.status (optional)
Filter by session status: PENDING | INPROGRESS | EXPIRED | ABANDONED | COMPLETED | DECLINED
query.overallRecommendation (optional)
Filter by overall outcome: COMPLETED_PASS | COMPLETED_FAILED | COMPLETED_NOT_PERFORMED | REVIEW
query.documentType (optional)
Filter by document type: dl_object | ppt_object | idcard_object
query.name (optional)
Filter by user's first or last name (partial match)
query.uid (optional)
Filter by user UID (partial match)
query.dvcID (optional)
Filter by verification config ID
query.startDate (optional)
Filter by start date (format: YYYY-MM-DD HH:mm:ss.SSS)
query.endDate (optional)
Filter by end date (format: YYYY-MM-DD HH:mm:ss.SSS)
Returns
Returns the sessions list with pagination info or errors if any.
This API throws an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains below fields to fetch sessions with filters
{
"data": {
"query": {
"id": "session_id (optional)",
"status": "PENDING | INPROGRESS | EXPIRED | ABANDONED | COMPLETED | DECLINED (optional)",
"overallRecommendation": "COMPLETED_PASS | COMPLETED_FAILED | COMPLETED_NOT_PERFORMED | REVIEW (optional)",
"documentType": "dl_object | ppt_object | idcard_object (optional)",
"name": "user_name (optional)",
"uid": "user_uid (optional)",
"dvcID": "verification_config_id (optional)",
"startDate": "2024-12-13 00:00:00.000 (optional)",
"endDate": "2024-12-19 23:59:59.000 (optional)"
},
"pIndex": 0,
"pSize": 100,
"tenantId": "tenant_id",
"communityId": "community_id"
}
}
| Field | Type | Description |
|---|---|---|
| data | object | — |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/fetch' \
-H 'licensekey: YOUR_LICENSE_KEY' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'license: YOUR_LICENSE_KEY' \
-H 'Content-Type: application/json' \
-d '{"data": {"query": {"id": "xxxxxxxxxx", "status": "COMPLETED_PASS | COMPLETED_FAILED | COMPLETED_NOT_PERFORMED | PENDING | EXPIRED | INPROGRESS | DECLINED | COMPLETED | ABANDONED", "documentType": "dl_object | ppt_object | idcard_object", "name": "xxxxxxxxxx", "startDate": "2024-12-19 23:59:59.000", "endDate": "2024-12-19 23:59:59.000", "dvcID": "xxxxxxxxxx", "uid": "xxxxxxxxxx"}, "pIndex": 0, "pSize": 100, "tenantId": "xxxxxxxxxx", "communityId": "xxxxxxxxxx"}}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/fetch", {
method: "POST",
headers: {
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": {
"query": {
"id": "xxxxxxxxxx",
"status": "COMPLETED_PASS | COMPLETED_FAILED | COMPLETED_NOT_PERFORMED | PENDING | EXPIRED | INPROGRESS | DECLINED | COMPLETED | ABANDONED",
"documentType": "dl_object | ppt_object | idcard_object",
"name": "xxxxxxxxxx",
"startDate": "2024-12-19 23:59:59.000",
"endDate": "2024-12-19 23:59:59.000",
"dvcID": "xxxxxxxxxx",
"uid": "xxxxxxxxxx"
},
"pIndex": 0,
"pSize": 100,
"tenantId": "xxxxxxxxxx",
"communityId": "xxxxxxxxxx"
}
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/fetch",
headers={
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
},
json={
"data": {
"query": {
"id": "xxxxxxxxxx",
"status": "COMPLETED_PASS | COMPLETED_FAILED | COMPLETED_NOT_PERFORMED | PENDING | EXPIRED | INPROGRESS | DECLINED | COMPLETED | ABANDONED",
"documentType": "dl_object | ppt_object | idcard_object",
"name": "xxxxxxxxxx",
"startDate": "2024-12-19 23:59:59.000",
"endDate": "2024-12-19 23:59:59.000",
"dvcID": "xxxxxxxxxx",
"uid": "xxxxxxxxxx"
},
"pIndex": 0,
"pSize": 100,
"tenantId": "xxxxxxxxxx",
"communityId": "xxxxxxxxxx"
}
},
)
print(res.json()){
"data": {
"data": [
{
"_id": "xxxxxxxxxx",
"id": "xxxxxxxxxx",
"dvcID": "xxxxxxxxxx",
"tenantDNS": "xxxxxxxxxx",
"tenantId": "xxxxxxxxxx",
"communityName": "xxxxxxxxxx",
"communityId": "xxxxxxxxxx",
"documentType": "dl_object",
"expiryTS": "xxxxxxxxxx",
"createdTS": "xxxxxxxxxx",
"user": {
"uid": "xxxxxxxxxx",
"firstname": "xxxxxxxxxx",
"lastname": "xxxxxxxxxx",
"username": "xxxxxxxxxx"
},
"startedTS": "xxxxxxxxxx",
"completedTS": "xxxxxxxxxx",
"resultStatus": "xxxxxxxxxx",
"session-result": [
{}
]
}
],
"page": {
"index": 1,
"total": 100,
"size": 10
}
}
}// no response body
// no response body
// no response body
submit documents
This endpoint returns certificate
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a verified certificate
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/document' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/document", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
}
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/document",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
}
)
print(res.json())// no response body
// no response body
// no response body
// no response body
// no response body
Store Event
Store one event to events.
Headers
### requestid (required) JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
### publickey (required) Public key
Returns
Response gives status OK if everything is ok
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| eventNamerequired | string | event name |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains *data* field with encrypted object below:
{
"screen_name": "string required",
"status": "string - required",
"error": "string - required"
}
| Field | Type | Description |
|---|---|---|
| screen_name | string | — |
| status | boolean | — |
| error | string | — |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/event/xxxxxxxxxx' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'Content-Type: application/json' \
-d '{"screen_name": "xxxxxxxx", "status": false, "error": "xxxxxxxx"}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/event/xxxxxxxxxx", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"Content-Type": "application/json"
},
body: JSON.stringify({
"screen_name": "xxxxxxxx",
"status": false,
"error": "xxxxxxxx"
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/event/xxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
},
json={
"screen_name": "xxxxxxxx",
"status": false,
"error": "xxxxxxxx"
},
)
print(res.json())// no response body
// no response body
// no response body
// no response body
submit documents (selfie)
This endpoint returns certificate
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a verified certificate
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| verificationNamerequired | string | ('document_liveness_front', 'document_liveness_back', 'selfie_liveness') |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains object below: for specific document attributes check individual connectors requirements/validations
{
"result": "object - extraction result",
"images": { "image": "", "cropped": "", "face": "", "imageBarcode": ""},
"imageNames": "Image URLs array ["selfie_liveness_image"]",
"event": {
"screen_name": "",
"event_name": ""
}
}
| Field | Type | Description |
|---|---|---|
| result | object | — |
| images | object | — |
| imageNames | array<string> | — |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/verification/xxxxxxxxxx' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'Content-Type: application/json' \
-d '{"result": {}, "images": {"image": "xxxxxxxxxx", "cropped": "xxxxxxxxxx", "face": "xxxxxxxxxx", "imageBarcode": "xxxxxxxxxx"}, "imageNames": ["string"]}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/verification/xxxxxxxxxx", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"result": {},
"images": {
"image": "xxxxxxxxxx",
"cropped": "xxxxxxxxxx",
"face": "xxxxxxxxxx",
"imageBarcode": "xxxxxxxxxx"
},
"imageNames": [
"string"
]
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/submit/verification/xxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
},
json={
"result": {},
"images": {
"image": "xxxxxxxxxx",
"cropped": "xxxxxxxxxx",
"face": "xxxxxxxxxx",
"imageBarcode": "xxxxxxxxxx"
},
"imageNames": [
"string"
]
},
)
print(res.json())// no response body
// no response body
// no response body
// no response body
// no response body
Cancel proofing session upload
This endpoint allows users to cancel an in-progress proofing session when image uploads to S3 are taking too long or the user wants to abandon the verification process.
Use Case:
- User is uploading high-resolution images to S3 bucket
- Upload is taking too long or user wants to exit
- User clicks cancel/end button in the UI
- This endpoint is called to gracefully terminate the session
Requirements:
- Session must be in INPROGRESS state
- useHighResolutionImages flag must be enabled in verification config
- Valid AWS S3 bucket configuration must exist
Actions Performed:
- Marks session as COMPLETED with NOT_PERFORMED result status
- Generates session summary certificate with error code IDV0016 ("Session ended without image upload")
- Handles PII retention based on configuration (sets expiry or deletes data)
- Asynchronously deletes any uploaded images from S3 bucket
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns the session status (COMPLETED)
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains screenName field (optional)
| Field | Type | Description |
|---|---|---|
| screenName | string | Screen name from which the cancel request is made (optional). Helps track where in the UI the user canceled the upload. |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/upload/cancel' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'Content-Type: application/json' \
-d '{"screenName": "Document Upload"}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/upload/cancel", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"screenName": "Document Upload"
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/upload/cancel",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
},
json={
"screenName": "Document Upload"
},
)
print(res.json()){
"data": {
"status": "COMPLETED"
}
}// no response body
// no response body
// no response body
// no response body
// no response body
// no response body
submit documents (images as base64) [NOT IN-USE]
This endpoint returns certificate
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a verified certificate
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains object below: for specific document attributes check individual connectors requirements/validations
{
"document_front": {
"result": "object - extraction result",
"images": "array required - ['images', 'cropped', 'face', 'imageBarcode']
},
"document_back": {
"result": "object - extraction result",
"images": "array required - ['images', 'cropped', 'face', 'imageBarcode']
},
"fallbackCaptureMode": "string optional - 'manual' | 'auto'"
}
| Field | Type | Description |
|---|---|---|
| document_front | object | — |
| document_back | object | — |
| fallbackCaptureMode | string | Fallback capture mode used during document submission One of: manual, auto |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/v2/submit/document' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'Content-Type: application/json' \
-d '{"document_front": {"result": {}, "images": {"image": "xxxxxxxxxx", "cropped": "xxxxxxxxxx", "face": "xxxxxxxxxx", "imageBarcode": "xxxxxxxxxx"}}, "document_back": {"result": {}, "images": {"image": "xxxxxxxxxx", "cropped": "xxxxxxxxxx", "face": "xxxxxxxxxx", "imageBarcode": "xxxxxxxxxx"}}, "fallbackCaptureMode": "manual"}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/v2/submit/document", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"document_front": {
"result": {},
"images": {
"image": "xxxxxxxxxx",
"cropped": "xxxxxxxxxx",
"face": "xxxxxxxxxx",
"imageBarcode": "xxxxxxxxxx"
}
},
"document_back": {
"result": {},
"images": {
"image": "xxxxxxxxxx",
"cropped": "xxxxxxxxxx",
"face": "xxxxxxxxxx",
"imageBarcode": "xxxxxxxxxx"
}
},
"fallbackCaptureMode": "manual"
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/v2/submit/document",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
},
json={
"document_front": {
"result": {},
"images": {
"image": "xxxxxxxxxx",
"cropped": "xxxxxxxxxx",
"face": "xxxxxxxxxx",
"imageBarcode": "xxxxxxxxxx"
}
},
"document_back": {
"result": {},
"images": {
"image": "xxxxxxxxxx",
"cropped": "xxxxxxxxxx",
"face": "xxxxxxxxxx",
"imageBarcode": "xxxxxxxxxx"
}
},
"fallbackCaptureMode": "manual"
},
)
print(res.json())// no response body
// no response body
// no response body
// no response body
// no response body
submit documents (images as AWS S3 / GCP Bucket urls)
This endpoint returns certificate
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns a verified certificate
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains object below: for specific document attributes check individual connectors requirements/validations
{
"document_front": {
"result": "object - extraction result",
"imageNames": "Image URLs array ["document_front_image", "document_front_face"]"
},
"document_back": {
"result": "object - extraction result",
"imageNames": "Image URLs array ["document_back_image", "document_back_imageBarcode"]"
},
"fallbackCaptureMode": "string optional - 'manual' | 'auto'"
}
| Field | Type | Description |
|---|---|---|
| document_front | object | — |
| document_back | object | — |
| fallbackCaptureMode | string | Fallback capture mode used during document submission One of: manual, auto |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/v3/submit/document' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'Content-Type: application/json' \
-d '{"document_front": {"result": {}, "imageNames": ["string"]}, "document_back": {"result": {}, "imageNames": ["string"]}, "fallbackCaptureMode": "manual"}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/v3/submit/document", {
method: "POST",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"document_front": {
"result": {},
"imageNames": [
"string"
]
},
"document_back": {
"result": {},
"imageNames": [
"string"
]
},
"fallbackCaptureMode": "manual"
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/proofingsession/xxxxxxxxxx/v3/submit/document",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>"
},
json={
"document_front": {
"result": {},
"imageNames": [
"string"
]
},
"document_back": {
"result": {},
"imageNames": [
"string"
]
},
"fallbackCaptureMode": "manual"
},
)
print(res.json())// no response body
// no response body
// no response body
// no response body
// no response body
Proofing Template
Reusable proofing-flow templates.
Fetch workflow proofing templates
This endpoint returns available proofing templates for tenant and community by dvcID and documentType
Returns
Returns a list of proofing templates
| Name | Type | Description |
|---|---|---|
| sessionIdrequired | string | ID of proofing session |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/xxxxxxxxxx' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/xxxxxxxxxx", {
method: "GET",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/xxxxxxxxxx",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json()){
"list": [
{
"_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tenantId": "xxxxxxxxxxx",
"communityId": "xxxxxxxxxxx",
"documentType": "dl_object | ppt_object | idcard_object",
"workflow": [
{
"name": "xxxxxx",
"html": "html base64",
"type": "HTML | CAPTURE_FRONT | CAPTURE_BACK | CAPTURE_SELFIE | PROCESSING",
"actions": [
{
"name": null,
"on": null,
"call": null,
"jumpTo": null,
"script": null
}
],
"params": [
{
"name": null,
"field": null
}
]
}
]
}
]
}// no response body
// no response body
// no response body
Create proofing template
Create proofing template.
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns the created proofing template and errors if any.
This API throw an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| tenantIdrequired | string | ID of tenant |
| communityIdrequired | string | ID of community |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
General Request body contains below fields to create proofing template.
{
"documentType": "string required eg 'dl_object | ppt_object | idcard_object'",
"dvcID": "string required",
"workflow": [{
"name": "string required",
"type": "string required - HTML | CAPTURE_FRONT | CAPTURE_BACK | CAPTURE_SELFIE | PROCESSING"
"html": "base64 of html required"
"params": [{
"name": "string",
"field": "string"
}]
"actions": [{
"name": "string",
"on": "string",
"jumpTo": "string",
"call": "string"
}]
}]
}| Field | Type | Description |
|---|---|---|
| documentType | string | — |
| dvcID | string | — |
| workflow | array<object> | — |
curl -X PUT 'https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'Content-Type: application/json' \
-d '{"documentType": "dl_object | ppt_object | idcard_object", "dvcID": "xxxxx", "workflow": {"name": "xxxx", "type": "xxxx", "html": "base64", "params": {"name": "xxxx", "field": "xxxx"}, "actions": {"name": "xxxx", "on": "xxxx", "jumpTo": "xxxx", "call": "xxxx"}}}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx", {
method: "PUT",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"Content-Type": "application/json"
},
body: JSON.stringify({
"documentType": "dl_object | ppt_object | idcard_object",
"dvcID": "xxxxx",
"workflow": {
"name": "xxxx",
"type": "xxxx",
"html": "base64",
"params": {
"name": "xxxx",
"field": "xxxx"
},
"actions": {
"name": "xxxx",
"on": "xxxx",
"jumpTo": "xxxx",
"call": "xxxx"
}
}
})
});
const data = await res.json();import requests
res = requests.put(
"https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
},
json={
"documentType": "dl_object | ppt_object | idcard_object",
"dvcID": "xxxxx",
"workflow": {
"name": "xxxx",
"type": "xxxx",
"html": "base64",
"params": {
"name": "xxxx",
"field": "xxxx"
},
"actions": {
"name": "xxxx",
"on": "xxxx",
"jumpTo": "xxxx",
"call": "xxxx"
}
}
},
)
print(res.json()){
"_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tenantId": "xxxxxxxxxxx",
"communityId": "xxxxxxxxxxx",
"documentType": "dl_object | ppt_object | idcard_object",
"workflow": [
{
"name": "xxxxxx",
"html": "html base64",
"type": "HTML | CAPTURE_FRONT | CAPTURE_BACK | CAPTURE_SELFIE | PROCESSING",
"actions": [
{
"name": "xxxxxxxx",
"on": "xxxxxxx",
"call": "xxxxxxxx",
"jumpTo": "xxxxxxxx",
"script": "xxxxxxxx"
}
],
"params": [
{
"name": "xxxxxxxx",
"field": "xxxxxxxx"
}
]
}
]
}// no response body
// no response body
// no response body
// no response body
Update proofing template by dvcID
Update proofing template by dvcID.
- Only a system, service or service_ext license key can be used.
- Request body must be encrypted with ECDSA.
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns the updated proofing template and errors if any.
This API throws an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| tenantIdrequired | string | ID of tenant |
| communityIdrequired | string | ID of community |
| dvcIdrequired | string | Device verification configuration ID |
| Name | Type | Description |
|---|---|---|
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains *data* field with encrypted object below:
{
"data": {
"documentType": "dl_object",
"workflow": [
{
"name": "string required",
"type": "string required - HTML",
"html": "base64 of html required",
"params": [
{
"name": "string",
"field": "string"
}
],
"actions": [
{
"name": "string",
"on": "string",
"jumpTo": "string",
"call": "string"
}
]
}
]
}
}| Field | Type | Description |
|---|---|---|
| datarequired | object | — |
curl -X PATCH 'https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/dvcId/xxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'licensekey: YOUR_LICENSE_KEY' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'license: YOUR_LICENSE_KEY' \
-H 'Content-Type: application/json' \
-d '{"data": {"documentType": "dl_object", "workflow": [{"name": "step1", "type": "HTML", "html": "<div>hello</div>", "params": [{"name": "param1", "field": "field1"}], "actions": [{"name": "action1", "on": "click", "jumpTo": "step2", "call": "submit"}]}]}}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/dvcId/xxxxxxxxxxxxxxxxxxxxxxxx", {
method: "PATCH",
headers: {
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": {
"documentType": "dl_object",
"workflow": [
{
"name": "step1",
"type": "HTML",
"html": "<div>hello</div>",
"params": [
{
"name": "param1",
"field": "field1"
}
],
"actions": [
{
"name": "action1",
"on": "click",
"jumpTo": "step2",
"call": "submit"
}
]
}
]
}
})
});
const data = await res.json();import requests
res = requests.patch(
"https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/dvcId/xxxxxxxxxxxxxxxxxxxxxxxx",
headers={
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
},
json={
"data": {
"documentType": "dl_object",
"workflow": [
{
"name": "step1",
"type": "HTML",
"html": "<div>hello</div>",
"params": [
{
"name": "param1",
"field": "field1"
}
],
"actions": [
{
"name": "action1",
"on": "click",
"jumpTo": "step2",
"call": "submit"
}
]
}
]
}
},
)
print(res.json()){
"_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tenantId": "xxxxxxxxxxx",
"communityId": "xxxxxxxxxxx",
"documentType": "dl_object | ppt_object | idcard_object",
"workflow": [
{
"name": "xxxxxx",
"html": "html base64",
"type": "HTML | CAPTURE_FRONT | CAPTURE_BACK | CAPTURE_SELFIE | PROCESSING",
"actions": [
{
"name": "xxxxxxxx",
"on": "xxxxxxx",
"call": "xxxxxxxx",
"jumpTo": "xxxxxxxx",
"script": "xxxxxxxx"
}
],
"params": [
{
"name": "xxxxxxxx",
"field": "xxxxxxxx"
}
]
}
]
}// no response body
// no response body
// no response body
// no response body
// no response body
update proofing template
update proofing template.
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns the updated proofing template and errors if any.
This API throw an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| tenantIdrequired | string | ID of tenant |
| communityIdrequired | string | ID of community |
| idrequired | string | ID of proofing template |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
General Request body contains below fields to update proofing template.
{
"workflow": [{
"name": "string required",
"type": "string required - HTML"
"html": "base64 of html required"
"params": [{
"name": "string",
"field": "string"
}]
"actions": [{
"name": "string",
"on": "string",
"jumpTo": "string",
"call": "string"
}]
}| Field | Type | Description |
|---|---|---|
| workflow | array<object> | — |
curl -X PATCH 'https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/id/xxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'Content-Type: application/json' \
-d '{"workflow": {"name": "string", "type": "xxxx", "html": "base64", "params": {"name": "xxxx", "field": "xxxx"}, "actions": {"name": "xxxx", "on": "xxxx", "jumpTo": "xxxx", "call": "xxxx"}}}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/id/xxxxxxxxxxxxxxxxxxxxxxxx", {
method: "PATCH",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"Content-Type": "application/json"
},
body: JSON.stringify({
"workflow": {
"name": "string",
"type": "xxxx",
"html": "base64",
"params": {
"name": "xxxx",
"field": "xxxx"
},
"actions": {
"name": "xxxx",
"on": "xxxx",
"jumpTo": "xxxx",
"call": "xxxx"
}
}
})
});
const data = await res.json();import requests
res = requests.patch(
"https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/id/xxxxxxxxxxxxxxxxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
},
json={
"workflow": {
"name": "string",
"type": "xxxx",
"html": "base64",
"params": {
"name": "xxxx",
"field": "xxxx"
},
"actions": {
"name": "xxxx",
"on": "xxxx",
"jumpTo": "xxxx",
"call": "xxxx"
}
}
},
)
print(res.json()){
"_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tenantId": "xxxxxxxxxxx",
"communityId": "xxxxxxxxxxx",
"documentType": "dl_object | ppt_object | idcard_object",
"workflow": [
{
"name": "xxxxxx",
"html": "html base64",
"type": "HTML | CAPTURE_FRONT | CAPTURE_BACK | CAPTURE_SELFIE | PROCESSING",
"actions": [
{
"name": "xxxxxxxx",
"on": "xxxxxxx",
"call": "xxxxxxxx",
"jumpTo": "xxxxxxxx",
"script": "xxxxxxxx"
}
],
"params": [
{
"name": "xxxxxxxx",
"field": "xxxxxxxx"
}
]
}
]
}// no response body
// no response body
// no response body
// no response body
// no response body
Delete proofing template
Delete proofing template.
Headers
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns the fetched proofing templates and errors if any.
This API throw an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| idrequired | string | ID of Proofing Template |
| tenantIdrequired | string | ID of tenant |
| communityIdrequired | string | ID of community |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X DELETE 'https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/id/xxxxxxxxxx' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/id/xxxxxxxxxx", {
method: "DELETE",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
});
const data = await res.json();import requests
res = requests.delete(
"https://pilot-root.1kosmos.net/idproofingapi/proofingtemplates/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx/id/xxxxxxxxxx",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET"
}
)
print(res.json())// no response body
// no response body
// no response body
// no response body
// no response body
// no response body
Buckets
Buckets endpoints.
get bucket at community level
get bucket at community level.
- Only a system or service key can be used to get document certificate.
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns the bucket details or errors if any.
This API throw an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| tenantIdrequired | string | ID of tenant |
| communityIdrequired | string | ID of community |
| Name | Type | Description |
|---|---|---|
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/bucket/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx' \ -H 'licensekey: YOUR_LICENSE_KEY' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/bucket/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx", {
method: "GET",
headers: {
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/bucket/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx",
headers={
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json()){
"data": {
"_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tenantId": "xxxxxxxxxxx",
"communityId": "xxxxxxxxxxx",
"type": "aws | gcp | azure",
"bucketName": "xxxxxxxx",
"isEnabled": false,
"createdBy": "xxxxxxxx",
"createdTS": "xxxxxxxx",
"updatedTS": "xxxxxxxx",
"aws_credential": {
"accessKey": "xxxxxxxx",
"secretKey": "xxxxxxxx",
"region": "xxxxxxxx"
},
"gcp_credential": {
"projectid": "xxxxxxxx",
"clientEmail": "xxxxxxxx",
"privateKey": "xxxxxxxx"
},
"azure_credential": {
"accountName": "string",
"accountKey": "string"
}
}
}// no response body
// no response body
// no response body
// no response body
Create bucket at community level
Create bucket at community level.
- Only a system or service key can be used to get document certificate.
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Request Body
type (required)
Type value can be aws, gcp and azure.
bucketName (required)
The bucketName string.
isEnabled (required)
The isEnabled boolean.
createdBy (required)
The createdBy boolean.
aws_credential (optional)
The aws_credential object.
gcp_credential (optional)
The gcp_credential object.
azure_credential (optional)
The azure_credential object.
Returns
Returns the buckets details or errors if any.
This API throw an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| tenantIdrequired | string | ID of tenant |
| communityIdrequired | string | ID of community |
| Name | Type | Description |
|---|---|---|
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains below fields to create bucket for aws, gcp or azure
{
"type": "string required",
"bucketName": "string required",
"isEnabled": "boolean required - default false",
"createdBy": "string required",
"aws_credential": {
"accessKey": "string required",
"secretKey": "string required",
"region": "string required"
} // optional,
"gcp_credential": {
"projectid": "string required",
"clientEmail": "string required",
"privateKey": "string required"
} // optional,
"azure_credential": {
"accountName": "string required",
"accountKey": "string required"
} // optional
}| Field | Type | Description |
|---|---|---|
| data | object | — |
curl -X PUT 'https://pilot-root.1kosmos.net/idproofingapi/bucket/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'licensekey: YOUR_LICENSE_KEY' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'license: YOUR_LICENSE_KEY' \
-H 'Content-Type: application/json' \
-d '{"data": {"type": "aws | gcp | azure", "bucketName": "xxxxxxxx", "isEnabled": false, "createdBy": "xxxxxxxx", "aws_credential": {"accessKey": "xxxxxxxx", "secretKey": "xxxxxxxx", "region": "xxxxxxxx"}, "gcp_credential": {"projectid": "xxxxxxxx", "clientEmail": "xxxxxxxx", "privateKey": "xxxxxxxx"}, "azure_credential": {"accountName": "xxxxxxxx", "accountKey": "xxxxxxxx"}}}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/bucket/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx", {
method: "PUT",
headers: {
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": {
"type": "aws | gcp | azure",
"bucketName": "xxxxxxxx",
"isEnabled": false,
"createdBy": "xxxxxxxx",
"aws_credential": {
"accessKey": "xxxxxxxx",
"secretKey": "xxxxxxxx",
"region": "xxxxxxxx"
},
"gcp_credential": {
"projectid": "xxxxxxxx",
"clientEmail": "xxxxxxxx",
"privateKey": "xxxxxxxx"
},
"azure_credential": {
"accountName": "xxxxxxxx",
"accountKey": "xxxxxxxx"
}
}
})
});
const data = await res.json();import requests
res = requests.put(
"https://pilot-root.1kosmos.net/idproofingapi/bucket/tenant/xxxxxxxxxx/community/xxxxxxxxxxxxxxxxxxxxxxxx",
headers={
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
},
json={
"data": {
"type": "aws | gcp | azure",
"bucketName": "xxxxxxxx",
"isEnabled": false,
"createdBy": "xxxxxxxx",
"aws_credential": {
"accessKey": "xxxxxxxx",
"secretKey": "xxxxxxxx",
"region": "xxxxxxxx"
},
"gcp_credential": {
"projectid": "xxxxxxxx",
"clientEmail": "xxxxxxxx",
"privateKey": "xxxxxxxx"
},
"azure_credential": {
"accountName": "xxxxxxxx",
"accountKey": "xxxxxxxx"
}
}
},
)
print(res.json()){
"data": {
"_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tenantId": "xxxxxxxxxxx",
"communityId": "xxxxxxxxxxx",
"type": "aws | gcp | azure",
"bucketName": "xxxxxxxx",
"isEnabled": false,
"createdBy": "xxxxxxxx",
"createdTS": "xxxxxxxx",
"updatedTS": "xxxxxxxx",
"aws_credential": {
"accessKey": "xxxxxxxx",
"secretKey": "xxxxxxxx",
"region": "xxxxxxxx"
},
"gcp_credential": {
"projectid": "xxxxxxxx",
"clientEmail": "xxxxxxxx",
"privateKey": "xxxxxxxx"
},
"azure_credential": {
"accountName": "string",
"accountKey": "string"
}
}
}// no response body
// no response body
// no response body
// no response body
Service Key
Service Key endpoints.
Get service keys
This endpoint returns available service keys. The license you are using must be of authLevel 'system'
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns array with service keys
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/servicekeys' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'licensekey: YOUR_LICENSE_KEY' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/servicekeys", {
method: "GET",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"licensekey": "YOUR_LICENSE_KEY",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/servicekeys",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"licensekey": "YOUR_LICENSE_KEY",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json())[
{
"tag": "xxxxx",
"keyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
"keySecret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
"type": "xxxxx"
}
]// no response body
// no response body
// no response body
Reset Service Key
This endpoint resets service key for given keyId. Deletes current one and recreates a new one. The license you are using must be of authLevel 'system'
Parameters
keyId (required)
The keyId of service key to reset
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Returns
Returns re-created service key
| Name | Type | Description |
|---|---|---|
| keyIdrequired | string | keyId of service key to reset |
| Name | Type | Description |
|---|---|---|
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
curl -X DELETE 'https://pilot-root.1kosmos.net/idproofingapi/servicekey/<keyId>' \ -H 'requestid: <ecdsa-requestid>' \ -H 'publickey: <public-key>' \ -H 'licensekey: YOUR_LICENSE_KEY' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/servicekey/<keyId>", {
method: "DELETE",
headers: {
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"licensekey": "YOUR_LICENSE_KEY",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.delete(
"https://pilot-root.1kosmos.net/idproofingapi/servicekey/<keyId>",
headers={
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"licensekey": "YOUR_LICENSE_KEY",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json())[
{
"tag": "xxxxx",
"keyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
"keySecret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
"type": "xxxxx"
}
]// no response body
// no response body
// no response body
Session
Session endpoints.
Connector
Verification connectors behind a session.
Get connector information
This endpoint returns available connector information.
Returns
Returns array with connector information
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/info' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/info", {
method: "GET",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/info",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json())[
{
"verifierType": "xxxxx",
"docType": "xxxxx"
}
]ECDSA Helper
ECDSA Helper endpoints.
Encrypt and decrypt the data string by public key and private key.
Encrypt and decrypt the data string by public key and private key.
Parameters
method (optional)
The method parameter is type of enum. Default value is encrypt.
This parameter only accepts following values
encrypt, decrypt
Request Body
dataStr (required)
The dataStr key is type of string.
publicKey (required)
The publicKey is type of string.
privateKey (required)
The privateKey is type of string.
Returns
Returns the encrypted/decrypted string.
This API throw an error if something goes wrong. A common source of error is public or private key is not valid.
| Name | Type | Description |
|---|---|---|
| method | string | — |
| Field | Type | Description |
|---|---|---|
| dataStr | string | — |
| publicKey | string | — |
| privateKey | string | — |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/ecdsa_helper/<method>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'license: YOUR_LICENSE_KEY' \
-H 'Content-Type: application/json' \
-d '{"dataStr": "Hey, This is example data string.", "publicKey": "xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx=", "privateKey": "xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx="}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/ecdsa_helper/<method>", {
method: "POST",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"dataStr": "Hey, This is example data string.",
"publicKey": "xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx=",
"privateKey": "xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx="
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/ecdsa_helper/<method>",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
},
json={
"dataStr": "Hey, This is example data string.",
"publicKey": "xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx=",
"privateKey": "xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx="
},
)
print(res.json()){
"data": "xxxxxxxxxxxxxxxxxxxx",
"publicKey": "xxxxxxxxxxxxxxxxxxxx"
}Environment
Environment endpoints.
/environment
Provide details regarding the environments.
Returns
Returns an environment object
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/environment' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/environment", {
method: "GET",
headers: {
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/environment",
headers={
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json())// no response body
Healthz
Healthz endpoints.
Get healthz.
Get healthz
Returns
Returns a healthz object
- ``
version = <git-tag>.<commit-id>.<dob>``
- ``
git-tag``: When code is compiled from a git-tag, this must carry the tag name. This should match one of the git tags. - ``
commit-id``: This is the git-commit-id. eg: When code is built from this, the hex code, in the end, is the commit it. - ``
dob``: Date Of Build. This is epoc-time-in-se conds that tell the time when the build was created. - if the code is not built from a git-tag, then the ``
version =<commit-id>.<dob>``
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/healthz' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/healthz", {
method: "GET",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/healthz",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json()){
"status": "all services operational",
"publicKey": "//same as <service>/publickeys endpoint",
"code": "200",
"version": "xxxx.xxxx.xxxx"
}Public Key
Public Key endpoints.
Get system's public key.
Get system's public key.
Returns
Returns a public key object
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/publickeys' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/publickeys", {
method: "GET",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/publickeys",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json()){
"publicKey": ""
}// no response body
Service Directory
Service Directory endpoints.
Get all service directories.
Get all service directories.
Returns
Returns all service directories.
curl -X GET 'https://pilot-root.1kosmos.net/idproofingapi/sd' \ -H 'keyId: YOUR_KEY_ID' \ -H 'keySecret: YOUR_KEY_SECRET' \ -H 'license: YOUR_LICENSE_KEY'
const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/sd", {
method: "GET",
headers: {
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://pilot-root.1kosmos.net/idproofingapi/sd",
headers={
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
}
)
print(res.json()){
"name1": "https://xxx.xxxxxx.xxx/xxxxx",
"name2": "https://xxx.xxxxxx.xxx/xxxxx",
"name3": "https://xxx.xxxxxx.xxx/xxxxx"
}Verify
Verify endpoints.
Verify Connector
Get Connector certificate.
- Only a system or service key can be used to get document certificate.
Headers
licensekey (required)
License key encrypted with ECDSA
requestid (required)
JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now
publickey (required)
Public key
Request Body
connector (required)
The connector object.
verification (required)
The verification object.
document (required)
The document object.
Returns
Returns the document certificate and errors if any.
This API throw an error if something goes wrong.
| Name | Type | Description |
|---|---|---|
| licensekeyrequired | string | License key encrypted with ECDSA / Try Authorize 🔒 |
| requestidrequired | string | JSON string encrypted with ECDSA which should contain "appid" (string), "uuid" (string) and "ts" (number) representing epoch timestamp in seconds - it shouldn't be more or less than 'environment.allowed_time_span' seconds from now / Try Authorize 🔒 |
| publickeyrequired | string | Public Key / Try Authorize 🔒 |
Request body contains below fields to get dl_authenticate connector certificate.
{
"connector": {
"id": "string required",
"type": "string required - 'microblink'",
"config": {
"verifierUrl": "string required",
"verifierUrlV2": "string required",
"clientId": "string",
"clientSecret": "string"
}
},
"verification": {
"id": "string required",
"tag": "string required",
"type": "string required - 'dl_authenticate'",
"config": {
"verifier": "string required - custom tag from verifier",
"skip": false, // boolean
"debug": true, // boolean
"returnRawData": false // boolean
"useV1BlinkIdVerify": false // boolean
}
},
"document": {
"id": "string required",
"type": "string required - dl", // case-insensitive
"front_image": "string optional", // base64
"back_image": "string optional", // base64
"barcode_image": "string optional", // base64
"front_image_flash": "string optional", // base64
"front_image_url": "string optional", // base64
"back_image_url": "string optional", // base64
"barcode_image_url": "string optional", // base64
"front_image_flash_url": "string optional" // base64
}
}
Request body contains below fields to get ppt_authenticate connector certificate.
{
"connector": {
"id": "string required",
"type": "string required - 'microblink'",
"config": {
"verifierUrl": "string required",
"verifierUrlV2": "string required",
"clientId": "string",
"clientSecret": "string"
}
},
"verification": {
"id": "string required",
"tag": "string required",
"type": "string required - 'ppt_authenticate'",
"config": {
"verifier": "string required - custom tag from verifier",
"skip": false, // boolean
"debug": true, // boolean
"useV1BlinkIdVerify": false // boolean
},
"document": {
"id": "string required",
"type": "string required - ppt", // case-insensitive
"front_image": "string required", // base64
"front_image_url": "string required" // base64
}
}
Request body contains below fields to get idcard_authenticate connector certificate.
{
"connector": {
"id": "string required",
"type": "string required - 'microblink'",
"config": {
"verifierUrl": "string required",
"verifierUrlV2": "string required",
"clientId": "string",
"clientSecret": "string"
}
},
"verification": {
"id": "string required",
"tag": "string required",
"type": "string required - 'idcard_authenticate'",
"config": {
"verifier": "string required - custom tag from verifier",
"skip": false, // boolean
"debug": false, // boolean
"useV1BlinkIdVerify": false // boolean
}
},
"document": {
"id": "string required",
"type": "string required - idcard", // case-insensitive
"front_image": "string optional", // base64
"back_image": "string optional", // base64
"barcode_image": "string optional", // base64
"front_image_flash": "string optional", // base64
"front_image_url": "string optional", // base64
"back_image_url": "string optional", // base64
"barcode_image_url": "string optional", // base64
"front_image_flash_url": "string optional" // base64
}
}
Request body contains below fields to get id_capture connector certificate.
{
"connector": {
"id": "string required",
"type": "string required - 'microblink'",
"config": {
"url": "string required",
"clientId": "string",
"clientSecret": "string"
}
},
"verification": {
"id": "string required",
"tag": "string required",
"type": "string required - 'id_capture'",
"config": {
"verifier": "string required - custom tag from verifier",
"skip": false, // boolean
"debug": false, // boolean
"useV1BlinkIdVerify": false // boolean
}
},
"document": {
"id": "string required",
"type": "string required - idcard", // case-insensitive
"front_image": "string optional", // base64
"back_image": "string optional", // base64
"barcode_image": "string optional", // base64
"front_image_flash": "string optional", // base64
"front_image_url": "string optional", // base64
"back_image_url": "string optional", // base64
"barcode_image_url": "string optional", // base64
"front_image_flash_url": "string optional" // base64
}
}| Field | Type | Description |
|---|---|---|
| connector | object | — |
| verification | object | — |
| document | object | — |
| referrerPublicKey | string | — |
curl -X POST 'https://pilot-root.1kosmos.net/idproofingapi/verify' \
-H 'licensekey: YOUR_LICENSE_KEY' \
-H 'requestid: <ecdsa-requestid>' \
-H 'publickey: <public-key>' \
-H 'keyId: YOUR_KEY_ID' \
-H 'keySecret: YOUR_KEY_SECRET' \
-H 'license: YOUR_LICENSE_KEY' \
-H 'Content-Type: application/json' \
-d '{"connector": {"id": "xxxxxxxxxxxxxxxxxxxxxxxx", "type": "xxxxxx", "config": {}}, "verification": {"id": "xxxxxxxxxxxxxxxxxxxxxxxx", "tag": "xxxxxx", "type": "xxxxxx", "config": {}}, "document": {"id": "xxxxxxxxx", "type": "xxxxxx", "...": null}, "referrerPublicKey": "xxxxxxxxxxx"}'const res = await fetch("https://pilot-root.1kosmos.net/idproofingapi/verify", {
method: "POST",
headers: {
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"connector": {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"type": "xxxxxx",
"config": {}
},
"verification": {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tag": "xxxxxx",
"type": "xxxxxx",
"config": {}
},
"document": {
"id": "xxxxxxxxx",
"type": "xxxxxx",
"...": null
},
"referrerPublicKey": "xxxxxxxxxxx"
})
});
const data = await res.json();import requests
res = requests.post(
"https://pilot-root.1kosmos.net/idproofingapi/verify",
headers={
"licensekey": "YOUR_LICENSE_KEY",
"requestid": "<ecdsa-requestid>",
"publickey": "<public-key>",
"keyId": "YOUR_KEY_ID",
"keySecret": "YOUR_KEY_SECRET",
"license": "YOUR_LICENSE_KEY"
},
json={
"connector": {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"type": "xxxxxx",
"config": {}
},
"verification": {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"tag": "xxxxxx",
"type": "xxxxxx",
"config": {}
},
"document": {
"id": "xxxxxxxxx",
"type": "xxxxxx",
"...": null
},
"referrerPublicKey": "xxxxxxxxxxx"
},
)
print(res.json()){
"docType": "xxxxx",
"docId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"type": "xxxxx",
"authority": "xxxxx",
"ts": "xxxxxxxxxx",
"verified": true,
"result": {},
"metadata": {},
"token": "xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx=",
"raw_data": {},
"publicKey": "xxxxx",
"proof_jwt": "xxxxxxxxxxxxxxxxxxxxxx="
}// no response body
// no response body
// no response body
// no response body