stripe
Version:
Stripe API wrapper
121 lines (100 loc) • 4.03 kB
TypeScript
// File generated from our OpenAPI spec
declare module 'stripe' {
namespace Stripe {
/**
* A Promotion Code represents a customer-redeemable code for an underlying promotion.
* You can create multiple codes for a single promotion.
*
* If you enable promotion codes in your [customer portal configuration](https://stripe.com/docs/customer-management/configure-portal), then customers can redeem a code themselves when updating a subscription in the portal.
* Customers can also view the currently active promotion codes and coupons on each of their subscriptions in the portal.
*/
interface PromotionCode {
/**
* Unique identifier for the object.
*/
id: string;
/**
* String representing the object's type. Objects of the same type share the same value.
*/
object: 'promotion_code';
/**
* Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid.
*/
active: boolean;
/**
* The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer. Valid characters are lower case letters (a-z), upper case letters (A-Z), and digits (0-9).
*/
code: string;
/**
* Time at which the object was created. Measured in seconds since the Unix epoch.
*/
created: number;
/**
* The customer that this promotion code can be used by.
*/
customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
/**
* Date at which the promotion code can no longer be redeemed.
*/
expires_at: number | null;
/**
* Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
*/
livemode: boolean;
/**
* Maximum number of times this promotion code can be redeemed.
*/
max_redemptions: number | null;
/**
* Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
*/
metadata: Stripe.Metadata | null;
promotion: PromotionCode.Promotion;
restrictions: PromotionCode.Restrictions;
/**
* Number of times this promotion code has been used.
*/
times_redeemed: number;
}
namespace PromotionCode {
interface Promotion {
/**
* If promotion `type` is `coupon`, the coupon for this promotion.
*/
coupon: string | Stripe.Coupon | null;
/**
* The type of promotion.
*/
type: 'coupon';
}
interface Restrictions {
/**
* Promotion code restrictions defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
*/
currency_options?: {
[]: Restrictions.CurrencyOptions;
};
/**
* A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices
*/
first_time_transaction: boolean;
/**
* Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work).
*/
minimum_amount: number | null;
/**
* Three-letter [ISO code](https://stripe.com/docs/currencies) for minimum_amount
*/
minimum_amount_currency: string | null;
}
namespace Restrictions {
interface CurrencyOptions {
/**
* Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work).
*/
minimum_amount: number;
}
}
}
}
}