Skip to content

Stripe: Customers schemas

30 Stripe schemas with complete fields and constraints.

← Customers operations · All schemas

Create a card — customers post Customers Customer Cards — request body — body

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
alipay_accountstringOptionalA token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details.
Maximum length: 5000
bank_accountJSONOptionalEither a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details.
bank_account (anyOf 1)ModelAlternativeExpand Update a customer — request body — body / bank_account / account_holder_type: company, individual, object: bank account
bank_account (anyOf 2)stringAlternativeMaximum length: 5000
cardJSONOptionalA token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).
card (anyOf 1)ModelAlternativeExpand Create a charge — request body — body / card / object: card
card (anyOf 2)stringAlternativeMaximum length: 5000
expandarrayOptionalSpecifies which fields in the response should be expanded.
expand[]stringEach itemMaximum length: 5000
metadataobjectOptionalSet 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`.
Additional keys: see wildcard field
metadata.*stringAdditional keys
sourcestringOptionalPlease refer to full [documentation](https://api.stripe.com) instead.
Maximum length: 5000

Referenced models: Update a customer — request body — body / bank_account / account_holder_type: company, individual, object: bank account, Create a charge — request body — body / card / object: card

Create a customer balance transaction — response body

FieldTypePresenceDescription and constraints
$objectRootEach customer has a [Balance](https://docs.stripe.com/api/customers/object#customer_object-balance) value,
which denotes a debit or credit that's automatically applied to their next invoice upon finalization.
You may modify the value directly by using the [update customer API](https://docs.stripe.com/api/customers/update),
or by creating a Customer Balance Transaction, which increments or decrements the customer's `balance` by the specified `amount`.

Related guide: [Customer balance](https://docs.stripe.com/billing/customer/balance)
amountJSONRequired within parent
amount (anyOf 1)integerAlternativeThe amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's `balance`.
amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
checkout_sessionJSONOptional
checkout_session (anyOf 1)JSONAlternativeThe ID of the checkout session (if any) that created the transaction.
checkout_session (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
checkout_session (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a Checkout Session — response body
checkout_session (anyOf 2)nullAlternative
createdJSONRequired within parent
created (anyOf 1)integerAlternativeTime at which the object was created. Measured in seconds since the Unix epoch.
Format: unix-time
created (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
credit_noteJSONOptional
credit_note (anyOf 1)JSONAlternativeThe ID of the credit note (if any) related to the transaction.
credit_note (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
credit_note (anyOf 1) (anyOf 2)ModelAlternativeExpand Void a credit note — response body
credit_note (anyOf 2)nullAlternative
currencystringRequired within parentThree-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
Format: currency
customerJSONRequired within parentThe ID of the customer the transaction belongs to.
customer (anyOf 1)stringAlternativeMaximum length: 5000
customer (anyOf 2)ModelAlternativeExpand Create a customer — response body
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of an Account representing a customer that the transaction belongs to.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
description (anyOf 2)nullAlternative
ending_balanceJSONRequired within parent
ending_balance (anyOf 1)integerAlternativeThe customer's `balance` after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice.
ending_balance (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
invoiceJSONOptional
invoice (anyOf 1)JSONAlternativeThe ID of the invoice (if any) related to the transaction.
invoice (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
invoice (anyOf 1) (anyOf 2)ModelAlternativeExpand Pay an invoice — response body
invoice (anyOf 2)nullAlternative
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet 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.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: customer_balance_transaction
typestringRequired within parentTransaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_overpaid`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, `unapplied_from_invoice`, `checkout_session_subscription_payment`, or `checkout_session_subscription_payment_canceled`. See the [Customer Balance page](https://docs.stripe.com/billing/customer/balance#types) to learn more about transaction types.
Known values: adjustment, applied_to_invoice, checkout_session_subscription_payment, checkout_session_subscription_payment_canceled, credit_note, initial, invoice_overpaid, invoice_too_large, invoice_too_small, migration, unapplied_from_invoice, unspent_receiver_credit

Referenced models: Create a Checkout Session — response body, Void a credit note — response body, Create a customer — response body, Pay an invoice — response body

Create a customer — request body — body invoice settings

FieldTypePresenceDescription and constraints
$objectRootDefault invoice settings for this customer.
custom_fieldsJSONOptional
custom_fields (anyOf 1)arrayAlternative
custom_fields (anyOf 1)[]objectEach item
custom_fields (anyOf 1)[].namestringRequired within parentMaximum length: 40
custom_fields (anyOf 1)[].valuestringRequired within parentMaximum length: 140
custom_fields (anyOf 2)stringAlternativeOne of:
default_payment_methodstringOptionalMaximum length: 5000
footerstringOptionalMaximum length: 5000
rendering_optionsJSONOptional
rendering_options (anyOf 1)objectAlternative
rendering_options (anyOf 1).amount_tax_displaystringOptionalOne of: , exclude_tax, include_inclusive_tax
rendering_options (anyOf 1).templatestringOptionalMaximum length: 5000
rendering_options (anyOf 2)stringAlternativeOne of:

Create a customer — request body — body tax id data item

FieldTypePresenceDescription and constraints
$objectRoot
typestringRequired within parentOne of: ad_nrt, ae_trn, al_tin, am_tin, ao_tin, ar_cuit, au_abn, au_arn, aw_tin, az_tin, ba_tin, bb_tin, bd_bin, bf_ifu, bg_uic, bh_vat, bj_ifu, bo_tin, br_cnpj, br_cpf, bs_tin, by_tin, ca_bn, ca_gst_hst, ca_pst_bc, ca_pst_mb, ca_pst_sk, ca_qst, cd_nif, ch_uid, ch_vat, cl_tin, cm_niu, cn_tin, co_nit, cr_tin, cv_nif, de_stn, do_rcn, ec_ruc, eg_tin, es_cif, et_tin, eu_oss_vat, eu_vat, fo_vat, gb_vat, ge_vat, gi_tin, gn_nif, hk_br, hr_oib, hu_tin, ic_nif, id_npwp, il_vat, in_gst, is_vat, it_cf, jp_cn, jp_rn, jp_trn, ke_pin, kg_tin, kh_tin, kr_brn, kz_bin, la_tin, li_uid, li_vat, lk_vat, ma_vat, md_vat, me_pib, mk_vat, mr_nif, mx_rfc, my_frp, my_itn, my_sst, ng_tin, no_vat, no_voec, np_pan, nz_gst, om_vat, pe_ruc, ph_tin, pl_nip, py_ruc, ro_tin, rs_pib, ru_inn, ru_kpp, sa_vat, sg_gst, sg_uen, si_tin, sn_ninea, sr_fin, sv_nit, th_vat, tj_tin, tr_tin, tw_vat, tz_vat, ua_vat, ug_tin, us_ein, uy_ruc, uz_tin, uz_vat, ve_rif, vn_tin, za_vat, zm_tin, zw_tin
Maximum length: 5000
valuestringRequired within parent

Create a customer — response body

FieldTypePresenceDescription and constraints
$objectRootThis object represents a customer of your business. Use it to [create recurring charges](https://docs.stripe.com/invoicing/customer), [save payment](https://docs.stripe.com/payments/save-during-payment) and contact information,
and track payments that belong to the same customer.
addressJSONOptional
address (anyOf 1)JSONAlternativeThe customer's billing address.
address (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a Location — response body — address
address (anyOf 2)nullAlternative
balanceJSONOptional
balance (anyOf 1)integerAlternativeThe current balance, if any, that's stored on the customer in their default currency. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that's added to their next invoice. The balance only considers amounts that Stripe hasn't successfully applied to any invoice. It doesn't reflect unpaid invoices. This balance is only taken into account after invoices finalize. For multi-currency balances, see [invoice_credit_balance](https://docs.stripe.com/api/customers/object#customer_object-invoice_credit_balance).
balance (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
business_namestringOptionalThe customer's business name.
Maximum length: 150
cash_balanceJSONOptional
cash_balance (anyOf 1)JSONAlternativeThe current funds being held by Stripe on behalf of the customer. You can apply these funds towards payment intents when the source is "cash_balance". The `settings[reconciliation_mode]` field describes if these funds apply to these payment intents manually or automatically.
cash_balance (anyOf 1) (anyOf 1)ModelAlternativeExpand Retrieve a cash balance — response body
cash_balance (anyOf 2)nullAlternative
createdJSONRequired within parent
created (anyOf 1)integerAlternativeTime at which the object was created. Measured in seconds since the Unix epoch.
Format: unix-time
created (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
currencyJSONOptional
currency (anyOf 1)stringAlternativeThree-letter [ISO code for the currency](https://stripe.com/docs/currencies) the customer can be charged in for recurring billing purposes.
Maximum length: 5000
currency (anyOf 2)nullAlternative
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of an Account representing a customer. You can use this ID with any v1 API that accepts a customer_account parameter.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
default_sourceJSONOptional
default_source (anyOf 1)JSONAlternativeID of the default payment source for the customer.

If you use payment methods created through the PaymentMethods API, see the [invoice_settings.default_payment_method](https://docs.stripe.com/api/customers/object#customer_object-invoice_settings-default_payment_method) field instead.
default_source (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
default_source (anyOf 1) (anyOf 2)ModelAlternativeExpand Retrieve a bank account — response body
default_source (anyOf 1) (anyOf 3)ModelAlternativeExpand Retrieve a card — customers get Customers Customer Cards Id — response body
default_source (anyOf 1) (anyOf 4)ModelAlternativeExpand Create a source — response body
default_source (anyOf 2)nullAlternative
delinquentJSONOptional
delinquent (anyOf 1)booleanAlternativeTracks the most recent state change on any invoice belonging to the customer. Paying an invoice or marking it uncollectible via the API will set this field to false. An automatic payment failure or passing the `invoice.due_date` will set this field to `true`.

If an invoice becomes uncollectible by [dunning](https://docs.stripe.com/billing/automatic-collection), `delinquent` doesn't reset to `false`.

If you care whether the customer has paid their most recent subscription invoice, use `subscription.status` instead. Paying or marking uncollectible any customer invoice regardless of whether it is the latest invoice for a subscription will always set this field to `false`.
delinquent (anyOf 2)nullAlternative
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
description (anyOf 2)nullAlternative
discountJSONOptional
discount (anyOf 1)JSONAlternativeDescribes the current discount active on the customer, if there is one.
discount (anyOf 1) (anyOf 1)ModelAlternativeExpand Get Customers Customer Discount — response body
discount (anyOf 2)nullAlternative
emailJSONOptional
email (anyOf 1)stringAlternativeThe customer's email address.
Maximum length: 5000
email (anyOf 2)nullAlternative
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
individual_namestringOptionalThe customer's individual name.
Maximum length: 150
invoice_credit_balanceobjectOptionalThe current multi-currency balances, if any, that's stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that's added to their next invoice denominated in that currency. These balances don't apply to unpaid invoices. They solely track amounts that Stripe hasn't successfully applied to any invoice. Stripe only applies a balance in a specific currency to an invoice after that invoice (which is in the same currency) finalizes.
Additional keys: see wildcard field
invoice_credit_balance.*JSONAdditional keys
invoice_credit_balance.* (anyOf 1)integerAlternative
invoice_credit_balance.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
invoice_prefixJSONOptional
invoice_prefix (anyOf 1)stringAlternativeThe prefix for the customer used to generate unique invoice numbers.
Maximum length: 5000
invoice_prefix (anyOf 2)nullAlternative
invoice_settingsModelOptionalExpand Create a customer — response body — invoice settings
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
metadataobjectOptionalSet 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.
Additional keys: see wildcard field
metadata.*stringAdditional keysMaximum length: 500
nameJSONOptional
name (anyOf 1)stringAlternativeThe customer's full name or business name.
Maximum length: 5000
name (anyOf 2)nullAlternative
next_invoice_sequenceJSONOptional
next_invoice_sequence (anyOf 1)integerAlternativeThe suffix of the customer's next invoice number (for example, 0001). When the account uses account level sequencing, this parameter is ignored in API requests and the field omitted in API responses.
next_invoice_sequence (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: customer
phoneJSONOptional
phone (anyOf 1)stringAlternativeThe customer's phone number.
Maximum length: 5000
phone (anyOf 2)nullAlternative
preferred_localesJSONOptional
preferred_locales (anyOf 1)arrayAlternativeThe customer's preferred locales (languages), ordered by preference.
preferred_locales (anyOf 1)[]stringEach itemMaximum length: 5000
preferred_locales (anyOf 2)nullAlternative
shippingJSONOptional
shipping (anyOf 1)JSONAlternativeMailing and shipping address for the customer. Appears on invoices emailed to this customer.
shipping (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a source — response body — source order shipping
shipping (anyOf 2)nullAlternative
sourcesobjectOptionalThe customer's payment sources, if any.
sources.dataarrayRequired within parentDetails about each object.
sources.data[]JSONEach item
sources.data[] (anyOf 1)ModelAlternativeExpand Retrieve a bank account — response body
sources.data[] (anyOf 2)ModelAlternativeExpand Retrieve a card — customers get Customers Customer Cards Id — response body
sources.data[] (anyOf 3)ModelAlternativeExpand Create a source — response body
sources.has_morebooleanRequired within parentTrue if this list has another page of items after this one that can be fetched.
sources.objectstringRequired within parentString representing the object's type. Objects of the same type share the same value. Always has the value `list`.
Known values: list
sources.urlstringRequired within parentThe URL where this list can be accessed.
Maximum length: 5000
subscriptionsobjectOptionalThe customer's current subscriptions, if any.
subscriptions.dataarrayRequired within parentDetails about each object.
subscriptions.data[]ModelEach itemExpand Pause a subscription — response body
subscriptions.has_morebooleanRequired within parentTrue if this list has another page of items after this one that can be fetched.
subscriptions.objectstringRequired within parentString representing the object's type. Objects of the same type share the same value. Always has the value `list`.
Known values: list
subscriptions.urlstringRequired within parentThe URL where this list can be accessed.
Maximum length: 5000
taxModelOptionalExpand Create a customer — response body — tax
tax_exemptJSONOptional
tax_exempt (anyOf 1)stringAlternativeDescribes the customer's tax exemption status, which is `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the following text: **"Reverse charge"**.
Known values: exempt, none, reverse
tax_exempt (anyOf 2)nullAlternative
tax_idsobjectOptionalThe customer's tax IDs.
tax_ids.dataarrayRequired within parentDetails about each object.
tax_ids.data[]ModelEach itemExpand Create a tax ID — response body
tax_ids.has_morebooleanRequired within parentTrue if this list has another page of items after this one that can be fetched.
tax_ids.objectstringRequired within parentString representing the object's type. Objects of the same type share the same value. Always has the value `list`.
Known values: list
tax_ids.urlstringRequired within parentThe URL where this list can be accessed.
Maximum length: 5000
test_clockJSONOptional
test_clock (anyOf 1)JSONAlternativeID of the test clock that this customer belongs to.
test_clock (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
test_clock (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a test clock — response body
test_clock (anyOf 2)nullAlternative

Referenced models: Create a Location — response body — address, Retrieve a bank account — response body, Retrieve a card — customers get Customers Customer Cards Id — response body, Retrieve a cash balance — response body, Create a customer — response body — tax, Get Customers Customer Discount — response body, Create a customer — response body — invoice settings, Create a source — response body — source order shipping, Create a source — response body, Pause a subscription — response body, Create a tax ID — response body, Create a test clock — response body

Create a customer — response body — invoice settings

FieldTypePresenceDescription and constraints
$objectRoot
custom_fieldsJSONOptional
custom_fields (anyOf 1)arrayAlternativeDefault custom fields to be displayed on invoices for this customer.
custom_fields (anyOf 1)[]ModelEach itemExpand Pay an invoice — response body — custom fields Custom fields displayed on the invoice item
custom_fields (anyOf 2)nullAlternative
default_payment_methodJSONOptional
default_payment_method (anyOf 1)JSONAlternativeID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices.
default_payment_method (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
default_payment_method (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a Payment Method — response body
default_payment_method (anyOf 2)nullAlternative
footerJSONOptional
footer (anyOf 1)stringAlternativeDefault footer to be displayed on invoices for this customer.
Maximum length: 5000
footer (anyOf 2)nullAlternative
rendering_optionsJSONOptional
rendering_options (anyOf 1)JSONAlternativeDefault options for invoice PDF rendering for this customer.
rendering_options (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a customer — response body — invoice settings rendering options value amount tax display, template
rendering_options (anyOf 2)nullAlternative

Referenced models: Pay an invoice — response body — custom fields Custom fields displayed on the invoice item, Create a customer — response body — invoice settings rendering options value amount tax display, template, Create a Payment Method — response body

Create a customer — response body — invoice settings rendering options value amount tax display, template

FieldTypePresenceDescription and constraints
$objectRoot
amount_tax_displayJSONOptional
amount_tax_display (anyOf 1)stringAlternativeHow line-item prices and amounts will be displayed with respect to tax on invoice PDFs.
Maximum length: 5000
amount_tax_display (anyOf 2)nullAlternative
templateJSONOptional
template (anyOf 1)stringAlternativeID of the invoice rendering template to be used for this customer's invoices. If set, the template will be used on all invoices for this customer unless a template is set directly on the invoice.
Maximum length: 5000
template (anyOf 2)nullAlternative

Create a customer — response body — tax

FieldTypePresenceDescription and constraints
$objectRoot
automatic_taxstringRequired within parentSurfaces if automatic tax computation is possible given the current customer location information.
Known values: failed, not_collecting, supported, unrecognized_location
ip_addressJSONOptional
ip_address (anyOf 1)stringAlternativeA recent IP address of the customer used for tax reporting and tax location inference.
Maximum length: 5000
ip_address (anyOf 2)nullAlternative
locationJSONOptional
location (anyOf 1)JSONAlternativeThe identified tax location of the customer.
location (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a customer — response body — tax / location / The identified tax location of the customer / source: billing address, ip address, payment method, shipping destination
location (anyOf 2)nullAlternative
providerstringRequired within parentThe tax calculation provider used for location resolution. Defaults to `stripe` when not using a [third-party provider](/tax/third-party-apps).
Known values: anrok, avalara, sphere, stripe

Referenced models: Create a customer — response body — tax / location / The identified tax location of the customer / source: billing address, ip address, payment method, shipping destination

Create a customer — response body — tax / location / The identified tax location of the customer / source: billing address, ip address, payment method, shipping destination

FieldTypePresenceDescription and constraints
$objectRoot
countrystringRequired within parentThe identified tax country of the customer.
Maximum length: 5000
sourcestringRequired within parentThe data source used to infer the customer's location.
Known values: billing_address, ip_address, payment_method, shipping_destination
stateJSONOptional
state (anyOf 1)stringAlternativeThe identified tax state, county, province, or region of the customer.
Maximum length: 5000
state (anyOf 2)nullAlternative

Create or retrieve funding instructions for a customer cash balance — response body

FieldTypePresenceDescription and constraints
$objectRootEach customer has a [`balance`](https://docs.stripe.com/api/customers/object#customer_object-balance) that is
automatically applied to future invoices and payments using the `customer_balance` payment method.
Customers can fund this balance by initiating a bank transfer to any account in the
`financial_addresses` field.
Related guide: [Customer balance funding instructions](https://docs.stripe.com/payments/customer-balance/funding-instructions)
bank_transferModelRequired within parentExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer
currencystringRequired within parentThree-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
Maximum length: 5000
funding_typestringRequired within parentThe `funding_type` of the returned instructions
Known values: bank_transfer
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: funding_instructions

Referenced models: Create or retrieve funding instructions for a customer cash balance — response body — bank transfer

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer

FieldTypePresenceDescription and constraints
$objectRoot
countrystringRequired within parentThe country of the bank account to fund
Maximum length: 5000
financial_addressesarrayRequired within parentA list of financial addresses that can be used to fund a particular balance
financial_addresses[]ModelEach itemExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item
typestringRequired within parentThe bank_transfer type
Known values: eu_bank_transfer, jp_bank_transfer

Referenced models: Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item

FieldTypePresenceDescription and constraints
$objectRootFinancialAddresses contain identifying information that resolves to a FinancialAccount.
abaModelOptionalExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item aba
ibanModelOptionalExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item iban
sort_codeModelOptionalExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item sort code
speiModelOptionalExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item spei
supported_networksarrayOptionalThe payment networks supported by this FinancialAddress
supported_networks[]stringEach itemKnown values: ach, bacs, chaps, domestic_wire_us, fps, sepa, spei, swift, zengin
swiftModelOptionalExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item swift
typestringRequired within parentThe type of financial address
Known values: aba, iban, sort_code, spei, swift, zengin
zenginModelOptionalExpand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item zengin

Referenced models: Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item aba, Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item iban, Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item sort code, Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item spei, Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item swift, Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item zengin

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item aba

FieldTypePresenceDescription and constraints
$objectRootABA Records contain U.S. bank account details per the ABA format.
account_holder_addressModelRequired within parentExpand Create a Location — response body — address
account_holder_namestringRequired within parentThe account holder name
Maximum length: 5000
account_numberstringRequired within parentThe ABA account number
Maximum length: 5000
account_typestringRequired within parentThe account type
Maximum length: 5000
bank_addressModelRequired within parentExpand Create a Location — response body — address
bank_namestringRequired within parentThe bank name
Maximum length: 5000
routing_numberstringRequired within parentThe ABA routing number
Maximum length: 5000

Referenced models: Create a Location — response body — address

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item iban

FieldTypePresenceDescription and constraints
$objectRootIban Records contain E.U. bank account details per the SEPA format.
account_holder_addressModelRequired within parentExpand Create a Location — response body — address
account_holder_namestringRequired within parentThe name of the person or business that owns the bank account
Maximum length: 5000
bank_addressModelRequired within parentExpand Create a Location — response body — address
bicstringRequired within parentThe BIC/SWIFT code of the account.
Maximum length: 5000
countrystringRequired within parentTwo-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
Maximum length: 5000
ibanstringRequired within parentThe IBAN of the account.
Maximum length: 5000

Referenced models: Create a Location — response body — address

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item sort code

FieldTypePresenceDescription and constraints
$objectRootSort Code Records contain U.K. bank account details per the sort code format.
account_holder_addressModelRequired within parentExpand Create a Location — response body — address
account_holder_namestringRequired within parentThe name of the person or business that owns the bank account
Maximum length: 5000
account_numberstringRequired within parentThe account number
Maximum length: 5000
bank_addressModelRequired within parentExpand Create a Location — response body — address
sort_codestringRequired within parentThe six-digit sort code
Maximum length: 5000

Referenced models: Create a Location — response body — address

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item spei

FieldTypePresenceDescription and constraints
$objectRootSPEI Records contain Mexico bank account details per the SPEI format.
account_holder_addressModelRequired within parentExpand Create a Location — response body — address
account_holder_namestringRequired within parentThe account holder name
Maximum length: 5000
bank_addressModelRequired within parentExpand Create a Location — response body — address
bank_codestringRequired within parentThe three-digit bank code
Maximum length: 5000
bank_namestringRequired within parentThe short banking institution name
Maximum length: 5000
clabestringRequired within parentThe CLABE number
Maximum length: 5000

Referenced models: Create a Location — response body — address

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item swift

FieldTypePresenceDescription and constraints
$objectRootSWIFT Records contain U.S. bank account details per the SWIFT format.
account_holder_addressModelRequired within parentExpand Create a Location — response body — address
account_holder_namestringRequired within parentThe account holder name
Maximum length: 5000
account_numberstringRequired within parentThe account number
Maximum length: 5000
account_typestringRequired within parentThe account type
Maximum length: 5000
bank_addressModelRequired within parentExpand Create a Location — response body — address
bank_namestringRequired within parentThe bank name
Maximum length: 5000
swift_codestringRequired within parentThe SWIFT code
Maximum length: 5000

Referenced models: Create a Location — response body — address

Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item zengin

FieldTypePresenceDescription and constraints
$objectRootZengin Records contain Japan bank account details per the Zengin format.
account_holder_addressModelRequired within parentExpand Create a Location — response body — address
account_holder_nameJSONOptional
account_holder_name (anyOf 1)stringAlternativeThe account holder name
Maximum length: 5000
account_holder_name (anyOf 2)nullAlternative
account_numberJSONOptional
account_number (anyOf 1)stringAlternativeThe account number
Maximum length: 5000
account_number (anyOf 2)nullAlternative
account_typeJSONOptional
account_type (anyOf 1)stringAlternativeThe bank account type. In Japan, this can only be `futsu` or `toza`.
Maximum length: 5000
account_type (anyOf 2)nullAlternative
bank_addressModelRequired within parentExpand Create a Location — response body — address
bank_codeJSONOptional
bank_code (anyOf 1)stringAlternativeThe bank code of the account
Maximum length: 5000
bank_code (anyOf 2)nullAlternative
bank_nameJSONOptional
bank_name (anyOf 1)stringAlternativeThe bank name of the account
Maximum length: 5000
bank_name (anyOf 2)nullAlternative
branch_codeJSONOptional
branch_code (anyOf 1)stringAlternativeThe branch code of the account
Maximum length: 5000
branch_code (anyOf 2)nullAlternative
branch_nameJSONOptional
branch_name (anyOf 1)stringAlternativeThe branch name of the account
Maximum length: 5000
branch_name (anyOf 2)nullAlternative

Referenced models: Create a Location — response body — address

Delete a customer — response body

FieldTypePresenceDescription and constraints
$objectRoot
deletedbooleanRequired within parentAlways true for a deleted object
Known values: True
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: customer

Get Customers Customer Discount — response body

FieldTypePresenceDescription and constraints
$objectRootA discount represents the actual application of a [coupon](https://docs.stripe.com/api#coupons) or [promotion code](https://docs.stripe.com/api#promotion_codes).
It contains information about when the discount began, when it will end, and what it is applied to.

Related guide: [Applying discounts to subscriptions](https://docs.stripe.com/billing/subscriptions/discounts)
checkout_sessionJSONOptional
checkout_session (anyOf 1)stringAlternativeThe Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Not present for subscription mode.
Maximum length: 5000
checkout_session (anyOf 2)nullAlternative
customerJSONOptional
customer (anyOf 1)JSONAlternativeThe ID of the customer associated with this discount.
customer (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
customer (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a customer — response body
customer (anyOf 1) (anyOf 3)ModelAlternativeExpand Delete a customer — response body
customer (anyOf 2)nullAlternative
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of the account representing the customer associated with this discount.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
endJSONOptional
end (anyOf 1)JSONAlternative
end (anyOf 1) (anyOf 1)integerAlternativeIf the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null.
Format: unix-time
end (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
end (anyOf 2)nullAlternative
idstringRequired within parentThe ID of the discount object. Discounts can't be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array.
Maximum length: 5000
invoiceJSONOptional
invoice (anyOf 1)stringAlternativeThe invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.
Maximum length: 5000
invoice (anyOf 2)nullAlternative
invoice_itemJSONOptional
invoice_item (anyOf 1)stringAlternativeThe invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
Maximum length: 5000
invoice_item (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: discount
promotion_codeJSONOptional
promotion_code (anyOf 1)JSONAlternativeThe promotion code applied to create this discount.
promotion_code (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
promotion_code (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a promotion code — response body
promotion_code (anyOf 2)nullAlternative
sourceModelRequired within parentExpand Get Customers Customer Discount — response body — source
startJSONRequired within parent
start (anyOf 1)integerAlternativeDate that the coupon was applied.
Format: unix-time
start (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
subscriptionJSONOptional
subscription (anyOf 1)stringAlternativeThe subscription that this coupon is applied to, if it is applied to a particular subscription.
Maximum length: 5000
subscription (anyOf 2)nullAlternative
subscription_itemJSONOptional
subscription_item (anyOf 1)stringAlternativeThe subscription item that this coupon is applied to, if it is applied to a particular subscription item.
Maximum length: 5000
subscription_item (anyOf 2)nullAlternative

Referenced models: Create a customer — response body, Delete a customer — response body, Get Customers Customer Discount — response body — source, Create a promotion code — response body

Get Customers Customer Discount — response body — source

FieldTypePresenceDescription and constraints
$objectRoot
couponJSONOptional
coupon (anyOf 1)JSONAlternativeThe coupon that was redeemed to create this discount.
coupon (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
coupon (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a coupon — response body
coupon (anyOf 2)nullAlternative
typestringRequired within parentThe source type of the discount.
Known values: coupon

Referenced models: Create a coupon — response body

Get Customers Customer Sources Id — response body

FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)ModelAlternativeExpand Create an account — response body
$ (anyOf 2)ModelAlternativeExpand Retrieve a bank account — response body
$ (anyOf 3)ModelAlternativeExpand Retrieve a card — customers get Customers Customer Cards Id — response body
$ (anyOf 4)ModelAlternativeExpand Create a source — response body

Referenced models: Create an account — response body, Retrieve a bank account — response body, Retrieve a card — customers get Customers Customer Cards Id — response body, Create a source — response body

Retrieve a bank account — response body

FieldTypePresenceDescription and constraints
$objectRootThese bank accounts are payment methods on `Customer` objects.

On the other hand [External Accounts](/api#external_accounts) are transfer
destinations on `Account` objects for connected accounts.
They can be bank accounts or debit cards as well, and are documented in the links above.

Related guide: [Bank debits and transfers](/payments/bank-debits-transfers)
accountJSONOptional
account (anyOf 1)JSONAlternativeThe account this bank account belongs to. Only applicable on Accounts (not customers or recipients) This property is only available when returned as an [External Account](/api/external_account_bank_accounts/object) where [controller.is_controller](/api/accounts/object#account_object-controller-is_controller) is `true`.
account (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
account (anyOf 1) (anyOf 2)ModelAlternativeExpand Create an account — response body
account (anyOf 2)nullAlternative
account_holder_nameJSONOptional
account_holder_name (anyOf 1)stringAlternativeThe name of the person or business that owns the bank account.
Maximum length: 5000
account_holder_name (anyOf 2)nullAlternative
account_holder_typeJSONOptional
account_holder_type (anyOf 1)stringAlternativeThe type of entity that holds the account. This can be either `individual` or `company`.
Maximum length: 5000
account_holder_type (anyOf 2)nullAlternative
account_typeJSONOptional
account_type (anyOf 1)stringAlternativeThe bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.
Maximum length: 5000
account_type (anyOf 2)nullAlternative
available_payout_methodsJSONOptional
available_payout_methods (anyOf 1)arrayAlternativeA set of available payout methods for this bank account. Only values from this set should be passed as the `method` when creating a payout.
available_payout_methods (anyOf 1)[]stringEach itemKnown values: instant, standard
available_payout_methods (anyOf 2)nullAlternative
bank_nameJSONOptional
bank_name (anyOf 1)stringAlternativeName of the bank associated with the routing number (e.g., `WELLS FARGO`).
Maximum length: 5000
bank_name (anyOf 2)nullAlternative
countrystringRequired within parentTwo-letter ISO code representing the country the bank account is located in.
Maximum length: 5000
currencystringRequired within parentThree-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.
Format: currency
customerJSONOptional
customer (anyOf 1)JSONAlternativeThe ID of the customer that the bank account is associated with.
customer (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
customer (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a customer — response body
customer (anyOf 1) (anyOf 3)ModelAlternativeExpand Delete a customer — response body
customer (anyOf 2)nullAlternative
default_for_currencyJSONOptional
default_for_currency (anyOf 1)booleanAlternativeWhether this bank account is the default external account for its currency.
default_for_currency (anyOf 2)nullAlternative
fingerprintJSONOptional
fingerprint (anyOf 1)stringAlternativeUniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
Maximum length: 5000
fingerprint (anyOf 2)nullAlternative
future_requirementsJSONOptional
future_requirements (anyOf 1)JSONAlternativeInformation about the [upcoming new requirements for the bank account](https://docs.stripe.com/connect/custom-accounts/future-requirements), including what information needs to be collected, and by when.
future_requirements (anyOf 1) (anyOf 1)ModelAlternativeExpand Retrieve a bank account — response body — requirements value currently due, errors, past due, pending verification
future_requirements (anyOf 2)nullAlternative
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
last4stringRequired within parentThe last four digits of the bank account number.
Maximum length: 5000
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet 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.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: bank_account
requirementsJSONOptional
requirements (anyOf 1)JSONAlternativeInformation about the requirements for the bank account, including what information needs to be collected.
requirements (anyOf 1) (anyOf 1)ModelAlternativeExpand Retrieve a bank account — response body — requirements value currently due, errors, past due, pending verification
requirements (anyOf 2)nullAlternative
routing_numberJSONOptional
routing_number (anyOf 1)stringAlternativeThe routing transit number for the bank account.
Maximum length: 5000
routing_number (anyOf 2)nullAlternative
statusstringRequired within parentFor bank accounts, possible values are `new`, `validated`, `verified`, `verification_failed`, `tokenized_account_number_deactivated` or `errored`. A bank account that hasn't had any activity or validation performed is `new`. If Stripe can determine that the bank account exists, its status will be `validated`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be `verified`. If the verification failed for any reason, such as microdeposit failure, the status will be `verification_failed`. If the status is `tokenized_account_number_deactivated`, the account utilizes a tokenized account number which has been deactivated due to expiration or revocation. This account will need to be reverified to continue using it for money movement. If a payout sent to this bank account fails, we'll set the status to `errored` and will not continue to send [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) until the bank details are updated.

For external accounts, possible values are `new`, `errored`, `verification_failed`, and `tokenized_account_number_deactivated`. If a payout fails, the status is set to `errored` and scheduled payouts are stopped until account details are updated. In the US and India, if we can't [verify the owner of the bank account](https://support.stripe.com/questions/bank-account-ownership-verification), we'll set the status to `verification_failed`. Other validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply.
Maximum length: 5000

Referenced models: Create an account — response body, Create a customer — response body, Delete a customer — response body, Retrieve a bank account — response body — requirements value currently due, errors, past due, pending verification

Retrieve a bank account — response body — requirements value currently due, errors, past due, pending verification

FieldTypePresenceDescription and constraints
$objectRoot
currently_dueJSONOptional
currently_due (anyOf 1)arrayAlternativeFields that need to be resolved to keep the external account enabled. If not resolved by `current_deadline`, these fields will appear in `past_due` as well, and the account is disabled.
currently_due (anyOf 1)[]stringEach itemMaximum length: 5000
currently_due (anyOf 2)nullAlternative
errorsJSONOptional
errors (anyOf 1)arrayAlternativeFields that are `currently_due` and need to be collected again because validation or verification failed.
errors (anyOf 1)[]ModelEach itemExpand Update an Account Capability — response body — requirements errors item
errors (anyOf 2)nullAlternative
past_dueJSONOptional
past_due (anyOf 1)arrayAlternativeFields that haven't been resolved by `current_deadline`. These fields need to be resolved to enable the external account.
past_due (anyOf 1)[]stringEach itemMaximum length: 5000
past_due (anyOf 2)nullAlternative
pending_verificationJSONOptional
pending_verification (anyOf 1)arrayAlternativeFields that are being reviewed, or might become required depending on the results of a review. If the review fails, these fields can move to `eventually_due`, `currently_due`, `past_due` or `alternatives`. Fields might appear in `eventually_due`, `currently_due`, `past_due` or `alternatives` and in `pending_verification` if one verification fails but another is still pending.
pending_verification (anyOf 1)[]stringEach itemMaximum length: 5000
pending_verification (anyOf 2)nullAlternative

Referenced models: Update an Account Capability — response body — requirements errors item

Retrieve a card — customers get Customers Customer Cards Id — response body

FieldTypePresenceDescription and constraints
$objectRootYou can store multiple cards on a customer in order to charge the customer
later. You can also store multiple debit cards on a recipient in order to
transfer to those cards later.

Related guide: [Card payments with Sources](https://docs.stripe.com/sources/cards)
accountJSONOptional
account (anyOf 1)JSONAlternative
account (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
account (anyOf 1) (anyOf 2)ModelAlternativeExpand Create an account — response body
account (anyOf 2)nullAlternative
address_cityJSONOptional
address_city (anyOf 1)stringAlternativeCity/District/Suburb/Town/Village.
Maximum length: 5000
address_city (anyOf 2)nullAlternative
address_countryJSONOptional
address_country (anyOf 1)stringAlternativeBilling address country, if provided when creating card.
Maximum length: 5000
address_country (anyOf 2)nullAlternative
address_line1JSONOptional
address_line1 (anyOf 1)stringAlternativeAddress line 1 (Street address/PO Box/Company name).
Maximum length: 5000
address_line1 (anyOf 2)nullAlternative
address_line1_checkJSONOptional
address_line1_check (anyOf 1)stringAlternativeIf `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.
Maximum length: 5000
address_line1_check (anyOf 2)nullAlternative
address_line2JSONOptional
address_line2 (anyOf 1)stringAlternativeAddress line 2 (Apartment/Suite/Unit/Building).
Maximum length: 5000
address_line2 (anyOf 2)nullAlternative
address_stateJSONOptional
address_state (anyOf 1)stringAlternativeState/County/Province/Region.
Maximum length: 5000
address_state (anyOf 2)nullAlternative
address_zipJSONOptional
address_zip (anyOf 1)stringAlternativeZIP or postal code.
Maximum length: 5000
address_zip (anyOf 2)nullAlternative
address_zip_checkJSONOptional
address_zip_check (anyOf 1)stringAlternativeIf `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.
Maximum length: 5000
address_zip_check (anyOf 2)nullAlternative
allow_redisplayJSONOptional
allow_redisplay (anyOf 1)stringAlternativeThis field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”.
Known values: always, limited, unspecified
allow_redisplay (anyOf 2)nullAlternative
available_payout_methodsJSONOptional
available_payout_methods (anyOf 1)arrayAlternativeA set of available payout methods for this card. Only values from this set should be passed as the `method` when creating a payout.
available_payout_methods (anyOf 1)[]stringEach itemKnown values: instant, standard
available_payout_methods (anyOf 2)nullAlternative
brandstringRequired within parentCard brand. Can be `American Express`, `Cartes Bancaires`, `Diners Club`, `Discover`, `Eftpos Australia`, `Girocard`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`.
Maximum length: 5000
countryJSONOptional
country (anyOf 1)stringAlternativeTwo-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.
Maximum length: 5000
country (anyOf 2)nullAlternative
currencyJSONOptional
currency (anyOf 1)stringAlternativeThree-letter [ISO code for currency](https://www.iso.org/iso-4217-currency-codes.html) in lowercase. Must be a [supported currency](https://docs.stripe.com/currencies). Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. This property is only available when returned as an [External Account](/api/external_account_cards/object) where [controller.is_controller](/api/accounts/object#account_object-controller-is_controller) is `true`.
Format: currency
currency (anyOf 2)nullAlternative
customerJSONOptional
customer (anyOf 1)JSONAlternativeThe customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
customer (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
customer (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a customer — response body
customer (anyOf 1) (anyOf 3)ModelAlternativeExpand Delete a customer — response body
customer (anyOf 2)nullAlternative
cvc_checkJSONOptional
cvc_check (anyOf 1)stringAlternativeIf a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https://support.stripe.com/questions/check-if-a-card-is-valid-without-a-charge).
Maximum length: 5000
cvc_check (anyOf 2)nullAlternative
default_for_currencyJSONOptional
default_for_currency (anyOf 1)booleanAlternativeWhether this card is the default external account for its currency. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.
default_for_currency (anyOf 2)nullAlternative
dynamic_last4JSONOptional
dynamic_last4 (anyOf 1)stringAlternative(For tokenized numbers only.) The last four digits of the device account number.
Maximum length: 5000
dynamic_last4 (anyOf 2)nullAlternative
exp_monthJSONRequired within parent
exp_month (anyOf 1)integerAlternativeTwo-digit number representing the card's expiration month.
exp_month (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
exp_yearJSONRequired within parent
exp_year (anyOf 1)integerAlternativeFour-digit number representing the card's expiration year.
exp_year (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
fingerprintJSONOptional
fingerprint (anyOf 1)stringAlternativeUniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.

*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*
Maximum length: 5000
fingerprint (anyOf 2)nullAlternative
fundingstringRequired within parentCard funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
Maximum length: 5000
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
last4stringRequired within parentThe last four digits of the card.
Maximum length: 5000
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet 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.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
nameJSONOptional
name (anyOf 1)stringAlternativeCardholder name.
Maximum length: 5000
name (anyOf 2)nullAlternative
networksModelOptionalExpand Retrieve a card — customers get Customers Customer Cards Id — response body — networks
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: card
regulated_statusJSONOptional
regulated_status (anyOf 1)stringAlternativeStatus of a card based on the card issuer.
Known values: regulated, unregulated
regulated_status (anyOf 2)nullAlternative
statusJSONOptional
status (anyOf 1)stringAlternativeFor external accounts that are cards, possible values are `new` and `errored`. If a payout fails, the status is set to `errored` and [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) are stopped until account details are updated.
Maximum length: 5000
status (anyOf 2)nullAlternative
tokenization_methodJSONOptional
tokenization_method (anyOf 1)stringAlternativeIf the card number is tokenized, this is the method that was used. Can be `android_pay` (includes Google Pay), `apple_pay`, `masterpass`, `visa_checkout`, or null.
Maximum length: 5000
tokenization_method (anyOf 2)nullAlternative

Referenced models: Create an account — response body, Create a customer — response body, Delete a customer — response body, Retrieve a card — customers get Customers Customer Cards Id — response body — networks

Retrieve a card — customers get Customers Customer Cards Id — response body — networks

FieldTypePresenceDescription and constraints
$objectRoot
preferredJSONOptional
preferred (anyOf 1)stringAlternativeThe preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card.
Maximum length: 5000
preferred (anyOf 2)nullAlternative

Retrieve a cash balance — response body

FieldTypePresenceDescription and constraints
$objectRootA customer's `Cash balance` represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account.
availableJSONOptional
available (anyOf 1)objectAlternativeA hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal).
Additional keys: see wildcard field
available (anyOf 1).*JSONAdditional keys
available (anyOf 1).* (anyOf 1)integerAlternative
available (anyOf 1).* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
available (anyOf 2)nullAlternative
customerstringRequired within parentThe ID of the customer whose cash balance this object represents.
Maximum length: 5000
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of an Account representing a customer whose cash balance this object represents.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: cash_balance
settingsModelRequired within parentExpand Retrieve a cash balance — response body — settings

Referenced models: Retrieve a cash balance — response body — settings

Retrieve a cash balance — response body — settings

FieldTypePresenceDescription and constraints
$objectRoot
reconciliation_modestringRequired within parentThe configuration for how funds that land in the customer cash balance are reconciled.
Known values: automatic, manual
using_merchant_defaultbooleanRequired within parentA flag to indicate if reconciliation mode returned is the user's default or is specific to this customer cash balance

Update a card — customers post Customers Customer Cards Id — request body — body

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
account_holder_namestringOptionalThe name of the person or business that owns the bank account.
Maximum length: 5000
account_holder_typestringOptionalThe type of entity that holds the account. This can be either `individual` or `company`.
One of: company, individual
Maximum length: 5000
address_citystringOptionalCity/District/Suburb/Town/Village.
Maximum length: 5000
address_countrystringOptionalBilling address country, if provided when creating card.
Maximum length: 5000
address_line1stringOptionalAddress line 1 (Street address/PO Box/Company name).
Maximum length: 5000
address_line2stringOptionalAddress line 2 (Apartment/Suite/Unit/Building).
Maximum length: 5000
address_statestringOptionalState/County/Province/Region.
Maximum length: 5000
address_zipstringOptionalZIP or postal code.
Maximum length: 5000
exp_monthstringOptionalTwo digit number representing the card’s expiration month.
Maximum length: 5000
exp_yearstringOptionalFour digit number representing the card’s expiration year.
Maximum length: 5000
expandarrayOptionalSpecifies which fields in the response should be expanded.
expand[]stringEach itemMaximum length: 5000
metadataJSONOptionalSet 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`.
metadata (anyOf 1)objectAlternativeAdditional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keys
metadata (anyOf 2)stringAlternativeOne of:
namestringOptionalCardholder name.
Maximum length: 5000
ownerobjectOptional
owner.addressobjectOptional
owner.address.citystringOptionalMaximum length: 5000
owner.address.countrystringOptionalMaximum length: 5000
owner.address.line1stringOptionalMaximum length: 5000
owner.address.line2stringOptionalMaximum length: 5000
owner.address.postal_codestringOptionalMaximum length: 5000
owner.address.statestringOptionalMaximum length: 5000
owner.emailstringOptional
owner.namestringOptionalMaximum length: 5000
owner.phonestringOptionalMaximum length: 5000

Update a customer — request body — body / bank_account / account_holder_type: company, individual, object: bank account

FieldTypePresenceDescription and constraints
$objectRoot
account_holder_namestringOptionalMaximum length: 5000
account_holder_typestringOptionalOne of: company, individual
Maximum length: 5000
account_numberstringRequired within parentMaximum length: 5000
countrystringRequired within parentMaximum length: 5000
currencystringOptionalFormat: currency
objectstringOptionalOne of: bank_account
Maximum length: 5000
routing_numberstringOptionalMaximum length: 5000

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.