UNPKG

orb-billing

Version:

The official TypeScript library for the Orb API

112 lines 5.21 kB
import { APIResource } from "../resource.js"; import * as Core from "../core.js"; import * as Shared from "./shared.js"; import { CreditNotesPage } from "./shared.js"; import { type PageParams } from "../pagination.js"; export declare class CreditNotes extends APIResource { /** * This endpoint is used to create a single * [`Credit Note`](/invoicing/credit-notes). * * The credit note service period configuration supports two explicit modes: * * 1. Global service periods: Specify start_date and end_date at the credit note * level. These dates will be applied to all line items uniformly. * * 2. Individual service periods: Specify start_date and end_date for each line * item. When using this mode, ALL line items must have individual periods * specified. * * 3. Default behavior: If no service periods are specified (neither global nor * individual), the original invoice line item service periods will be used. * * Note: Mixing global and individual service periods in the same request is not * allowed to prevent confusion. * * Service period dates are normalized to the start of the day in the customer's * timezone to ensure consistent handling across different timezones. * * Date Format: Use start_date and end_date with format "YYYY-MM-DD" (e.g., * "2023-09-22") to match other Orb APIs like /v1/invoice_line_items. * * Note: Both start_date and end_date are inclusive - the service period will cover * both the start date and end date completely (from start of start_date to end of * end_date). */ create(body: CreditNoteCreateParams, options?: Core.RequestOptions): Core.APIPromise<Shared.CreditNote>; /** * Get a paginated list of CreditNotes. Users can also filter by customer_id, * subscription_id, or external_customer_id. The credit notes will be returned in * reverse chronological order by `creation_time`. */ list(query?: CreditNoteListParams, options?: Core.RequestOptions): Core.PagePromise<CreditNotesPage, Shared.CreditNote>; list(options?: Core.RequestOptions): Core.PagePromise<CreditNotesPage, Shared.CreditNote>; /** * This endpoint is used to fetch a single [`Credit Note`](/invoicing/credit-notes) * given an identifier. */ fetch(creditNoteId: string, options?: Core.RequestOptions): Core.APIPromise<Shared.CreditNote>; } export interface CreditNoteCreateParams { line_items: Array<CreditNoteCreateParams.LineItem>; /** * An optional reason for the credit note. */ reason: 'duplicate' | 'fraudulent' | 'order_change' | 'product_unsatisfactory'; /** * A date string to specify the global credit note service period end date in the * customer's timezone. This will be applied to all line items that don't have * their own individual service periods specified. If not provided, line items will * use their original invoice line item service periods. This date is inclusive. */ end_date?: string | null; /** * An optional memo to attach to the credit note. */ memo?: string | null; /** * A date string to specify the global credit note service period start date in the * customer's timezone. This will be applied to all line items that don't have * their own individual service periods specified. If not provided, line items will * use their original invoice line item service periods. This date is inclusive. */ start_date?: string | null; } export declare namespace CreditNoteCreateParams { interface LineItem { /** * The total amount in the invoice's currency to credit this line item. */ amount: string; /** * The ID of the line item to credit. */ invoice_line_item_id: string; /** * A date string to specify this line item's credit note service period end date in * the customer's timezone. If provided, this will be used for this specific line * item. If not provided, will use the global end_date if available, otherwise * defaults to the original invoice line item's end date. This date is inclusive. */ end_date?: string | null; /** * A date string to specify this line item's credit note service period start date * in the customer's timezone. If provided, this will be used for this specific * line item. If not provided, will use the global start_date if available, * otherwise defaults to the original invoice line item's start date. This date is * inclusive. */ start_date?: string | null; } } export interface CreditNoteListParams extends PageParams { 'created_at[gt]'?: string | null; 'created_at[gte]'?: string | null; 'created_at[lt]'?: string | null; 'created_at[lte]'?: string | null; } export declare namespace CreditNotes { export { type CreditNoteCreateParams as CreditNoteCreateParams, type CreditNoteListParams as CreditNoteListParams, }; } export { CreditNotesPage }; //# sourceMappingURL=credit-notes.d.ts.map