View Source Stripe.PromotionCode (stripity_stripe v3.3.1)

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

The promotion referenced by this promotion code.

Settings that restrict the redemption of the promotion code.

t()

The promotion_code type.

Functions

A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.

Returns a list of your promotion codes.

Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use list with the desired code.

Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.

Types

@type created() :: %{
  optional(:gt) => integer(),
  optional(:gte) => integer(),
  optional(:lt) => integer(),
  optional(:lte) => integer()
}
@type promotion() :: %{optional(:coupon) => binary(), optional(:type) => :coupon}

The promotion referenced by this promotion code.

@type restrictions() :: %{
  optional(:currency_options) => map(),
  optional(:first_time_transaction) => boolean(),
  optional(:minimum_amount) => integer(),
  optional(:minimum_amount_currency) => binary()
}

Settings that restrict the redemption of the promotion code.

@type t() :: %Stripe.PromotionCode{
  active: boolean(),
  code: binary(),
  created: integer(),
  customer: (binary() | Stripe.Customer.t() | Stripe.DeletedCustomer.t()) | nil,
  expires_at: integer() | nil,
  id: binary(),
  livemode: boolean(),
  max_redemptions: integer() | nil,
  metadata: term() | nil,
  object: binary(),
  promotion: term(),
  restrictions: term(),
  times_redeemed: integer()
}

The promotion_code type.

  • 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).
  • created Time at which the object was created. Measured in seconds since the Unix epoch.
  • customer The customer that this promotion code can be used by.
  • expires_at Date at which the promotion code can no longer be redeemed.
  • id Unique identifier for the object.
  • 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.
  • 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.
  • object String representing the object's type. Objects of the same type share the same value.
  • promotion
  • restrictions
  • times_redeemed Number of times this promotion code has been used.

Functions

Link to this function

create(params \\ %{}, opts \\ [])

View Source
@spec create(
  params :: %{
    optional(:active) => boolean(),
    optional(:code) => binary(),
    optional(:customer) => binary(),
    optional(:expand) => [binary()],
    optional(:expires_at) => integer(),
    optional(:max_redemptions) => integer(),
    optional(:metadata) => %{optional(binary()) => binary()},
    optional(:promotion) => promotion(),
    optional(:restrictions) => restrictions()
  },
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.

Details

  • Method: post
  • Path: /v1/promotion_codes
Link to this function

list(params \\ %{}, opts \\ [])

View Source
@spec list(
  params :: %{
    optional(:active) => boolean(),
    optional(:code) => binary(),
    optional(:coupon) => binary(),
    optional(:created) => created() | integer(),
    optional(:customer) => binary(),
    optional(:ending_before) => binary(),
    optional(:expand) => [binary()],
    optional(:limit) => integer(),
    optional(:starting_after) => binary()
  },
  opts :: Keyword.t()
) ::
  {:ok, Stripe.List.t(t())} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Returns a list of your promotion codes.

Details

  • Method: get
  • Path: /v1/promotion_codes
Link to this function

retrieve(promotion_code, params \\ %{}, opts \\ [])

View Source
@spec retrieve(
  promotion_code :: binary(),
  params :: %{optional(:expand) => [binary()]},
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use list with the desired code.

Details

  • Method: get
  • Path: /v1/promotion_codes/{promotion_code}
Link to this function

update(promotion_code, params \\ %{}, opts \\ [])

View Source
@spec update(
  promotion_code :: binary(),
  params :: %{
    optional(:active) => boolean(),
    optional(:expand) => [binary()],
    optional(:metadata) => %{optional(binary()) => binary()} | binary(),
    optional(:restrictions) => restrictions()
  },
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.

Details

  • Method: post
  • Path: /v1/promotion_codes/{promotion_code}