PHPackages                             redrodrigo/ixc-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. redrodrigo/ixc-sdk

ActiveLibrary[API Development](/categories/api)

redrodrigo/ixc-sdk
==================

SDK PHP não-oficial para a API REST do IXC Soft, com adapter opcional para Laravel.

v0.5.1(1mo ago)055↑80%MITPHPPHP ^8.2

Since Jul 10Pushed 1mo agoCompare

[ Source](https://github.com/tecrodrigocastro/ixc_sdk)[ Packagist](https://packagist.org/packages/redrodrigo/ixc-sdk)[ Docs](https://github.com/tecrodrigocastro/ixc_sdk)[ RSS](/packages/redrodrigo-ixc-sdk/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (12)Versions (9)Used By (0)

ixc-sdk
=======

[](#ixc-sdk)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e292f4284989b06839380dad6199c332ab6bc210e2826012bc93357bdc120693/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f726564726f647269676f2f6978632d73646b2e737667)](https://packagist.org/packages/redrodrigo/ixc-sdk)[![Total Downloads](https://camo.githubusercontent.com/36a045cfd4360be9c3fcb10d4520bdf19a09358adc249b3d4ba4b39f85a9a981/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f726564726f647269676f2f6978632d73646b2e737667)](https://packagist.org/packages/redrodrigo/ixc-sdk)[![License](https://camo.githubusercontent.com/dcd0156acad1e68af9a4e08c1b5e97014027eb685c440e1026462904ec7b8b39/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f726564726f647269676f2f6978632d73646b2e737667)](https://github.com/tecrodrigocastro/ixc_sdk/blob/main/LICENSE)

SDK PHP não-oficial para a API REST do [IXC Soft](https://wikiixcsoft.ixcsoft.com.br/) (ERP de provedores de internet).

Núcleo sem dependência de framework (`guzzlehttp/guzzle` + `psr/simple-cache` apenas), com um adapter opcional para Laravel.

Instalação
----------

[](#instalação)

Disponível no [Packagist](https://packagist.org/packages/redrodrigo/ixc-sdk) — instale via Composer:

```
composer require redrodrigo/ixc-sdk
```

Uso standalone (fora do Laravel)
--------------------------------

[](#uso-standalone-fora-do-laravel)

```
use RedRodrigo\IxcSdk\IxcClient;

$ixc = IxcClient::make(
    baseUrl: 'https://central.suaoperadora.com.br/webservice/v1',
    userId: '129',
    token: 'seu-token-de-api',
);

$clientes = $ixc->cliente()->searchCliente('João');
$contratos = $ixc->cliente()->getInfoContrato(10827);
$vendedor = $ixc->comercial()->getVendedorById('5');
$os = $ixc->os()->getOsAbertasByTecnico('15');
```

Uso no Laravel
--------------

[](#uso-no-laravel)

O provider é descoberto automaticamente via `composer.json extra.laravel.providers`.

1. Publique o config (opcional):

    ```
    php artisan vendor:publish --tag=ixc-config
    ```
2. Configure o `.env`:

    ```
    IXC_BASE_URL=https://central.suaoperadora.com.br/webservice/v1
    IXC_USER_ID=129
    IXC_API_TOKEN=seu-token-de-api

    # Opcional — cacheia respostas via o cache store padrão do Laravel
    IXC_CACHE_ENABLED=false
    IXC_CACHE_STORE=
    IXC_CACHE_TTL=300
    ```
3. Injete `RedRodrigo\IxcSdk\IxcClient` (singleton) onde precisar:

    ```
    use RedRodrigo\IxcSdk\IxcClient;

    class ClienteController
    {
        public function __construct(private IxcClient $ixc) {}

        public function show(string $termo)
        {
            return $this->ixc->cliente()->searchCliente($termo);
        }
    }
    ```

    Ou injete um resource específico diretamente (também resolvido pelo container):

    ```
    use RedRodrigo\IxcSdk\Resources\ComercialResource;

    public function __construct(private ComercialResource $comercial) {}
    ```

Resources disponíveis
---------------------

[](#resources-disponíveis)

ResourceDomínioEndpoints IXC`cliente()`Clientes, contratos, login PPPoE`/cliente`, `/cliente_contrato`, `/radusuarios``comercial()`Contratos por período, vendedores, equipes, OS por tipo`/cliente_contrato`, `/vd_contratos`, `/vendedor`, `/usuarios`, `/su_oss_chamado``contrato()`Planos de venda, TV`/vd_contratos`, `/tv_usuarios``estoque()`Almoxarifado, saldo, produtos, transferência entre almoxarifados`/almox_usuario`, `/view_prod_estoque_almox`, `/produtos`, `/almox`, `/transf_almox_top`, `/transf_almox_item``financeiro()`Pagamentos, faturas, PIX, boletos, desbloqueio de confiança`/fn_areceber`, `/desbloqueio_confianca`, `/get_pix`, `/get_boleto``funcionario()`Funcionários ativos`/funcionarios``os()`Ordens de serviço, assuntos, diagnósticos, materiais, abertura de OS (escrita)`/su_oss_chamado` (GET+POST), `/su_oss_assunto`, `/su_diagnostico`, `/movimento_produtos`, `/produtos`, `/radpop_radio``ticket()`Tickets/protocolos de atendimento`/su_ticket``veiculo()`Frota e despesas`/veiculos`, `/veiculos_despesas``radius()`Log de conexão (quedas, sessões)`/radacct``requisicaoMaterial()`Requisição de material e devolução/transferência com confirmação`/requisicao_material`, `/requisicao_material_item`, `/requisicao_devolucao_material`, `/itens_requisicao_devolucao_material``comodato()`Comodato de equipamento (contrato e dentro da OS)`/cliente_contrato_comodato`, `/su_oss_mov_comodato_wiz``patrimonio()`Cadastro de patrimônio`/patrimonio``entradaEstoque()`Entrada de estoque, requisição e pedido de compra`/entrada`, `/requisicao_compra(_itens)`, `/pedido_compra(_itens)`Cada método é documentado com PHPDoc (campos relevantes de retorno, exemplo de uso) diretamente na classe do resource correspondente em `src/Resources/`.

QueryBuilder
------------

[](#querybuilder)

Todos os resources usam `RedRodrigo\IxcSdk\Query\QueryBuilder` internamente para montar o protocolo de listagem do IXC (`qtype`/`query`/`oper`/`page`/`rp`/`sortname`/`sortorder`/`grid_param`). Ele também está disponível publicamente para consultas ad-hoc:

```
use RedRodrigo\IxcSdk\Query\QueryBuilder;

$query = QueryBuilder::for('cliente_contrato.id_vendedor')
    ->perPage(400)
    ->filter('cliente_contrato.status', '=', 'A')
    ->filter('cliente_contrato.data_ativacao', '>=', '2024-07-01')
    ->filter('cliente_contrato.data_ativacao', '
