UNPKG

orb-billing

Version:

The official TypeScript library for the Orb API

118 lines 4.93 kB
import { APIResource } from "../../resource.js"; import * as Core from "../../core.js"; import * as Shared from "../shared.js"; import * as SubscriptionsAPI from "./subscriptions.js"; import { SubscriptionListParams, Subscriptions } from "./subscriptions.js"; import { Page, type PageParams } from "../../pagination.js"; export declare class Coupons extends APIResource { subscriptions: SubscriptionsAPI.Subscriptions; /** * This endpoint allows the creation of coupons, which can then be redeemed at * subscription creation or plan change. */ create(body: CouponCreateParams, options?: Core.RequestOptions): Core.APIPromise<Coupon>; /** * This endpoint returns a list of all coupons for an account in a list format. * * The list of coupons is ordered starting from the most recently created coupon. * The response also includes `pagination_metadata`, which lets the caller retrieve * the next page of results if they exist. More information about pagination can be * found in the Pagination-metadata schema. */ list(query?: CouponListParams, options?: Core.RequestOptions): Core.PagePromise<CouponsPage, Coupon>; list(options?: Core.RequestOptions): Core.PagePromise<CouponsPage, Coupon>; /** * This endpoint allows a coupon to be archived. Archived coupons can no longer be * redeemed, and will be hidden from lists of active coupons. Additionally, once a * coupon is archived, its redemption code can be reused for a different coupon. */ archive(couponId: string, options?: Core.RequestOptions): Core.APIPromise<Coupon>; /** * This endpoint retrieves a coupon by its ID. To fetch coupons by their redemption * code, use the [List coupons](list-coupons) endpoint with the redemption_code * parameter. */ fetch(couponId: string, options?: Core.RequestOptions): Core.APIPromise<Coupon>; } export declare class CouponsPage extends Page<Coupon> { } /** * A coupon represents a reusable discount configuration that can be applied either * as a fixed or percentage amount to an invoice or subscription. Coupons are * activated using a redemption code, which applies the discount to a subscription * or invoice. The duration of a coupon determines how long it remains available * for use by end users. */ export interface Coupon { /** * Also referred to as coupon_id in this documentation. */ id: string; /** * An archived coupon can no longer be redeemed. Active coupons will have a value * of null for `archived_at`; this field will be non-null for archived coupons. */ archived_at: string | null; discount: Shared.PercentageDiscount | Shared.AmountDiscount; /** * This allows for a coupon's discount to apply for a limited time (determined in * months); a `null` value here means "unlimited time". */ duration_in_months: number | null; /** * The maximum number of redemptions allowed for this coupon before it is * exhausted; `null` here means "unlimited". */ max_redemptions: number | null; /** * This string can be used to redeem this coupon for a given subscription. */ redemption_code: string; /** * The number of times this coupon has been redeemed. */ times_redeemed: number; } export interface CouponCreateParams { discount: CouponCreateParams.NewCouponPercentageDiscount | CouponCreateParams.NewCouponAmountDiscount; /** * This string can be used to redeem this coupon for a given subscription. */ redemption_code: string; /** * This allows for a coupon's discount to apply for a limited time (determined in * months); a `null` value here means "unlimited time". */ duration_in_months?: number | null; /** * The maximum number of redemptions allowed for this coupon before it is * exhausted;`null` here means "unlimited". */ max_redemptions?: number | null; } export declare namespace CouponCreateParams { interface NewCouponPercentageDiscount { discount_type: 'percentage'; percentage_discount: number; } interface NewCouponAmountDiscount { amount_discount: string; discount_type: 'amount'; } } export interface CouponListParams extends PageParams { /** * Filter to coupons matching this redemption code. */ redemption_code?: string | null; /** * Show archived coupons as well (by default, this endpoint only returns active * coupons). */ show_archived?: boolean | null; } export declare namespace Coupons { export { type Coupon as Coupon, CouponsPage as CouponsPage, type CouponCreateParams as CouponCreateParams, type CouponListParams as CouponListParams, }; export { Subscriptions as Subscriptions, type SubscriptionListParams as SubscriptionListParams }; } //# sourceMappingURL=coupons.d.ts.map