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

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

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

This struct holds significant PII. The following fields are redacted in `Inspect`
output to prevent leakage into logs and IEx output (Phase 17 T-17-01). The PII
field set is sourced from the
[stripe-node PII audit](https://github.com/stripe/stripe-node) for fidelity:

- `dob` — date of birth (map with day/month/year)
- `ssn_last_4` — last 4 digits of US SSN
- `id_number` — government-issued ID number
- `first_name`, `first_name_kana`, `first_name_kanji` — given names
- `last_name`, `last_name_kana`, `last_name_kanji` — family names
- `maiden_name` — previous legal name
- `full_name_aliases` — list of aliases
- `address`, `address_kana`, `address_kanji` — residential address
- `phone` — personal phone number
- `email` — personal email address
- `metadata` — user-supplied key/value pairs (may contain PII)

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-individual).

# `t`

```elixir
@type t() :: %LatticeStripe.Account.Individual{
  address: map() | nil,
  address_kana: map() | nil,
  address_kanji: map() | nil,
  dob: map() | nil,
  email: String.t() | nil,
  extra: map(),
  first_name: String.t() | nil,
  first_name_kana: String.t() | nil,
  first_name_kanji: String.t() | nil,
  full_name_aliases: list() | nil,
  gender: String.t() | nil,
  id_number: String.t() | nil,
  last_name: String.t() | nil,
  last_name_kana: String.t() | nil,
  last_name_kanji: String.t() | nil,
  maiden_name: String.t() | nil,
  metadata: map() | nil,
  phone: String.t() | nil,
  political_exposure: String.t() | nil,
  ssn_last_4: String.t() | nil,
  verification: map() | nil
}
```

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

# `from_map`

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

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

Returns `nil` when given `nil`.

**Security:** This struct contains significant PII — see module doc for the full list.
The `Inspect` implementation redacts all PII 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*
