orb-billing
Version:
The official TypeScript library for the Orb API
903 lines • 445 kB
TypeScript
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