View Source Stripe.Tax.Calculation (stripity_stripe v3.2.0)

A Tax Calculation allows you to calculate the tax to collect from your customer.

Related guide: Calculate tax in your custom payment flow

Summary

Types

The customer's postal address (for example, home or business location).

Details about the customer, including address and tax IDs.

Shipping cost details to be used for the calculation.

t()

The tax.calculation type.

Functions

Calculates tax based on input and returns a Tax Calculation object.

Retrieves the line items of a persisted tax calculation as a collection.

Types

@type address() :: %{
  optional(:city) => binary() | binary(),
  optional(:country) => binary(),
  optional(:line1) => binary() | binary(),
  optional(:line2) => binary() | binary(),
  optional(:postal_code) => binary() | binary(),
  optional(:state) => binary() | binary()
}

The customer's postal address (for example, home or business location).

@type customer_details() :: %{
  optional(:address) => address(),
  optional(:address_source) => :billing | :shipping,
  optional(:ip_address) => binary(),
  optional(:tax_ids) => [tax_ids()],
  optional(:taxability_override) => :customer_exempt | :none | :reverse_charge
}

Details about the customer, including address and tax IDs.

@type line_items() :: %{
  optional(:amount) => integer(),
  optional(:product) => binary(),
  optional(:quantity) => integer(),
  optional(:reference) => binary(),
  optional(:tax_behavior) => :exclusive | :inclusive,
  optional(:tax_code) => binary()
}
@type shipping_cost() :: %{
  optional(:amount) => integer(),
  optional(:shipping_rate) => binary(),
  optional(:tax_behavior) => :exclusive | :inclusive,
  optional(:tax_code) => binary()
}

Shipping cost details to be used for the calculation.

@type t() :: %Stripe.Tax.Calculation{
  amount_total: integer(),
  currency: binary(),
  customer: binary() | nil,
  customer_details: term(),
  expires_at: integer() | nil,
  id: binary() | nil,
  line_items: term() | nil,
  livemode: boolean(),
  object: binary(),
  shipping_cost: term() | nil,
  tax_amount_exclusive: integer(),
  tax_amount_inclusive: integer(),
  tax_breakdown: term(),
  tax_date: integer()
}

The tax.calculation type.

  • amount_total Total after taxes.
  • currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
  • customer The ID of an existing Customer used for the resource.
  • customer_details
  • expires_at Timestamp of date at which the tax calculation will expire.
  • id Unique identifier for the calculation.
  • line_items The list of items the customer is purchasing.
  • livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode.
  • object String representing the object's type. Objects of the same type share the same value.
  • shipping_cost The shipping cost details for the calculation.
  • tax_amount_exclusive The amount of tax to be collected on top of the line item prices.
  • tax_amount_inclusive The amount of tax already included in the line item prices.
  • tax_breakdown Breakdown of individual tax amounts that add up to the total.
  • tax_date Timestamp of date at which the tax rules and rates in effect applies for the calculation.
@type tax_ids() :: %{
  optional(:type) =>
    :ad_nrt
    | :ae_trn
    | :ar_cuit
    | :au_abn
    | :au_arn
    | :bg_uic
    | :bo_tin
    | :br_cnpj
    | :br_cpf
    | :ca_bn
    | :ca_gst_hst
    | :ca_pst_bc
    | :ca_pst_mb
    | :ca_pst_sk
    | :ca_qst
    | :ch_vat
    | :cl_tin
    | :cn_tin
    | :co_nit
    | :cr_tin
    | :do_rcn
    | :ec_ruc
    | :eg_tin
    | :es_cif
    | :eu_oss_vat
    | :eu_vat
    | :gb_vat
    | :ge_vat
    | :hk_br
    | :hu_tin
    | :id_npwp
    | :il_vat
    | :in_gst
    | :is_vat
    | :jp_cn
    | :jp_rn
    | :jp_trn
    | :ke_pin
    | :kr_brn
    | :li_uid
    | :mx_rfc
    | :my_frp
    | :my_itn
    | :my_sst
    | :no_vat
    | :nz_gst
    | :pe_ruc
    | :ph_tin
    | :ro_tin
    | :rs_pib
    | :ru_inn
    | :ru_kpp
    | :sa_vat
    | :sg_gst
    | :sg_uen
    | :si_tin
    | :sv_nit
    | :th_vat
    | :tr_tin
    | :tw_vat
    | :ua_vat
    | :us_ein
    | :uy_ruc
    | :ve_rif
    | :vn_tin
    | :za_vat,
  optional(:value) => binary()
}

Functions

Link to this function

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

View Source
@spec create(
  params :: %{
    optional(:currency) => binary(),
    optional(:customer) => binary(),
    optional(:customer_details) => customer_details(),
    optional(:expand) => [binary()],
    optional(:line_items) => [line_items()],
    optional(:shipping_cost) => shipping_cost(),
    optional(:tax_date) => integer()
  },
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Calculates tax based on input and returns a Tax Calculation object.

Details

  • Method: post
  • Path: /v1/tax/calculations
Link to this function

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

View Source
@spec list_line_items(
  calculation :: binary(),
  params :: %{
    optional(:ending_before) => binary(),
    optional(:expand) => [binary()],
    optional(:limit) => integer(),
    optional(:starting_after) => binary()
  },
  opts :: Keyword.t()
) ::
  {:ok, Stripe.List.t(Stripe.Tax.CalculationLineItem.t())}
  | {:error, Stripe.ApiErrors.t()}
  | {:error, term()}

Retrieves the line items of a persisted tax calculation as a collection.

Details

  • Method: get
  • Path: /v1/tax/calculations/{calculation}/line_items