Skip to main content
O SUOT ANTT SDK é framework-agnóstico por padrão: ele funciona em qualquer projeto PHP sem depender de containers, facades ou convenções de framework. O pacote suot/antt-laravel é um bridge opcional que integra o SDK ao ecossistema Laravel, adicionando ServiceProvider com auto-discovery, injeção de dependência automática e configuração centralizada via config/suot-antt.php.

Pré-requisitos

  • Laravel 10 ou 11 instalado e funcional
  • Pacotes ANTT já instalados (suot/antt-core e ao menos um módulo — suot/antt-ciot ou suot/antt-rntrc)
  • Consulte a página de instalação se ainda não configurou os pacotes base

Instalação e configuração

1

Instale o pacote do bridge

composer require suot/antt-laravel
O Laravel detecta e registra o SuotAnttServiceProvider automaticamente via Package Auto-Discovery. Nenhuma alteração em config/app.php é necessária.
2

Publique o arquivo de configuração

php artisan vendor:publish --tag=suot-antt-config
Isso cria o arquivo config/suot-antt.php no seu projeto com todas as opções documentadas.
3

Configure as variáveis de ambiente

Adicione as seguintes entradas ao seu arquivo .env. Substitua os valores de placeholder pelos dados reais do transportador:
SUOT_ANTT_ENV=homologacao
SUOT_ANTT_CNPJ=00.000.000/0001-00
SUOT_ANTT_TOKEN=seu-token-antt-placeholder
VariávelValores aceitosDescrição
SUOT_ANTT_ENVhomologacao, producaoAmbiente de execução
SUOT_ANTT_CNPJCNPJ formatadoCNPJ do transportador
SUOT_ANTT_TOKENstringToken de acesso à ANTT
Nunca defina SUOT_ANTT_ENV=producao em ambientes de desenvolvimento ou staging. Registros realizados em produção têm efeito jurídico imediato.
4

Use os handlers via injeção de dependência

Com o bridge instalado, os handlers ficam disponíveis para injeção automática em controllers, services e jobs:
<?php

namespace App\Services;

use Suot\Antt\Ciot\Handler\CiotHandler;
use Suot\Antt\Ciot\Command\RegistrarCiotCommand;
use Suot\Antt\Rntrc\Handler\RntrcHandler;
use Suot\Antt\Rntrc\Command\ConsultarRntrcCommand;
use Suot\Antt\Core\ValueObject\Cnpj;

final class TransporteService
{
    public function __construct(
        private readonly CiotHandler $ciotHandler,
        private readonly RntrcHandler $rntrcHandler,
    ) {}

    public function validarTransportador(string $cnpj): bool
    {
        $result = $this->rntrcHandler->consultar(
            command: new ConsultarRntrcCommand(
                cnpj: new Cnpj($cnpj),
            ),
        );

        return $result->isSuccess()
            && $result->getData()->situacaoCadastral === 'ATIVO';
    }
}
Em um controller:
<?php

namespace App\Http\Controllers;

use App\Services\TransporteService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

final class TransporteController extends Controller
{
    public function __construct(
        private readonly TransporteService $transporteService,
    ) {}

    public function verificar(Request $request): JsonResponse
    {
        $ativo = $this->transporteService->validarTransportador(
            cnpj: $request->string('cnpj')->toString(),
        );

        return response()->json(['ativo' => $ativo]);
    }
}

Auto-discovery

O SuotAnttServiceProvider é registrado automaticamente pelo Laravel via Composer package auto-discovery. Não é necessário adicioná-lo manualmente ao array providers em config/app.php.
Se o seu projeto desabilita o auto-discovery (dont-discover no composer.json), adicione Suot\\Antt\\Laravel\\SuotAnttServiceProvider manualmente ao array providers em config/app.php.