com.stripe.model.tax.CalculationLineItem Maven / Gradle / Ivy
// File generated from our OpenAPI spec
package com.stripe.model.tax;
import com.google.gson.annotations.SerializedName;
import com.stripe.model.HasId;
import com.stripe.model.StripeObject;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
public class CalculationLineItem extends StripeObject implements HasId {
/**
* The line item amount in the smallest
* currency unit. If {@code tax_behavior=inclusive}, then this amount includes taxes.
* Otherwise, taxes were calculated on top of this amount.
*/
@SerializedName("amount")
Long amount;
/**
* The amount of tax calculated for this line item, in the smallest currency unit.
*/
@SerializedName("amount_tax")
Long amountTax;
/** Unique identifier for the object. */
@Getter(onMethod_ = {@Override})
@SerializedName("id")
String id;
/**
* Has the value {@code true} if the object exists in live mode or the value {@code false} if the
* object exists in test mode.
*/
@SerializedName("livemode")
Boolean livemode;
/**
* String representing the object's type. Objects of the same type share the same value.
*
* Equal to {@code tax.calculation_line_item}.
*/
@SerializedName("object")
String object;
/** The ID of an existing Product. */
@SerializedName("product")
String product;
/**
* The number of units of the item being purchased. For reversals, this is the quantity reversed.
*/
@SerializedName("quantity")
Long quantity;
/** A custom identifier for this line item. */
@SerializedName("reference")
String reference;
/**
* Specifies whether the {@code amount} includes taxes. If {@code tax_behavior=inclusive}, then
* the amount includes taxes.
*
*
One of {@code exclusive}, or {@code inclusive}.
*/
@SerializedName("tax_behavior")
String taxBehavior;
/** Detailed account of taxes relevant to this line item. */
@SerializedName("tax_breakdown")
List taxBreakdown;
/**
* The tax code ID used for this
* resource.
*/
@SerializedName("tax_code")
String taxCode;
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
public static class TaxBreakdown extends StripeObject {
/**
* The amount of tax, in the smallest
* currency unit.
*/
@SerializedName("amount")
Long amount;
@SerializedName("jurisdiction")
Jurisdiction jurisdiction;
/**
* Indicates whether the jurisdiction was determined by the origin (merchant's address) or
* destination (customer's address).
*
* One of {@code destination}, or {@code origin}.
*/
@SerializedName("sourcing")
String sourcing;
/**
* Details regarding the rate for this tax. This field will be {@code null} when the tax is not
* imposed, for example if the product is exempt from tax.
*/
@SerializedName("tax_rate_details")
TaxRateDetails taxRateDetails;
/**
* 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.
*
*
One of {@code customer_exempt}, {@code not_collecting}, {@code not_subject_to_tax}, {@code
* not_supported}, {@code portion_product_exempt}, {@code portion_reduced_rated}, {@code
* portion_standard_rated}, {@code product_exempt}, {@code product_exempt_holiday}, {@code
* proportionally_rated}, {@code reduced_rated}, {@code reverse_charge}, {@code standard_rated},
* {@code taxable_basis_reduced}, or {@code zero_rated}.
*/
@SerializedName("taxability_reason")
String taxabilityReason;
/**
* The amount on which tax is calculated, in the smallest currency unit.
*/
@SerializedName("taxable_amount")
Long taxableAmount;
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
public static class Jurisdiction extends StripeObject {
/**
* Two-letter country code (ISO
* 3166-1 alpha-2).
*/
@SerializedName("country")
String country;
/** A human-readable name for the jurisdiction imposing the tax. */
@SerializedName("display_name")
String displayName;
/**
* Indicates the level of the jurisdiction imposing the tax.
*
*
One of {@code city}, {@code country}, {@code county}, {@code district}, or {@code
* state}.
*/
@SerializedName("level")
String level;
/**
* ISO 3166-2 subdivision code,
* without country prefix. For example, "NY" for New York, United States.
*/
@SerializedName("state")
String state;
}
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
public static class TaxRateDetails extends StripeObject {
/**
* 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.)".
*/
@SerializedName("display_name")
String displayName;
/**
* The tax rate percentage as a string. For example, 8.5% is represented as "8.5".
*/
@SerializedName("percentage_decimal")
String percentageDecimal;
/**
* The tax type, such as {@code vat} or {@code sales_tax}.
*
*
One of {@code amusement_tax}, {@code communications_tax}, {@code gst}, {@code hst},
* {@code igst}, {@code jct}, {@code lease_tax}, {@code pst}, {@code qst}, {@code rst}, {@code
* sales_tax}, or {@code vat}.
*/
@SerializedName("tax_type")
String taxType;
}
}
}