stripe
Version:
Stripe API wrapper
102 lines (101 loc) • 3.89 kB
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';
}
}