orb-billing
Version:
The official TypeScript library for the Orb API
57 lines • 2.59 kB
JavaScript
;
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreditNotesPage = exports.CreditNotes = void 0;
const resource_1 = require("../resource.js");
const core_1 = require("../core.js");
const shared_1 = require("./shared.js");
Object.defineProperty(exports, "CreditNotesPage", { enumerable: true, get: function () { return shared_1.CreditNotesPage; } });
class CreditNotes extends resource_1.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, options) {
return this._client.post('/credit_notes', { body, ...options });
}
list(query = {}, options) {
if ((0, core_1.isRequestOptions)(query)) {
return this.list({}, query);
}
return this._client.getAPIList('/credit_notes', shared_1.CreditNotesPage, { query, ...options });
}
/**
* This endpoint is used to fetch a single [`Credit Note`](/invoicing/credit-notes)
* given an identifier.
*/
fetch(creditNoteId, options) {
return this._client.get(`/credit_notes/${creditNoteId}`, options);
}
}
exports.CreditNotes = CreditNotes;
//# sourceMappingURL=credit-notes.js.map