# `Wise.Client`
[🔗](https://github.com/iamkanishka/wise/blob/v1.0.0/lib/wise/client.ex#L1)

Core HTTP client for the Wise Platform API.

Handles authentication, JSON encoding/decoding, error parsing,
rate limiting, circuit breaking, and retry logic.

All service modules delegate to this client.

# `delete`

```elixir
@spec delete(Wise.Config.t(), String.t()) :: {:ok, :ok} | {:error, Wise.Error.t()}
```

Performs a DELETE request.

# `get`

```elixir
@spec get(Wise.Config.t(), String.t(), keyword()) ::
  {:ok, any()} | {:error, Wise.Error.t()}
```

Performs a GET request.

# `get_raw`

```elixir
@spec get_raw(Wise.Config.t(), String.t(), keyword()) ::
  {:ok, binary()} | {:error, Wise.Error.t()}
```

Performs a GET request and returns raw binary (for statement downloads).

# `patch`

```elixir
@spec patch(Wise.Config.t(), String.t(), any()) ::
  {:ok, any()} | {:error, Wise.Error.t()}
```

Performs a PATCH request with JSON body.

# `post`

```elixir
@spec post(Wise.Config.t(), String.t(), any()) ::
  {:ok, any()} | {:error, Wise.Error.t()}
```

Performs a POST request with JSON body.

# `put`

```elixir
@spec put(Wise.Config.t(), String.t(), any()) ::
  {:ok, any()} | {:error, Wise.Error.t()}
```

Performs a PUT request with JSON body.

---

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