curl -X POST 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/vendor-users/by-id/f4e5e1f2-94a9-4f86-8c16-2b7d9b4db418/faces/upload/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"image": "/9j/4AAQSkZJRgABAQEA...", "comment": "Imported from previous KYC provider"}'from didit import Didit
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
client = Didit()
result = client.users.upload_face(
"11111111-2222-3333-4444-555555555555",
image="/9j/4AAQSkZJRgABAQEA...",
comment="Imported from previous KYC provider",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
const didit = new Didit();
const result = await didit.users.uploadFace("11111111-2222-3333-4444-555555555555", {
image: "/9j/4AAQSkZJRgABAQEA...",
comment: "Imported from previous KYC provider",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
client := didit.NewClient()
result, err := client.Users.UploadFace(ctx, "11111111-2222-3333-4444-555555555555", didit.UsersUploadFaceParams{
Image: "/9j/4AAQSkZJRgABAQEA...",
Comment: didit.String("Imported from previous KYC provider"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.UsersUploadFaceParams;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
Didit client = new Didit();
var result = client.users().uploadFace("11111111-2222-3333-4444-555555555555", UsersUploadFaceParams.builder()
.image("/9j/4AAQSkZJRgABAQEA...")
.comment("Imported from previous KYC provider")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
$didit = new DiditClient();
$result = $didit->users->uploadFace('11111111-2222-3333-4444-555555555555', [
'image' => '/9j/4AAQSkZJRgABAQEA...',
'comment' => 'Imported from previous KYC provider',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
didit = Didit::Client.new
result = didit.users.upload_face(
"11111111-2222-3333-4444-555555555555",
image: "/9j/4AAQSkZJRgABAQEA...",
comment: "Imported from previous KYC provider"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
using var client = new DiditClient();
var result = await client.Users.UploadFaceAsync("11111111-2222-3333-4444-555555555555", new UsersUploadFaceParams
{
Image = "/9j/4AAQSkZJRgABAQEA...",
Comment = "Imported from previous KYC provider",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"image_url": "https://signed-url.example/face.jpg",
"comment": "Imported from previous KYC provider",
"uploaded_by": "api",
"created_at": "2026-05-18T12:00:00Z"
}उपयोगकर्ता चेहरा अपलोड API: विक्रेता उपयोगकर्ता प्रोफ़ाइल
vendor_data के साथ उपयोगकर्ता बनाने या आयात करने के बाद, Didit में मौजूदा उपयोगकर्ता प्रोफ़ाइल पर base64 चेहरा छवि अपलोड करें।
curl -X POST 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/vendor-users/by-id/f4e5e1f2-94a9-4f86-8c16-2b7d9b4db418/faces/upload/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"image": "/9j/4AAQSkZJRgABAQEA...", "comment": "Imported from previous KYC provider"}'from didit import Didit
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
client = Didit()
result = client.users.upload_face(
"11111111-2222-3333-4444-555555555555",
image="/9j/4AAQSkZJRgABAQEA...",
comment="Imported from previous KYC provider",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
const didit = new Didit();
const result = await didit.users.uploadFace("11111111-2222-3333-4444-555555555555", {
image: "/9j/4AAQSkZJRgABAQEA...",
comment: "Imported from previous KYC provider",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
client := didit.NewClient()
result, err := client.Users.UploadFace(ctx, "11111111-2222-3333-4444-555555555555", didit.UsersUploadFaceParams{
Image: "/9j/4AAQSkZJRgABAQEA...",
Comment: didit.String("Imported from previous KYC provider"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.UsersUploadFaceParams;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
Didit client = new Didit();
var result = client.users().uploadFace("11111111-2222-3333-4444-555555555555", UsersUploadFaceParams.builder()
.image("/9j/4AAQSkZJRgABAQEA...")
.comment("Imported from previous KYC provider")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
$didit = new DiditClient();
$result = $didit->users->uploadFace('11111111-2222-3333-4444-555555555555', [
'image' => '/9j/4AAQSkZJRgABAQEA...',
'comment' => 'Imported from previous KYC provider',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
didit = Didit::Client.new
result = didit.users.upload_face(
"11111111-2222-3333-4444-555555555555",
image: "/9j/4AAQSkZJRgABAQEA...",
comment: "Imported from previous KYC provider"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
using var client = new DiditClient();
var result = await client.Users.UploadFaceAsync("11111111-2222-3333-4444-555555555555", new UsersUploadFaceParams
{
Image = "/9j/4AAQSkZJRgABAQEA...",
Comment = "Imported from previous KYC provider",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"image_url": "https://signed-url.example/face.jpg",
"comment": "Imported from previous KYC provider",
"uploaded_by": "api",
"created_at": "2026-05-18T12:00:00Z"
}अवलोकन
जब आप किसी दूसरे प्रदाता से उपयोगकर्ता आयात करते हैं और हर व्यक्ति के लिए पहले से एक विश्वसनीय चेहरे की छवि आपके पास है, तब इस endpoint का उपयोग करें। उपयोगकर्ता अब भी आपकेvendor_data से जुड़ा रहता है, लेकिन यह प्रोफ़ाइल अटैचमेंट endpoint लक्ष्य उपयोगकर्ता को स्पष्ट रूप से पहचानने के लिए didit_internal_id का उपयोग करता है।
Endpoint
POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/
माइग्रेशन प्रवाह
उपयोगकर्ता बनाएँ या खोजें
POST /v3/users/create/ कॉल करें, या किसी मौजूदा प्रोफ़ाइल के लिए GET /v3/users/{vendor_data}/ कॉल करें।didit_internal_id सहेजें
didit_internal_id शामिल होता है। अपने डेटाबेस में vendor_data का उपयोग जारी रखें; didit_internal_id का उपयोग केवल प्रोफ़ाइल अटैचमेंट endpoint के लिए करें।चेहरा अपलोड करें
image फ़ील्ड में कच्ची base64 छवि भेजें। सहेजने से पहले बैकएंड छवि डिकोडिंग, छवि आकार और चेहरे का पता लगाने की जाँच करता है।उदाहरण
# 1. Create the User keyed by your external id
curl -X POST https://verification.didit.me/v3/users/create/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"vendor_data": "user-42",
"display_name": "Jane Doe",
"metadata": { "previous_provider": "legacy-kyc-vendor" }
}'
# 2. Upload an imported face to the returned didit_internal_id
curl -X POST https://verification.didit.me/v3/organization/$ORGANIZATION_ID/application/$APPLICATION_ID/vendor-users/by-id/$DIDIT_INTERNAL_ID/faces/upload/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "<base64-encoded-jpg-or-png>",
"comment": "Imported from previous KYC provider"
}'
अनुरोध का मुख्य भाग
| फ़ील्ड | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
image | string | हाँ | कच्चा base64-encoded JPG या PNG। data:image/...;base64, शामिल न करें। अधिकतम डिकोड किया गया आकार: 2 MB। |
comment | string | नहीं | ऑपरेटर को दिखने वाली टिप्पणी, जो उपयोगकर्ता प्रोफ़ाइल पर दिखाई जाती है। |
रिस्पॉन्स
{
"uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"image_url": "https://signed-url.example/face.jpg",
"comment": "Imported from previous KYC provider",
"uploaded_by": "api",
"created_at": "2026-05-18T12:00:00Z"
}
सत्यापन और सीमाएँ
- हर उपयोगकर्ता के लिए मैन्युअल रूप से अधिकतम 5 चेहरे अपलोड किए जा सकते हैं।
- डिकोड की गई छवि का अधिकतम आकार 2 MB है।
- छवि मान्य base64 होनी चाहिए और उसे छवि के रूप में डिकोड किया जा सकना चाहिए।
- छवि में पहचाना जा सकने वाला चेहरा होना चाहिए। जब संभव हो, सामने से देखे गए, अच्छी रोशनी वाले चेहरे का क्रॉप उपयोग करें।
- अपलोड किया गया चेहरा भविष्य की डुप्लिकेट पहचान और चेहरा खोज के लिए इंडेक्स किया जाता है।
- अपलोड किया गया चेहरा स्वचालित रूप से ब्लॉकलिस्ट में नहीं जोड़ा जाता।
अपलोड किए गए चेहरों की सूची बनाएँ या हटाएँ
प्रोफ़ाइल में मौजूद चेहरों की सूची देखें:curl https://verification.didit.me/v3/organization/$ORGANIZATION_ID/application/$APPLICATION_ID/vendor-users/by-id/$DIDIT_INTERNAL_ID/faces/ \
-H "x-api-key: YOUR_API_KEY"
curl -X DELETE https://verification.didit.me/v3/organization/$ORGANIZATION_ID/application/$APPLICATION_ID/vendor-users/by-id/$DIDIT_INTERNAL_ID/faces/$FACE_UUID/ \
-H "x-api-key: YOUR_API_KEY"
अनुमतियाँ
उसी एप्लिकेशन की API कुंजी का उपयोग करें। कुंजी ऐसे ऐप की होनी चाहिए जिसे लक्ष्य उपयोगकर्ता प्रोफ़ाइल प्रबंधित करने की अनुमति हो।विफलता के प्रकार
400– अमान्य base64, अमान्य छवि, कोई पता लगाने योग्य चेहरा नहीं, 2 MB से बड़ी छवि, या उपयोगकर्ता के पास पहले से 5 अपलोड किए गए चेहरे हैं।401– क्रेडेंशियल गायब हैं या अमान्य हैं।403– API कुंजी मान्य है, लेकिन इस उपयोगकर्ता प्रोफ़ाइल को प्रबंधित करने की अनुमति नहीं है।404– एप्लिकेशन में उसdidit_internal_idके लिए कोई उपयोगकर्ता मौजूद नहीं है।429– रेट लिमिट लागू है;Retry-Afterका उपयोग करके प्रतीक्षा करें और फिर पुनः प्रयास करें।
संबंधित
- उपयोगकर्ता बनाएँ
- उपयोगकर्ता प्राप्त करें
- उपयोगकर्ता इंपोर्ट और एक्सपोर्ट करें
- चेहरे और बायोमेट्रिक्स
- ब्लॉकलिस्ट में चेहरा अपलोड करें
प्राधिकरण
आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी, कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं। देखें https://docs.didit.me/console/api-keys।
पथ पैरामीटर
संगठन UUID जिसके स्वामित्व में एप्लिकेशन है।
एप्लिकेशन UUID जिसके पास उपयोगकर्ता प्रोफ़ाइल का स्वामित्व है।
Didit का आंतरिक उपयोगकर्ता UUID, जिसे GET /v3/users/{vendor_data}/ और POST /v3/users/create/ द्वारा didit_internal_id के रूप में लौटाया जाता है।
बॉडी
प्रतिक्रिया
चेहरा अपलोड किया गया और उपयोगकर्ता प्रोफ़ाइल से संलग्न किया गया।
अपलोड किए गए उपयोगकर्ता फ़ेस रिकॉर्ड का UUID।
अपलोड की गई चेहरे की छवि के लिए हस्ताक्षरित URL।
चेहरा अपलोड करते समय दी गई टिप्पणी।
उपलब्ध होने पर अपलोडर का ईमेल या कर्ता पहचानकर्ता।
अपलोड टाइमस्टैम्प।