SearchDocflows (V4)
Выполняет поиск документов по строке запроса.
- POST /V4/SearchDocflows
- Query Parameters:
boxId – идентификатор ящика организации в формате GUID.
- Request Headers:
Authorization – данные, необходимые для авторизации.
- Request Body:
Тело запроса должно содержать структуру SearchDocflowsRequest.
- Status Codes:
200 OK – операция успешно завершена.
400 Bad Request – данные в запросе имеют неверный формат или отсутствуют обязательные параметры.
401 Unauthorized – в запросе отсутствует HTTP-заголовок
Authorizationили в этом заголовке содержатся некорректные авторизационные данные.402 Payment Required – у указанного ящика закончилась подписка на API.
403 Forbidden – доступ к ящику с предоставленным авторизационным токеном запрещен.
405 Method Not Allowed – используется неподходящий HTTP-метод.
500 Internal Server Error – при обработке запроса возникла непредвиденная ошибка.
- Response Body:
Тело ответа содержит список документов, представленный структурой SearchDocflowsResponseV4.
В ответе вернутся только те документы, к которым у пользователя есть доступ.
Метод разбивает строку запроса SearchDocflowsRequest.QueryString следующими способами:
Метод разбивает строку на токены по пробелам и разделительным символам. В ответ метода попадают документы, у которых хотя бы один из полученных токенов содержится в номере, дате, имени файла или других данных.
Если строка запроса имеет вид «ключ: значение», то метод разбивает строку в соответствии с форматом YAML. В ответ метода попадут документы, которые содержат указанную пару «ключ-значение» среди пользовательских данных, привязанных к документу.
Список документов Documents в ответе SearchDocflowsResponseV4 может содержать не больше 100 элементов. Поэтому:
Если найденных документов меньше 100, то метод вернет их полностью.
Если найденных документов больше 100, то в ответе
Documentsвернутся только первые 100 элементов.В этом случае получить весь список найденных документов можно постранично. Для этого вызывайте метод
SearchDocflowsс теми же параметрами запроса и с указанием параметраFirstIndexструктуры запроса SearchDocflowsRequest до тех пор, пока список документов не будет вычитан полностью. В качестве параметраFirstIndexнужно указывать индект документа, с которого нужно начать очередную страницу.
При разработке интеграционного решения учитывайте, что в очередной странице может не быть ни одного документа.
Примеры использования
Пример HTTP-запроса:
POST /V4/SearchDocflows?boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Пример тела запроса:
{
"QueryString": "FileName.png",
"Scope": "SearchScopeInbound"
}
Пример тела ответа:
{
"Documents": [
{
"DocumentId": {
"MessageId": "a73ca2e3-3d5c-4207-886c-9b854c179e15",
"EntityId": "d084afd4-ec41-4fb6-9b5b-cf3e3ac5bef7"
},
"LastEvent": {
"EventId": "2830e44e-849c-11f0-8000-0001ef016cd1",
"Timestamp": {
"Ticks": 638920434672542798
}
},
"DocumentInfo": {
"FullVersion": {
"TypeNamedId": "Nonformalized",
"Function": "default",
"Version": "v1"
},
"MessageType": "Letter",
"WorkflowId": 1,
"Participants": {
"Sender": {
"BoxId": "1f208d032a604f6491b1b7aad5445783@diadoc.ru",
"DepartmentId": "00000000-0000-0000-0000-000000000000"
},
"Recipient": {
"BoxId": "09ae254c5cd0408284de7ccb46d86532@diadoc.ru",
"DepartmentId": "00000000-0000-0000-0000-000000000000"
},
"IsInternal": false,
"IsCrossBorder": false
},
"DocumentDirection": "Inbound",
"DepartmentId": "b651ed54-04d8-4ca8-99b5-960fba733147",
"Metadata": [
{
"Key": "FileName",
"Value": "FileName.png"
}
],
"CustomData": [],
"DocumentLinks": {
"InitialIds": [],
"SubordinateIds": []
},
"PacketInfo": {
"LockMode": "None",
"PacketId": "538369b1-ad94-4c58-b562-1243c10ee3c4",
"AddedAt": {
"Ticks": 638883387238447799
}
},
"IsRead": true,
"IsDeleted": false,
"IsInvitation": false,
"LetterInfo": {
"IsEncrypted": false,
"IsTest": false
},
"EditingSettingId": ""
},
"Docflow": {
"SenderTitle": {
"IsFinished": true,
"Attachment": {
"Attachment": {
"Entity": {
"EntityId": "d084afd4-ec41-4fb6-9b5b-cf3e3ac5bef7",
"CreationTimestamp": {
"Ticks": 638803839460780611
},
"Content": {
"Size": 410764
}
},
"AttachmentFilename": "FileName.png",
"DisplayFilename": "FileName.png"
},
"Signature": {
"Cms": {
"EntityId": "e0b8adde-6328-4391-a258-a0c9feefac57",
"CreationTimestamp": {
"Ticks": 638803839460780611
},
"Content": {
"Size": 3213
}
},
"CadesT": {
"EntityId": "1322e098-9512-4585-a768-eaf442167fd6",
"CreationTimestamp": {
"Ticks": 638803839466268357
},
"Content": {
"Size": 6845
}
},
"SignerBoxId": "1f208d032a604f6491b1b7aad5445783@diadoc.ru",
"SignerDepartmentId": "00000000-0000-0000-0000-000000000000",
"IsValid": true,
"DeliveredAt": {
"Ticks": 638803839466268357
},
"PowerOfAttorneyAttachmentStatus": {
"StatusName": "PowerOfAttorneyRequired",
"Comment": "Документ подписан сертификатом физ. лица без МЧД"
}
},
"ContentTypeId": "nonformalized_01"
},
"SentAt": {
"Ticks": 638803839460780611
},
"DeliveredAt": {
"Ticks": 638803839466268357
},
"SenderSignatureStatus": "SenderSignatureCheckedAndValid"
},
"Confirmation": {
"IsFinished": true,
"ConfirmationAttachment": {
"Attachment": {
"Entity": {
"EntityId": "455b24ec-348d-4b3d-b6a7-7dc7a24e662e",
"CreationTimestamp": {
"Ticks": 638803839466268357
},
"Content": {
"Size": 5177
}
},
"AttachmentFilename": "DP_PDOTPR_2BM-6125600340-732644841-202407101103418496883_2BM_20250416_455b24ec-348d-4b3d-b6a7-7dc7a24e662e.xml",
"DisplayFilename": "Подтверждение даты отправки"
},
"Signature": {
"Cms": {
"EntityId": "00012e54-a97d-4189-a628-4b5d393999f9",
"CreationTimestamp": {
"Ticks": 638803839466268357
},
"Content": {
"Size": 3364
}
},
"CadesT": {
"EntityId": "d400db6e-c5b9-4e3e-ba26-960f595f9755",
"CreationTimestamp": {
"Ticks": 638803839466268357
},
"Content": {
"Size": 6994
}
},
"SignerBoxId": "00000000000000000000000000000000@diadoc.ru",
"SignerDepartmentId": "00000000-0000-0000-0000-000000000000",
"IsValid": true,
"DeliveredAt": {
"Ticks": 638803839466268357
},
"PowerOfAttorneyAttachmentStatus": {
"StatusName": "PowerOfAttorneyNotRequired"
}
},
"ContentTypeId": "delivery_confirmation_133_01_03"
},
"ConfirmedAt": {
"Ticks": 638803839466268357
}
},
"ResolutionEntities": {
"Requests": [],
"Resolutions": [],
"ApprovementSignatures": [],
"SignatureDenials": []
},
"OuterDocflows": [],
"OuterDocflowEntities": [],
"DocflowStatus": {
"PrimaryStatus": {
"Severity": "Info",
"StatusText": "Документооборот завершен"
},
"PowerOfAttorneyGeneralStatus": {
"Severity": "Warning",
"StatusNamedId": "IsNotAttached",
"StatusText": "Не приложена доверенность",
"Errors": []
}
}
}
}
],
"HaveMoreDocuments": false
}
Пример запроса с использованием C# SDK:
SearchDocflowsResponseV4 SearchDocflows(string authToken, string boxId, SearchDocflowsRequest request);
Постраничное получение документов, содержащих строку «Пример»:
var request = new SearchDocflowsRequest { QueryString = "Пример" };
while (true)
{
var response = api.Docflow.SearchDocflows(token, boxId, request);
Console.Out.WriteLine("Fetched {0} documents", response.Documents.Count);
if (!response.HaveMoreDocuments)
break;
request.FirstIndex += response.Documents.Count;
}
См. также
- Инструкции:
- Методы для работы с документооборотом:
GetDocflowEvents (V4) — возвращает список событий, произошедших с документами
GetDocflows (V4) — возвращает список документов с информацией о документообороте по их идентификаторам
GetDocflowsByPacketId (V4) — возвращает список документов, находящихся в пакете
SearchDocflows (V4) — выполняет поиск документов по строке запроса
- Устаревшие версии метода: