# `PaperTiger.Resources.SubscriptionItem`
[🔗](https://github.com/EnaiaInc/paper_tiger/blob/v1.2.2/lib/paper_tiger/resources/subscription_item.ex#L1)

Handles Subscription Item resource endpoints.

## Endpoints

- POST   /v1/subscription_items              - Create subscription item
- GET    /v1/subscription_items/:id          - Retrieve subscription item
- POST   /v1/subscription_items/:id          - Update subscription item
- DELETE /v1/subscription_items/:id          - Delete subscription item
- GET    /v1/subscription_items              - List subscription items

## Subscription Item Object

    %{
      id: "si_...",
      object: "subscription_item",
      created: 1234567890,
      subscription: "sub_...",
      price: %{id: "price_...", object: "price", ...},
      quantity: 1,
      metadata: %{},
      # ... other fields
    }

# `create`

```elixir
@spec create(Plug.Conn.t()) :: Plug.Conn.t()
```

Creates a new subscription item.

## Required Parameters

- subscription - Subscription ID
- price - Price ID

## Optional Parameters

- quantity - Item quantity (default: 1)
- metadata - Key-value metadata

# `delete`

```elixir
@spec delete(Plug.Conn.t(), String.t()) :: Plug.Conn.t()
```

Deletes a subscription item.

Removes the item from the subscription.

Returns a deletion confirmation object.

# `list`

```elixir
@spec list(Plug.Conn.t()) :: Plug.Conn.t()
```

Lists all subscription items with pagination.

## Parameters

- subscription - Filter by subscription (required)
- limit - Number of items (default: 10, max: 100)
- starting_after - Cursor for pagination
- ending_before - Reverse cursor

# `retrieve`

```elixir
@spec retrieve(Plug.Conn.t(), String.t()) :: Plug.Conn.t()
```

Retrieves a subscription item by ID.

# `update`

```elixir
@spec update(Plug.Conn.t(), String.t()) :: Plug.Conn.t()
```

Updates a subscription item.

## Updatable Fields

- price
- quantity
- metadata

---

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