Packages
Complete Stripe SDK for Elixir with parity to the official Ruby SDK. V1+V2 coverage (193 services, 320 resource structs, 525 documented params). Per-event modules, Finch HTTP/2, RustyJSON, automatic retries, OAuth, webhooks, telemetry, per-client config, streaming pagination.
Current section
Files
Jump to
Current section
Files
lib/stripe/params/issuing/cardholder_create_params.ex
# File generated from our OpenAPI spec
defmodule Stripe.Params.Issuing.CardholderCreateParams do
@moduledoc "Parameters for cardholder create."
@typedoc """
* `billing` - The cardholder's billing address.
* `company` - Additional information about a `company` cardholder.
* `email` - The cardholder's email address.
* `expand` - Specifies which fields in the response should be expanded.
* `individual` - Additional information about an `individual` cardholder.
* `metadata` - Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
* `name` - The cardholder's name. This will be printed on cards issued to them. The maximum length of this field is 24 characters. This field cannot contain any special characters or numbers.
* `phone_number` - The cardholder's phone number. This will be transformed to [E.164](https://en.wikipedia.org/wiki/E.164) if it is not provided in that format already. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://docs.stripe.com/issuing/3d-secure#when-is-3d-secure-applied) for more details.
* `preferred_locales` - The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`.
This changes the language of the [3D Secure flow](https://docs.stripe.com/issuing/3d-secure) and one-time password messages sent to the cardholder.
* `spending_controls` - Rules that control spending across this cardholder's cards. Refer to our [documentation](https://docs.stripe.com/issuing/controls/spending-controls) for more details.
* `status` - Specifies whether to permit authorizations on this cardholder's cards. Defaults to `active`. Possible values: `active`, `inactive`.
* `type` - One of `individual` or `company`. See [Choose a cardholder type](https://docs.stripe.com/issuing/other/choose-cardholder) for more details. Possible values: `company`, `individual`.
"""
@type t :: %__MODULE__{
billing: billing(),
company: company() | nil,
email: String.t() | nil,
expand: [String.t()] | nil,
individual: individual() | nil,
metadata: %{String.t() => String.t()} | nil,
name: String.t(),
phone_number: String.t() | nil,
preferred_locales: [String.t()] | nil,
spending_controls: spending_controls() | nil,
status: String.t() | nil,
type: String.t() | nil
}
defstruct [
:billing,
:company,
:email,
:expand,
:individual,
:metadata,
:name,
:phone_number,
:preferred_locales,
:spending_controls,
:status,
:type
]
@typedoc """
* `address` - The cardholder’s billing address.
"""
@type billing :: %{
optional(:address) => billing_address() | nil,
optional(String.t()) => term()
}
@typedoc """
* `city` - City, district, suburb, town, or village. Max length: 5000.
* `country` - Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). Max length: 5000.
* `line1` - Address line 1, such as the street, PO Box, or company name. Max length: 5000.
* `line2` - Address line 2, such as the apartment, suite, unit, or building. Max length: 5000.
* `postal_code` - ZIP or postal code. Max length: 5000.
* `state` - State, county, province, or region ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). Max length: 5000.
"""
@type billing_address :: %{
optional(:city) => String.t() | nil,
optional(:country) => String.t() | nil,
optional(:line1) => String.t() | nil,
optional(:line2) => String.t() | nil,
optional(:postal_code) => String.t() | nil,
optional(:state) => String.t() | nil,
optional(String.t()) => term()
}
@typedoc """
* `tax_id` - The entity's business ID number. Max length: 5000.
"""
@type company :: %{
optional(:tax_id) => String.t() | nil,
optional(String.t()) => term()
}
@typedoc """
* `card_issuing` - Information related to the card_issuing program for this cardholder.
* `dob` - The date of birth of this cardholder. Cardholders must be older than 13 years old.
* `first_name` - The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters.
* `last_name` - The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters.
* `verification` - Government-issued ID document for this cardholder.
"""
@type individual :: %{
optional(:card_issuing) => individual_card_issuing() | nil,
optional(:dob) => individual_dob() | nil,
optional(:first_name) => String.t() | nil,
optional(:last_name) => String.t() | nil,
optional(:verification) => individual_verification() | nil,
optional(String.t()) => term()
}
@typedoc """
* `user_terms_acceptance` - Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program.
"""
@type individual_card_issuing :: %{
optional(:user_terms_acceptance) =>
individual_card_issuing_user_terms_acceptance() | nil,
optional(String.t()) => term()
}
@typedoc """
* `date` - The Unix timestamp marking when the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. Format: Unix timestamp.
* `ip` - The IP address from which the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users.
* `user_agent` - The user agent of the browser from which the cardholder accepted the Authorized User Terms.
"""
@type individual_card_issuing_user_terms_acceptance :: %{
optional(:date) => integer() | nil,
optional(:ip) => String.t() | nil,
optional(:user_agent) => map() | nil,
optional(String.t()) => term()
}
@typedoc """
* `day` - The day of birth, between 1 and 31.
* `month` - The month of birth, between 1 and 12.
* `year` - The four-digit year of birth.
"""
@type individual_dob :: %{
optional(:day) => integer() | nil,
optional(:month) => integer() | nil,
optional(:year) => integer() | nil,
optional(String.t()) => term()
}
@typedoc """
* `document` - An identifying document, either a passport or local ID card.
"""
@type individual_verification :: %{
optional(:document) => individual_verification_document() | nil,
optional(String.t()) => term()
}
@typedoc """
* `back` - The back of an ID returned by a [file upload](https://api.stripe.com#create_file) with a `purpose` value of `identity_document`. Max length: 5000.
* `front` - The front of an ID returned by a [file upload](https://api.stripe.com#create_file) with a `purpose` value of `identity_document`. Max length: 5000.
"""
@type individual_verification_document :: %{
optional(:back) => String.t() | nil,
optional(:front) => String.t() | nil,
optional(String.t()) => term()
}
@typedoc """
* `allowed_categories` - Array of strings containing [categories](https://docs.stripe.com/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`.
* `allowed_merchant_countries` - Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control.
* `blocked_categories` - Array of strings containing [categories](https://docs.stripe.com/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`.
* `blocked_merchant_countries` - Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control.
* `spending_limits` - Limit spending with amount-based rules that apply across this cardholder's cards.
* `spending_limits_currency` - Currency of amounts within `spending_limits`. Defaults to your merchant country's currency.
"""
@type spending_controls :: %{
optional(:allowed_categories) => [String.t()] | nil,
optional(:allowed_merchant_countries) => [String.t()] | nil,
optional(:blocked_categories) => [String.t()] | nil,
optional(:blocked_merchant_countries) => [String.t()] | nil,
optional(:spending_limits) => [spending_controls_spending_limits()] | nil,
optional(:spending_limits_currency) => String.t() | nil,
optional(String.t()) => term()
}
@typedoc """
* `amount` - Maximum amount allowed to spend per interval.
* `categories` - Array of strings containing [categories](https://docs.stripe.com/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories.
* `interval` - Interval (or event) to which the amount applies. Possible values: `all_time`, `daily`, `monthly`, `per_authorization`, `weekly`, `yearly`.
"""
@type spending_controls_spending_limits :: %{
optional(:amount) => integer() | nil,
optional(:categories) => [String.t()] | nil,
optional(:interval) => String.t() | nil,
optional(String.t()) => term()
}
end