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.
dev-main
2026-03-30 14:11 UTC
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2026-03-30 14:43:04 UTC
README
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);