StripeManaged.CheckoutSession (StripeManaged v0.1.0)

Copy Markdown View Source

Create and manage Stripe Checkout Sessions with Managed Payments.

This is the primary integration point - all Managed Payments sales must go through Checkout Sessions with managed_payments: %{enabled: true}.

Supports both one-time payments (mode: "payment") and subscriptions (mode: "subscription").

Example - subscription

{:ok, session} = StripeManaged.CheckoutSession.create(%{
  line_items: [%{price: "price_abc", quantity: 1}],
  mode: "subscription",
  managed_payments: %{enabled: true},
  success_url: "https://example.com/success"
})

# Redirect to session["url"]

Example - one-time payment

{:ok, session} = StripeManaged.CheckoutSession.create(%{
  line_items: [%{price: "price_xyz", quantity: 1}],
  mode: "payment",
  managed_payments: %{enabled: true},
  success_url: "https://example.com/thanks"
})

Summary

Functions

Creates a new Checkout Session.

Expires a checkout session so it can no longer be completed.

Lists checkout sessions.

Retrieves line items for a session.

Retrieves a session by ID.

Functions

create(params, opts \\ [])

@spec create(
  map(),
  keyword()
) :: StripeManaged.Client.response()

Creates a new Checkout Session.

Required params:

  • line_items - list of %{price: price_id, quantity: n}
  • mode - "subscription" or "payment"
  • managed_payments - %{enabled: true}
  • success_url - redirect URL after successful payment

Optional params:

  • cancel_url - redirect URL if customer cancels
  • customer - existing customer ID
  • customer_email - pre-fill email
  • metadata - key-value metadata
  • saved_payment_method_options - saved payment method config
  • payment_method_collection - "if_required" for free trials

expire(id, opts \\ [])

@spec expire(
  String.t(),
  keyword()
) :: StripeManaged.Client.response()

Expires a checkout session so it can no longer be completed.

list(params \\ %{}, opts \\ [])

@spec list(
  map(),
  keyword()
) :: StripeManaged.Client.response()

Lists checkout sessions.

list_line_items(id, params \\ %{}, opts \\ [])

@spec list_line_items(String.t(), map(), keyword()) :: StripeManaged.Client.response()

Retrieves line items for a session.

retrieve(id, opts \\ [])

@spec retrieve(
  String.t(),
  keyword()
) :: StripeManaged.Client.response()

Retrieves a session by ID.