Skip to content

0.9.0

Choose a tag to compare

@FernandoCelmer FernandoCelmer released this 08 Sep 01:20
· 13 commits to main since this release

What's Changed

  • IbsCbs on 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.