github.com/stripe/stripe-go/v76@v76.25.0/tax_calculationlineitem.go (about)

     1  //
     2  //
     3  // File generated from our OpenAPI spec
     4  //
     5  //
     6  
     7  package stripe
     8  
     9  // Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.
    10  type TaxCalculationLineItemTaxBehavior string
    11  
    12  // List of values that TaxCalculationLineItemTaxBehavior can take
    13  const (
    14  	TaxCalculationLineItemTaxBehaviorExclusive TaxCalculationLineItemTaxBehavior = "exclusive"
    15  	TaxCalculationLineItemTaxBehaviorInclusive TaxCalculationLineItemTaxBehavior = "inclusive"
    16  )
    17  
    18  // Indicates the level of the jurisdiction imposing the tax.
    19  type TaxCalculationLineItemTaxBreakdownJurisdictionLevel string
    20  
    21  // List of values that TaxCalculationLineItemTaxBreakdownJurisdictionLevel can take
    22  const (
    23  	TaxCalculationLineItemTaxBreakdownJurisdictionLevelCity     TaxCalculationLineItemTaxBreakdownJurisdictionLevel = "city"
    24  	TaxCalculationLineItemTaxBreakdownJurisdictionLevelCountry  TaxCalculationLineItemTaxBreakdownJurisdictionLevel = "country"
    25  	TaxCalculationLineItemTaxBreakdownJurisdictionLevelCounty   TaxCalculationLineItemTaxBreakdownJurisdictionLevel = "county"
    26  	TaxCalculationLineItemTaxBreakdownJurisdictionLevelDistrict TaxCalculationLineItemTaxBreakdownJurisdictionLevel = "district"
    27  	TaxCalculationLineItemTaxBreakdownJurisdictionLevelState    TaxCalculationLineItemTaxBreakdownJurisdictionLevel = "state"
    28  )
    29  
    30  // Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address).
    31  type TaxCalculationLineItemTaxBreakdownSourcing string
    32  
    33  // List of values that TaxCalculationLineItemTaxBreakdownSourcing can take
    34  const (
    35  	TaxCalculationLineItemTaxBreakdownSourcingDestination TaxCalculationLineItemTaxBreakdownSourcing = "destination"
    36  	TaxCalculationLineItemTaxBreakdownSourcingOrigin      TaxCalculationLineItemTaxBreakdownSourcing = "origin"
    37  )
    38  
    39  // The tax type, such as `vat` or `sales_tax`.
    40  type TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType string
    41  
    42  // List of values that TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType can take
    43  const (
    44  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeAmusementTax      TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "amusement_tax"
    45  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeCommunicationsTax TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "communications_tax"
    46  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeGST               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "gst"
    47  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeHST               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "hst"
    48  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeIGST              TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "igst"
    49  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeJCT               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "jct"
    50  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeLeaseTax          TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "lease_tax"
    51  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypePST               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "pst"
    52  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeQST               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "qst"
    53  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeRST               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "rst"
    54  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeSalesTax          TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "sales_tax"
    55  	TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxTypeVAT               TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType = "vat"
    56  )
    57  
    58  // 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.
    59  type TaxCalculationLineItemTaxBreakdownTaxabilityReason string
    60  
    61  // List of values that TaxCalculationLineItemTaxBreakdownTaxabilityReason can take
    62  const (
    63  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonCustomerExempt       TaxCalculationLineItemTaxBreakdownTaxabilityReason = "customer_exempt"
    64  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonNotCollecting        TaxCalculationLineItemTaxBreakdownTaxabilityReason = "not_collecting"
    65  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonNotSubjectToTax      TaxCalculationLineItemTaxBreakdownTaxabilityReason = "not_subject_to_tax"
    66  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonNotSupported         TaxCalculationLineItemTaxBreakdownTaxabilityReason = "not_supported"
    67  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonPortionProductExempt TaxCalculationLineItemTaxBreakdownTaxabilityReason = "portion_product_exempt"
    68  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonPortionReducedRated  TaxCalculationLineItemTaxBreakdownTaxabilityReason = "portion_reduced_rated"
    69  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonPortionStandardRated TaxCalculationLineItemTaxBreakdownTaxabilityReason = "portion_standard_rated"
    70  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonProductExempt        TaxCalculationLineItemTaxBreakdownTaxabilityReason = "product_exempt"
    71  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonProductExemptHoliday TaxCalculationLineItemTaxBreakdownTaxabilityReason = "product_exempt_holiday"
    72  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonProportionallyRated  TaxCalculationLineItemTaxBreakdownTaxabilityReason = "proportionally_rated"
    73  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonReducedRated         TaxCalculationLineItemTaxBreakdownTaxabilityReason = "reduced_rated"
    74  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonReverseCharge        TaxCalculationLineItemTaxBreakdownTaxabilityReason = "reverse_charge"
    75  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonStandardRated        TaxCalculationLineItemTaxBreakdownTaxabilityReason = "standard_rated"
    76  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonTaxableBasisReduced  TaxCalculationLineItemTaxBreakdownTaxabilityReason = "taxable_basis_reduced"
    77  	TaxCalculationLineItemTaxBreakdownTaxabilityReasonZeroRated            TaxCalculationLineItemTaxBreakdownTaxabilityReason = "zero_rated"
    78  )
    79  
    80  type TaxCalculationLineItemTaxBreakdownJurisdiction struct {
    81  	// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
    82  	Country string `json:"country"`
    83  	// A human-readable name for the jurisdiction imposing the tax.
    84  	DisplayName string `json:"display_name"`
    85  	// Indicates the level of the jurisdiction imposing the tax.
    86  	Level TaxCalculationLineItemTaxBreakdownJurisdictionLevel `json:"level"`
    87  	// [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States.
    88  	State string `json:"state"`
    89  }
    90  
    91  // 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.
    92  type TaxCalculationLineItemTaxBreakdownTaxRateDetails struct {
    93  	// 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.)".
    94  	DisplayName string `json:"display_name"`
    95  	// The tax rate percentage as a string. For example, 8.5% is represented as "8.5".
    96  	PercentageDecimal string `json:"percentage_decimal"`
    97  	// The tax type, such as `vat` or `sales_tax`.
    98  	TaxType TaxCalculationLineItemTaxBreakdownTaxRateDetailsTaxType `json:"tax_type"`
    99  }
   100  
   101  // Detailed account of taxes relevant to this line item.
   102  type TaxCalculationLineItemTaxBreakdown struct {
   103  	// The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
   104  	Amount       int64                                           `json:"amount"`
   105  	Jurisdiction *TaxCalculationLineItemTaxBreakdownJurisdiction `json:"jurisdiction"`
   106  	// Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address).
   107  	Sourcing TaxCalculationLineItemTaxBreakdownSourcing `json:"sourcing"`
   108  	// 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.
   109  	TaxabilityReason TaxCalculationLineItemTaxBreakdownTaxabilityReason `json:"taxability_reason"`
   110  	// The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
   111  	TaxableAmount int64 `json:"taxable_amount"`
   112  	// 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.
   113  	TaxRateDetails *TaxCalculationLineItemTaxBreakdownTaxRateDetails `json:"tax_rate_details"`
   114  }
   115  type TaxCalculationLineItem struct {
   116  	// 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.
   117  	Amount int64 `json:"amount"`
   118  	// The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
   119  	AmountTax int64 `json:"amount_tax"`
   120  	// Unique identifier for the object.
   121  	ID string `json:"id"`
   122  	// Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
   123  	Livemode bool `json:"livemode"`
   124  	// String representing the object's type. Objects of the same type share the same value.
   125  	Object string `json:"object"`
   126  	// The ID of an existing [Product](https://stripe.com/docs/api/products/object).
   127  	Product string `json:"product"`
   128  	// The number of units of the item being purchased. For reversals, this is the quantity reversed.
   129  	Quantity int64 `json:"quantity"`
   130  	// A custom identifier for this line item.
   131  	Reference string `json:"reference"`
   132  	// Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.
   133  	TaxBehavior TaxCalculationLineItemTaxBehavior `json:"tax_behavior"`
   134  	// Detailed account of taxes relevant to this line item.
   135  	TaxBreakdown []*TaxCalculationLineItemTaxBreakdown `json:"tax_breakdown"`
   136  	// The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource.
   137  	TaxCode string `json:"tax_code"`
   138  }
   139  
   140  // TaxCalculationLineItemList is a list of CalculationLineItems as retrieved from a list endpoint.
   141  type TaxCalculationLineItemList struct {
   142  	APIResource
   143  	ListMeta
   144  	Data []*TaxCalculationLineItem `json:"data"`
   145  }