Stripe.Session (stripity_stripe v2.12.0) View Source

Work with Stripe Checkout Session objects.

You can:

  • Create a new session
  • Retrieve a session

Stripe API reference: https://stripe.com/docs/api/checkout/sessions

Link to this section Summary

Functions

See Stripe.Checkout.Session.LineItems.list/2.

Retrieve a session.

Link to this section Types

Specs

adjustable_quantity() :: %{
  :enabled => boolean(),
  optional(:maxiumum) => integer(),
  optional(:minimum) => integer()
}

Specs

capture_method() :: :automatic | :manual

Specs

create_params() :: %{
  :cancel_url => String.t(),
  :payment_method_types => [String.t()],
  :success_url => String.t(),
  optional(:mode) => String.t(),
  optional(:client_reference_id) => String.t(),
  optional(:customer) => String.t(),
  optional(:customer_email) => String.t(),
  optional(:line_items) => [line_item()],
  optional(:locale) => String.t(),
  optional(:metadata) => Stripe.Types.metadata(),
  optional(:payment_intent_data) => payment_intent_data(),
  optional(:subscription_data) => subscription_data()
}

Specs

item() :: %{:plan => String.t(), optional(:quantity) => integer()}

Specs

line_item() :: %{
  optional(:name) => String.t(),
  optional(:quantity) => integer(),
  optional(:adjustable_quantity) => adjustable_quantity(),
  optional(:amount) => integer(),
  optional(:currency) => String.t(),
  optional(:description) => String.t(),
  optional(:dynamic_tax_rates) => [String.t()],
  optional(:images) => [String.t()],
  optional(:price) => String.t(),
  optional(:price_data) => price_data(),
  optional(:tax_rates) => [String.t()]
}

Specs

payment_intent_data() :: %{
  optional(:application_fee_amount) => integer(),
  optional(:capture_method) => capture_method(),
  optional(:description) => String.t(),
  optional(:metadata) => Stripe.Types.metadata(),
  optional(:on_behalf_of) => String.t(),
  optional(:receipt_email) => String.t(),
  optional(:setup_future_usage) => String.t(),
  optional(:shipping) => Stripe.Types.shipping(),
  optional(:statement_descriptor) => String.t(),
  optional(:transfer_data) => transfer_data()
}

Specs

price_data() :: %{
  :currency => String.t(),
  optional(:product) => String.t(),
  optional(:product_data) => product_data(),
  optional(:unit_amount) => integer(),
  optional(:unit_amount_decimal) => integer(),
  optional(:recurring) => recurring()
}

Specs

product_data() :: %{
  :name => String.t(),
  optional(:description) => String.t(),
  optional(:images) => [String.t()],
  optional(:metadata) => Stripe.Types.metadata()
}

Specs

recurring() :: %{interval: String.t(), interval_count: integer()}

Specs

subscription_data() :: %{
  :items => [item()],
  optional(:application_fee_percent) => float(),
  optional(:coupon) => String.t(),
  optional(:default_tax_rates) => [String.t()],
  optional(:metadata) => Stripe.Types.metadata(),
  optional(:trial_end) => integer(),
  optional(:trial_from_plan) => boolean(),
  optional(:trial_period_days) => integer()
}

Specs

t() :: %Stripe.Session{
  billing_address_collection: String.t(),
  cancel_url: boolean(),
  client_reference_id: String.t(),
  customer: Stripe.id() | Stripe.Customer.t() | nil,
  customer_email: String.t(),
  display_items: [line_item()],
  id: Stripe.id(),
  livemode: boolean(),
  locale: boolean(),
  metadata: Stripe.Types.metadata(),
  mode: String.t(),
  object: String.t(),
  payment_intent: Stripe.id() | Stripe.PaymentIntent.t() | nil,
  payment_method_types: [String.t()],
  setup_intent: Stripe.id() | Stripe.SetupIntent.t() | nil,
  shipping: %{address: Stripe.Types.shipping(), name: String.t()},
  shipping_address_collection: %{allowed_countries: [String.t()]},
  submit_type: String.t() | nil,
  subscription: Stripe.id() | Stripe.Subscription.t() | nil,
  success_url: String.t()
}

Specs

transfer_data() :: %{destination: String.t()}

Link to this section Functions

Link to this function

create(params, opts \\ [])

View Source

Specs

create(create_params(), Stripe.options()) ::
  {:ok, t()} | {:error, Stripe.Error.t()}
Link to this function

list_line_items(id, opts \\ [])

View Source

See Stripe.Checkout.Session.LineItems.list/2.

Link to this function

retrieve(id, opts \\ [])

View Source

Specs

retrieve(Stripe.id() | t(), Stripe.options()) ::
  {:ok, t()} | {:error, Stripe.Error.t()}

Retrieve a session.