liontecnologia/ciot-php-sdk

Biblioteca PHP oficial para integração com a API AILOG CIOT. Emita, retifique, encerre e consulte Certificados de Inscrição e Operação de Transporte.

Maintainers

Package info

github.com/liontecnologia/ailog-ciot

Homepage

pkg:composer/liontecnologia/ciot-php-sdk

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-03-30 14:11 UTC

This package is auto-updated.

Last update: 2026-03-30 14:43:04 UTC


README

Latest Version on Packagist License PHP Version

Biblioteca PHP oficial para integração com a API AILOG CIOT. Permite emitir, retificar, encerrar e consultar Certificados de Inscrição e Operação de Transporte (CIOT) para transportadoras de carga.

📋 Recursos

  • ✅ Emissão de CIOT
  • ✅ Retificação de CIOT
  • ✅ Encerramento de CIOT
  • ✅ Cancelamento de CIOT
  • ✅ Consulta de CIOT
  • ✅ Consulta de Situação do Transportador
  • ✅ Consulta de Frota do Transportador
  • ✅ Tratamento robusto de erros
  • ✅ Suporte para ambientes HML e PROD

📦 Instalação

Via Composer:

composer require ailog/ciot-php-sdk

Requisitos:

  • PHP >= 7.4
  • Extensão JSON
  • Extensão cURL

🚀 Quickstart

require 'vendor/autoload.php';

use Ailog\Ciot\AilogClient;
use Ailog\Ciot\Services\CiotService;

// Inicializar cliente
$client = new AilogClient('sua_chave_api', 'HML');
$ciotService = new CiotService($client);

// Emitir CIOT
$dados = [
    "tipoViagem" => 1,
    "codigoCliente" => "PEDIDO_001",
    // ... mais dados
];

$resultado = $ciotService->emitir($dados);
echo "CIOT emitido: " . $resultado['numeroProtocoloCiot'];

📚 Documentação

Para exemplos completos e detalhados, consulte:

  • Manual Completo - Documentação técnica completa
  • Exemplos Práticos - 8 exemplos passo a passo
    • 00 - Configuração Inicial
    • 01 - Emissão de CIOT
    • 02 - Retificação de CIOT
    • 03 - Encerramento de CIOT
    • 04 - Cancelamento de CIOT
    • 05 - Consulta de CIOT
    • 06 - Consulta Situação Transportador
    • 07 - Consulta de Frota

🔧 Configuração Inicial

use Ailog\Ciot\AilogClient;
use Ailog\Ciot\Services\CiotService;
use Ailog\Ciot\Services\TransportadorService;

$apiKey = 'SUA_CHAVE_DE_ACESSO';
$environment = 'HML'; // ou 'PROD'

$client = new AilogClient($apiKey, $environment);
$ciotService = new CiotService($client);
$transportadorService = new TransportadorService($client);

1. Emissão de CIOT

Método: $ciotService->emitir($dados)

$dadosEmissao = [
    "tipoViagem" => 1, // 1 = Padrão, 3 = TAC Agregado
    "codigoCliente" => "PEDIDO_INT_001", // Seu identificador interno
    
    // Lista de Veículos
    "veiculos" => [
        [
            "placa" => "ABC1234",
            "rntrc" => "12345678"
        ],
        [
            "placa" => "XYZ9876", // Reboque se houver
            "rntrc" => "12345678"
        ]
    ],

    // Dados do Contratado (Transportador)
    "documentoContratado" => "12345678000199", // CNPJ ou CPF
    "rntrcContratado" => "12345678",
    "nomeContratado" => "TRANSPORTADORA EXEMPLO LTDA",

    // Dados do Contratante
    "documentoContratante" => "98765432000100",
    "rntrcContratante" => "87654321", // Opcional se não for transportador
    "nomeContratante" => "EMPRESA CONTRATANTE S.A.",
    "enderecoContratante" => [
        "cidade" => [
            "pais" => "Brasil",
            "uf" => "SP",
            "cidade" => "São Paulo",
            "codigoIbge" => 3550308, // Código IBGE da cidade
            "label" => "São Paulo, SP"
        ],
        "logradouro" => "Av. Paulista",
        "numero" => "1000",
        "complemento" => "Andar 5",
        "cep" => "01310-100",
        "bairro" => "Bela Vista",
        "latLng" => [
            "latitude" => -23.561684,
            "longitude" => -46.655981
        ]
    ],

    // Dados do Destinatário
    "documentoDestinatario" => "11222333000199",
    "nomeDestinatario" => "CLIENTE FINAL LTDA",
    "rntrcDestinatario" => "", // Opcional
    "enderecoDestinatario" => [
        "cidade" => [
            "pais" => "Brasil",
            "uf" => "RJ",
            "cidade" => "Rio de Janeiro",
            "codigoIbge" => 3304557
        ],
        "logradouro" => "Av. Atlântica",
        "numero" => "500",
        "complemento" => "",
        "cep" => "22010-000",
        "bairro" => "Copacabana",
        "latLng" => [
            "latitude" => -22.969442,
            "longitude" => -43.178465
        ]
    ],

    // Dados da Operação
    "codigoNaturezaCarga" => "0001", // Se não souber, enviar 0001
    
    "cidadeOrigem" => [
        "pais" => "Brasil",
        "uf" => "SP",
        "cidade" => "São Paulo",
        "codigoIbge" => 3550308
    ],
    "cepOrigem" => "01310-100",
    
    "cidadeDestino" => [
        "pais" => "Brasil",
        "uf" => "RJ",
        "cidade" => "Rio de Janeiro",
        "codigoIbge" => 3304557
    ],
    "cepDestino" => "22010-000",
    
    // Dados de Retorno (Opcional)
    "cepRetorno" => "",
    "distanciaRetorno" => 0,
    "freteRetorno" => false,

    // Detalhes da Viagem
    "dataInicioViagem" => "10/02/2026", // dd/mm/aaaa
    "dataFimViagem" => "12/02/2026",
    "distanciaPercorrida" => 430.5, // Em KM
    "veiculoAltoDesempenho" => false,

    // Valores (Float)
    "valorFrete" => 1500.00,
    "valorPedagio" => 120.50,
    "valorCombustivel" => 0.00, // Se houver adiantamento/vale
    "valorTarifas" => 5.00, // Tarifas bancárias/operacionais
    "valorImpostos" => 0.00,
    "quantidadeTarifas" => 1,
    "pesoCarga" => 15000, // Em KG

    // Dados de Pagamento
    "tipoPagamento" => "CONTA_CORRENTE", // Opções: IPEF, CONTA_CORRENTE, CONTA_POUPANCA, CONTA_DE_PAGAMENTO, OUTROS
    "codigoBanco" => "341", // Código do banco (ex: 341 Itaú)
    "agencia" => "1234",
    "numeroConta" => "56789-0",
    "cpfProprietarioConta" => "12345678900" // CPF do titular da conta
];

2. Retificação de CIOT

Método: $ciotService->retificar($dados)

$dadosRetificacao = [
    "numeroProtocoloCiot" => "1234567890123456", // Protocolo recebido na emissão
    
    // Campos que deseja alterar (exemplo: alterando veículo e valores)
    "placa" => "ABC1234", // Placa do veículo principal
    "rntrcTransportador" => "12345678",
    
    "quantidadeTarifas" => 2,
    "valorTarifas" => 10.00,
    
    "veiculos" => [
        [
            "placa" => "ABC1234",
            "rntrc" => "12345678"
        ]
    ]
];

3. Encerramento de CIOT

Método: $ciotService->encerrar($dados)

$dadosEncerramento = [
    "numeroProtocoloCiot" => "1234567890123456",
    
    // Valores Finais Consolidados
    "pesoCargaTotal" => 15000,
    "quantidadeTarifas" => 1,
    "valorTarifas" => 5.00,
    
    // Rotas efetivamente realizadas
    "rotas" => [
        [
            "cepOrigem" => "01310-100",
            "codigoIbgeOrigem" => 3550308,
            "cepDestino" => "22010-000",
            "codigoIbgeDestino" => 3304557,
            "pesoCarga" => 15000,
            "quantidadeViagens" => 1,
            "codigoNaturezaCarga" => "0001"
        ]
    ]
];

4. Cancelamento de CIOT

Método: $ciotService->cancelar($protocolo, $motivo)

$protocolo = "1234567890123456";
$motivo = "Erro na digitação do valor do frete e cancelamento da viagem.";

// O retorno contém o status do cancelamento
$resultado = $ciotService->cancelar($protocolo, $motivo);

5. Consultas

Consultar Status do CIOT

$numeroCiot = "1234567890123";
$ano = 2026;

$resultado = $ciotService->consultar($numeroCiot, $ano);

Consultar Situação do Transportador

$documento = "12345678000199"; // CNPJ ou CPF
$rntrc = "12345678";

$resultado = $transportadorService->consultaSituacao($documento, $rntrc);

Consultar Frota do Transportador

$documento = "12345678000199";
$rntrc = "12345678";
$placas = ["ABC1234", "XYZ9876"]; // Array de placas

$resultado = $transportadorService->consultaFrota($documento, $rntrc, $placas);