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.
price := 120.00
br.Product{
Description: "Teclado",
Quantity: 2,
UnitPrice: &price,
NCM: ptr("84716052"),
CFOP: ptr("5102"),
IbsCbs: &br.IbsCbs{
CST: "000",
Classification: "000001",
RateState: 0.1,
RateCity: 0.0,
RateFederal: 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 a pointer and is omitted when nil — 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 is a new optional field, so no existing call site changes.