Packages
stripity_stripe
2.2.2
3.3.2
3.3.1
3.2.0
3.1.1
3.1.0
3.0.0
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.1
2.15.0
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-alpha.11
2.0.0-alpha.10
2.0.0-alpha.9
2.0.0-alpha.8
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.0
1.1.0
0.5.0
0.4.0
0.3.0
0.2.0
A Stripe client for Elixir.
Current section
Files
Jump to
Current section
Files
lib/stripe/core_resources/balance.ex
defmodule Stripe.Balance do
@moduledoc """
Work with [Stripe `balance` objects](https://stripe.com/docs/api#balance).
You can:
- [Retrieve the current balance](https://stripe.com/docs/api#retrieve_balance)
"""
use Stripe.Entity
import Stripe.Request
@type funds :: %{
currency: String.t(),
amount: integer,
source_types: %{
Stripe.Source.source_type() => integer
}
}
@type t :: %__MODULE__{
object: String.t(),
available: list(funds),
connect_reserved: list(funds) | nil,
livemode: boolean,
pending: list(funds)
}
defstruct [
:object,
:available,
:connect_reserved,
:livemode,
:pending
]
@endpoint "balance"
@doc """
Retrieves the current account balance.
This is based on the authentication that was used to make the request.
See the [Stripe docs](https://stripe.com/docs/api#retrieve_balance).
"""
@spec retrieve(Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
def retrieve(opts \\ []) do
new_request(opts)
|> put_endpoint(@endpoint)
|> put_method(:get)
|> make_request()
end
@doc """
Retrieves a balance transaction
See the [Stripe docs](https://stripe.com/docs/api#balance_transaction_retrieve).
"""
@spec retrieve_transaction(String.t(), Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
def retrieve_transaction(id, opts \\ []) do
new_request(opts)
|> put_endpoint(@endpoint <> "/history/" <> id)
|> put_method(:get)
|> make_request()
end
@doc """
List balance history
See the [Stripe docs](https://stripe.com/docs/api#balance_history).
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
optional(:available_on) => Stripe.date_query(),
optional(:created) => Stripe.date_query(),
optional(:currency) => String.t(),
optional(:ending_before) => t | Stripe.id(),
optional(:limit) => 1..100,
optional(:payout) => String.t(),
optional(:source) => %{
optional(:object) => String.t()
},
optional(:starting_after) => t | Stripe.id(),
optional(:type) => String.t()
}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> prefix_expansions()
|> put_endpoint(@endpoint <> "/history")
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:available_on, :created, :ending_before, :starting_after])
|> make_request()
end
end