updates
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from importlib import import_module
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe.tax._calculation import Calculation as Calculation
|
||||
from stripe.tax._calculation_line_item import (
|
||||
CalculationLineItem as CalculationLineItem,
|
||||
)
|
||||
from stripe.tax._calculation_line_item_service import (
|
||||
CalculationLineItemService as CalculationLineItemService,
|
||||
)
|
||||
from stripe.tax._calculation_service import (
|
||||
CalculationService as CalculationService,
|
||||
)
|
||||
from stripe.tax._registration import Registration as Registration
|
||||
from stripe.tax._registration_service import (
|
||||
RegistrationService as RegistrationService,
|
||||
)
|
||||
from stripe.tax._settings import Settings as Settings
|
||||
from stripe.tax._settings_service import SettingsService as SettingsService
|
||||
from stripe.tax._transaction import Transaction as Transaction
|
||||
from stripe.tax._transaction_line_item import (
|
||||
TransactionLineItem as TransactionLineItem,
|
||||
)
|
||||
from stripe.tax._transaction_line_item_service import (
|
||||
TransactionLineItemService as TransactionLineItemService,
|
||||
)
|
||||
from stripe.tax._transaction_service import (
|
||||
TransactionService as TransactionService,
|
||||
)
|
||||
|
||||
# name -> (import_target, is_submodule)
|
||||
_import_map = {
|
||||
"Calculation": ("stripe.tax._calculation", False),
|
||||
"CalculationLineItem": ("stripe.tax._calculation_line_item", False),
|
||||
"CalculationLineItemService": (
|
||||
"stripe.tax._calculation_line_item_service",
|
||||
False,
|
||||
),
|
||||
"CalculationService": ("stripe.tax._calculation_service", False),
|
||||
"Registration": ("stripe.tax._registration", False),
|
||||
"RegistrationService": ("stripe.tax._registration_service", False),
|
||||
"Settings": ("stripe.tax._settings", False),
|
||||
"SettingsService": ("stripe.tax._settings_service", False),
|
||||
"Transaction": ("stripe.tax._transaction", False),
|
||||
"TransactionLineItem": ("stripe.tax._transaction_line_item", False),
|
||||
"TransactionLineItemService": (
|
||||
"stripe.tax._transaction_line_item_service",
|
||||
False,
|
||||
),
|
||||
"TransactionService": ("stripe.tax._transaction_service", False),
|
||||
}
|
||||
if not TYPE_CHECKING:
|
||||
|
||||
def __getattr__(name):
|
||||
try:
|
||||
target, is_submodule = _import_map[name]
|
||||
module = import_module(target)
|
||||
if is_submodule:
|
||||
return module
|
||||
|
||||
return getattr(
|
||||
module,
|
||||
name,
|
||||
)
|
||||
except KeyError:
|
||||
raise AttributeError()
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,675 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._createable_api_resource import CreateableAPIResource
|
||||
from stripe._list_object import ListObject
|
||||
from stripe._stripe_object import StripeObject
|
||||
from stripe._util import class_method_variant, sanitize_id
|
||||
from typing import ClassVar, List, Optional, cast, overload
|
||||
from typing_extensions import Literal, Unpack, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe.params.tax._calculation_create_params import (
|
||||
CalculationCreateParams,
|
||||
)
|
||||
from stripe.params.tax._calculation_list_line_items_params import (
|
||||
CalculationListLineItemsParams,
|
||||
)
|
||||
from stripe.params.tax._calculation_retrieve_params import (
|
||||
CalculationRetrieveParams,
|
||||
)
|
||||
from stripe.tax._calculation_line_item import CalculationLineItem
|
||||
|
||||
|
||||
class Calculation(CreateableAPIResource["Calculation"]):
|
||||
"""
|
||||
A Tax Calculation allows you to calculate the tax to collect from your customer.
|
||||
|
||||
Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom)
|
||||
"""
|
||||
|
||||
OBJECT_NAME: ClassVar[Literal["tax.calculation"]] = "tax.calculation"
|
||||
|
||||
class CustomerDetails(StripeObject):
|
||||
class Address(StripeObject):
|
||||
city: Optional[str]
|
||||
"""
|
||||
City, district, suburb, town, or village.
|
||||
"""
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
line1: Optional[str]
|
||||
"""
|
||||
Address line 1, such as the street, PO Box, or company name.
|
||||
"""
|
||||
line2: Optional[str]
|
||||
"""
|
||||
Address line 2, such as the apartment, suite, unit, or building.
|
||||
"""
|
||||
postal_code: Optional[str]
|
||||
"""
|
||||
ZIP or postal code.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX".
|
||||
"""
|
||||
|
||||
class TaxId(StripeObject):
|
||||
type: Literal[
|
||||
"ad_nrt",
|
||||
"ae_trn",
|
||||
"al_tin",
|
||||
"am_tin",
|
||||
"ao_tin",
|
||||
"ar_cuit",
|
||||
"au_abn",
|
||||
"au_arn",
|
||||
"aw_tin",
|
||||
"az_tin",
|
||||
"ba_tin",
|
||||
"bb_tin",
|
||||
"bd_bin",
|
||||
"bf_ifu",
|
||||
"bg_uic",
|
||||
"bh_vat",
|
||||
"bj_ifu",
|
||||
"bo_tin",
|
||||
"br_cnpj",
|
||||
"br_cpf",
|
||||
"bs_tin",
|
||||
"by_tin",
|
||||
"ca_bn",
|
||||
"ca_gst_hst",
|
||||
"ca_pst_bc",
|
||||
"ca_pst_mb",
|
||||
"ca_pst_sk",
|
||||
"ca_qst",
|
||||
"cd_nif",
|
||||
"ch_uid",
|
||||
"ch_vat",
|
||||
"cl_tin",
|
||||
"cm_niu",
|
||||
"cn_tin",
|
||||
"co_nit",
|
||||
"cr_tin",
|
||||
"cv_nif",
|
||||
"de_stn",
|
||||
"do_rcn",
|
||||
"ec_ruc",
|
||||
"eg_tin",
|
||||
"es_cif",
|
||||
"et_tin",
|
||||
"eu_oss_vat",
|
||||
"eu_vat",
|
||||
"gb_vat",
|
||||
"ge_vat",
|
||||
"gn_nif",
|
||||
"hk_br",
|
||||
"hr_oib",
|
||||
"hu_tin",
|
||||
"id_npwp",
|
||||
"il_vat",
|
||||
"in_gst",
|
||||
"is_vat",
|
||||
"jp_cn",
|
||||
"jp_rn",
|
||||
"jp_trn",
|
||||
"ke_pin",
|
||||
"kg_tin",
|
||||
"kh_tin",
|
||||
"kr_brn",
|
||||
"kz_bin",
|
||||
"la_tin",
|
||||
"li_uid",
|
||||
"li_vat",
|
||||
"ma_vat",
|
||||
"md_vat",
|
||||
"me_pib",
|
||||
"mk_vat",
|
||||
"mr_nif",
|
||||
"mx_rfc",
|
||||
"my_frp",
|
||||
"my_itn",
|
||||
"my_sst",
|
||||
"ng_tin",
|
||||
"no_vat",
|
||||
"no_voec",
|
||||
"np_pan",
|
||||
"nz_gst",
|
||||
"om_vat",
|
||||
"pe_ruc",
|
||||
"ph_tin",
|
||||
"ro_tin",
|
||||
"rs_pib",
|
||||
"ru_inn",
|
||||
"ru_kpp",
|
||||
"sa_vat",
|
||||
"sg_gst",
|
||||
"sg_uen",
|
||||
"si_tin",
|
||||
"sn_ninea",
|
||||
"sr_fin",
|
||||
"sv_nit",
|
||||
"th_vat",
|
||||
"tj_tin",
|
||||
"tr_tin",
|
||||
"tw_vat",
|
||||
"tz_vat",
|
||||
"ua_vat",
|
||||
"ug_tin",
|
||||
"unknown",
|
||||
"us_ein",
|
||||
"uy_ruc",
|
||||
"uz_tin",
|
||||
"uz_vat",
|
||||
"ve_rif",
|
||||
"vn_tin",
|
||||
"za_vat",
|
||||
"zm_tin",
|
||||
"zw_tin",
|
||||
]
|
||||
"""
|
||||
The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown`
|
||||
"""
|
||||
value: str
|
||||
"""
|
||||
The value of the tax ID.
|
||||
"""
|
||||
|
||||
address: Optional[Address]
|
||||
"""
|
||||
The customer's postal address (for example, home or business location).
|
||||
"""
|
||||
address_source: Optional[Literal["billing", "shipping"]]
|
||||
"""
|
||||
The type of customer address provided.
|
||||
"""
|
||||
ip_address: Optional[str]
|
||||
"""
|
||||
The customer's IP address (IPv4 or IPv6).
|
||||
"""
|
||||
tax_ids: List[TaxId]
|
||||
"""
|
||||
The customer's tax IDs (for example, EU VAT numbers).
|
||||
"""
|
||||
taxability_override: Literal[
|
||||
"customer_exempt", "none", "reverse_charge"
|
||||
]
|
||||
"""
|
||||
The taxability override used for taxation.
|
||||
"""
|
||||
_inner_class_types = {"address": Address, "tax_ids": TaxId}
|
||||
|
||||
class ShipFromDetails(StripeObject):
|
||||
class Address(StripeObject):
|
||||
city: Optional[str]
|
||||
"""
|
||||
City, district, suburb, town, or village.
|
||||
"""
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
line1: Optional[str]
|
||||
"""
|
||||
Address line 1, such as the street, PO Box, or company name.
|
||||
"""
|
||||
line2: Optional[str]
|
||||
"""
|
||||
Address line 2, such as the apartment, suite, unit, or building.
|
||||
"""
|
||||
postal_code: Optional[str]
|
||||
"""
|
||||
ZIP or postal code.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX".
|
||||
"""
|
||||
|
||||
address: Address
|
||||
_inner_class_types = {"address": Address}
|
||||
|
||||
class ShippingCost(StripeObject):
|
||||
class TaxBreakdown(StripeObject):
|
||||
class Jurisdiction(StripeObject):
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
display_name: str
|
||||
"""
|
||||
A human-readable name for the jurisdiction imposing the tax.
|
||||
"""
|
||||
level: Literal[
|
||||
"city", "country", "county", "district", "state"
|
||||
]
|
||||
"""
|
||||
Indicates the level of the jurisdiction imposing the tax.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States.
|
||||
"""
|
||||
|
||||
class TaxRateDetails(StripeObject):
|
||||
display_name: str
|
||||
"""
|
||||
A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)".
|
||||
"""
|
||||
percentage_decimal: str
|
||||
"""
|
||||
The tax rate percentage as a string. For example, 8.5% is represented as "8.5".
|
||||
"""
|
||||
tax_type: Literal[
|
||||
"amusement_tax",
|
||||
"communications_tax",
|
||||
"gst",
|
||||
"hst",
|
||||
"igst",
|
||||
"jct",
|
||||
"lease_tax",
|
||||
"pst",
|
||||
"qst",
|
||||
"retail_delivery_fee",
|
||||
"rst",
|
||||
"sales_tax",
|
||||
"service_tax",
|
||||
"vat",
|
||||
]
|
||||
"""
|
||||
The tax type, such as `vat` or `sales_tax`.
|
||||
"""
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
jurisdiction: Jurisdiction
|
||||
sourcing: Literal["destination", "origin"]
|
||||
"""
|
||||
Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address).
|
||||
"""
|
||||
tax_rate_details: Optional[TaxRateDetails]
|
||||
"""
|
||||
Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax.
|
||||
"""
|
||||
taxability_reason: Literal[
|
||||
"customer_exempt",
|
||||
"not_collecting",
|
||||
"not_subject_to_tax",
|
||||
"not_supported",
|
||||
"portion_product_exempt",
|
||||
"portion_reduced_rated",
|
||||
"portion_standard_rated",
|
||||
"product_exempt",
|
||||
"product_exempt_holiday",
|
||||
"proportionally_rated",
|
||||
"reduced_rated",
|
||||
"reverse_charge",
|
||||
"standard_rated",
|
||||
"taxable_basis_reduced",
|
||||
"zero_rated",
|
||||
]
|
||||
"""
|
||||
The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.
|
||||
"""
|
||||
taxable_amount: int
|
||||
"""
|
||||
The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
_inner_class_types = {
|
||||
"jurisdiction": Jurisdiction,
|
||||
"tax_rate_details": TaxRateDetails,
|
||||
}
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.
|
||||
"""
|
||||
amount_tax: int
|
||||
"""
|
||||
The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
shipping_rate: Optional[str]
|
||||
"""
|
||||
The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object).
|
||||
"""
|
||||
tax_behavior: Literal["exclusive", "inclusive"]
|
||||
"""
|
||||
Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.
|
||||
"""
|
||||
tax_breakdown: Optional[List[TaxBreakdown]]
|
||||
"""
|
||||
Detailed account of taxes relevant to shipping cost.
|
||||
"""
|
||||
tax_code: str
|
||||
"""
|
||||
The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping.
|
||||
"""
|
||||
_inner_class_types = {"tax_breakdown": TaxBreakdown}
|
||||
|
||||
class TaxBreakdown(StripeObject):
|
||||
class TaxRateDetails(StripeObject):
|
||||
class FlatAmount(StripeObject):
|
||||
amount: int
|
||||
"""
|
||||
Amount of the tax when the `rate_type` is `flat_amount`. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
|
||||
"""
|
||||
currency: str
|
||||
"""
|
||||
Three-letter ISO currency code, in lowercase.
|
||||
"""
|
||||
|
||||
country: Optional[str]
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
flat_amount: Optional[FlatAmount]
|
||||
"""
|
||||
The amount of the tax rate when the `rate_type` is `flat_amount`. Tax rates with `rate_type` `percentage` can vary based on the transaction, resulting in this field being `null`. This field exposes the amount and currency of the flat tax rate.
|
||||
"""
|
||||
percentage_decimal: str
|
||||
"""
|
||||
The tax rate percentage as a string. For example, 8.5% is represented as `"8.5"`.
|
||||
"""
|
||||
rate_type: Optional[Literal["flat_amount", "percentage"]]
|
||||
"""
|
||||
Indicates the type of tax rate applied to the taxable amount. This value can be `null` when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
State, county, province, or region.
|
||||
"""
|
||||
tax_type: Optional[
|
||||
Literal[
|
||||
"amusement_tax",
|
||||
"communications_tax",
|
||||
"gst",
|
||||
"hst",
|
||||
"igst",
|
||||
"jct",
|
||||
"lease_tax",
|
||||
"pst",
|
||||
"qst",
|
||||
"retail_delivery_fee",
|
||||
"rst",
|
||||
"sales_tax",
|
||||
"service_tax",
|
||||
"vat",
|
||||
]
|
||||
]
|
||||
"""
|
||||
The tax type, such as `vat` or `sales_tax`.
|
||||
"""
|
||||
_inner_class_types = {"flat_amount": FlatAmount}
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
inclusive: bool
|
||||
"""
|
||||
Specifies whether the tax amount is included in the line item amount.
|
||||
"""
|
||||
tax_rate_details: TaxRateDetails
|
||||
taxability_reason: Literal[
|
||||
"customer_exempt",
|
||||
"not_collecting",
|
||||
"not_subject_to_tax",
|
||||
"not_supported",
|
||||
"portion_product_exempt",
|
||||
"portion_reduced_rated",
|
||||
"portion_standard_rated",
|
||||
"product_exempt",
|
||||
"product_exempt_holiday",
|
||||
"proportionally_rated",
|
||||
"reduced_rated",
|
||||
"reverse_charge",
|
||||
"standard_rated",
|
||||
"taxable_basis_reduced",
|
||||
"zero_rated",
|
||||
]
|
||||
"""
|
||||
The reasoning behind this tax, for example, if the product is tax exempt. We might extend the possible values for this field to support new tax rules.
|
||||
"""
|
||||
taxable_amount: int
|
||||
"""
|
||||
The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
_inner_class_types = {"tax_rate_details": TaxRateDetails}
|
||||
|
||||
amount_total: int
|
||||
"""
|
||||
Total amount after taxes in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
currency: str
|
||||
"""
|
||||
Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
|
||||
"""
|
||||
customer: Optional[str]
|
||||
"""
|
||||
The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource.
|
||||
"""
|
||||
customer_details: CustomerDetails
|
||||
expires_at: Optional[int]
|
||||
"""
|
||||
Timestamp of date at which the tax calculation will expire.
|
||||
"""
|
||||
id: Optional[str]
|
||||
"""
|
||||
Unique identifier for the calculation.
|
||||
"""
|
||||
line_items: Optional[ListObject["CalculationLineItem"]]
|
||||
"""
|
||||
The list of items the customer is purchasing.
|
||||
"""
|
||||
livemode: bool
|
||||
"""
|
||||
Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
|
||||
"""
|
||||
object: Literal["tax.calculation"]
|
||||
"""
|
||||
String representing the object's type. Objects of the same type share the same value.
|
||||
"""
|
||||
ship_from_details: Optional[ShipFromDetails]
|
||||
"""
|
||||
The details of the ship from location, such as the address.
|
||||
"""
|
||||
shipping_cost: Optional[ShippingCost]
|
||||
"""
|
||||
The shipping cost details for the calculation.
|
||||
"""
|
||||
tax_amount_exclusive: int
|
||||
"""
|
||||
The amount of tax to be collected on top of the line item prices.
|
||||
"""
|
||||
tax_amount_inclusive: int
|
||||
"""
|
||||
The amount of tax already included in the line item prices.
|
||||
"""
|
||||
tax_breakdown: List[TaxBreakdown]
|
||||
"""
|
||||
Breakdown of individual tax amounts that add up to the total.
|
||||
"""
|
||||
tax_date: int
|
||||
"""
|
||||
Timestamp of date at which the tax rules and rates in effect applies for the calculation.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def create(
|
||||
cls, **params: Unpack["CalculationCreateParams"]
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Calculates tax based on the input and returns a Tax Calculation object.
|
||||
"""
|
||||
return cast(
|
||||
"Calculation",
|
||||
cls._static_request(
|
||||
"post",
|
||||
cls.class_url(),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def create_async(
|
||||
cls, **params: Unpack["CalculationCreateParams"]
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Calculates tax based on the input and returns a Tax Calculation object.
|
||||
"""
|
||||
return cast(
|
||||
"Calculation",
|
||||
await cls._static_request_async(
|
||||
"post",
|
||||
cls.class_url(),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def _cls_list_line_items(
|
||||
cls,
|
||||
calculation: str,
|
||||
**params: Unpack["CalculationListLineItemsParams"],
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["CalculationLineItem"],
|
||||
cls._static_request(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}/line_items".format(
|
||||
calculation=sanitize_id(calculation)
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@overload
|
||||
@staticmethod
|
||||
def list_line_items(
|
||||
calculation: str, **params: Unpack["CalculationListLineItemsParams"]
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
...
|
||||
|
||||
@overload
|
||||
def list_line_items(
|
||||
self, **params: Unpack["CalculationListLineItemsParams"]
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
...
|
||||
|
||||
@class_method_variant("_cls_list_line_items")
|
||||
def list_line_items( # pyright: ignore[reportGeneralTypeIssues]
|
||||
self, **params: Unpack["CalculationListLineItemsParams"]
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["CalculationLineItem"],
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}/line_items".format(
|
||||
calculation=sanitize_id(self.get("id"))
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def _cls_list_line_items_async(
|
||||
cls,
|
||||
calculation: str,
|
||||
**params: Unpack["CalculationListLineItemsParams"],
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["CalculationLineItem"],
|
||||
await cls._static_request_async(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}/line_items".format(
|
||||
calculation=sanitize_id(calculation)
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@overload
|
||||
@staticmethod
|
||||
async def list_line_items_async(
|
||||
calculation: str, **params: Unpack["CalculationListLineItemsParams"]
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
...
|
||||
|
||||
@overload
|
||||
async def list_line_items_async(
|
||||
self, **params: Unpack["CalculationListLineItemsParams"]
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
...
|
||||
|
||||
@class_method_variant("_cls_list_line_items_async")
|
||||
async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues]
|
||||
self, **params: Unpack["CalculationListLineItemsParams"]
|
||||
) -> ListObject["CalculationLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["CalculationLineItem"],
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}/line_items".format(
|
||||
calculation=sanitize_id(self.get("id"))
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def retrieve(
|
||||
cls, id: str, **params: Unpack["CalculationRetrieveParams"]
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Retrieves a Tax Calculation object, if the calculation hasn't expired.
|
||||
"""
|
||||
instance = cls(id, **params)
|
||||
instance.refresh()
|
||||
return instance
|
||||
|
||||
@classmethod
|
||||
async def retrieve_async(
|
||||
cls, id: str, **params: Unpack["CalculationRetrieveParams"]
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Retrieves a Tax Calculation object, if the calculation hasn't expired.
|
||||
"""
|
||||
instance = cls(id, **params)
|
||||
await instance.refresh_async()
|
||||
return instance
|
||||
|
||||
_inner_class_types = {
|
||||
"customer_details": CustomerDetails,
|
||||
"ship_from_details": ShipFromDetails,
|
||||
"shipping_cost": ShippingCost,
|
||||
"tax_breakdown": TaxBreakdown,
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_object import StripeObject
|
||||
from typing import ClassVar, Dict, List, Optional
|
||||
from typing_extensions import Literal
|
||||
|
||||
|
||||
class CalculationLineItem(StripeObject):
|
||||
OBJECT_NAME: ClassVar[Literal["tax.calculation_line_item"]] = (
|
||||
"tax.calculation_line_item"
|
||||
)
|
||||
|
||||
class TaxBreakdown(StripeObject):
|
||||
class Jurisdiction(StripeObject):
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
display_name: str
|
||||
"""
|
||||
A human-readable name for the jurisdiction imposing the tax.
|
||||
"""
|
||||
level: Literal["city", "country", "county", "district", "state"]
|
||||
"""
|
||||
Indicates the level of the jurisdiction imposing the tax.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States.
|
||||
"""
|
||||
|
||||
class TaxRateDetails(StripeObject):
|
||||
display_name: str
|
||||
"""
|
||||
A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)".
|
||||
"""
|
||||
percentage_decimal: str
|
||||
"""
|
||||
The tax rate percentage as a string. For example, 8.5% is represented as "8.5".
|
||||
"""
|
||||
tax_type: Literal[
|
||||
"amusement_tax",
|
||||
"communications_tax",
|
||||
"gst",
|
||||
"hst",
|
||||
"igst",
|
||||
"jct",
|
||||
"lease_tax",
|
||||
"pst",
|
||||
"qst",
|
||||
"retail_delivery_fee",
|
||||
"rst",
|
||||
"sales_tax",
|
||||
"service_tax",
|
||||
"vat",
|
||||
]
|
||||
"""
|
||||
The tax type, such as `vat` or `sales_tax`.
|
||||
"""
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
jurisdiction: Jurisdiction
|
||||
sourcing: Literal["destination", "origin"]
|
||||
"""
|
||||
Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address).
|
||||
"""
|
||||
tax_rate_details: Optional[TaxRateDetails]
|
||||
"""
|
||||
Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax.
|
||||
"""
|
||||
taxability_reason: Literal[
|
||||
"customer_exempt",
|
||||
"not_collecting",
|
||||
"not_subject_to_tax",
|
||||
"not_supported",
|
||||
"portion_product_exempt",
|
||||
"portion_reduced_rated",
|
||||
"portion_standard_rated",
|
||||
"product_exempt",
|
||||
"product_exempt_holiday",
|
||||
"proportionally_rated",
|
||||
"reduced_rated",
|
||||
"reverse_charge",
|
||||
"standard_rated",
|
||||
"taxable_basis_reduced",
|
||||
"zero_rated",
|
||||
]
|
||||
"""
|
||||
The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.
|
||||
"""
|
||||
taxable_amount: int
|
||||
"""
|
||||
The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
_inner_class_types = {
|
||||
"jurisdiction": Jurisdiction,
|
||||
"tax_rate_details": TaxRateDetails,
|
||||
}
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.
|
||||
"""
|
||||
amount_tax: int
|
||||
"""
|
||||
The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
id: str
|
||||
"""
|
||||
Unique identifier for the object.
|
||||
"""
|
||||
livemode: bool
|
||||
"""
|
||||
Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
|
||||
"""
|
||||
metadata: Optional[Dict[str, str]]
|
||||
"""
|
||||
Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
|
||||
"""
|
||||
object: Literal["tax.calculation_line_item"]
|
||||
"""
|
||||
String representing the object's type. Objects of the same type share the same value.
|
||||
"""
|
||||
product: Optional[str]
|
||||
"""
|
||||
The ID of an existing [Product](https://stripe.com/docs/api/products/object).
|
||||
"""
|
||||
quantity: int
|
||||
"""
|
||||
The number of units of the item being purchased. For reversals, this is the quantity reversed.
|
||||
"""
|
||||
reference: str
|
||||
"""
|
||||
A custom identifier for this line item.
|
||||
"""
|
||||
tax_behavior: Literal["exclusive", "inclusive"]
|
||||
"""
|
||||
Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.
|
||||
"""
|
||||
tax_breakdown: Optional[List[TaxBreakdown]]
|
||||
"""
|
||||
Detailed account of taxes relevant to this line item.
|
||||
"""
|
||||
tax_code: str
|
||||
"""
|
||||
The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource.
|
||||
"""
|
||||
_inner_class_types = {"tax_breakdown": TaxBreakdown}
|
||||
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_service import StripeService
|
||||
from stripe._util import sanitize_id
|
||||
from typing import Optional, cast
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe._list_object import ListObject
|
||||
from stripe._request_options import RequestOptions
|
||||
from stripe.params.tax._calculation_line_item_list_params import (
|
||||
CalculationLineItemListParams,
|
||||
)
|
||||
from stripe.tax._calculation_line_item import CalculationLineItem
|
||||
|
||||
|
||||
class CalculationLineItemService(StripeService):
|
||||
def list(
|
||||
self,
|
||||
calculation: str,
|
||||
params: Optional["CalculationLineItemListParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "ListObject[CalculationLineItem]":
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
"ListObject[CalculationLineItem]",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}/line_items".format(
|
||||
calculation=sanitize_id(calculation),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def list_async(
|
||||
self,
|
||||
calculation: str,
|
||||
params: Optional["CalculationLineItemListParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "ListObject[CalculationLineItem]":
|
||||
"""
|
||||
Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
"ListObject[CalculationLineItem]",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}/line_items".format(
|
||||
calculation=sanitize_id(calculation),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,132 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_service import StripeService
|
||||
from stripe._util import sanitize_id
|
||||
from typing import Optional, cast
|
||||
from importlib import import_module
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe._request_options import RequestOptions
|
||||
from stripe.params.tax._calculation_create_params import (
|
||||
CalculationCreateParams,
|
||||
)
|
||||
from stripe.params.tax._calculation_retrieve_params import (
|
||||
CalculationRetrieveParams,
|
||||
)
|
||||
from stripe.tax._calculation import Calculation
|
||||
from stripe.tax._calculation_line_item_service import (
|
||||
CalculationLineItemService,
|
||||
)
|
||||
|
||||
_subservices = {
|
||||
"line_items": [
|
||||
"stripe.tax._calculation_line_item_service",
|
||||
"CalculationLineItemService",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
class CalculationService(StripeService):
|
||||
line_items: "CalculationLineItemService"
|
||||
|
||||
def __init__(self, requestor):
|
||||
super().__init__(requestor)
|
||||
|
||||
def __getattr__(self, name):
|
||||
try:
|
||||
import_from, service = _subservices[name]
|
||||
service_class = getattr(
|
||||
import_module(import_from),
|
||||
service,
|
||||
)
|
||||
setattr(
|
||||
self,
|
||||
name,
|
||||
service_class(self._requestor),
|
||||
)
|
||||
return getattr(self, name)
|
||||
except KeyError:
|
||||
raise AttributeError()
|
||||
|
||||
def retrieve(
|
||||
self,
|
||||
calculation: str,
|
||||
params: Optional["CalculationRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Retrieves a Tax Calculation object, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
"Calculation",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}".format(
|
||||
calculation=sanitize_id(calculation),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def retrieve_async(
|
||||
self,
|
||||
calculation: str,
|
||||
params: Optional["CalculationRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Retrieves a Tax Calculation object, if the calculation hasn't expired.
|
||||
"""
|
||||
return cast(
|
||||
"Calculation",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/calculations/{calculation}".format(
|
||||
calculation=sanitize_id(calculation),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def create(
|
||||
self,
|
||||
params: "CalculationCreateParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Calculates tax based on the input and returns a Tax Calculation object.
|
||||
"""
|
||||
return cast(
|
||||
"Calculation",
|
||||
self._request(
|
||||
"post",
|
||||
"/v1/tax/calculations",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def create_async(
|
||||
self,
|
||||
params: "CalculationCreateParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Calculation":
|
||||
"""
|
||||
Calculates tax based on the input and returns a Tax Calculation object.
|
||||
"""
|
||||
return cast(
|
||||
"Calculation",
|
||||
await self._request_async(
|
||||
"post",
|
||||
"/v1/tax/calculations",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,185 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_service import StripeService
|
||||
from stripe._util import sanitize_id
|
||||
from typing import Optional, cast
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe._list_object import ListObject
|
||||
from stripe._request_options import RequestOptions
|
||||
from stripe.params.tax._registration_create_params import (
|
||||
RegistrationCreateParams,
|
||||
)
|
||||
from stripe.params.tax._registration_list_params import (
|
||||
RegistrationListParams,
|
||||
)
|
||||
from stripe.params.tax._registration_retrieve_params import (
|
||||
RegistrationRetrieveParams,
|
||||
)
|
||||
from stripe.params.tax._registration_update_params import (
|
||||
RegistrationUpdateParams,
|
||||
)
|
||||
from stripe.tax._registration import Registration
|
||||
|
||||
|
||||
class RegistrationService(StripeService):
|
||||
def list(
|
||||
self,
|
||||
params: Optional["RegistrationListParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "ListObject[Registration]":
|
||||
"""
|
||||
Returns a list of Tax Registration objects.
|
||||
"""
|
||||
return cast(
|
||||
"ListObject[Registration]",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/registrations",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def list_async(
|
||||
self,
|
||||
params: Optional["RegistrationListParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "ListObject[Registration]":
|
||||
"""
|
||||
Returns a list of Tax Registration objects.
|
||||
"""
|
||||
return cast(
|
||||
"ListObject[Registration]",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/registrations",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def create(
|
||||
self,
|
||||
params: "RegistrationCreateParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Registration":
|
||||
"""
|
||||
Creates a new Tax Registration object.
|
||||
"""
|
||||
return cast(
|
||||
"Registration",
|
||||
self._request(
|
||||
"post",
|
||||
"/v1/tax/registrations",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def create_async(
|
||||
self,
|
||||
params: "RegistrationCreateParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Registration":
|
||||
"""
|
||||
Creates a new Tax Registration object.
|
||||
"""
|
||||
return cast(
|
||||
"Registration",
|
||||
await self._request_async(
|
||||
"post",
|
||||
"/v1/tax/registrations",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def retrieve(
|
||||
self,
|
||||
id: str,
|
||||
params: Optional["RegistrationRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Registration":
|
||||
"""
|
||||
Returns a Tax Registration object.
|
||||
"""
|
||||
return cast(
|
||||
"Registration",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/registrations/{id}".format(id=sanitize_id(id)),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def retrieve_async(
|
||||
self,
|
||||
id: str,
|
||||
params: Optional["RegistrationRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Registration":
|
||||
"""
|
||||
Returns a Tax Registration object.
|
||||
"""
|
||||
return cast(
|
||||
"Registration",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/registrations/{id}".format(id=sanitize_id(id)),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def update(
|
||||
self,
|
||||
id: str,
|
||||
params: Optional["RegistrationUpdateParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Registration":
|
||||
"""
|
||||
Updates an existing Tax Registration object.
|
||||
|
||||
A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at.
|
||||
"""
|
||||
return cast(
|
||||
"Registration",
|
||||
self._request(
|
||||
"post",
|
||||
"/v1/tax/registrations/{id}".format(id=sanitize_id(id)),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def update_async(
|
||||
self,
|
||||
id: str,
|
||||
params: Optional["RegistrationUpdateParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Registration":
|
||||
"""
|
||||
Updates an existing Tax Registration object.
|
||||
|
||||
A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at.
|
||||
"""
|
||||
return cast(
|
||||
"Registration",
|
||||
await self._request_async(
|
||||
"post",
|
||||
"/v1/tax/registrations/{id}".format(id=sanitize_id(id)),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,167 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._singleton_api_resource import SingletonAPIResource
|
||||
from stripe._stripe_object import StripeObject
|
||||
from stripe._updateable_api_resource import UpdateableAPIResource
|
||||
from typing import ClassVar, List, Optional, cast
|
||||
from typing_extensions import Literal, Unpack, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe.params.tax._settings_modify_params import SettingsModifyParams
|
||||
from stripe.params.tax._settings_retrieve_params import (
|
||||
SettingsRetrieveParams,
|
||||
)
|
||||
|
||||
|
||||
class Settings(
|
||||
SingletonAPIResource["Settings"],
|
||||
UpdateableAPIResource["Settings"],
|
||||
):
|
||||
"""
|
||||
You can use Tax `Settings` to manage configurations used by Stripe Tax calculations.
|
||||
|
||||
Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api)
|
||||
"""
|
||||
|
||||
OBJECT_NAME: ClassVar[Literal["tax.settings"]] = "tax.settings"
|
||||
|
||||
class Defaults(StripeObject):
|
||||
provider: Literal["anrok", "avalara", "sphere", "stripe"]
|
||||
"""
|
||||
The tax calculation provider this account uses. Defaults to `stripe` when not using a [third-party provider](https://docs.stripe.com/tax/third-party-apps).
|
||||
"""
|
||||
tax_behavior: Optional[
|
||||
Literal["exclusive", "inclusive", "inferred_by_currency"]
|
||||
]
|
||||
"""
|
||||
Default [tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#tax-behavior) used to specify whether the price is considered inclusive of taxes or exclusive of taxes. If the item's price has a tax behavior set, it will take precedence over the default tax behavior.
|
||||
"""
|
||||
tax_code: Optional[str]
|
||||
"""
|
||||
Default [tax code](https://stripe.com/docs/tax/tax-categories) used to classify your products and prices.
|
||||
"""
|
||||
|
||||
class HeadOffice(StripeObject):
|
||||
class Address(StripeObject):
|
||||
city: Optional[str]
|
||||
"""
|
||||
City, district, suburb, town, or village.
|
||||
"""
|
||||
country: Optional[str]
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
line1: Optional[str]
|
||||
"""
|
||||
Address line 1, such as the street, PO Box, or company name.
|
||||
"""
|
||||
line2: Optional[str]
|
||||
"""
|
||||
Address line 2, such as the apartment, suite, unit, or building.
|
||||
"""
|
||||
postal_code: Optional[str]
|
||||
"""
|
||||
ZIP or postal code.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
State, county, province, or region.
|
||||
"""
|
||||
|
||||
address: Address
|
||||
_inner_class_types = {"address": Address}
|
||||
|
||||
class StatusDetails(StripeObject):
|
||||
class Active(StripeObject):
|
||||
pass
|
||||
|
||||
class Pending(StripeObject):
|
||||
missing_fields: Optional[List[str]]
|
||||
"""
|
||||
The list of missing fields that are required to perform calculations. It includes the entry `head_office` when the status is `pending`. It is recommended to set the optional values even if they aren't listed as required for calculating taxes. Calculations can fail if missing fields aren't explicitly provided on every call.
|
||||
"""
|
||||
|
||||
active: Optional[Active]
|
||||
pending: Optional[Pending]
|
||||
_inner_class_types = {"active": Active, "pending": Pending}
|
||||
|
||||
defaults: Defaults
|
||||
head_office: Optional[HeadOffice]
|
||||
"""
|
||||
The place where your business is located.
|
||||
"""
|
||||
livemode: bool
|
||||
"""
|
||||
Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
|
||||
"""
|
||||
object: Literal["tax.settings"]
|
||||
"""
|
||||
String representing the object's type. Objects of the same type share the same value.
|
||||
"""
|
||||
status: Literal["active", "pending"]
|
||||
"""
|
||||
The status of the Tax `Settings`.
|
||||
"""
|
||||
status_details: StatusDetails
|
||||
|
||||
@classmethod
|
||||
def modify(cls, **params: Unpack["SettingsModifyParams"]) -> "Settings":
|
||||
"""
|
||||
Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
|
||||
"""
|
||||
return cast(
|
||||
"Settings",
|
||||
cls._static_request(
|
||||
"post",
|
||||
cls.class_url(),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def modify_async(
|
||||
cls, **params: Unpack["SettingsModifyParams"]
|
||||
) -> "Settings":
|
||||
"""
|
||||
Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
|
||||
"""
|
||||
return cast(
|
||||
"Settings",
|
||||
await cls._static_request_async(
|
||||
"post",
|
||||
cls.class_url(),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def retrieve(
|
||||
cls, **params: Unpack["SettingsRetrieveParams"]
|
||||
) -> "Settings":
|
||||
"""
|
||||
Retrieves Tax Settings for a merchant.
|
||||
"""
|
||||
instance = cls(None, **params)
|
||||
instance.refresh()
|
||||
return instance
|
||||
|
||||
@classmethod
|
||||
async def retrieve_async(
|
||||
cls, **params: Unpack["SettingsRetrieveParams"]
|
||||
) -> "Settings":
|
||||
"""
|
||||
Retrieves Tax Settings for a merchant.
|
||||
"""
|
||||
instance = cls(None, **params)
|
||||
await instance.refresh_async()
|
||||
return instance
|
||||
|
||||
@classmethod
|
||||
def class_url(cls):
|
||||
return "/v1/tax/settings"
|
||||
|
||||
_inner_class_types = {
|
||||
"defaults": Defaults,
|
||||
"head_office": HeadOffice,
|
||||
"status_details": StatusDetails,
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_service import StripeService
|
||||
from typing import Optional, cast
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe._request_options import RequestOptions
|
||||
from stripe.params.tax._settings_retrieve_params import (
|
||||
SettingsRetrieveParams,
|
||||
)
|
||||
from stripe.params.tax._settings_update_params import SettingsUpdateParams
|
||||
from stripe.tax._settings import Settings
|
||||
|
||||
|
||||
class SettingsService(StripeService):
|
||||
def retrieve(
|
||||
self,
|
||||
params: Optional["SettingsRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Settings":
|
||||
"""
|
||||
Retrieves Tax Settings for a merchant.
|
||||
"""
|
||||
return cast(
|
||||
"Settings",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/settings",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def retrieve_async(
|
||||
self,
|
||||
params: Optional["SettingsRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Settings":
|
||||
"""
|
||||
Retrieves Tax Settings for a merchant.
|
||||
"""
|
||||
return cast(
|
||||
"Settings",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/settings",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def update(
|
||||
self,
|
||||
params: Optional["SettingsUpdateParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Settings":
|
||||
"""
|
||||
Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
|
||||
"""
|
||||
return cast(
|
||||
"Settings",
|
||||
self._request(
|
||||
"post",
|
||||
"/v1/tax/settings",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def update_async(
|
||||
self,
|
||||
params: Optional["SettingsUpdateParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Settings":
|
||||
"""
|
||||
Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
|
||||
"""
|
||||
return cast(
|
||||
"Settings",
|
||||
await self._request_async(
|
||||
"post",
|
||||
"/v1/tax/settings",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,630 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._api_resource import APIResource
|
||||
from stripe._list_object import ListObject
|
||||
from stripe._stripe_object import StripeObject
|
||||
from stripe._util import class_method_variant, sanitize_id
|
||||
from typing import ClassVar, Dict, List, Optional, cast, overload
|
||||
from typing_extensions import Literal, Unpack, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe.params.tax._transaction_create_from_calculation_params import (
|
||||
TransactionCreateFromCalculationParams,
|
||||
)
|
||||
from stripe.params.tax._transaction_create_reversal_params import (
|
||||
TransactionCreateReversalParams,
|
||||
)
|
||||
from stripe.params.tax._transaction_list_line_items_params import (
|
||||
TransactionListLineItemsParams,
|
||||
)
|
||||
from stripe.params.tax._transaction_retrieve_params import (
|
||||
TransactionRetrieveParams,
|
||||
)
|
||||
from stripe.tax._transaction_line_item import TransactionLineItem
|
||||
|
||||
|
||||
class Transaction(APIResource["Transaction"]):
|
||||
"""
|
||||
A Tax Transaction records the tax collected from or refunded to your customer.
|
||||
|
||||
Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction)
|
||||
"""
|
||||
|
||||
OBJECT_NAME: ClassVar[Literal["tax.transaction"]] = "tax.transaction"
|
||||
|
||||
class CustomerDetails(StripeObject):
|
||||
class Address(StripeObject):
|
||||
city: Optional[str]
|
||||
"""
|
||||
City, district, suburb, town, or village.
|
||||
"""
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
line1: Optional[str]
|
||||
"""
|
||||
Address line 1, such as the street, PO Box, or company name.
|
||||
"""
|
||||
line2: Optional[str]
|
||||
"""
|
||||
Address line 2, such as the apartment, suite, unit, or building.
|
||||
"""
|
||||
postal_code: Optional[str]
|
||||
"""
|
||||
ZIP or postal code.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX".
|
||||
"""
|
||||
|
||||
class TaxId(StripeObject):
|
||||
type: Literal[
|
||||
"ad_nrt",
|
||||
"ae_trn",
|
||||
"al_tin",
|
||||
"am_tin",
|
||||
"ao_tin",
|
||||
"ar_cuit",
|
||||
"au_abn",
|
||||
"au_arn",
|
||||
"aw_tin",
|
||||
"az_tin",
|
||||
"ba_tin",
|
||||
"bb_tin",
|
||||
"bd_bin",
|
||||
"bf_ifu",
|
||||
"bg_uic",
|
||||
"bh_vat",
|
||||
"bj_ifu",
|
||||
"bo_tin",
|
||||
"br_cnpj",
|
||||
"br_cpf",
|
||||
"bs_tin",
|
||||
"by_tin",
|
||||
"ca_bn",
|
||||
"ca_gst_hst",
|
||||
"ca_pst_bc",
|
||||
"ca_pst_mb",
|
||||
"ca_pst_sk",
|
||||
"ca_qst",
|
||||
"cd_nif",
|
||||
"ch_uid",
|
||||
"ch_vat",
|
||||
"cl_tin",
|
||||
"cm_niu",
|
||||
"cn_tin",
|
||||
"co_nit",
|
||||
"cr_tin",
|
||||
"cv_nif",
|
||||
"de_stn",
|
||||
"do_rcn",
|
||||
"ec_ruc",
|
||||
"eg_tin",
|
||||
"es_cif",
|
||||
"et_tin",
|
||||
"eu_oss_vat",
|
||||
"eu_vat",
|
||||
"gb_vat",
|
||||
"ge_vat",
|
||||
"gn_nif",
|
||||
"hk_br",
|
||||
"hr_oib",
|
||||
"hu_tin",
|
||||
"id_npwp",
|
||||
"il_vat",
|
||||
"in_gst",
|
||||
"is_vat",
|
||||
"jp_cn",
|
||||
"jp_rn",
|
||||
"jp_trn",
|
||||
"ke_pin",
|
||||
"kg_tin",
|
||||
"kh_tin",
|
||||
"kr_brn",
|
||||
"kz_bin",
|
||||
"la_tin",
|
||||
"li_uid",
|
||||
"li_vat",
|
||||
"ma_vat",
|
||||
"md_vat",
|
||||
"me_pib",
|
||||
"mk_vat",
|
||||
"mr_nif",
|
||||
"mx_rfc",
|
||||
"my_frp",
|
||||
"my_itn",
|
||||
"my_sst",
|
||||
"ng_tin",
|
||||
"no_vat",
|
||||
"no_voec",
|
||||
"np_pan",
|
||||
"nz_gst",
|
||||
"om_vat",
|
||||
"pe_ruc",
|
||||
"ph_tin",
|
||||
"ro_tin",
|
||||
"rs_pib",
|
||||
"ru_inn",
|
||||
"ru_kpp",
|
||||
"sa_vat",
|
||||
"sg_gst",
|
||||
"sg_uen",
|
||||
"si_tin",
|
||||
"sn_ninea",
|
||||
"sr_fin",
|
||||
"sv_nit",
|
||||
"th_vat",
|
||||
"tj_tin",
|
||||
"tr_tin",
|
||||
"tw_vat",
|
||||
"tz_vat",
|
||||
"ua_vat",
|
||||
"ug_tin",
|
||||
"unknown",
|
||||
"us_ein",
|
||||
"uy_ruc",
|
||||
"uz_tin",
|
||||
"uz_vat",
|
||||
"ve_rif",
|
||||
"vn_tin",
|
||||
"za_vat",
|
||||
"zm_tin",
|
||||
"zw_tin",
|
||||
]
|
||||
"""
|
||||
The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown`
|
||||
"""
|
||||
value: str
|
||||
"""
|
||||
The value of the tax ID.
|
||||
"""
|
||||
|
||||
address: Optional[Address]
|
||||
"""
|
||||
The customer's postal address (for example, home or business location).
|
||||
"""
|
||||
address_source: Optional[Literal["billing", "shipping"]]
|
||||
"""
|
||||
The type of customer address provided.
|
||||
"""
|
||||
ip_address: Optional[str]
|
||||
"""
|
||||
The customer's IP address (IPv4 or IPv6).
|
||||
"""
|
||||
tax_ids: List[TaxId]
|
||||
"""
|
||||
The customer's tax IDs (for example, EU VAT numbers).
|
||||
"""
|
||||
taxability_override: Literal[
|
||||
"customer_exempt", "none", "reverse_charge"
|
||||
]
|
||||
"""
|
||||
The taxability override used for taxation.
|
||||
"""
|
||||
_inner_class_types = {"address": Address, "tax_ids": TaxId}
|
||||
|
||||
class Reversal(StripeObject):
|
||||
original_transaction: Optional[str]
|
||||
"""
|
||||
The `id` of the reversed `Transaction` object.
|
||||
"""
|
||||
|
||||
class ShipFromDetails(StripeObject):
|
||||
class Address(StripeObject):
|
||||
city: Optional[str]
|
||||
"""
|
||||
City, district, suburb, town, or village.
|
||||
"""
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
line1: Optional[str]
|
||||
"""
|
||||
Address line 1, such as the street, PO Box, or company name.
|
||||
"""
|
||||
line2: Optional[str]
|
||||
"""
|
||||
Address line 2, such as the apartment, suite, unit, or building.
|
||||
"""
|
||||
postal_code: Optional[str]
|
||||
"""
|
||||
ZIP or postal code.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX".
|
||||
"""
|
||||
|
||||
address: Address
|
||||
_inner_class_types = {"address": Address}
|
||||
|
||||
class ShippingCost(StripeObject):
|
||||
class TaxBreakdown(StripeObject):
|
||||
class Jurisdiction(StripeObject):
|
||||
country: str
|
||||
"""
|
||||
Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
|
||||
"""
|
||||
display_name: str
|
||||
"""
|
||||
A human-readable name for the jurisdiction imposing the tax.
|
||||
"""
|
||||
level: Literal[
|
||||
"city", "country", "county", "district", "state"
|
||||
]
|
||||
"""
|
||||
Indicates the level of the jurisdiction imposing the tax.
|
||||
"""
|
||||
state: Optional[str]
|
||||
"""
|
||||
[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States.
|
||||
"""
|
||||
|
||||
class TaxRateDetails(StripeObject):
|
||||
display_name: str
|
||||
"""
|
||||
A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)".
|
||||
"""
|
||||
percentage_decimal: str
|
||||
"""
|
||||
The tax rate percentage as a string. For example, 8.5% is represented as "8.5".
|
||||
"""
|
||||
tax_type: Literal[
|
||||
"amusement_tax",
|
||||
"communications_tax",
|
||||
"gst",
|
||||
"hst",
|
||||
"igst",
|
||||
"jct",
|
||||
"lease_tax",
|
||||
"pst",
|
||||
"qst",
|
||||
"retail_delivery_fee",
|
||||
"rst",
|
||||
"sales_tax",
|
||||
"service_tax",
|
||||
"vat",
|
||||
]
|
||||
"""
|
||||
The tax type, such as `vat` or `sales_tax`.
|
||||
"""
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
jurisdiction: Jurisdiction
|
||||
sourcing: Literal["destination", "origin"]
|
||||
"""
|
||||
Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address).
|
||||
"""
|
||||
tax_rate_details: Optional[TaxRateDetails]
|
||||
"""
|
||||
Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax.
|
||||
"""
|
||||
taxability_reason: Literal[
|
||||
"customer_exempt",
|
||||
"not_collecting",
|
||||
"not_subject_to_tax",
|
||||
"not_supported",
|
||||
"portion_product_exempt",
|
||||
"portion_reduced_rated",
|
||||
"portion_standard_rated",
|
||||
"product_exempt",
|
||||
"product_exempt_holiday",
|
||||
"proportionally_rated",
|
||||
"reduced_rated",
|
||||
"reverse_charge",
|
||||
"standard_rated",
|
||||
"taxable_basis_reduced",
|
||||
"zero_rated",
|
||||
]
|
||||
"""
|
||||
The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.
|
||||
"""
|
||||
taxable_amount: int
|
||||
"""
|
||||
The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
_inner_class_types = {
|
||||
"jurisdiction": Jurisdiction,
|
||||
"tax_rate_details": TaxRateDetails,
|
||||
}
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.
|
||||
"""
|
||||
amount_tax: int
|
||||
"""
|
||||
The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
shipping_rate: Optional[str]
|
||||
"""
|
||||
The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object).
|
||||
"""
|
||||
tax_behavior: Literal["exclusive", "inclusive"]
|
||||
"""
|
||||
Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.
|
||||
"""
|
||||
tax_breakdown: Optional[List[TaxBreakdown]]
|
||||
"""
|
||||
Detailed account of taxes relevant to shipping cost. (It is not populated for the transaction resource object and will be removed in the next API version.)
|
||||
"""
|
||||
tax_code: str
|
||||
"""
|
||||
The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping.
|
||||
"""
|
||||
_inner_class_types = {"tax_breakdown": TaxBreakdown}
|
||||
|
||||
created: int
|
||||
"""
|
||||
Time at which the object was created. Measured in seconds since the Unix epoch.
|
||||
"""
|
||||
currency: str
|
||||
"""
|
||||
Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
|
||||
"""
|
||||
customer: Optional[str]
|
||||
"""
|
||||
The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource.
|
||||
"""
|
||||
customer_details: CustomerDetails
|
||||
id: str
|
||||
"""
|
||||
Unique identifier for the transaction.
|
||||
"""
|
||||
line_items: Optional[ListObject["TransactionLineItem"]]
|
||||
"""
|
||||
The tax collected or refunded, by line item.
|
||||
"""
|
||||
livemode: bool
|
||||
"""
|
||||
Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
|
||||
"""
|
||||
metadata: Optional[Dict[str, str]]
|
||||
"""
|
||||
Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
|
||||
"""
|
||||
object: Literal["tax.transaction"]
|
||||
"""
|
||||
String representing the object's type. Objects of the same type share the same value.
|
||||
"""
|
||||
posted_at: int
|
||||
"""
|
||||
The Unix timestamp representing when the tax liability is assumed or reduced.
|
||||
"""
|
||||
reference: str
|
||||
"""
|
||||
A custom unique identifier, such as 'myOrder_123'.
|
||||
"""
|
||||
reversal: Optional[Reversal]
|
||||
"""
|
||||
If `type=reversal`, contains information about what was reversed.
|
||||
"""
|
||||
ship_from_details: Optional[ShipFromDetails]
|
||||
"""
|
||||
The details of the ship from location, such as the address.
|
||||
"""
|
||||
shipping_cost: Optional[ShippingCost]
|
||||
"""
|
||||
The shipping cost details for the transaction.
|
||||
"""
|
||||
tax_date: int
|
||||
"""
|
||||
Timestamp of date at which the tax rules and rates in effect applies for the calculation.
|
||||
"""
|
||||
type: Literal["reversal", "transaction"]
|
||||
"""
|
||||
If `reversal`, this transaction reverses an earlier transaction.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def create_from_calculation(
|
||||
cls, **params: Unpack["TransactionCreateFromCalculationParams"]
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
cls._static_request(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_from_calculation",
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def create_from_calculation_async(
|
||||
cls, **params: Unpack["TransactionCreateFromCalculationParams"]
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
await cls._static_request_async(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_from_calculation",
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def create_reversal(
|
||||
cls, **params: Unpack["TransactionCreateReversalParams"]
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Partially or fully reverses a previously created Transaction.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
cls._static_request(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_reversal",
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def create_reversal_async(
|
||||
cls, **params: Unpack["TransactionCreateReversalParams"]
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Partially or fully reverses a previously created Transaction.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
await cls._static_request_async(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_reversal",
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def _cls_list_line_items(
|
||||
cls,
|
||||
transaction: str,
|
||||
**params: Unpack["TransactionListLineItemsParams"],
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["TransactionLineItem"],
|
||||
cls._static_request(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}/line_items".format(
|
||||
transaction=sanitize_id(transaction)
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@overload
|
||||
@staticmethod
|
||||
def list_line_items(
|
||||
transaction: str, **params: Unpack["TransactionListLineItemsParams"]
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
...
|
||||
|
||||
@overload
|
||||
def list_line_items(
|
||||
self, **params: Unpack["TransactionListLineItemsParams"]
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
...
|
||||
|
||||
@class_method_variant("_cls_list_line_items")
|
||||
def list_line_items( # pyright: ignore[reportGeneralTypeIssues]
|
||||
self, **params: Unpack["TransactionListLineItemsParams"]
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["TransactionLineItem"],
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}/line_items".format(
|
||||
transaction=sanitize_id(self.get("id"))
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def _cls_list_line_items_async(
|
||||
cls,
|
||||
transaction: str,
|
||||
**params: Unpack["TransactionListLineItemsParams"],
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["TransactionLineItem"],
|
||||
await cls._static_request_async(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}/line_items".format(
|
||||
transaction=sanitize_id(transaction)
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@overload
|
||||
@staticmethod
|
||||
async def list_line_items_async(
|
||||
transaction: str, **params: Unpack["TransactionListLineItemsParams"]
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
...
|
||||
|
||||
@overload
|
||||
async def list_line_items_async(
|
||||
self, **params: Unpack["TransactionListLineItemsParams"]
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
...
|
||||
|
||||
@class_method_variant("_cls_list_line_items_async")
|
||||
async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues]
|
||||
self, **params: Unpack["TransactionListLineItemsParams"]
|
||||
) -> ListObject["TransactionLineItem"]:
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
return cast(
|
||||
ListObject["TransactionLineItem"],
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}/line_items".format(
|
||||
transaction=sanitize_id(self.get("id"))
|
||||
),
|
||||
params=params,
|
||||
),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def retrieve(
|
||||
cls, id: str, **params: Unpack["TransactionRetrieveParams"]
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Retrieves a Tax Transaction object.
|
||||
"""
|
||||
instance = cls(id, **params)
|
||||
instance.refresh()
|
||||
return instance
|
||||
|
||||
@classmethod
|
||||
async def retrieve_async(
|
||||
cls, id: str, **params: Unpack["TransactionRetrieveParams"]
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Retrieves a Tax Transaction object.
|
||||
"""
|
||||
instance = cls(id, **params)
|
||||
await instance.refresh_async()
|
||||
return instance
|
||||
|
||||
_inner_class_types = {
|
||||
"customer_details": CustomerDetails,
|
||||
"reversal": Reversal,
|
||||
"ship_from_details": ShipFromDetails,
|
||||
"shipping_cost": ShippingCost,
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_object import StripeObject
|
||||
from typing import ClassVar, Dict, Optional
|
||||
from typing_extensions import Literal
|
||||
|
||||
|
||||
class TransactionLineItem(StripeObject):
|
||||
OBJECT_NAME: ClassVar[Literal["tax.transaction_line_item"]] = (
|
||||
"tax.transaction_line_item"
|
||||
)
|
||||
|
||||
class Reversal(StripeObject):
|
||||
original_line_item: str
|
||||
"""
|
||||
The `id` of the line item to reverse in the original transaction.
|
||||
"""
|
||||
|
||||
amount: int
|
||||
"""
|
||||
The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.
|
||||
"""
|
||||
amount_tax: int
|
||||
"""
|
||||
The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
|
||||
"""
|
||||
id: str
|
||||
"""
|
||||
Unique identifier for the object.
|
||||
"""
|
||||
livemode: bool
|
||||
"""
|
||||
Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
|
||||
"""
|
||||
metadata: Optional[Dict[str, str]]
|
||||
"""
|
||||
Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
|
||||
"""
|
||||
object: Literal["tax.transaction_line_item"]
|
||||
"""
|
||||
String representing the object's type. Objects of the same type share the same value.
|
||||
"""
|
||||
product: Optional[str]
|
||||
"""
|
||||
The ID of an existing [Product](https://stripe.com/docs/api/products/object).
|
||||
"""
|
||||
quantity: int
|
||||
"""
|
||||
The number of units of the item being purchased. For reversals, this is the quantity reversed.
|
||||
"""
|
||||
reference: str
|
||||
"""
|
||||
A custom identifier for this line item in the transaction.
|
||||
"""
|
||||
reversal: Optional[Reversal]
|
||||
"""
|
||||
If `type=reversal`, contains information about what was reversed.
|
||||
"""
|
||||
tax_behavior: Literal["exclusive", "inclusive"]
|
||||
"""
|
||||
Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.
|
||||
"""
|
||||
tax_code: str
|
||||
"""
|
||||
The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource.
|
||||
"""
|
||||
type: Literal["reversal", "transaction"]
|
||||
"""
|
||||
If `reversal`, this line item reverses an earlier transaction.
|
||||
"""
|
||||
_inner_class_types = {"reversal": Reversal}
|
||||
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_service import StripeService
|
||||
from stripe._util import sanitize_id
|
||||
from typing import Optional, cast
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe._list_object import ListObject
|
||||
from stripe._request_options import RequestOptions
|
||||
from stripe.params.tax._transaction_line_item_list_params import (
|
||||
TransactionLineItemListParams,
|
||||
)
|
||||
from stripe.tax._transaction_line_item import TransactionLineItem
|
||||
|
||||
|
||||
class TransactionLineItemService(StripeService):
|
||||
def list(
|
||||
self,
|
||||
transaction: str,
|
||||
params: Optional["TransactionLineItemListParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "ListObject[TransactionLineItem]":
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
return cast(
|
||||
"ListObject[TransactionLineItem]",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}/line_items".format(
|
||||
transaction=sanitize_id(transaction),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def list_async(
|
||||
self,
|
||||
transaction: str,
|
||||
params: Optional["TransactionLineItemListParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "ListObject[TransactionLineItem]":
|
||||
"""
|
||||
Retrieves the line items of a committed standalone transaction as a collection.
|
||||
"""
|
||||
return cast(
|
||||
"ListObject[TransactionLineItem]",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}/line_items".format(
|
||||
transaction=sanitize_id(transaction),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,173 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# File generated from our OpenAPI spec
|
||||
from stripe._stripe_service import StripeService
|
||||
from stripe._util import sanitize_id
|
||||
from typing import Optional, cast
|
||||
from importlib import import_module
|
||||
from typing_extensions import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from stripe._request_options import RequestOptions
|
||||
from stripe.params.tax._transaction_create_from_calculation_params import (
|
||||
TransactionCreateFromCalculationParams,
|
||||
)
|
||||
from stripe.params.tax._transaction_create_reversal_params import (
|
||||
TransactionCreateReversalParams,
|
||||
)
|
||||
from stripe.params.tax._transaction_retrieve_params import (
|
||||
TransactionRetrieveParams,
|
||||
)
|
||||
from stripe.tax._transaction import Transaction
|
||||
from stripe.tax._transaction_line_item_service import (
|
||||
TransactionLineItemService,
|
||||
)
|
||||
|
||||
_subservices = {
|
||||
"line_items": [
|
||||
"stripe.tax._transaction_line_item_service",
|
||||
"TransactionLineItemService",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
class TransactionService(StripeService):
|
||||
line_items: "TransactionLineItemService"
|
||||
|
||||
def __init__(self, requestor):
|
||||
super().__init__(requestor)
|
||||
|
||||
def __getattr__(self, name):
|
||||
try:
|
||||
import_from, service = _subservices[name]
|
||||
service_class = getattr(
|
||||
import_module(import_from),
|
||||
service,
|
||||
)
|
||||
setattr(
|
||||
self,
|
||||
name,
|
||||
service_class(self._requestor),
|
||||
)
|
||||
return getattr(self, name)
|
||||
except KeyError:
|
||||
raise AttributeError()
|
||||
|
||||
def retrieve(
|
||||
self,
|
||||
transaction: str,
|
||||
params: Optional["TransactionRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Retrieves a Tax Transaction object.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
self._request(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}".format(
|
||||
transaction=sanitize_id(transaction),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def retrieve_async(
|
||||
self,
|
||||
transaction: str,
|
||||
params: Optional["TransactionRetrieveParams"] = None,
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Retrieves a Tax Transaction object.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
await self._request_async(
|
||||
"get",
|
||||
"/v1/tax/transactions/{transaction}".format(
|
||||
transaction=sanitize_id(transaction),
|
||||
),
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def create_from_calculation(
|
||||
self,
|
||||
params: "TransactionCreateFromCalculationParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
self._request(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_from_calculation",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def create_from_calculation_async(
|
||||
self,
|
||||
params: "TransactionCreateFromCalculationParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
await self._request_async(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_from_calculation",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
def create_reversal(
|
||||
self,
|
||||
params: "TransactionCreateReversalParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Partially or fully reverses a previously created Transaction.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
self._request(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_reversal",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
|
||||
async def create_reversal_async(
|
||||
self,
|
||||
params: "TransactionCreateReversalParams",
|
||||
options: Optional["RequestOptions"] = None,
|
||||
) -> "Transaction":
|
||||
"""
|
||||
Partially or fully reverses a previously created Transaction.
|
||||
"""
|
||||
return cast(
|
||||
"Transaction",
|
||||
await self._request_async(
|
||||
"post",
|
||||
"/v1/tax/transactions/create_reversal",
|
||||
base_address="api",
|
||||
params=params,
|
||||
options=options,
|
||||
),
|
||||
)
|
||||
Reference in New Issue
Block a user