SearchDocflows (V5)
Выполняет поиск документов по строке запроса, корректно отображая данные для многотитульных документов.
- POST /V5/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:
Тело ответа содержит список документов, представленный структурой SearchDocflowsResponseV5.
В ответе вернутся только те документы, к которым у пользователя есть доступ.
Метод разбивает строку запроса SearchDocflowsRequest.QueryString по следующим правилам:
Строка разделяется на токены по пробелам и разделительным символам. В ответ метода попадают документы, у которых хотя бы один из полученных токенов содержится в номере, дате, имени файла или других данных.
Если строка запроса имеет вид «ключ: значение», то метод разбивает строку в соответствии с форматом YAML. В ответ метода попадут документы, которые содержат указанную пару «ключ-значение» среди пользовательских данных, привязанных к документу.
Список документов Documents в ответе SearchDocflowsResponseV5 может содержать не больше 100 элементов. Поэтому:
Если найденных документов меньше 100, то метод вернет их полностью.
Если найденных документов больше 100, то в ответе
Documentsвернутся только первые 100 элементов.В этом случае получить весь список найденных документов можно постранично. Для этого вызывайте метод
SearchDocflowsс теми же параметрами запроса и с указанием параметраFirstIndexструктуры запроса SearchDocflowsRequest до тех пор, пока список документов не будет вычитан полностью. В качестве параметраFirstIndexнужно указывать индект документа, с которого нужно начать очередную страницу.
При разработке интеграционного решения учитывайте, что в очередной странице может не быть ни одного документа.
Примеры использования
Пример HTTP-запроса:
POST /V5/SearchDocflows?boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Пример тела запроса:
{
"QueryString": "FileName.txt",
"Scope": "SearchScopeOutgoing"
}
Пример тела ответа:
{
"Documents": [
{
"DocumentId": {
"MessageId": "23f589d2-4200-4b90-b0cb-3c06317eedec",
"EntityId": "f7bb297f-9f8d-4e73-9377-a2fe98e3c608"
},
"LastEvent": {
"EventId": "afd1d023-65b4-11f1-8000-00007d011913",
"Timestamp": {
"DateTime": "2026-06-11T16:43:34.3477795Z",
"Ticks": 639167930143477795
}
},
"DocumentInfo": {
"FullVersion": {
"TypeNamedId": "Nonformalized",
"Function": "default",
"Version": "v1"
},
"MessageType": 1,
"WorkflowId": 1,
"Participants": {
"Participants": [
{
"BoxId": "6256882d-c1d3-4b4b-87d9-8956636f34cb",
"DepartmentId": "00000000-0000-0000-0000-000000000000",
"Role": "default:sender",
"Flags": {
"IsRoaming": false,
"IsCrossborder": false,
"IsForeign": false
},
"Type": 1,
"IsCurrentBox": true
},
{
"BoxId": "d8624258-84ca-4759-9e89-9ec1417fcc62",
"DepartmentId": "00000000-0000-0000-0000-000000000000",
"Role": "default:recipient",
"Flags": {
"IsRoaming": false,
"IsCrossborder": false,
"IsForeign": false
},
"Type": 3,
"IsCurrentBox": false
}
]
},
"DocumentDirection": 2,
"DepartmentId": "00000000-0000-0000-0000-000000000000",
"CustomDocumentId": "",
"Metadata": [
{
"Key": "FileName",
"Value": "FileName.txt"
},
{
"Key": "DocumentNumber",
"Value": "123"
},
{
"Key": "DocumentDate",
"Value": "2017-09-27T00:00:00.0000000Z"
}
],
"CustomData": [
],
"DocumentLinks": {
"InitialIdsList": {
"Count": 0
},
"SubordinateIdsList": {
"Count": 0
},
"InitialIds": [
],
"SubordinateIds": [
]
},
"PacketInfo": {
"LockModeValue": 1,
"LockMode": 1,
"PacketId": "",
"AddedAt": null
},
"IsRead": true,
"IsDeleted": false,
"IsInvitation": false,
"LetterInfo": {
"ForwardDocumentEventsList": {
"Count": 0
},
"IsEncrypted": false,
"ForwardDocumentEvents": [
],
"IsTest": false
},
"DraftInfo": null,
"TemplateInfo": null,
"Origin": null,
"EditingSettingId": "",
"HasUnreadOutOfWorkflowUniversalMessages": false
},
"Docflow": {
"Titles": [
{
"TitleIndex": 0,
"Version": {
"EntityId": "f7bb297f-9f8d-4e73-9377-a2fe98e3c608",
"Revision": 1,
"Status": 1,
"PreviousVersionEntityId": ""
},
"Author": {
"BoxId": "6256882d-c1d3-4b4b-87d9-8956636f34cb",
"DepartmentId": "00000000-0000-0000-0000-000000000000",
"Role": "default:sender",
"Flags": {
"IsRoaming": false,
"IsCrossborder": false,
"IsForeign": false
},
"Type": 1,
"IsCurrentBox": true
},
"AuthorSigning": {
"IsFinished": true,
"Status": 4,
"Title": {
"Attachment": {
"Entity": {
"EntityId": "f7bb297f-9f8d-4e73-9377-a2fe98e3c608",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:31.7537038Z",
"Ticks": 639167930117537038
},
"Content": {
"Size": 105,
"Data": null
}
},
"AttachmentFilename": "FileName.txt",
"DisplayFilename": ""
},
"Signature": {
"Cms": {
"EntityId": "16275169-2820-4c27-a910-97097bcd01e4",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:31.7537038Z",
"Ticks": 639167930117537038
},
"Content": {
"Size": 3477,
"Data": null
}
},
"CadesT": {
"EntityId": "af0b1900-1869-4ff2-8c64-a7001b4d710c",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"Content": {
"Size": 7305,
"Data": null
}
},
"SignerBoxId": "6256882dc1d34b4b87d98956636f34cb@diadoc.ru",
"SignerDepartmentId": "00000000-0000-0000-0000-000000000000",
"IsValid": true,
"VerificationResult": null,
"DeliveredAt": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"PowerOfAttorney": null,
"PowerOfAttorneyAttachmentStatus": {
"StatusName": 3,
"Comment": "Документ подписан сертификатом другого ЮЛ/ИП, возможно, требуется МЧД"
},
"SignatureTypeInfo": {
"SignatureType": 2,
"QualifiedDetails": {
"SignatureSource": 0
},
"NonQualifiedDetails": null
}
},
"Comment": {
"EntityId": "0d82226b-e34f-4111-869f-972a204bb60c",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:31.7537038Z",
"Ticks": 639167930117537038
},
"Content": {
"Size": 216,
"Data": null
}
},
"ContentTypeId": "nonformalized_01"
},
"OperationResult": {
"WellKnown": 1
}
},
"ParticipantDocflows": [
{
"Participant": {
"BoxId": "d8624258-84ca-4759-9e89-9ec1417fcc62",
"DepartmentId": "00000000-0000-0000-0000-000000000000",
"Role": "default:recipient",
"Flags": {
"IsRoaming": false,
"IsCrossborder": false,
"IsForeign": false
},
"Type": 3,
"IsCurrentBox": false
},
"TitleDelivery": {
"Delivery": {
"Status": 2,
"SentAt": {
"DateTime": "2026-06-11T16:43:31.7537038Z",
"Ticks": 639167930117537038
},
"DeliveredAt": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
}
},
"Confirmation": {
"IsFinished": true,
"ConfirmationAttachment": {
"Attachment": {
"Entity": {
"EntityId": "a1c1073d-23bb-4848-9c14-d5ec830148cc",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"Content": {
"Size": 5525,
"Data": null
}
},
"AttachmentFilename": "DP_PDPOL_2BM-e7959de3-d347-422a-aaf2-1f920c31dfd2_2BM_20260611_a1c1073d-23bb-4848-9c14-d5ec830148cc.xml",
"DisplayFilename": "Подтверждение даты получения"
},
"Signature": {
"Cms": {
"EntityId": "72fd3b5f-2a25-417d-a90b-f5716a6bb42b",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"Content": {
"Size": 3058,
"Data": null
}
},
"CadesT": {
"EntityId": "9feea37e-e6ff-4d8c-bb92-dd6e551b8cb7",
"CreationTimestamp": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"Content": {
"Size": 6886,
"Data": null
}
},
"SignerBoxId": "00000000000000000000000000000000@diadoc.ru",
"SignerDepartmentId": "00000000-0000-0000-0000-000000000000",
"IsValid": true,
"VerificationResult": null,
"DeliveredAt": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"PowerOfAttorney": null,
"PowerOfAttorneyAttachmentStatus": {
"StatusName": 2,
"Comment": ""
},
"SignatureTypeInfo": {
"SignatureType": 2,
"QualifiedDetails": {
"SignatureSource": 0
},
"NonQualifiedDetails": null
}
},
"Comment": null,
"ContentTypeId": "send_confirmation_133_01_03"
},
"ConfirmedAt": {
"DateTime": "2026-06-11T16:43:32.8214445Z",
"Ticks": 639167930128214445
},
"Receipt": null,
"RoamingConfirmation": null
},
"RoamingNotification": null
},
"Response": {
"IsFinished": false,
"Status": 2,
"Signature": null,
"Rejection": null,
"Confirmation": null,
"Delivery": null
},
"Receipt": null
}
],
"OutOfWorkflowUniversalMessageDocflow": {
"OutOfWorkflowUniversalMessagesList": {
"Count": 0
},
"Messages": [
]
}
}
],
"AmendmentRequests": [
],
"Revocation": null,
"OuterDocflows": [
],
"DocflowStatus": {
"PrimaryStatus": {
"Severity": "Warning",
"StatusText": "Ожидается подпись контрагента"
},
"SecondaryStatus": null,
"PowerOfAttorneyGeneralStatus": {
"ErrorsList": {
"Count": 0
},
"Severity": 3,
"StatusNamedId": 5,
"StatusText": "Не приложена доверенность",
"Errors": [
],
"ValidationProtocol": null,
"OperationError": null
},
"GeneralRoamingSendingStatus": null
},
"TtGisFixation": null,
"Resolution": {
"IsFinished": true,
"ResolutionStatus": 9,
"CurrentResolutionEntityId": "16275169-2820-4c27-a910-97097bcd01e4",
"ResolutionEntities": {
"RequestsList": {
"Count": 0
},
"ResolutionsList": {
"Count": 0
},
"ApprovementSignaturesList": {
"Count": 0
},
"SignatureDenialsList": {
"Count": 0
},
"Requests": [
],
"Resolutions": [
],
"ApprovementSignatures": [
],
"SignatureDenials": [
]
}
}
}
}
],
"HaveMoreDocuments": false
}
Пример запроса с использованием C# SDK:
SearchDocflowsResponseV5 SearchDocflowsV5(string authToken, string boxId, SearchDocflowsRequest request);
Постраничное получение документов, содержащих строку «Пример»:
var request = new SearchDocflowsRequest { QueryString = "Пример" };
while (true)
{
var response = api.Docflow.SearchDocflowsV5(token, boxId, request);
Console.Out.WriteLine("Fetched {0} documents", response.Documents.Count);
if (!response.HaveMoreDocuments)
break;
request.FirstIndex += response.Documents.Count;
}
См. также
- Инструкции:
- Методы для работы с документооборотом:
GetDocflowEvents (V4) — возвращает список событий, произошедших с документами
GetDocflowEvents (V5) — возвращает список событий, произошедших с документами, корректно отображая данные для многотитульных документов
GetDocflows (V4) — возвращает список документов с информацией о документообороте по их идентификаторам
GetDocflows (V5) — возвращает список документов с информацией о документообороте по их идентификаторам, корректно отображая данные для многотитульных документов
GetDocflowsByPacketId (V4) — возвращает список документов, находящихся в пакете
GetDocflowsByPacketId (V5) — возвращает список документов, находящихся в пакете, корректно отображая данные для многотитульных документов
SearchDocflows (V4) — выполняет поиск документов по строке запроса
SearchDocflows (V5) — выполняет поиск документов по строке запроса, корректно отображая данные для многотитульных документов