Список контрагентов
С помощью API Диадока можно получать список контрагентов, приглашать контрагентов к сотрудничеству и прекращать с ними отношения. Действия, выполненные в веб-интерфейсе и через API, зеркальны и отражаются в обоих сервисах.
Если ваш список контрагентов небольшой и редко изменяется, настройте его через веб-интерфейс, а потом используйте в интеграционном решении. Это сэкономит время при разработке и поддержке интеграции.
Получение списка контрагентов
Чтобы получить весь список контрагентов, используйте метод GetCounteragents (V3).
Пример HTTP-запроса метода GetCounteragents:
GET /V3/GetCounteragents?myBoxId={{myBoxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Пример тела ответа метода GetCounteragents:
{
"TotalCount": 1,
"Counteragents": [
{
"LastEventTimestamp": "2024-08-06T12:36:38.8979088Z",
"IndexKey": "40623A7CD898B2EA038D201F602A644F91B1B7AAD54CFAF3",
"Organization": {
"OrgIdGuid": "72c3b5bf-3a9f-4fb5-a3ef-112cb2b3a8dc",
"OrgId": "72c3b5bf-3a9f-4fb5-a3ef-112cb2b3a8dc",
"Inn": "9147414342",
"Kpp": "757645784",
"FullName": "Ромашка",
"ShortName": "Ромашка",
"JoinedDiadocTreaty": true,
"Boxes": [
{
"BoxId": "2a208d032a604f6491b1b7aad54cfaf3@diadoc.ru",
"BoxIdGuid": "2a208d03-2a60-4f64-91b1-b7aad54cfaf3",
"Title": "Ромашка",
"InvoiceFormatVersion": "v5_02",
"EncryptedDocumentsAllowed": false
}
],
"Ogrn": "9130523523154",
"FnsParticipantId": "2BM-9147414342-757645784-202407101104400484330",
"Address": {
"RussianAddress": {
"ZipCode": "620142",
"Region": "66",
"City": "Екатеринбург",
"Street": "Сажинская",
"Building": "11"
},
"AddressCode": ""
},
"Departments": [],
"IfnsCode": "6174",
"IsPilot": false,
"IsActive": true,
"IsTest": false,
"IsBranch": false,
"IsRoaming": false,
"IsEmployee": false,
"InvitationCount": 0,
"SearchCount": 0,
"Sociability": "AllOrganizations",
"IsForeign": false,
"HasCertificateToSign": true,
"OrganizationType": "Juridical",
"IsOwner": false
},
"CurrentStatus": "IsMyCounteragent",
"LastEventTimestampTicks": 638585445988979088,
"MessageToCounteragent": "Примите приглашение к сотрудничеству",
"InvitationDocumentId": {
"MessageId": "215a68d5-28a0-4c6a-b9ec-cdba1530fd49",
"EntityId": "ad810ad2-8d4f-4fd9-9321-5359dfc0a37a"
},
"CounteragentGroupId": "ecd591dd-b56f-4178-ab4a-8a5532f231f7"
}
],
"TotalCountType": "Equal"
}
Если вам нужно получить список только тех контрагентов, с которыми вы состоите в партнерских отношениях, используйте дополнительный параметр counteragentStatus в значении IsMyCounteragent.
Приглашение контрагента к сотрудничеству
Чтобы пригласить контрагента к сотрудничеству, используйте метод AcquireCounteragent (V3).
Вызовите метод AcquireCounteragent (V3). Он отправит асинхронный запрос на установление отношений сотрудничества и вернет в ответе идентификатор операции, с помощью которого вы сможете проверить, успешно ли выполнена операция.
Если идентификатор ящика контрагента неизвестен, его можно получить с помощью метода GetOrganizationsByInnKpp: в ответе метод вернет структуру Organization, в поле
Boxesкоторой будет храниться идентификатор ящика контрагента. Этот идентификатор можно передать в теле запроса методаAcquireCounteragent.Пример HTTP-запроса метода AcquireCounteragent:
POST /V3/AcquireCounteragent?myBoxId={{boxId}} HTTP/1.1 Host: diadoc-api.kontur.ru Authorization: Bearer {{access_token}}Пример тела запроса метода AcquireCounteragent:
{ "BoxId": "{{counteragentBoxId}}", "MessageToCounteragent": "Примите приглашение к сотрудничеству", "InvitationDocument": { "FileName": "invitation", "SignedContent": { "Content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0...NC50Ls+", // содержимое XML-файла в кодировке base-64 "Signature": "MIIN5QYJKoZIhvcNAQcCoIIN1jCCDdIA...kA9MJfsplqgW", // содержимое файла подписи в кодировке base-64 } } }
Пример тела ответа метода AcquireCounteragent:
{ "TaskId": "997818e1-9420-4f8f-857f-c86fb070d0a7" }
Вызовите метод AcquireCounteragentResult (V2), передав ему в качестве параметра идентификатор, полученный на предыдущем этапе. В ответе метод вернет информацию об отправленном приглашении.
Пример HTTP-запроса метода AcquireCounteragentResult:
GET /V2/AcquireCounteragentResult?taskId=997818e1-9420-4f8f-857f-c86fb070d0a7 HTTP/1.1 Host: diadoc-api.kontur.ru Authorization: Bearer {{access_token}}Пример тела ответа метода AcquireCounteragentResult:
{ "BoxId": "1f208d03-2a60-4f64-91b1-b7aad54cfaf3", "InvitationDocumentId": { "MessageId": "88d108be-27ec-4808-8a38-8062e7cf4988", "EntityId": "ce1d22da-f9e8-4c4c-af34-09bc94ad1fdd" } }
Когда вы отправите контрагенту приглашение к сотрудничеству, он появится в списке контрагентов в статусе IsInvitedByMe. После того, как он примет приглашение, его статус изменится на IsMyCounteragent.
Разрыв отношений с контрагентом
Чтобы разорвать партнерские отношения с контрагентом, используйте метод BreakWithCounteragent (V2).
Пример HTTP-запроса метода BreakWithCounteragent:
POST /V2/BreakWithCounteragent?myBoxId={{myBoxId}}&counteragentBoxId={{counteragentBoxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Статус контрагента в списке контрагентов изменится на IsRejectedByMe.