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

Represents the requirements nested object on a Stripe Account.

This struct is reused at both `%LatticeStripe.Account{}.requirements` and
`%LatticeStripe.Account{}.future_requirements`; both have an identical Stripe
wire shape per the Stripe API documentation.

The `requirements` field contains the currently-active requirements Stripe
needs to keep the account enabled. The `future_requirements` field contains
requirements that will become active in the future (e.g., after a regulatory
deadline or when the account tries to enable a new capability).

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

# `t`

```elixir
@type t() :: %LatticeStripe.Account.Requirements{
  alternatives: list() | nil,
  current_deadline: integer() | nil,
  currently_due: list() | nil,
  disabled_reason: String.t() | nil,
  errors: list() | nil,
  eventually_due: list() | nil,
  extra: map(),
  past_due: list() | nil,
  pending_verification: list() | nil
}
```

Requirements for a Stripe Account (used at both `requirements` and `future_requirements`).

# `from_map`

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

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

Returns `nil` when given `nil`.

This function is used to cast both the `requirements` and `future_requirements`
fields on `%LatticeStripe.Account{}` — both fields have the same wire shape.

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*
