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

A single capability entry from `Account.capabilities`.

The outer `capabilities` map on `%Account{}` is keyed by Stripe's
open-ended capability name strings (e.g. `"card_payments"`,
`"transfers"`, `"us_bank_account_payments"`). Each value is a
`%Capability{}`. The inner shape is stable; new capability *names*
added by Stripe flow through automatically as new map keys.

    iex> account.capabilities["card_payments"]
    %LatticeStripe.Account.Capability{status: "active", requested: true, ...}

    iex> LatticeStripe.Account.Capability.status_atom(
    ...>   account.capabilities["card_payments"]
    ...> )
    :active

# `t`

```elixir
@type t() :: %LatticeStripe.Account.Capability{
  disabled_reason: String.t() | nil,
  extra: map(),
  requested: boolean() | nil,
  requested_at: integer() | nil,
  requirements: map() | nil,
  status: String.t() | nil
}
```

# `status_atom`

```elixir
@spec status_atom(t() | String.t() | nil) :: atom()
```

Returns `status` as an atom from a known set, or `:unknown` for
forward compatibility. Never calls `String.to_atom/1` on user input.

---

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