Packages
stripity_stripe
2.17.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/mandate.ex
defmodule Stripe.Mandate do
@moduledoc """
A [Mandate](https://stripe.com/docs/api/mandates) is a record of the
permission a customer has given you to debit their payment method.
You can:
- [Retrieve a Mandate](https://stripe.com/docs/api/mandates/retrieve)
"""
use Stripe.Entity
import Stripe.Request
@type customer_acceptance :: %{
required(:accepted_at) => Stripe.timestamp(),
optional(:offline) =>
%{
# The docs lists this a hash with no attributes.
},
optional(:online) => %{
ip_address: String.t(),
user_agent: String.t()
},
required(:type) => String.t()
}
@type payment_method_details :: %{
optional(:au_becs_debit) => %{
url: String.t()
},
optional(:card) =>
%{
# The docs list this as a hash with no attributes.
},
optional(:sepa_debit) => %{
reference: String.t(),
url: String.t()
},
type: String.t()
}
@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
customer_acceptance: customer_acceptance(),
livemode: boolean,
multi_use: map,
payment_method: Stripe.id() | Stripe.PaymentMethod.t() | nil,
payment_method_details: payment_method_details(),
status: String.t(),
type: String.t()
}
defstruct [
:id,
:object,
:customer_acceptance,
:livemode,
:multi_use,
:payment_method,
:payment_method_details,
:status,
:type
]
@plural_endpoint "mandates"
@doc """
Retrieves a Mandate that has previously been created.
See the [Stripe docs](https://stripe.com/docs/api/mandates/retrieve).
"""
@spec retrieve(Stripe.id() | t, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
def retrieve(id, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:get)
|> make_request()
end
end