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

ClimateRemovalsOrders

Orders represent your intent to purchase a particular Climate product. When you create an order, the
payment is deducted from your merchant balance.

# `cancel`

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

Cancel an order

Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the
reservation `amount_subtotal`, but not the `amount_fees` for user-triggered cancellations. Frontier
might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe
provides 90 days advance notice and refunds the `amount_total`.

# `create`

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

Create an order

Creates a Climate order object for a given Climate product. The order will be processed immediately
after creation and payment will be deducted your Stripe balance.

# `list`

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

List orders

Lists all Climate order objects. The orders are returned sorted by creation date, with the
most recently created orders appearing first.

# `retrieve`

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

Retrieve an order

Retrieves the details of a Climate order object with the given ID.

# `update`

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

Update an order

Updates the specified order by setting the values of the parameters passed.

---

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