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/connect/fee_refund.ex
defmodule Stripe.FeeRefund do
@moduledoc """
Work with Stripe Connect application fees refund.
Stripe API reference: https://stripe.com/docs/api#fee_refunds
"""
use Stripe.Entity
import Stripe.Request
@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
amount: integer,
balance_transaction: Stripe.id() | Stripe.BalanceTransaction.t(),
created: Stripe.timestamp(),
currency: String.t(),
fee: String.t(),
metadata: Stripe.Types.metadata()
}
defstruct [
:id,
:object,
:amount,
:balance_transaction,
:created,
:currency,
:fee,
:metadata
]
@endpoint "application_fees"
@doc """
Create a application fee refund
"""
@spec create(Stripe.id() | t, params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params: %{
optional(:amount) => pos_integer,
optional(:metadata) => Stripe.Types.metadata()
}
def create(id, params, opts \\ []) do
new_request(opts)
|> put_endpoint(@endpoint <> "/#{id}/refunds")
|> put_params(params)
|> put_method(:post)
|> make_request()
end
@doc """
Retrieve a application fee refund.
"""
@spec retrieve(Stripe.id() | t, Stripe.id() | t, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
def retrieve(id, fee_id, opts \\ []) do
new_request(opts)
|> put_endpoint(@endpoint <> "/#{id}/refunds/#{fee_id}")
|> put_method(:get)
|> make_request()
end
@doc """
Update a transfer.
Takes the `id` and a map of changes.
"""
@spec update(Stripe.id() | t, Stripe.id() | t, params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params: %{
optional(:metadata) => Stripe.Types.metadata(),
}
def update(id, fee_id, params, opts \\ []) do
new_request(opts)
|> put_endpoint(@endpoint <> "/#{id}/refunds/#{fee_id}")
|> put_method(:post)
|> put_params(params)
|> make_request()
end
@doc """
List all transfers.
"""
@spec list(Stripe.id() | t, params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
optional(:ending_before) => t | Stripe.id(),
optional(:limit) => 1..100,
optional(:starting_after) => t | Stripe.id()
}
def list(id, params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint(@endpoint <> "/#{id}/refunds")
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:ending_before, :starting_after])
|> make_request()
end
end