102 lines
3.8 KiB
TypeScript
102 lines
3.8 KiB
TypeScript
import { Price } from './Prices.js';
|
|
import { TaxRate } from './TaxRates.js';
|
|
import { Metadata } from '../shared.js';
|
|
export interface LineItem {
|
|
/**
|
|
* Unique identifier for the object.
|
|
*/
|
|
id: string;
|
|
/**
|
|
* String representing the object's type. Objects of the same type share the same value.
|
|
*/
|
|
object: 'item';
|
|
adjustable_quantity: LineItem.AdjustableQuantity | null;
|
|
/**
|
|
* Total discount amount applied. If no discounts were applied, defaults to 0.
|
|
*/
|
|
amount_discount: number;
|
|
/**
|
|
* Total before any discounts or taxes are applied.
|
|
*/
|
|
amount_subtotal: number;
|
|
/**
|
|
* Total tax amount applied. If no tax was applied, defaults to 0.
|
|
*/
|
|
amount_tax: number;
|
|
/**
|
|
* Total after discounts and taxes.
|
|
*/
|
|
amount_total: number;
|
|
/**
|
|
* 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).
|
|
*/
|
|
currency: string;
|
|
/**
|
|
* An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.
|
|
*/
|
|
description: string | null;
|
|
/**
|
|
* The discounts applied to the line item.
|
|
*/
|
|
discounts?: Array<LineItem.Discount>;
|
|
/**
|
|
* Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
|
|
*/
|
|
metadata: Metadata | null;
|
|
/**
|
|
* The price used to generate the line item.
|
|
*/
|
|
price: Price | null;
|
|
/**
|
|
* The quantity of products being purchased.
|
|
*/
|
|
quantity: number | null;
|
|
/**
|
|
* The taxes applied to the line item.
|
|
*/
|
|
taxes?: Array<LineItem.Tax>;
|
|
}
|
|
export declare namespace LineItem {
|
|
interface AdjustableQuantity {
|
|
enabled: boolean;
|
|
maximum: number | null;
|
|
minimum: number | null;
|
|
}
|
|
interface Discount {
|
|
/**
|
|
* The amount discounted.
|
|
*/
|
|
amount: number;
|
|
/**
|
|
* A discount represents the actual application of a [coupon](https://api.stripe.com#coupons) or [promotion code](https://api.stripe.com#promotion_codes).
|
|
* It contains information about when the discount began, when it will end, and what it is applied to.
|
|
*
|
|
* Related guide: [Applying discounts to subscriptions](https://docs.stripe.com/billing/subscriptions/discounts)
|
|
*/
|
|
discount: Discount;
|
|
}
|
|
interface Tax {
|
|
/**
|
|
* Amount of tax applied for this rate.
|
|
*/
|
|
amount: number;
|
|
/**
|
|
* Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax.
|
|
*
|
|
* Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates)
|
|
*/
|
|
rate: TaxRate;
|
|
/**
|
|
* 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.
|
|
*/
|
|
taxability_reason: Tax.TaxabilityReason | null;
|
|
/**
|
|
* The amount on which tax is calculated, in cents (or local equivalent).
|
|
*/
|
|
taxable_amount: number | null;
|
|
}
|
|
namespace Tax {
|
|
type TaxabilityReason = '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';
|
|
}
|
|
}
|