# `Accrue.Billing.MeteredChargeAttempt`
[🔗](https://github.com/szTheory/accrue/blob/accrue-v1.1.1/lib/accrue/billing/metered_charge_attempt.ex#L1)

Durable settlement ledger for one metered renewal window.

# `t`

```elixir
@type t() :: %Accrue.Billing.MeteredChargeAttempt{
  __meta__: term(),
  attempted_payment_method_id: term(),
  data: term(),
  failure_class: term(),
  failure_code: term(),
  failure_message: term(),
  id: term(),
  inserted_at: term(),
  lock_version: term(),
  metered_renewal: term(),
  metered_renewal_id: term(),
  original_failed_payment_method_id: term(),
  original_failure_class: term(),
  original_failure_code: term(),
  original_failure_message: term(),
  paid_at: term(),
  processor: term(),
  processor_charge_id: term(),
  retry_at: term(),
  status: term(),
  subject_uuid: term(),
  updated_at: term()
}
```

# `changeset`

```elixir
@spec changeset(
  %Accrue.Billing.MeteredChargeAttempt{
    __meta__: term(),
    attempted_payment_method_id: term(),
    data: term(),
    failure_class: term(),
    failure_code: term(),
    failure_message: term(),
    id: term(),
    inserted_at: term(),
    lock_version: term(),
    metered_renewal: term(),
    metered_renewal_id: term(),
    original_failed_payment_method_id: term(),
    original_failure_class: term(),
    original_failure_code: term(),
    original_failure_message: term(),
    paid_at: term(),
    processor: term(),
    processor_charge_id: term(),
    retry_at: term(),
    status: term(),
    subject_uuid: term(),
    updated_at: term()
  }
  | Ecto.Changeset.t(),
  map()
) :: Ecto.Changeset.t()
```

# `statuses`

```elixir
@spec statuses() :: [atom()]
```

---

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