Stripe.Resources.PromotionCode (tiger_stripe v0.3.0)

Copy Markdown View Source

PromotionCode

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, 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.

Summary

Types

promotion()

@type promotion() :: %{
  optional(:coupon) => String.t() | Stripe.Resources.Coupon.t() | nil,
  optional(:type) => String.t() | nil,
  optional(String.t()) => term()
}
  • coupon - If promotion type is coupon, the coupon for this promotion. Nullable.
  • type - The type of promotion. Possible values: coupon.

restrictions()

@type restrictions() :: %{
  optional(:currency_options) =>
    %{required(String.t()) => restrictions_currency_options()} | nil,
  optional(:first_time_transaction) => boolean() | nil,
  optional(:minimum_amount) => integer() | nil,
  optional(:minimum_amount_currency) => String.t() | nil,
  optional(String.t()) => term()
}
  • currency_options - Promotion code restrictions defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.
  • first_time_transaction - A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices
  • minimum_amount - Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). Nullable.
  • minimum_amount_currency - Three-letter ISO code for minimum_amount Max length: 5000. Nullable.

restrictions_currency_options()

@type restrictions_currency_options() :: %{
  optional(:minimum_amount) => integer() | nil,
  optional(String.t()) => term()
}
  • minimum_amount - Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work).

t()

@type t() :: %Stripe.Resources.PromotionCode{
  active: boolean(),
  code: String.t(),
  created: integer(),
  customer: String.t() | Stripe.Resources.Customer.t(),
  customer_account: String.t(),
  expires_at: integer(),
  id: String.t(),
  livemode: boolean(),
  max_redemptions: integer(),
  metadata: %{required(String.t()) => String.t()},
  object: String.t(),
  promotion: promotion(),
  restrictions: restrictions(),
  times_redeemed: integer()
}
  • active - Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid.
  • code - 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). Max length: 5000.
  • created - Time at which the object was created. Measured in seconds since the Unix epoch. Format: Unix timestamp.
  • customer - The customer who can use this promotion code. Nullable. Expandable.
  • customer_account - The account representing the customer who can use this promotion code. Max length: 5000. Nullable.
  • expires_at - Date at which the promotion code can no longer be redeemed. Format: Unix timestamp. Nullable.
  • id - Unique identifier for the object. Max length: 5000.
  • livemode - Has the value true if the object exists in live mode or the value false if the object exists in test mode.
  • max_redemptions - Maximum number of times this promotion code can be redeemed. Nullable.
  • metadata - Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Nullable.
  • object - String representing the object's type. Objects of the same type share the same value. Possible values: promotion_code.
  • promotion - Expandable.
  • restrictions - Expandable.
  • times_redeemed - Number of times this promotion code has been used.

Functions

expandable_fields()

object_name()