Accrue.Billing.PaymentMethodActions (accrue v1.1.1)

Copy Markdown View Source

Payment method orchestration.

Canonical CRUD verbs are projection-first:

Legacy attach_payment_method/3 and detach_payment_method/2 stay in place as compatibility wrappers for the existing Stripe/Fake semantics.

Summary

Functions

add_payment_method(customer, attrs_or_id, opts \\ [])

@spec add_payment_method(Accrue.Billing.Customer.t(), map() | String.t(), keyword()) ::
  {:ok, Accrue.Billing.PaymentMethod.t()} | {:error, term()}

add_payment_method!(customer, attrs, opts \\ [])

@spec add_payment_method!(Accrue.Billing.Customer.t(), map() | String.t(), keyword()) ::
  Accrue.Billing.PaymentMethod.t()

attach_payment_method(customer, pm_processor_id, opts \\ [])

@spec attach_payment_method(Accrue.Billing.Customer.t(), String.t(), keyword()) ::
  {:ok, Accrue.Billing.PaymentMethod.t()} | {:error, term()}

attach_payment_method!(customer, pm_processor_id, opts \\ [])

@spec attach_payment_method!(Accrue.Billing.Customer.t(), String.t(), keyword()) ::
  Accrue.Billing.PaymentMethod.t()

delete_payment_method(payment_method, opts \\ [])

@spec delete_payment_method(
  Accrue.Billing.PaymentMethod.t(),
  keyword()
) :: {:ok, Accrue.Billing.PaymentMethod.t()} | {:error, term()}

delete_payment_method!(payment_method, opts \\ [])

@spec delete_payment_method!(
  Accrue.Billing.PaymentMethod.t(),
  keyword()
) :: Accrue.Billing.PaymentMethod.t()

detach_payment_method(payment_method, opts \\ [])

@spec detach_payment_method(
  Accrue.Billing.PaymentMethod.t(),
  keyword()
) :: {:ok, Accrue.Billing.PaymentMethod.t()} | {:error, term()}

detach_payment_method!(payment_method, opts \\ [])

@spec detach_payment_method!(
  Accrue.Billing.PaymentMethod.t(),
  keyword()
) :: Accrue.Billing.PaymentMethod.t()

list_payment_methods(customer, opts \\ [])

@spec list_payment_methods(
  Accrue.Billing.Customer.t(),
  keyword()
) :: {:ok, [Accrue.Billing.PaymentMethod.t()]} | {:error, term()}

list_payment_methods!(customer, opts \\ [])

@spec list_payment_methods!(
  Accrue.Billing.Customer.t(),
  keyword()
) :: [Accrue.Billing.PaymentMethod.t()]

set_default_payment_method(customer, payment_method, opts \\ [])

@spec set_default_payment_method(
  Accrue.Billing.Customer.t(),
  Accrue.Billing.PaymentMethod.t(),
  keyword()
) :: {:ok, Accrue.Billing.Customer.t()} | {:error, term()}

set_default_payment_method!(customer, payment_method, opts \\ [])

sync_payment_methods(customer, opts \\ [])

@spec sync_payment_methods(
  Accrue.Billing.Customer.t(),
  keyword()
) :: {:ok, [Accrue.Billing.PaymentMethod.t()]} | {:error, term()}

sync_payment_methods!(customer, opts \\ [])

@spec sync_payment_methods!(
  Accrue.Billing.Customer.t(),
  keyword()
) :: [Accrue.Billing.PaymentMethod.t()]

update_payment_method(payment_method, attrs, opts \\ [])

@spec update_payment_method(Accrue.Billing.PaymentMethod.t(), map(), keyword()) ::
  {:ok, Accrue.Billing.PaymentMethod.t()} | {:error, term()}

update_payment_method!(payment_method, attrs, opts \\ [])

@spec update_payment_method!(Accrue.Billing.PaymentMethod.t(), map(), keyword()) ::
  Accrue.Billing.PaymentMethod.t()