定制 developer-api/ibscbs-client 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

developer-api/ibscbs-client

Composer 安装命令:

composer require developer-api/ibscbs-client

包简介

Cliente PHP para a API IBS/CBS (developerapi.com.br)

README 文档

README

-Esta biblioteca PHP integra com a API https://modelotributacao.developerapi.com.br/ibscbs/json para calcular automaticamente IBS/CBS conforme as novas regras da Reforma Tributária, pronta para uso em NF-e e NFC-e.

  • Classe principal: DeveloperApi\IbsCbs\IbsCbsClient

Requisitos

  • PHP >= 8.0 (com cURL habilitado)
  • Composer
  • Acesso HTTP ao endpoint da API

Instalação

Se o pacote ainda não estiver no Packagist, adicione o repositório Git no composer.json do seu projeto:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/salvadorbba/ibscbs-client.git"
    }
  ],
  "require": {
    "developer-api/ibscbs-client": "dev-main"
  }
}

Em seguida, instale:

composer require developer-api/ibscbs-client

Uso

1) Endpoint padrão

<?php
require __DIR__ . '/vendor/autoload.php';

use DeveloperApi\IbsCbs\IbsCbsClient;

$client = new IbsCbsClient();

$nota = [
    'data_emissao'   => '2025-07-15',
    'numero'         => '123',
    'serie'          => '1',
    'cnpj_emitente'  => '12345678000199',
    'cnpj_cliente'   => '99887766000155',
    'valor_total'    => 100.00,
];

$items = [
    [
        'codigo'            => '001',
        'descricao'         => 'Produto X',
        'ncm'               => '22030000',
        'cfop'              => '5102',
        'quantidade'        => 1,
        'valor_unitario'    => 100.00,
        'valor_total'       => 100.00,
        'ibs_classificacao' => '000001',
        'ibs_cst'           => '000',
    ],
];

try {
    $resultado = $client->calcular($nota, $items, 'SP', 'MT');
    echo '<pre>';
    print_r($resultado);
    echo '</pre>';
} catch (\Throwable $e) {
    echo 'Erro na API IBS/CBS: ' . $e->getMessage();
}

Payload

Formato enviado pelo método calcular():

{
  "nota": {
    "data_emissao": "2025-07-15",
    "numero": "123",
    "serie": "1",
    "cnpj_emitente": "12345678000199",
    "cnpj_cliente": "99887766000155",
    "valor_total": 100
  },
  "items": [
    {
      "codigo": "001",
      "descricao": "Produto X",
      "ncm": "22030000",
      "cfop": "5102",
      "quantidade": 1,
      "valor_unitario": 100,
      "valor_total": 100,
      "ibs_classificacao": "000001",
      "ibs_cst": "000"
    }
  ],
  "ufEmitente": "SP",
  "ufCliente": "MT"
}

Campos:

  • nota.*: campos da nota (data, número, série, CNPJs, total)
  • items.*: campos do item (código, descrição, NCM, CFOP, valores)
  • items[].ibs_classificacao: classificação IBS/CBS
  • items[].ibs_cst: CST IBS/CBS
  • ufEmitente: UF do emitente (2 caracteres)
  • ufCliente: UF do destinatário (2 caracteres)

Tratamento de erros

O client pode lançar exceções quando:

  • Falha na conexão cURL (rede, timeout, DNS, SSL)
  • Resposta HTTP não bem-sucedida (status >= 300)
  • Erro ao decodificar JSON

Use try/catch ao redor das chamadas:

try {
    $resultado = $client->calcular($nota, $items, 'SP', 'SP');
} catch (\RuntimeException $e) {
    // trate erro de chamada/HTTP/JSON
    echo $e->getMessage();
}

cURL (alternativo)

Chamada direta sem usar o client:

<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL            => 'https://modelotributacao.developerapi.com.br/ibscbs/json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING       => '',
    CURLOPT_MAXREDIRS      => 10,
    CURLOPT_TIMEOUT        => 30,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST  => 'POST',
    CURLOPT_POSTFIELDS     => '{
      "nota": {
        "data_emissao": "2025-07-15",
        "numero": "123",
        "serie": "1",
        "cnpj_emitente": "12345678000199",
        "cnpj_cliente": "99887766000155",
        "valor_total": 100
      },
      "items": [
        {
          "codigo": "001",
          "descricao": "Produto X",
          "ncm": "22030000",
          "cfop": "5102",
          "quantidade": 1,
          "valor_unitario": 100,
          "valor_total": 100,
          "ibs_classificacao": "000001",
          "ibs_cst": "000"
        }
      ],
      "ufEmitente": "SP",
      "ufCliente": "MT"
    }',
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'Accept: application/json',
    ],
]);

$response = curl_exec($curl);

if ($response === false) {
    echo 'Erro cURL: ' . curl_error($curl);
} else {
    echo $response;
}

curl_close($curl);

Autor

Licença

Este pacote é distribuído sob licença MIT (veja composer.json).

developer-api/ibscbs-client 适用场景与选型建议

developer-api/ibscbs-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 137 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 22 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 developer-api/ibscbs-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 developer-api/ibscbs-client 我们能提供哪些服务?
定制开发 / 二次开发

基于 developer-api/ibscbs-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 137
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 22
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-22