# `Stripe.Services.TopupService`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/services/topup_service.ex#L2)

Topup

To top up your Stripe balance, you create a top-up object. You can retrieve
individual top-ups, as well as list all top-ups. Top-ups are identified by a
unique, random ID.

Related guide: [Topping up your platform account](https://docs.stripe.com/connect/top-ups)

# `cancel`

```elixir
@spec cancel(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Cancel a top-up

Cancels a top-up. Only pending top-ups can be canceled.

# `create`

```elixir
@spec create(Stripe.Client.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Create a top-up

Top up the balance of an account

# `list`

```elixir
@spec list(Stripe.Client.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

List all top-ups

Returns a list of top-ups.

# `retrieve`

```elixir
@spec retrieve(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Retrieve a top-up

Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information.

# `update`

```elixir
@spec update(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Update a top-up

Updates the metadata of a top-up. Other top-up details are not editable by design.

---

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