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

Ecto schema for the `accrue_invoice_items` table (D3-15).

Represents a single line on an invoice. Amounts are integer minor units
(cents, yen, etc.). Proration items carry `proration: true` and a period
window. Price and subscription item references are stored as string
`*_ref` columns rather than FKs because Stripe may reference objects we
haven't projected locally yet.

# `t`

```elixir
@type t() :: %Accrue.Billing.InvoiceItem{
  __meta__: term(),
  amount_minor: term(),
  currency: term(),
  data: term(),
  description: term(),
  id: term(),
  inserted_at: term(),
  invoice: term(),
  invoice_id: term(),
  period_end: term(),
  period_start: term(),
  price_ref: term(),
  proration: term(),
  quantity: term(),
  stripe_id: term(),
  subscription_item_ref: term(),
  updated_at: term()
}
```

# `changeset`

```elixir
@spec changeset(
  %Accrue.Billing.InvoiceItem{
    __meta__: term(),
    amount_minor: term(),
    currency: term(),
    data: term(),
    description: term(),
    id: term(),
    inserted_at: term(),
    invoice: term(),
    invoice_id: term(),
    period_end: term(),
    period_start: term(),
    price_ref: term(),
    proration: term(),
    quantity: term(),
    stripe_id: term(),
    subscription_item_ref: term(),
    updated_at: term()
  }
  | Ecto.Changeset.t(),
  map()
) :: Ecto.Changeset.t()
```

Builds a changeset for creating or updating an InvoiceItem.

---

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