راهنمای فنی یکپارچهسازی سرویسهای ثبت و جستجوی پرونده برای سازمانها و توسعهدهندگان
برای استفاده از سرویسهایی که نیاز به احراز هویت دارند، ابتدا توکن دریافت کنید.
| پارامتر | توضیح | نوع |
|---|---|---|
identity | کد ملی، شماره موبایل یا نام کاربری | string |
password | رمز عبور | string |
Authorization: Bearer {access_token} برای متدهای ثبت پرونده و جستجو ارسال کنید.
اگر ورود ناموفق باشد (رمز اشتباه، کاربر نامعتبر، یا حساب قفلشده) پیام «احراز هویت ناموفق بود!» برمیگردد.
| پارامتر | توضیح | نوع |
|---|---|---|
refreshToken | رفرشتوکن فعلی | string |
متدهای دریافت و رفرش توکن مشمول محدودیت نرخ هستند.
| گروه | سقف پیشفرض |
|---|---|
ورود (POST .../auth) — بهازای IP | ۲۰ درخواست در ۱۵ دقیقه |
ورود (POST .../auth) — بهازای هویت (identity) | ۵ درخواست در ۱۵ دقیقه |
رفرش (POST .../auth/refresh) — بهازای IP | ۶۰ درخواست در ۶۰ ثانیه |
429 و هدر Retry-After
(ثانیه تا پنجرهٔ بعدی) برمیگردد. بدنه یک JSON کوتاه با فیلد errorMessage است.
پس از ۵ ورود ناموفق با رمز عبور، حساب حدود ۱۵ دقیقه قفل میشود.
رفرش توکن حساب را قفل نمیکند.
موجودیت پروندهها در دیجی فایند وابستگیهای از پیش تعریفشده دارد. توسعهدهنده کافی است این دادهها را فراخوانی و در درخواست ثبت پرونده جایگذاری کند.
لیست تمامی استانها شامل شناسه و نام.
{
"id": "5bea91b0-fd48-4d04-bd54-9355d899545d",
"title": "لرستان"
}
لیست شهرها شامل شناسه، نام و شناسه استان مربوطه.
{
"id": "bcee4e39-a455-455a-a15a-3941c586c831",
"title": "دورود",
"provinceId": "5bea91b0-fd48-4d04-bd54-9355d899545d"
}
{
"id": "8a1db491-7101-3f0b-c85e-3a0c3a7bfeed",
"title": "برچسب 10 عددی"
}
{
"id": "a17b24e2-d422-57c6-2c29-3a13639ac08d",
"title": "ردیابی موبایل 150 روزه"
}
{
"id": "7857132a-370a-5f1f-003b-3a0fa9cb8c7b",
"title": "اپل"
}
خروجی شامل شناسه، نام، ترتیب نمایش و ویژگیهای هر آیتم است. هر ویژگی دارای شناسه، عنوان، توضیحات، ترتیب، اجباری بودن و الگوی Regex میباشد.
[
{
"id": "c277840b-c327-a3b5-0f1e-3a0c3a7c5a3e",
"title": "لپ تاپ",
"order": 0,
"properties": [
{
"id": "7d8a83e0-edf7-f20f-2000-3a0c3a7c5a3e",
"title": "برند لپ تاپ",
"description": "برند گمشده را وارد کنید",
"order": 0,
"isRequired": true,
"regexValidationPattern": null
}
]
}
]
پارامترهای ورودی به دو دسته تقسیم میشوند: اطلاعات مستقیم کاربر و شناسههایی که از سرویسهای پیشنیاز
دریافت میشوند.
ارسال هدر Idempotency-Key در این درخواستهای POST الزامی است.
جزئیات در بخش محدودیت نرخ و Idempotency آمده است.
| پارامتر | توضیح | نوع |
|---|---|---|
finderName | نام یابنده | string |
finderLastName | نام خانوادگی یابنده | string |
finderPhoneNumber | شماره موبایل یابنده | string |
lostItemNationalCode | کد ملی مرتبط با آیتم پیداشده | string |
lostItemAniyabSerial | سریال دیجی فایند مرتبط با آیتم | string |
foundItems | آرایه اشیای پیداشده (شناسه + properties) | array |
پس از ثبت موفق، یک Guid بهعنوان شناسه پرونده برگردانده میشود.
| پارامتر | توضیح | نوع |
|---|---|---|
ownerName | نام مالک | string |
ownerLastName | نام خانوادگی مالک | string |
ownerFatherName | نام پدر مالک | string |
ownerNationalCode | کد ملی مالک | string |
ownerAniyabSerial | سریال دیجی فایند مالک | string |
ownerPhoneNumber | شماره موبایل مالک | string |
lostDate | تاریخ گم شدن | DateTime |
provinceId | شناسه استان سکونت | Guid |
cityId | شناسه شهر سکونت | Guid |
region | منطقه سکونت | string |
street | خیابان سکونت | string |
lostItems | آرایه اشیای گمشده | array |
rewardProductId | شناسه محصول مژدگانی (اختیاری) | Guid |
برای phoneBrand پس از دریافت لیست برندها، نام برند را بهصورت رشته ارسال کنید.
برای selectedProductId از متد محصولات ردیابی موبایل استفاده کنید.
| پارامتر | توضیح | نوع |
|---|---|---|
ownerName | نام مالک | string |
ownerLastName | نام خانوادگی مالک | string |
ownerFatherName | نام پدر مالک | string |
ownerNationalCode | کد ملی مالک | string |
ownerAniyabSerial | سریال دیجی فایند مالک | string |
ownerPhoneNumber | شماره موبایل مالک | string |
phoneBrand | نام برند (از لیست برندها) | string |
imeI1 / imeI2 | شماره IMEI دستگاه | string |
lostDate | تاریخ سرقت/گم شدن | DateTime |
selectedProductId | شناسه محصول ردیابی موبایل | Guid |
Guid بهعنوان شناسه پرونده ساختهشده برگردانده میشود.
پس از یافتن پرونده پیداشده (از متد جستجو)، مالک میتواند با این متد پرونده گمشدهٔ مرتبط را ثبت کند. کد ملی مالک باید با کد ملی ثبتشده روی پرونده پیداشده مطابقت داشته باشد. اگر پرونده پیداشده از قبل به یک پرونده گمشده متصل باشد، پرونده جدیدی ساخته نمیشود و همان پرونده مرتبط برگردانده میشود.
| پارامتر | توضیح | نوع |
|---|---|---|
foundCaseId | شناسه پرونده پیداشده (الزامی) | Guid |
ownerName | نام مالک (الزامی) | string |
ownerLastName | نام خانوادگی مالک (الزامی) | string |
ownerNationalId | کد ملی مالک (الزامی) | string |
ownerPhoneNumber | شماره موبایل مالک (الزامی) | string |
پاسخ این متد از ساختار مشترک پیام پیروی میکند.
در موفقیت، result شامل شناسه و شماره پرونده مرتبط و پیام خروجی است.
| فیلد خروجی | توضیح |
|---|---|
result.caseId | شناسه پرونده گمشدهٔ ایجادشده (یا پرونده مرتبط موجود) |
result.caseNumber | شماره پرونده |
result.content | پیام خروجی |
isSuccessful برابر false و resultCode برابر
2 (WithError) است. نمونه پیامها: پرونده پیداشده یافت نشد، کد ملی مطابقت ندارد،
پرونده باید از نوع پیداشده باشد، پرونده پیداشده غیرفعال است، یا وضعیت پرونده پیداشده برای ثبت مالک مناسب نیست.
اگر پرونده از قبل متصل باشد، همان پرونده مرتبط برمیگردد.
جستجو بر اساس کد ملی و نوع پرونده انجام میشود. حداکثر ۱۰ نتیجه برگردانده میشود.
| پارامتر | توضیح | نوع |
|---|---|---|
nationalId | کد ملی (الزامی) | string |
type | نوع پرونده: found یا lost (بدون حساسیت به حروف بزرگ/کوچک) | string |
پاسخ این متد از ساختار مشترک پیام پیروی میکند
و فهرست نتایج را در آرایهٔ results برمیگرداند.
| فیلد نتیجه | توضیح |
|---|---|
caseId | شناسه پرونده |
caseNumber | شماره پرونده |
caseCategoryTitle | عنوان دستهبندی پرونده |
content | پیام خروجی |
resultCode برابر 1 (Ok) میماند ولی
isSuccessful برابر false است و یک آیتم با پیام
«متاسفانه پرونده ای با این اطلاعات در دیجی فایند وجود ندارد.» در results قرار میگیرد.
مقدار نامعتبر برای type با resultCode = 2 و پیام «نوع جستجو نادرست است!» برمیگردد.
متدهای ثبت پرونده، ثبت مالک و جستجو مشمول محدودیت نرخ هستند.
درخواستهای POST ثبت پرونده و ثبت مالک باید هدر الزامی Idempotency-Key را داشته باشند
تا از ثبت تکراری جلوگیری شود.
محدودیت نرخ دریافت و رفرش توکن در بخش احراز هویت آمده است.
درخواستهای POST ثبت پرونده و ثبت مالک، و همچنین GET جستجو، مشمول محدودیت نرخ هستند. سرویسهای پیشنیاز (استان، شهر، …) محدود نمیشوند.
| گروه | سقف پیشفرض |
|---|---|
| ثبت پرونده و ثبت مالک (POST) | ۱۰ درخواست در ۶۰ ثانیه (بهازای کاربر احراز هویتشده؛ در غیر این صورت IP) |
| GET جستجو | ۳۰ درخواست در ۶۰ ثانیه |
429 و هدر Retry-After
(ثانیه تا پنجرهٔ بعدی) برمیگردد. بدنه یک JSON کوتاه با فیلد errorMessage است
و از ساختار مشترک پیام پیروی نمیکند.
Idempotency-Key (الزامی روی POST)
در درخواستهای POST ثبت پرونده و ثبت مالک، ارسال هدر Idempotency-Key الزامی است.
برای هر عملیات منطقی یک کلید یکتا بفرستید و در صورت تکرار درخواست (خطا یا وقفه در شبکه) همان کلید را دوباره استفاده کنید.
نمونه: Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000
| وضعیت | رفتار |
|---|---|
| بدون هدر یا هدر خالی | HTTP 400 |
| همان کلید + همان بدنه | همان پاسخ قبلی برمیگردد و در محدودیت نرخ شمرده نمیشود |
| همان کلید + بدنهٔ متفاوت | HTTP 422 |
| همان کلید در حال پردازش | HTTP 409 |
400 و فیلد errorMessage رد میشود و از ساختار مشترک پیام پیروی نمیکند.
متدهای جستجو و ثبت مالک پاسخ را با همین ساختار برمیگردانند:
| فیلد | توضیح | نوع |
|---|---|---|
resultCode | 1 = Ok ، 2 = WithError | number |
isSuccessful | موفق بودن عملیات (پیدا شدن نتیجه یا ثبت مالک) | boolean |
errorMessage | پیام خطا در صورت رخ دادن | string |
results / result | نتیجه جستجو یا ثبت مالک | — |
{
"finderName": "امیرحسین",
"finderLastName": "هداوند",
"finderPhoneNumber": "09365093716",
"lostItemNationalCode": "",
"lostItemAniyabSerial": "12345678",
"foundItems": [
{
"id": "c277840b-c327-a3b5-0f1e-3a0c3a7c5a3e",
"properties": [
{
"id": "7d8a83e0-edf7-f20f-2000-3a0c3a7c5a3e",
"value": "مک بوک"
}
]
}
]
}
{
"ownerName": "امیرحسین",
"ownerLastName": "هداوند",
"ownerFatherName": "اسماعیل",
"ownerNationalCode": "4901289632",
"ownerAniyabSerial": "12345678",
"ownerPhoneNumber": "09365093716",
"lostDate": "2025-02-04T08:32:02.981Z",
"provinceId": "",
"cityId": "",
"region": "4",
"street": "ستارخان",
"lostItems": [
{
"id": "c277840b-c327-a3b5-0f1e-3a0c3a7c5a3e",
"properties": [
{
"id": "7d8a83e0-edf7-f20f-2000-3a0c3a7c5a3e",
"value": "مک بوک"
}
]
}
],
"rewardProductId": "7d8a83e0-edf7-f20f-2000-3a0c3a7c5a3e"
}
{
"ownerName": "امیرحسین",
"ownerLastName": "هداوند",
"ownerFatherName": "اسماعیل",
"ownerNationalCode": "4901289632",
"ownerAniyabSerial": "12345678",
"ownerPhoneNumber": "09365093716",
"phoneBrand": "اپل",
"imeI1": "359603087204549",
"imeI2": "352829096791013",
"lostDate": "2025-02-05T11:02:28.101Z",
"selectedProductId": "44ac3a11-fcfc-2145-f1cc-3a13639998ec"
}
{
"foundCaseId": "c277840b-c327-a3b5-0f1e-3a0c3a7c5a3e",
"ownerName": "امیرحسین",
"ownerLastName": "هداوند",
"ownerNationalId": "4901289632",
"ownerPhoneNumber": "09365093716"
}
{
"resultCode": 1,
"isSuccessful": true,
"errorMessage": "",
"result": {
"caseId": "8a1db491-7101-3f0b-c85e-3a0c3a7bfeed",
"caseNumber": "1403123456",
"content": "پرونده مرتبط با کد 1403123456 ثبت شد! به زودی اطلاعات یابنده فرستاده خواهد شد!"
}
}
{
"resultCode": 1,
"isSuccessful": true,
"errorMessage": "",
"results": [
{
"caseId": "c277840b-c327-a3b5-0f1e-3a0c3a7c5a3e",
"caseNumber": "1403123456",
"caseCategoryTitle": "لپ تاپ",
"content": "پرونده ای با موضوع لپ تاپ و شماره پرونده 1403123456 یافت شد."
}
]
}
{
"resultCode": 1,
"isSuccessful": false,
"errorMessage": "",
"results": [
{
"caseId": "00000000-0000-0000-0000-000000000000",
"caseNumber": "",
"caseCategoryTitle": "",
"content": "متاسفانه پرونده ای با این اطلاعات در دیجی فایند وجود ندارد."
}
]
}
برای دریافت حساب API، فعالسازی محیط تست و پشتیبانی فنی با تیم دیجی فایند تماس بگیرید.
درخواست دسترسی API