LatticeStripe.Tax.Settings (LatticeStripe v1.7.11)

Copy Markdown View Source

Account-level Stripe Tax configuration singleton.

Tax Settings is a singleton — there is no resource ID. The only operations are retrieve/2 and update/3 against fixed paths on /v1/tax/settings.

Defaults and Calculation

The defaults field holds account-wide fallbacks such as tax_code and tax_behavior. When line items in LatticeStripe.Tax.Calculation.create/3 omit those fields, Stripe applies the settings defaults.

Relationship to other tax surfaces

This module is not LatticeStripe.Invoice.AutomaticTax. Automatic tax on Invoices, Subscriptions, and Quotes is configured via nested automatic_tax settings on those Billing resources. Use Tax Settings for account-wide Stripe Tax configuration that applies to the Calculations API and registrations.

Pass stripe_account: "acct_..." in opts on retrieve/2 and update/3 for connected accounts (same semantics as LatticeStripe.Balance.retrieve/2).

Usage

{:ok, settings} = LatticeStripe.Tax.Settings.retrieve(client)

{:ok, settings} =
  LatticeStripe.Tax.Settings.update(client, %{
    "defaults" => %{
      "tax_behavior" => "exclusive",
      "tax_code" => "txcd_99999999"
    }
  })

Once a settings field is set, Stripe does not support unsetting it via the API — you can only change values. Check status and status_details for whether Tax is active in your jurisdictions.

See Standalone Tax API for the canonical calculate → record → reverse workflow.

See Stripe Tax Settings.

Summary

Functions

Retrieves the Stripe Tax Settings singleton.

Updates Stripe Tax Settings.

Like update/3 but raises on failure.

Types

t()

@type t() :: %LatticeStripe.Tax.Settings{
  defaults: LatticeStripe.Tax.Settings.Defaults.t() | nil,
  extra: map(),
  head_office: LatticeStripe.Tax.Settings.HeadOffice.t() | nil,
  livemode: boolean() | nil,
  object: String.t(),
  status: atom() | String.t() | nil,
  status_details: LatticeStripe.Tax.Settings.StatusDetails.t() | nil
}

Functions

retrieve(client, opts \\ [])

@spec retrieve(
  LatticeStripe.Client.t(),
  keyword()
) :: {:ok, t()} | {:error, LatticeStripe.Error.t()}

Retrieves the Stripe Tax Settings singleton.

Sends GET /v1/tax/settings and returns {:ok, %Settings{}}.

Pass stripe_account: "acct_..." in opts for connected accounts.

retrieve!(client, opts \\ [])

@spec retrieve!(
  LatticeStripe.Client.t(),
  keyword()
) :: t()

Like retrieve/2 but raises LatticeStripe.Error on failure.

update(client, params, opts \\ [])

@spec update(LatticeStripe.Client.t(), map(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Updates Stripe Tax Settings.

Sends POST /v1/tax/settings with the raw params map.

update!(client, params, opts \\ [])

@spec update!(LatticeStripe.Client.t(), map(), keyword()) :: t()

Like update/3 but raises on failure.