# `LatticeStripe.Tax.TaxBreakdown`
[🔗](https://github.com/szTheory/lattice_stripe/blob/v2.2.2/lib/lattice_stripe/tax/tax_breakdown.ex#L1)

One entry in the `tax_breakdown` list on a Stripe Tax calculation.

Reachable from `t:LatticeStripe.Tax.Calculation.t/0` as `list(t())`. Each entry is one
jurisdiction's share of the total, so this is what you sum or display when itemising
tax on an invoice.

`:inclusive` distinguishes tax added on top of the amount from tax already contained
within it — reading the total without checking it double-counts inclusive tax.

Embedded value struct: fields are additive. Keys Stripe adds later appear under
`:extra` rather than being dropped, so a new field never breaks decoding.

# `t`

```elixir
@type t() :: %LatticeStripe.Tax.TaxBreakdown{
  amount: integer() | nil,
  extra: map(),
  inclusive: boolean() | nil,
  tax_rate_details: map() | nil,
  taxability_reason: String.t() | nil,
  taxable_amount: integer() | nil
}
```

# `from_map`

```elixir
@spec from_map(map() | nil) :: t() | nil
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
