Список контрагентов

С помощью 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).

  1. Вызовите метод 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"
    }
    
  2. Вызовите метод 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.