UNPKG

orb-billing

Version:

The official TypeScript library for the Orb API

903 lines 445 kB
import * as Shared from "./shared.js"; import { Page } from "../pagination.js"; export interface Address { city: string | null; country: string | null; line1: string | null; line2: string | null; postal_code: string | null; state: string | null; } export interface AdjustmentInterval { id: string; adjustment: PlanPhaseUsageDiscountAdjustment | PlanPhaseAmountDiscountAdjustment | PlanPhasePercentageDiscountAdjustment | PlanPhaseMinimumAdjustment | PlanPhaseMaximumAdjustment; /** * The price interval IDs that this adjustment applies to. */ applies_to_price_interval_ids: Array<string>; /** * The end date of the adjustment interval. */ end_date: string | null; /** * The start date of the adjustment interval. */ start_date: string; } export interface AggregatedCost { per_price_costs: Array<PerPriceCost>; /** * Total costs for the timeframe, excluding any minimums and discounts. */ subtotal: string; timeframe_end: string; timeframe_start: string; /** * Total costs for the timeframe, including any minimums and discounts. */ total: string; } export interface Allocation { allows_rollover: boolean; currency: string; custom_expiration: CustomExpiration | null; filters?: Array<Allocation.Filter>; } export declare namespace Allocation { interface Filter { /** * The property of the price to filter on. */ field: 'price_id' | 'item_id' | 'price_type' | 'currency' | 'pricing_unit_id'; /** * Should prices that match the filter be included or excluded. */ operator: 'includes' | 'excludes'; /** * The IDs or values that match this filter. */ values: Array<string>; } } export interface AmountDiscount { /** * Only available if discount_type is `amount`. */ amount_discount: string; discount_type: 'amount'; /** * List of price_ids that this discount applies to. For plan/plan phase discounts, * this can be a subset of prices. */ applies_to_price_ids?: Array<string> | null; /** * The filters that determine which prices to apply this discount to. */ filters?: Array<AmountDiscount.Filter> | null; reason?: string | null; } export declare namespace AmountDiscount { interface Filter { /** * The property of the price to filter on. */ field: 'price_id' | 'item_id' | 'price_type' | 'currency' | 'pricing_unit_id'; /** * Should prices that match the filter be included or excluded. */ operator: 'includes' | 'excludes'; /** * The IDs or values that match this filter. */ values: Array<string>; } } export interface AmountDiscountInterval { /** * Only available if discount_type is `amount`. */ amount_discount: string; /** * The price interval ids that this discount interval applies to. */ applies_to_price_interval_ids: Array<string>; discount_type: 'amount'; /** * The end date of the discount interval. */ end_date: string | null; /** * The filters that determine which prices this discount interval applies to. */ filters: Array<AmountDiscountInterval.Filter>; /** * The start date of the discount interval. */ start_date: string; } export declare namespace AmountDiscountInterval { interface Filter { /** * The property of the price to filter on. */ field: 'price_id' | 'item_id' | 'price_type' | 'currency' | 'pricing_unit_id'; /** * Should prices that match the filter be included or excluded. */ operator: 'includes' | 'excludes'; /** * The IDs or values that match this filter. */ values: Array<string>; } } export interface BillableMetricTiny { id: string; } export interface BillingCycleAnchorConfiguration { /** * The day of the month on which the billing cycle is anchored. If the maximum * number of days in a month is greater than this value, the last day of the month * is the billing cycle day (e.g. billing_cycle_day=31 for April means the billing * period begins on the 30th. */ day: number; /** * The month on which the billing cycle is anchored (e.g. a quarterly price * anchored in February would have cycles starting February, May, August, and * November). */ month?: number | null; /** * The year on which the billing cycle is anchored (e.g. a 2 year billing cycle * anchored on 2021 would have cycles starting on 2021, 2023, 2025, etc.). */ year?: number | null; } export interface BillingCycleConfiguration { duration: number; duration_unit: 'day' | 'month'; } export type BillingCycleRelativeDate = 'start_of_term' | 'end_of_term'; /** * Configuration for bulk pricing */ export interface BulkConfig { /** * Bulk tiers for rating based on total usage volume */ tiers: Array<BulkTier>; } /** * Configuration for a single bulk pricing tier */ export interface BulkTier { /** * Amount per unit */ unit_amount: string; /** * Upper bound for this tier */ maximum_units?: number | null; } export interface ChangedSubscriptionResources { /** * The credit notes that were created as part of this operation. */ created_credit_notes: Array<CreditNote>; /** * The invoices that were created as part of this operation. */ created_invoices: Array<ChangedSubscriptionResources.CreatedInvoice>; /** * The credit notes that were voided as part of this operation. */ voided_credit_notes: Array<CreditNote>; /** * The invoices that were voided as part of this operation. */ voided_invoices: Array<Invoice>; } export declare namespace ChangedSubscriptionResources { interface CreatedInvoice { id: string; /** * This is the final amount required to be charged to the customer and reflects the * application of the customer balance to the `total` of the invoice. */ amount_due: string; auto_collection: CreatedInvoice.AutoCollection; billing_address: Shared.Address | null; /** * The creation time of the resource in Orb. */ created_at: string; /** * A list of credit notes associated with the invoice */ credit_notes: Array<CreatedInvoice.CreditNote>; /** * An ISO 4217 currency string or `credits` */ currency: string; customer: Shared.CustomerMinified; customer_balance_transactions: Array<CreatedInvoice.CustomerBalanceTransaction>; /** * Tax IDs are commonly required to be displayed on customer invoices, which are * added to the headers of invoices. * * ### Supported Tax ID Countries and Types * * | Country | Type | Description | * | ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------- | * | Albania | `al_tin` | Albania Tax Identification Number | * | Andorra | `ad_nrt` | Andorran NRT Number | * | Angola | `ao_tin` | Angola Tax Identification Number | * | Argentina | `ar_cuit` | Argentinian Tax ID Number | * | Armenia | `am_tin` | Armenia Tax Identification Number | * | Aruba | `aw_tin` | Aruba Tax Identification Number | * | Australia | `au_abn` | Australian Business Number (AU ABN) | * | Australia | `au_arn` | Australian Taxation Office Reference Number | * | Austria | `eu_vat` | European VAT Number | * | Azerbaijan | `az_tin` | Azerbaijan Tax Identification Number | * | Bahamas | `bs_tin` | Bahamas Tax Identification Number | * | Bahrain | `bh_vat` | Bahraini VAT Number | * | Bangladesh | `bd_bin` | Bangladesh Business Identification Number | * | Barbados | `bb_tin` | Barbados Tax Identification Number | * | Belarus | `by_tin` | Belarus TIN Number | * | Belgium | `eu_vat` | European VAT Number | * | Benin | `bj_ifu` | Benin Tax Identification Number (Identifiant Fiscal Unique) | * | Bolivia | `bo_tin` | Bolivian Tax ID | * | Bosnia and Herzegovina | `ba_tin` | Bosnia and Herzegovina Tax Identification Number | * | Brazil | `br_cnpj` | Brazilian CNPJ Number | * | Brazil | `br_cpf` | Brazilian CPF Number | * | Bulgaria | `bg_uic` | Bulgaria Unified Identification Code | * | Bulgaria | `eu_vat` | European VAT Number | * | Burkina Faso | `bf_ifu` | Burkina Faso Tax Identification Number (Numéro d'Identifiant Fiscal Unique) | * | Cambodia | `kh_tin` | Cambodia Tax Identification Number | * | Cameroon | `cm_niu` | Cameroon Tax Identification Number (Numéro d'Identifiant fiscal Unique) | * | Canada | `ca_bn` | Canadian BN | * | Canada | `ca_gst_hst` | Canadian GST/HST Number | * | Canada | `ca_pst_bc` | Canadian PST Number (British Columbia) | * | Canada | `ca_pst_mb` | Canadian PST Number (Manitoba) | * | Canada | `ca_pst_sk` | Canadian PST Number (Saskatchewan) | * | Canada | `ca_qst` | Canadian QST Number (Québec) | * | Cape Verde | `cv_nif` | Cape Verde Tax Identification Number (Número de Identificação Fiscal) | * | Chile | `cl_tin` | Chilean TIN | * | China | `cn_tin` | Chinese Tax ID | * | Colombia | `co_nit` | Colombian NIT Number | * | Congo-Kinshasa | `cd_nif` | Congo (DR) Tax Identification Number (Número de Identificação Fiscal) | * | Costa Rica | `cr_tin` | Costa Rican Tax ID | * | Croatia | `eu_vat` | European VAT Number | * | Croatia | `hr_oib` | Croatian Personal Identification Number (OIB) | * | Cyprus | `eu_vat` | European VAT Number | * | Czech Republic | `eu_vat` | European VAT Number | * | Denmark | `eu_vat` | European VAT Number | * | Dominican Republic | `do_rcn` | Dominican RCN Number | * | Ecuador | `ec_ruc` | Ecuadorian RUC Number | * | Egypt | `eg_tin` | Egyptian Tax Identification Number | * | El Salvador | `sv_nit` | El Salvadorian NIT Number | * | Estonia | `eu_vat` | European VAT Number | * | Ethiopia | `et_tin` | Ethiopia Tax Identification Number | * | European Union | `eu_oss_vat` | European One Stop Shop VAT Number for non-Union scheme | * | Finland | `eu_vat` | European VAT Number | * | France | `eu_vat` | European VAT Number | * | Georgia | `ge_vat` | Georgian VAT | * | Germany | `de_stn` | German Tax Number (Steuernummer) | * | Germany | `eu_vat` | European VAT Number | * | Greece | `eu_vat` | European VAT Number | * | Guinea | `gn_nif` | Guinea Tax Identification Number (Número de Identificação Fiscal) | * | Hong Kong | `hk_br` | Hong Kong BR Number | * | Hungary | `eu_vat` | European VAT Number | * | Hungary | `hu_tin` | Hungary Tax Number (adószám) | * | Iceland | `is_vat` | Icelandic VAT | * | India | `in_gst` | Indian GST Number | * | Indonesia | `id_npwp` | Indonesian NPWP Number | * | Ireland | `eu_vat` | European VAT Number | * | Israel | `il_vat` | Israel VAT | * | Italy | `eu_vat` | European VAT Number | * | Japan | `jp_cn` | Japanese Corporate Number (_Hōjin Bangō_) | * | Japan | `jp_rn` | Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_) | * | Japan | `jp_trn` | Japanese Tax Registration Number (_Tōroku Bangō_) | * | Kazakhstan | `kz_bin` | Kazakhstani Business Identification Number | * | Kenya | `ke_pin` | Kenya Revenue Authority Personal Identification Number | * | Kyrgyzstan | `kg_tin` | Kyrgyzstan Tax Identification Number | * | Laos | `la_tin` | Laos Tax Identification Number | * | Latvia | `eu_vat` | European VAT Number | * | Liechtenstein | `li_uid` | Liechtensteinian UID Number | * | Liechtenstein | `li_vat` | Liechtenstein VAT Number | * | Lithuania | `eu_vat` | European VAT Number | * | Luxembourg | `eu_vat` | European VAT Number | * | Malaysia | `my_frp` | Malaysian FRP Number | * | Malaysia | `my_itn` | Malaysian ITN | * | Malaysia | `my_sst` | Malaysian SST Number | * | Malta | `eu_vat` | European VAT Number | * | Mauritania | `mr_nif` | Mauritania Tax Identification Number (Número de Identificação Fiscal) | * | Mexico | `mx_rfc` | Mexican RFC Number | * | Moldova | `md_vat` | Moldova VAT Number | * | Montenegro | `me_pib` | Montenegro PIB Number | * | Morocco | `ma_vat` | Morocco VAT Number | * | Nepal | `np_pan` | Nepal PAN Number | * | Netherlands | `eu_vat` | European VAT Number | * | New Zealand | `nz_gst` | New Zealand GST Number | * | Nigeria | `ng_tin` | Nigerian Tax Identification Number | * | North Macedonia | `mk_vat` | North Macedonia VAT Number | * | Northern Ireland | `eu_vat` | Northern Ireland VAT Number | * | Norway | `no_vat` | Norwegian VAT Number | * | Norway | `no_voec` | Norwegian VAT on e-commerce Number | * | Oman | `om_vat` | Omani VAT Number | * | Peru | `pe_ruc` | Peruvian RUC Number | * | Philippines | `ph_tin` | Philippines Tax Identification Number | * | Poland | `eu_vat` | European VAT Number | * | Portugal | `eu_vat` | European VAT Number | * | Romania | `eu_vat` | European VAT Number | * | Romania | `ro_tin` | Romanian Tax ID Number | * | Russia | `ru_inn` | Russian INN | * | Russia | `ru_kpp` | Russian KPP | * | Saudi Arabia | `sa_vat` | Saudi Arabia VAT | * | Senegal | `sn_ninea` | Senegal NINEA Number | * | Serbia | `rs_pib` | Serbian PIB Number | * | Singapore | `sg_gst` | Singaporean GST | * | Singapore | `sg_uen` | Singaporean UEN | * | Slovakia | `eu_vat` | European VAT Number | * | Slovenia | `eu_vat` | European VAT Number | * | Slovenia | `si_tin` | Slovenia Tax Number (davčna številka) | * | South Africa | `za_vat` | South African VAT Number | * | South Korea | `kr_brn` | Korean BRN | * | Spain | `es_cif` | Spanish NIF Number (previously Spanish CIF Number) | * | Spain | `eu_vat` | European VAT Number | * | Suriname | `sr_fin` | Suriname FIN Number | * | Sweden | `eu_vat` | European VAT Number | * | Switzerland | `ch_uid` | Switzerland UID Number | * | Switzerland | `ch_vat` | Switzerland VAT Number | * | Taiwan | `tw_vat` | Taiwanese VAT | * | Tajikistan | `tj_tin` | Tajikistan Tax Identification Number | * | Tanzania | `tz_vat` | Tanzania VAT Number | * | Thailand | `th_vat` | Thai VAT | * | Turkey | `tr_tin` | Turkish Tax Identification Number | * | Uganda | `ug_tin` | Uganda Tax Identification Number | * | Ukraine | `ua_vat` | Ukrainian VAT | * | United Arab Emirates | `ae_trn` | United Arab Emirates TRN | * | United Kingdom | `gb_vat` | United Kingdom VAT Number | * | United States | `us_ein` | United States EIN | * | Uruguay | `uy_ruc` | Uruguayan RUC Number | * | Uzbekistan | `uz_tin` | Uzbekistan TIN Number | * | Uzbekistan | `uz_vat` | Uzbekistan VAT Number | * | Venezuela | `ve_rif` | Venezuelan RIF Number | * | Vietnam | `vn_tin` | Vietnamese Tax ID Number | * | Zambia | `zm_tin` | Zambia Tax Identification Number | * | Zimbabwe | `zw_tin` | Zimbabwe Tax Identification Number | */ customer_tax_id: Shared.CustomerTaxID | null; /** * @deprecated This field is deprecated in favor of `discounts`. If a `discounts` * list is provided, the first discount in the list will be returned. If the list * is empty, `None` will be returned. */ discount: unknown; discounts: Array<Shared.InvoiceLevelDiscount>; /** * When the invoice payment is due. The due date is null if the invoice is not yet * finalized. */ due_date: string | null; /** * If the invoice has a status of `draft`, this will be the time that the invoice * will be eligible to be issued, otherwise it will be `null`. If `auto-issue` is * true, the invoice will automatically begin issuing at this time. */ eligible_to_issue_at: string | null; /** * A URL for the customer-facing invoice portal. This URL expires 30 days after the * invoice's due date, or 60 days after being re-generated through the UI. */ hosted_invoice_url: string | null; /** * The scheduled date of the invoice */ invoice_date: string; /** * Automatically generated invoice number to help track and reconcile invoices. * Invoice numbers have a prefix such as `RFOBWG`. These can be sequential per * account or customer. */ invoice_number: string; /** * The link to download the PDF representation of the `Invoice`. */ invoice_pdf: string | null; invoice_source: 'subscription' | 'partial' | 'one_off'; /** * True if the invoice has only in-advance fixed fees and is payable now */ is_payable_now: boolean; /** * If the invoice failed to issue, this will be the last time it failed to issue * (even if it is now in a different state.) */ issue_failed_at: string | null; /** * If the invoice has been issued, this will be the time it transitioned to * `issued` (even if it is now in a different state.) */ issued_at: string | null; /** * The breakdown of prices in this invoice. */ line_items: Array<CreatedInvoice.LineItem>; maximum: Shared.Maximum | null; maximum_amount: string | null; /** * Free-form text which is available on the invoice PDF and the Orb invoice portal. */ memo: string | null; /** * User specified key-value pairs for the resource. If not present, this defaults * to an empty dictionary. Individual keys can be removed by setting the value to * `null`, and the entire metadata mapping can be cleared by setting `metadata` to * `null`. */ metadata: { [key: string]: string; }; minimum: Shared.Minimum | null; minimum_amount: string | null; /** * If the invoice has a status of `paid`, this gives a timestamp when the invoice * was paid. */ paid_at: string | null; /** * A list of payment attempts associated with the invoice */ payment_attempts: Array<CreatedInvoice.PaymentAttempt>; /** * If payment was attempted on this invoice but failed, this will be the time of * the most recent attempt. */ payment_failed_at: string | null; /** * If payment was attempted on this invoice, this will be the start time of the * most recent attempt. This field is especially useful for delayed-notification * payment mechanisms (like bank transfers), where payment can take 3 days or more. */ payment_started_at: string | null; /** * If the invoice is in draft, this timestamp will reflect when the invoice is * scheduled to be issued. */ scheduled_issue_at: string | null; shipping_address: Shared.Address | null; status: 'issued' | 'paid' | 'synced' | 'void' | 'draft'; subscription: Shared.SubscriptionMinified | null; /** * The total before any discounts and minimums are applied. */ subtotal: string; /** * If the invoice failed to sync, this will be the last time an external invoicing * provider sync was attempted. This field will always be `null` for invoices using * Orb Invoicing. */ sync_failed_at: string | null; /** * The total after any minimums and discounts have been applied. */ total: string; /** * If the invoice has a status of `void`, this gives a timestamp when the invoice * was voided. */ voided_at: string | null; /** * This is true if the invoice will be automatically issued in the future, and * false otherwise. */ will_auto_issue: boolean; } namespace CreatedInvoice { interface AutoCollection { /** * True only if auto-collection is enabled for this invoice. */ enabled: boolean | null; /** * If the invoice is scheduled for auto-collection, this field will reflect when * the next attempt will occur. If dunning has been exhausted, or auto-collection * is not enabled for this invoice, this field will be `null`. */ next_attempt_at: string | null; /** * Number of auto-collection payment attempts. */ num_attempts: number | null; /** * If Orb has ever attempted payment auto-collection for this invoice, this field * will reflect when that attempt occurred. In conjunction with `next_attempt_at`, * this can be used to tell whether the invoice is currently in dunning (that is, * `previously_attempted_at` is non-null, and `next_attempt_time` is non-null), or * if dunning has been exhausted (`previously_attempted_at` is non-null, but * `next_attempt_time` is null). */ previously_attempted_at: string | null; } interface CreditNote { id: string; credit_note_number: string; /** * An optional memo supplied on the credit note. */ memo: string | null; reason: string; total: string; type: string; /** * If the credit note has a status of `void`, this gives a timestamp when the * credit note was voided. */ voided_at: string | null; } interface CustomerBalanceTransaction { /** * A unique id for this transaction. */ id: string; action: 'applied_to_invoice' | 'manual_adjustment' | 'prorated_refund' | 'revert_prorated_refund' | 'return_from_voiding' | 'credit_note_applied' | 'credit_note_voided' | 'overpayment_refund' | 'external_payment' | 'small_invoice_carryover'; /** * The value of the amount changed in the transaction. */ amount: string; /** * The creation time of this transaction. */ created_at: string; credit_note: Shared.CreditNoteTiny | null; /** * An optional description provided for manual customer balance adjustments. */ description: string | null; /** * The new value of the customer's balance prior to the transaction, in the * customer's currency. */ ending_balance: string; invoice: Shared.InvoiceTiny | null; /** * The original value of the customer's balance prior to the transaction, in the * customer's currency. */ starting_balance: string; type: 'increment' | 'decrement'; } interface LineItem { /** * A unique ID for this line item. */ id: string; /** * The line amount after any adjustments and before overage conversion, credits and * partial invoicing. */ adjusted_subtotal: string; /** * All adjustments applied to the line item in the order they were applied based on * invoice calculations (ie. usage discounts -> amount discounts -> percentage * discounts -> minimums -> maximums). */ adjustments: Array<Shared.MonetaryUsageDiscountAdjustment | Shared.MonetaryAmountDiscountAdjustment | Shared.MonetaryPercentageDiscountAdjustment | Shared.MonetaryMinimumAdjustment | Shared.MonetaryMaximumAdjustment>; /** * The final amount for a line item after all adjustments and pre paid credits have * been applied. */ amount: string; /** * The number of prepaid credits applied. */ credits_applied: string; /** * The end date of the range of time applied for this line item's price. */ end_date: string; /** * An additional filter that was used to calculate the usage for this line item. */ filter: string | null; /** * [DEPRECATED] For configured prices that are split by a grouping key, this will * be populated with the key and a value. The `amount` and `subtotal` will be the * values for this particular grouping. */ grouping: string | null; /** * The name of the price associated with this line item. */ name: string; /** * Any amount applied from a partial invoice */ partially_invoiced_amount: string; /** * The Price resource represents a price that can be billed on a subscription, * resulting in a charge on an invoice in the form of an invoice line item. Prices * take a quantity and determine an amount to bill. * * Orb supports a few different pricing models out of the box. Each of these models * is serialized differently in a given Price object. The model_type field * determines the key for the configuration object that is present. * * For more on the types of prices, see * [the core concepts documentation](/core-concepts#plan-and-price) */ price: Shared.Price; /** * Either the fixed fee quantity or the usage during the service period. */ quantity: number; /** * The start date of the range of time applied for this line item's price. */ start_date: string; /** * For complex pricing structures, the line item can be broken down further in * `sub_line_items`. */ sub_line_items: Array<Shared.MatrixSubLineItem | Shared.TierSubLineItem | Shared.OtherSubLineItem>; /** * The line amount before any adjustments. */ subtotal: string; /** * An array of tax rates and their incurred tax amounts. Empty if no tax * integration is configured. */ tax_amounts: Array<Shared.TaxAmount>; /** * A list of customer ids that were used to calculate the usage for this line item. */ usage_customer_ids: Array<string> | null; } interface PaymentAttempt { /** * The ID of the payment attempt. */ id: string; /** * The amount of the payment attempt. */ amount: string; /** * The time at which the payment attempt was created. */ created_at: string; /** * The payment provider that attempted to collect the payment. */ payment_provider: 'stripe' | null; /** * The ID of the payment attempt in the payment provider. */ payment_provider_id: string | null; /** * URL to the downloadable PDF version of the receipt. This field will be `null` * for payment attempts that did not succeed. */ receipt_pdf: string | null; /** * Whether the payment attempt succeeded. */ succeeded: boolean; } } } export interface ConversionRateTier { /** * Exclusive tier starting value */ first_unit: number; /** * Amount per unit of overage */ unit_amount: string; /** * Inclusive tier ending value. If null, this is treated as the last tier */ last_unit?: number | null; } export interface ConversionRateTieredConfig { /** * Tiers for rating based on total usage quantities into the specified tier */ tiers: Array<ConversionRateTier>; } export interface ConversionRateUnitConfig { /** * Amount per unit of overage */ unit_amount: string; } export interface CouponRedemption { coupon_id: string; end_date: string | null; start_date: string; } /** * The [Credit Note](/invoicing/credit-notes) resource represents a credit that has * been applied to a particular invoice. */ export interface CreditNote { /** * The Orb id of this credit note. */ id: string; /** * The creation time of the resource in Orb. */ created_at: string; /** * The unique identifier for credit notes. */ credit_note_number: string; /** * A URL to a PDF of the credit note. */ credit_note_pdf: string | null; customer: CustomerMinified; /** * The id of the invoice resource that this credit note is applied to. */ invoice_id: string; /** * All of the line items associated with this credit note. */ line_items: Array<CreditNote.LineItem>; /** * The maximum amount applied on the original invoice */ maximum_amount_adjustment: CreditNote.MaximumAmountAdjustment | null; /** * An optional memo supplied on the credit note. */ memo: string | null; /** * Any credited amount from the applied minimum on the invoice. */ minimum_amount_refunded: string | null; reason: 'Duplicate' | 'Fraudulent' | 'Order change' | 'Product unsatisfactory' | null; /** * The total prior to any creditable invoice-level discounts or minimums. */ subtotal: string; /** * The total including creditable invoice-level discounts or minimums, and tax. */ total: string; type: 'refund' | 'adjustment'; /** * The time at which the credit note was voided in Orb, if applicable. */ voided_at: string | null; /** * Any discounts applied on the original invoice. */ discounts?: Array<CreditNote.Discount>; } export declare namespace CreditNote { interface LineItem { /** * The Orb id of this resource. */ id: string; /** * The amount of the line item, including any line item minimums and discounts. */ amount: string; /** * The id of the item associated with this line item. */ item_id: string; /** * The name of the corresponding invoice line item. */ name: string; /** * An optional quantity credited. */ quantity: number | null; /** * The amount of the line item, excluding any line item minimums and discounts. */ subtotal: string; /** * Any tax amounts applied onto the line item. */ tax_amounts: Array<Shared.TaxAmount>; /** * Any line item discounts from the invoice's line item. */ discounts?: Array<LineItem.Discount>; /** * The end time of the service period for this credit note line item. */ end_time_exclusive?: string | null; /** * The start time of the service period for this credit note line item. */ start_time_inclusive?: string | null; } namespace LineItem { interface Discount { id: string; amount_applied: string; applies_to_price_ids: Array<string>; discount_type: 'percentage' | 'amount'; percentage_discount: number; amount_discount?: string | null; reason?: string | null; } } /** * The maximum amount applied on the original invoice */ interface MaximumAmountAdjustment { amount_applied: string; discount_type: 'percentage'; percentage_discount: number; applies_to_prices?: Array<MaximumAmountAdjustment.AppliesToPrice> | null; reason?: string | null; } namespace MaximumAmountAdjustment { interface AppliesToPrice { id: string; name: string; } } interface Discount { amount_applied: string; discount_type: 'percentage'; percentage_discount: number; applies_to_prices?: Array<Discount.AppliesToPrice> | null; reason?: string | null; } namespace Discount { interface AppliesToPrice { id: string; name: string; } } } export interface CreditNoteTiny { /** * The id of the Credit note */ id: string; } export interface CustomExpiration { duration: number; duration_unit: 'day' | 'month'; } export interface CustomerMinified { id: string; external_customer_id: string | null; } /** * Tax IDs are commonly required to be displayed on customer invoices, which are * added to the headers of invoices. * * ### Supported Tax ID Countries and Types * * | Country | Type | Description | * | ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------- | * | Albania | `al_tin` | Albania Tax Identification Number | * | Andorra | `ad_nrt` | Andorran NRT Number | * | Angola | `ao_tin` | Angola Tax Identification Number | * | Argentina | `ar_cuit` | Argentinian Tax ID Number | * | Armenia | `am_tin` | Armenia Tax Identification Number | * | Aruba | `aw_tin` | Aruba Tax Identification Number | * | Australia | `au_abn` | Australian Business Number (AU ABN) | * | Australia | `au_arn` | Australian Taxation Office Reference Number | * | Austria | `eu_vat` | European VAT Number | * | Azerbaijan | `az_tin` | Azerbaijan Tax Identification Number | * | Bahamas | `bs_tin` | Bahamas Tax Identification Number | * | Bahrain | `bh_vat` | Bahraini VAT Number | * | Bangladesh | `bd_bin` | Bangladesh