orcamentador / sdk
SDK oficial da API Orçamentador (SINAPI)
Requires
- php: >=7.0
README
SDK oficial em PHP para consumo da API do Orçamentador, permitindo consultar insumos e composições da tabela SINAPI, além de indicadores, estados e recursos de orçamento, de forma simples, segura e padronizada.
Todos os parâmetros dos recursos podem ser encontrados na
documentação oficial da API.
📦 Instalação
Via Composer:
composer require orcamentador/sdk
Requisitos:
- PHP >= 7.2
- Composer
- Extensão cURL habilitada
🚀 Uso básico
<?php require 'vendor/autoload.php'; // ajuste o caminho conforme seu projeto use Orcamentador\SDK\Client; $client = new Client('SUA_API_KEY'); $insumos = $client->insumos()->buscar([ 'nome' => 'cimento', 'estado' => 'sp', 'limit' => 10 ]); print_r($insumos);
🔑 Autenticação
A autenticação é feita via chave de API, enviada automaticamente no header HTTP X-API-Key.
$client = new Client('SUA_API_KEY');
📚 Recursos disponíveis
Cada recurso da API é representado por uma classe Resource no SDK.
🧱 Insumos
$client->insumos()->buscar([ 'nome' => 'areia', // ou 'codigo' => 123456 'estado' => 'sp', 'referencia' => '2025-09-01', 'page' => 1, 'limit' => 50 ]);
No recurso "buscar", se não informado 'nome' ou 'codigo', o sistema retornará todos os insumos. Outros parâmetros de "buscar": modo_busca, tipo, familia, regime, sort, order, output, data_ref, detail
$client->insumos()->historico([ 'codigo' => 123, 'estado' => 'sp' ]);
Outros parâmetros de "historico": periodo, output
$client->insumos()->comparar([ 'codigo' => 123, 'estados' => 'sp,rj,pb' ]);
Outros parâmetros de "comparar": data_ref, output
$client->insumos()->previsao([ 'codigo' => 123, 'estado' => 'sp', 'regime' => 'DESONERADO' // ou 'NAO_DESONERADO' ]);
Outros parâmetros de "previsao": output
🏗️ Composições
$client->composicoes()->buscar([ 'nome' => 'argamassa', // ou 'codigo' => 123456 'estado' => 'sp', 'referencia' => '2025-09-01', 'page' => 1, 'limit' => 50 ]);
No recurso "buscar", se não informado 'nome' ou 'codigo', o sistema retornará todas as composições. Outros parâmetros de "buscar": modo_busca, filtro, regime, sort, order, output, data_ref
$client->composicoes()->detalhar([ 'codigo' => 123456, 'estado' => 'sp' ]);
Outros parâmetros de "detalhar": regime, output, data_ref
$client->composicoes()->explode([ 'codigo' => 123456, 'estado' => 'sp', 'regime' => 'DESONERADO' // ou 'NAO_DESONERADO' ]);
Outros parâmetros de "explode": regime, output, data_ref, sort, order
$client->composicoes()->historico([ 'codigo' => 123456, 'estado' => 'sp' ]);
Outros parâmetros de "historico": periodo, output
$client->composicoes()->comparar([ 'codigo' => 123456, 'estados' => 'sp,rj,pb' ]);
Outros parâmetros de "comparar": data_ref, output
$client->composicoes()->previsao([ 'codigo' => 123456, 'estado' => 'sp', 'regime' => 'DESONERADO' // ou 'NAO_DESONERADO' ]);
Outros parâmetros de "previsao": output
📊 Encargos
$client->encargos()->buscar([ 'estado' => 'sp' ]);
Outros parâmetros de "encargos": output
📊 Indicadores
$client->indicadores()->listar([ 'indicadores' => 'incc,incc_acumulado,ipca,igpm,selic,dolar' ]);
Outros parâmetros de "listar": output
🌎 Estados
$client->estados()->listar([ 'estado' => 'sp' // ou 'ibge' => 35 ou 'regiao' => 'sudeste' ou, nenhum parâmetro (listar todos) ]);
Outros parâmetros de "listar": output
💰 Recursos de orçamento
$client->orcamento()->gerar([ 'itens' => 'C:12321@3.2,I:234@12.5,I:3773@7', // formato [C|I]:codigo@quantidade,[C|I]:codigo@quantidade,... 'estado' => 'sp', 'regime' => 'DESONERADO' // ou 'NAO_DESONERADO' ]);
Outros parâmetros de "gerar": bdi, output, data_ref
⚠️ Tratamento de erros
O SDK lança exceções específicas conforme o erro retornado pela API.
use Orcamentador\SDK\Exceptions\ApiException; try { $client->insumos()->buscar(['nome' => 'cimento']); } catch (ApiException $e) { echo $e->getMessage(); }
Exceções disponíveis:
AuthenticationExceptionRateLimitExceptionNotFoundExceptionServerException
🔄 Versionamento
O SDK segue Versionamento Semântico (SemVer):
1.x.x— versão estávelx.0.0— quebra de compatibilidadex.y.0— novas funcionalidadesx.y.z— correções
🧪 Exemplos
Exemplos completos estão disponíveis na pasta:
/examples
📄 Licença
MIT License. Consulte o arquivo LICENSE para mais detalhes.
🔗 Links
- 🌐 Site: https://www.orcamentador.com.br
- 📘 Documentação da API: https://www.orcamentador.com.br/api/docs
- 🐙 GitHub: https://github.com/orcamentador/orcamentador-sdk
💡 Suporte
Dúvidas, sugestões ou problemas?
Entre em contato pelo site ou abra uma issue no GitHub.