0.9.0
What's Changed
ibsCbson a product — the Reforma Tributária group, per item
Why
The API has taken ibs_cbs since the tax-reform groups landed, but no SDK exposed it: a caller who needed IBS/CBS had to fall back to extraGroups and hand-build the payload. It is required from 2026 for the regime normal, so that gap had a deadline attached.
new Product(
description: 'Teclado',
quantity: 2.0,
unitPrice: 120.00,
ncm: '84716052',
cfop: '5102',
ibsCbs: [
'cst' => '000',
'classification' => '000001',
'rate_state' => 0.1,
'rate_city' => 0.0,
'rate_federal' => 0.9,
],
);cst (3 digits) and classification (cClassTrib, 6 digits) are your fiscal decision; the API derives the amounts from the three rates. base is optional — without it the base is the item amount.
An item without the group emits nothing, which is what an NF-e looked like before the reform. ibsCbs was added last in the constructor, so no positional or named argument moved.