# `CorvoNfse.Resources.Webhooks.Deliveries`
[🔗](https://github.com/corvo-technology/corvo-nfse-elixir/blob/main/lib/corvo_nfse/resources/webhooks/deliveries.ex#L1)

Webhook delivery inspection: `list`, `iterate`, `stats` and `retry`
(`/v1/webhooks/deliveries/...`).

# `list_option`

```elixir
@type list_option() ::
  {:hours, pos_integer()}
  | {:environment, CorvoNfse.Types.Webhook.environment()}
  | {:limit, pos_integer()}
  | {:cursor, String.t()}
```

# `stats_option`

```elixir
@type stats_option() ::
  {:hours, pos_integer()}
  | {:environment, CorvoNfse.Types.Webhook.environment()}
```

# `iterate`

```elixir
@spec iterate(CorvoNfse.Client.t(), [list_option()]) ::
  {:ok, Enumerable.t()} | {:error, CorvoNfse.Error.t()}
```

Lazily iterates every delivery across pages.

The first page is fetched eagerly: `{:error, error}` means it failed and
nothing was produced; `{:ok, stream}` yields deliveries one by one. A failure
in a later page raises the `%CorvoNfse.Error{}` while consuming the stream.

# `list`

```elixir
@spec list(CorvoNfse.Client.t(), [list_option()]) ::
  {:ok, CorvoNfse.Types.Common.page()} | {:error, CorvoNfse.Error.t()}
```

Lists delivery attempts (`GET /v1/webhooks/deliveries`).

# `retry`

```elixir
@spec retry(CorvoNfse.Client.t(), String.t()) ::
  {:ok, map()} | {:error, CorvoNfse.Error.t()}
```

Requeues a delivery (`POST /v1/webhooks/deliveries/:id/retry`).

# `stats`

```elixir
@spec stats(CorvoNfse.Client.t(), [stats_option()]) ::
  {:ok, map()} | {:error, CorvoNfse.Error.t()}
```

Delivery counters for the last `hours` (`GET /v1/webhooks/deliveries/stats`).

---

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