ИС "Такском-Доклайнз"                  ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
×
3.2.3.5. Метод GetContacts
 
Метод GetContacts предназначен для получения из системы Такском-Доклайнз актуального списка статусов приглашений к обмену электронными документами, отправленных или полученных данным абонентом, а также информации о подразделениях и сотрудниках организации с включенной опцией "Показывать контрагентам при заполнении данных получателя".
В результате вызова метода будет получен XML файл со статусами приглашений к обмену электронными документами и информацией о подразделениях и сотрудниках организации с включенной опцией "Показывать контрагентам при заполнении данных получателя".
HTTP-запрос
HTTP-method: GET
Адрес запроса (URI)
https://<server>.taxcom.ru/v<version>/API/GetContacts
Заголовок запроса
Integrator-Id
Идентификатор интеграционного решения. Формат этого идентификатора:
COMPANY_AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
Assistant-Key
Маркер временного доступа.
 
Метод GetContacts  можно вызывать не чаще, чем один раз в минуту. Нарушение этого условия приведёт к ошибке 2209 "Превышена частота обращений в установленный интервал времени".
Метод GetContacts позволяет получить не более 1000 контактов. Если контактов больше, то следует использовать метод GetContactListUpdates (см. п. 3.2.3.2)
 
HTTP- ответ
XML файл со статусами приглашений к обмену электронными документами, сведениями о подразделениях и сотрудниках организации с включенной опцией "Показывать контрагентам при заполнении данных получателя".
Описание этого файла представлено XSD схемой Contacts.xsd в архиве Schemas_B2BContainer.zip (см. ссылку "Схемы XSD транспортного контейнера Такском" в п. Полезные ссылки), а также в п. 2.1.1.3. XML файлы списка контрагентов.
Пример
<?xml version="1.0" encoding="windows-1251"?>
<Contacts Asof="2016-06-02T16:02:25.597" xmlns="http://api-invoice.taxcom.ru/contacts">
              <Contact>
                             <State Code="Accepted" ErrorCode="" Changed="2015-09-08T13:45:02.137">Контакт подтвержден, обмен документами доступен</State>
                             <Name>Индивидуальный предприниматель Нестриженко Филофей Дементьевич</Name>
                             <Inn>787419301376</Inn>
                             <Login>nestr</Login>
                             <EDXClientId>2AL-93D14F72-E2A4-4DE6-8859-03B70C547106-00000</EDXClientId>
                             <Email />
                             <Agreements />
                             <OrganizationStructure>
                                           <RootDepartment ID="e33af870-d0d4-46cf-828a-fe1205c1f438" Name="Головное подразделение">
                                                          <SubDepartments />
                                                          <Employees>
                                                                         <Employee ID="7fc990f9-08c9-44c9-b2a0-ccf8a76cace4">
                                                                                        <Name LastName="Иванов" FirstName="Петр" />
                                                                                        <Position />
                                                                         </Employee>
                                                          </Employees>
                                           </RootDepartment>
                             </OrganizationStructure>
              </Contact>
              <TemplateID>00000000-0000-0000-0000-000000000000</TemplateID>
</Contacts>
 
Пример кода C#
public void GetMyContactList()
{
  const string API_srv = @"https://api.taxcom.ru/v1.3/";
  XmlDocument XmlResponse = null;
 
  try
  {
      var request = (HttpWebRequestWebRequest.Create(API_srv + "API/GetContacts");
      request.Headers.Add("Assistant-Key""session token");
      request.Headers.Add("Integrator-Id""vendor_id");
      request.Method = "GET";
 
      using (var response = request.GetResponse())
      using (var responseStream = response.GetResponseStream())
      using (var ms = new MemoryStream())
      using (var reader = new StreamReader(ms))
      {
          if (responseStream != null) responseStream.CopyTo(ms);
          ms.Position = 0;
          XmlResponse=new XmlDocument();
          var responsString = reader.ReadToEnd();
          if(string.IsNullOrWhiteSpace(responsString))
          {
              return;
          }
          XmlResponse.LoadXml(responsString);
          var contact = FindXPathInXml(XmlResponse, "//k:Contact/k:EDXClientId");
      }
  }
  catch (WebException exception)
  {
      Assert.Fail(exception.ToString());
  }
  catch (Exception exception)
  {
      Assert.Fail(exception.ToString());
  }
}
public static string FindXPathInXml(XmlDocument xmldoc, string xpath)
{
  var ns = new XmlNamespaceManager(xmldoc.NameTable);
  ns.AddNamespace("m""http://api-invoice.taxcom.ru/meta");
  ns.AddNamespace("c""http://api-invoice.taxcom.ru/card");
  ns.AddNamespace("k""http://api-invoice.taxcom.ru/contacts");
 
  try
  {
      return xmldoc.SelectSingleNode(xpath, ns).Value;
  }
  catch (Exception)
  {
      return null;
  }
 }