magdv/kontur-logistics

Kontur.Logistics API implementation

Maintainers

Package info

github.com/magdv/kontur-logistics

pkg:composer/magdv/kontur-logistics

Statistics

Installs: 5 678

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

1.0.14 2026-04-15 13:20 UTC

README

Внимание!!!

Библиотека пока активно редактируется и могут быть несовместимые изменения. Учтите этот момент.

Пример отправки ТРН

Надо сделать свой локальный класс для сериализатора

declare(strict_types=1);

use GuzzleHttp\Client;
use MagDv\Logistics\ClientConfig;

class LocalConfig extends ClientConfig
{
    public function getCachePath(): ?string
    {
        return 'dfdf/df/df/df'; // здесь указываем путь, куда кешируем. Не обязательно, но желательно. Влияет на скорость
    }

    public function getIsDebug(): bool
    {
        return false; // тут надо указать, включать ли дебаг в дев режиме можете включить, чтобы видеть ошибки
    }

    public function getUrl(): string
    {
        return 'URL к апи';
    }

    public function getApiKey(): string
    {
        return 'apiKey';
    }

    public function getClient(): HttpClientInterface
    {
         // PSR-18 совместимый клиент
        return new Client();
    }
}
        $request = new SendWaybillRequest();
        $request->waybill = 'xml content';
        $request->waybillFileName = 'name.xml';
        $request->waybillSignFileName = 'sign_name.sig';
        $request->waybillSign = 'sig_content';

        $logistics = new LogisticsDocuments(new LocalConfig());
        $response = $logistics->sendWaybill($request);

        // Текущий статус ответа
        echo $response->statusCode;
        // Проверка, что удачный запрос
        echo $response->isOk();

        // Проверка статуса и вывод ошибки
        if (!$response->isOk()) {
         echo $response->error->message;
        }

        $response->transportationId;

Сделаны и протестированы методы

Минтранс

  • GET v1/mintransgateway/uuid

Документы (Транспортные накладные)

  • POST v1/documents/waybill — Отправка ТРН
  • POST v1/documents/waybill/draft — Черновик документа

Перевозки

  • GET v1/transportations — Список перевозок
  • GET v1/transportations/{id} — Информация о перевозке
  • GET v1/transportations/{id}/print-form — Печатная форма ТРН
  • GET v1/transportations/{id}/titles/{titleId} — Титул грузополучателя
  • GET v1/transportations/{id}/full-docflow — Полный документооборот перевозки
  • PUT v1/transportations/{id}/archive — Архивация/разархивация перевозки
  • POST v1/transportations/documents/draft — Черновик документов для перевозки

Организации

  • GET v1/organizations/requisites — Реквизиты организации

Работа с ошибками

Класс Error содержит метод getAllErrorMessagesByJsonString(), который возвращает полный список ошибок в JSON-формате:

if (!$response->isOk()) {
    // Отдельное сообщение
    echo $response->error->message;
    
    // Все ошибки в JSON
    echo $response->error->getAllErrorMessagesByJsonString();
}