Download the PHP package prhost/systax-sdk without Composer
On this page you can find all versions of the php package prhost/systax-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download prhost/systax-sdk
More information about prhost/systax-sdk
Files in prhost/systax-sdk
Package systax-sdk
Short Description PHP SDK for the Systax API (NCM and CEST lookups)
License MIT
Informations about the package systax-sdk
Systax SDK — PHP
⚠️ Aviso: Este SDK é um projeto não oficial e não possui qualquer vínculo, endosso ou suporte da Systax. É fornecido sem garantias de qualquer tipo. Use por sua conta e risco.
SDK PHP para integração com a API Systax, cobrindo os recursos de NCM e CEST (v1 e v2).
- PHP 8.1+
- GuzzleHttp 7.x
- Autenticação JWT automática (com cache e renovação)
- Credenciais de homologação embutidas como padrão
Índice
- Instalação
- Instanciação
- Autenticação
- Recurso: CEST v1
- Recurso: CEST v2
- Recurso: NCM
- DTOs de retorno
- Tratamento de erros
- Testes unitários
- Estrutura de arquivos
- Licença
Instalação
Requisitos: PHP 8.1+ e GuzzleHttp 7.x (instalado automaticamente como dependência).
Instanciação
Assinatura do construtor:
Autenticação
O SDK gerencia o token JWT automaticamente:
- Na primeira chamada a qualquer recurso, obtém o token via
GET /auth/access-tokencom Basic Auth. - O token é cacheado em memória pelo tempo de
expires_in(retornado pela API). - Quando o token está prestes a expirar (≤ 60 segundos), é renovado automaticamente via
GET /auth/refresh-token. - Se a renovação falhar, um novo token é obtido com Basic Auth.
Você não precisa gerenciar tokens manualmente. Se necessário:
Recurso: CEST v1
Endpoint: POST https://app.systax.com.br/cest
Retorna os códigos CEST para um NCM informado.
Criando itens de consulta
Consultando
Máximo de 100 itens por requisição.
Retorno: CestResult[]
Exemplo completo
Recurso: CEST v2
Endpoint: POST https://app.systax.com.br/cestv2
Versão 2 da API CEST. Adiciona:
- Paginação via
offset - Sincronização incremental via
ponteiro - Campos
vigenciaDe,vigenciaAtepor item - Metadados de paginação no retorno (
TotalPaginas,totalItens,ultPonteiro)
Consultando
Retorno: CestV2Response
CestV2Result (estende CestResult)
Todos os campos de CestResult mais:
Exemplo: sincronização incremental
Recurso: NCM
Endpoint: GET https://app.systax.com.br/api/ncm
Lista NCMs da tabela TIPI da Systax.
Consultando
Assinatura completa:
Retorno: NcmResponse
NcmResult
Exemplo completo
DTOs de retorno
| Classe | Arquivo | Descrição |
|---|---|---|
CestItem |
DTO/CestItem.php |
Input: item de consulta CEST |
CestResult |
DTO/CestResult.php |
Output CEST v1 por item |
CestV2Result |
DTO/CestV2Result.php |
Output CEST v2 por item (estende CestResult) |
CestV2Response |
DTO/CestV2Response.php |
Wrapper paginado CEST v2 |
NcmResult |
DTO/NcmResult.php |
Output NCM por item |
NcmResponse |
DTO/NcmResponse.php |
Wrapper resposta NCM |
TokenResponse |
DTO/TokenResponse.php |
Resposta da API de token |
Tratamento de erros
Todas as exceções estendem Prhost\SystaxSdk\Exceptions\SystaxException (que estende RuntimeException).
| Exceção | Quando é lançada |
|---|---|
AuthException |
HTTP 400/401 nas requisições de token ou recursos; credenciais inválidas; token expirado |
ApiException |
Resposta HTTP 200, mas com codigo != 0 no item (ex: NCM inválida, NCM sem CEST) |
SystaxException |
Base — captura qualquer erro do SDK |
Códigos de erro da API CEST
| Código | Mensagem |
|---|---|
| 0 | Sucesso |
| 1 | NCM inválida |
| 2 | NCM sem CEST |
| 3 | UF inválida |
| 4 | EX TIPI inválida |
| 5 | Data inválida |
| 6 | ID inválido |
| 7 | Ponteiro inválido |
| 8 | Não existem atualizações |
Exemplo de tratamento completo
Testes unitários
Os testes usam GuzzleHttp\Handler\MockHandler — nenhuma chamada real à API é feita. São 50 testes cobrindo todos os recursos, casos de sucesso e de erro.
Rodando os testes
Saída esperada:
Localização dos testes
Adicionando novos testes
Os testes usam GuzzleHttp\Handler\MockHandler para interceptar as requisições HTTP. Padrão a seguir:
A ordem das respostas no array do MockHandler corresponde à ordem das chamadas HTTP feitas pelo SDK (primeiro fetchToken, depois o recurso).
Estrutura de arquivos
Referências
- Swagger Systax Geral
- Documentação API de Token
- Documentação API CEST v1
- Documentação API CEST v2
- Documentação API NCM
Licença
MIT
Desenvolvido por Kallef Alexandre