# `LatticeStripe.Account.Company`
[🔗](https://github.com/szTheory/lattice_stripe/blob/v1.1.0/lib/lattice_stripe/account/company.ex#L1)

Represents the `company` nested object on a Stripe Account.

Active when `business_type` is `"company"` on the parent `%Account{}`.
Mutually exclusive with the `individual` field.

This struct holds PII. The following fields are redacted in `Inspect` output
to prevent leakage into logs and IEx output (Phase 17 T-17-01):

- `tax_id` — federal tax identifier
- `vat_id` — VAT registration number
- `phone` — company phone number
- `address` — registered address
- `address_kana` — address in Kana script (Japan)
- `address_kanji` — address in Kanji script (Japan)

Unknown fields from the Stripe API response are preserved in `:extra` per the
F-001 forward-compatibility pattern.

See [Stripe Account API](https://docs.stripe.com/api/accounts/object#account_object-company).

# `t`

```elixir
@type t() :: %LatticeStripe.Account.Company{
  address: map() | nil,
  address_kana: map() | nil,
  address_kanji: map() | nil,
  directors_provided: boolean() | nil,
  executives_provided: boolean() | nil,
  extra: map(),
  name: String.t() | nil,
  name_kana: String.t() | nil,
  name_kanji: String.t() | nil,
  owners_provided: boolean() | nil,
  phone: String.t() | nil,
  structure: String.t() | nil,
  tax_id: String.t() | nil,
  tax_id_registrar: String.t() | nil,
  vat_id: String.t() | nil,
  verification: map() | nil
}
```

Company details for a Stripe Account. Contains PII (see module doc).

# `from_map`

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

Converts a decoded Stripe API map to a `%Company{}` struct.

Returns `nil` when given `nil`.

**Security:** Several fields contain PII — see module doc for the full list.
The `Inspect` implementation redacts those fields (T-17-01 mitigation).

Unknown fields from the Stripe API are captured in `:extra` (F-001 pattern)
for forward compatibility.

---

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