3.2.4.3. Метод CreateDraft

 
Метод предназначен для создания черновика ТКТ с электронным документом.
При использовании этого метода все электронные документы должны быть упакованы в ТКТ.

BaseURL

Тестовый:
Продуктовый:
 

Авторизация

Для авторизации используются заголовки Integrator-Id и Assistant-Key.
 

Метод запроса и endpoint

POST {{BaseURL}}/1.3/api/createdraft/{{containername}}
Переменная containername - это название контейнера, в который отправляется файл. Может иметь любое значение.
 

Заголовки запроса

Integrator-Id: {{IntId}}
Assistant-Key: {{token}}
Content-type: application/zip
 

Пример тела запроса

Тело запроса состоит из ТКТ в двоичном (binary) формате.
 

Описание заголовков и параметров запроса

Заголовки

Заголовок
Описание
Integrator-Id
 
Идентификатор интеграционного решения.
Формат идентификатора:
COMPANY_AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
Assistant-Key
 
Маркер временного доступа (Authorization token), который можно получить, используя методы авторизации.
Content-type
MIME тип ресурса (тип передаваемого контента).
 

Query параметры

У запроса нет query параметров.
 

Параметры тела запроса

Тело запроса состоит из ТКТ в двоичном (binary) формате.
 

Пример запроса curl

curl --location 'https://api-invoice.taxcom.ru/v1.3/API/CreateDraft/ТКТ.zip' \
--header 'Integrator-Id: {{IntID}}' \
--header 'Assistant-Key: {{token}}' \
--header 'Content-Type: application/zip' \
--data '@/{{filePath}}'

Заголовки ответа

API-Version: {{API-Version}}
X-AspNet-Version: {{ASP-version}}
LB: {{libraryVersion}}
Content-Type: {{contentType}}
 

Пример тела успешного ответа (200 OK)

При успешном ответе тело ответа отсутствует.
 

Пример тела ответа с ошибкой

{
    "Details": "В контейнере отсутствуют файлы, указанные в meta.xml",
    "AdditionalData": "Файл в контейнере, отмеченный как тело документа, не найден или оказался пустым: Invoice/ON_NSCHFDOPPR_2AL-6A53EC3E-D4FC-4B7F-92AF-5FDE54E84FA6-00000_2AL-3F398DB4-6472-45BD-A414-CABCF05C77CE-00000_20241226_76D8F549-A60E-404F-A8A0-02C01A7435ED.xml",
    "ApiErrorCode": 2105,
    "CommonDescription": "Некорректный транспортный контейнер",
    "DocflowInfo": null,
    "StatusCode": 400
}

Описание заголовков и параметров ответа

Заголовки

Заголовок
Описание
API-Version
Версия API.
X-AspNet-Version
Версия ASP.NET технологии, поддерживающей веб-приложение.
LB
Версия библиотеки.
Content-Type
Необязательный, присутствует только в ответе с ошибкой.
MIME тип ресурса (тип передаваемого контента)
 

Параметры тела ответа

Параметр
Тип
Описание
Details
string
Необязательный.
Описание ошибки.
AdditionalData
string
Необязательный.
Дополнительная информации об ошибке.
ApiErrorCode
integer
Необязательный.
Код ошибки Такском-Доклайнз. Полный список кодов ошибок здесь.
CommonDescription
string
Необязательный.
Сокращенное описание ошибки.
DocflowInfo
object
Необязательный.
Информация о ТКТ, в процессе работы с которым произошла ошибка.
 
AdditionalDocId
array
Необязательный.
Массив с guid дополнительных документов ТКТ, которые переданы в соответствующем атрибуте в meta.xml.
 
DocflowId
string (guid)
Необязательный.
Идентификатор документооборота.
 
ExternalId
string
Необязательный.
Имя электронного документа, предназначенного к передаче.
 
Receiver
string (uuid)
Необязательный.
Идентификатор участника-получателя ЭДО.
 
ReglamentCode
string
Необязательный.
Тип документа регламента, переданный в соответствующем атрибуте в meta.xml.
 
ResignRequired
string (boolean)
Необязательный.
Указание требования переподписи.
 
Sender
string (uuid)
Необязательный.
Идентификатор участника-отправителя ЭДО.
 
TransactionCode
string
Необязательный.
Код транзакции Такском-Доклайнз.
 
Type
string
Необязательный.
Тип документа (значение атрибута Name тега Type в card.xml).
StatusCode
integer
Необязательный.
HTTP код.
 

Пример кода C#

 
 
public void CreateDraft(string containerPath)
{
    try
    {
        byte[] postData = File.ReadAllBytes(containerPath);
    }
    catch (Exception ex)
    {
        Assert.Fail ("File not found");
    }
 
    string containerName = Path.GetFileName(containerPath);
           
   // Call CreateDraft method to send the read TTC
    var request = (HttpWebRequest)WebRequest.Create(API_srv + "API/CreateDraft/" + containerName);
    request.Headers.Add("Integrator-Id", "vendor_id");
    request.Headers.Add("Assistant-Key", @"decryptedToken");
    request.Method = "POST";
    request.ContentType = "application/zip";
    request.ContentLength = postData.Length;
    using (var requestStream = request.GetRequestStream())
    {
        requestStream.Write(postData, 0, postData.Length);
    }
    // Response
    var response = (HttpWebResponse)request.GetResponse();
    Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);
}