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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
alipay_account | string | Optional | A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details. Maximum length: 5000 |
bank_account | JSON | Optional | Either 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) | Model | Alternative | Expand Update a customer — request body — body / bank_account / account_holder_type: company, individual, object: bank account |
bank_account (anyOf 2) | string | Alternative | Maximum length: 5000 |
card | JSON | Optional | A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js). |
card (anyOf 1) | Model | Alternative | Expand Create a charge — request body — body / card / object: card |
card (anyOf 2) | string | Alternative | Maximum length: 5000 |
expand | array | Optional | Specifies which fields in the response should be expanded. |
expand[] | string | Each item | Maximum length: 5000 |
metadata | object | Optional | 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`. Additional keys: see wildcard field |
metadata.* | string | Additional keys | |
source | string | Optional | Please 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Each 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) |
amount | JSON | Required within parent | |
amount (anyOf 1) | integer | Alternative | The 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) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
checkout_session | JSON | Optional | |
checkout_session (anyOf 1) | JSON | Alternative | The ID of the checkout session (if any) that created the transaction. |
checkout_session (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
checkout_session (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a Checkout Session — response body |
checkout_session (anyOf 2) | null | Alternative | |
created | JSON | Required within parent | |
created (anyOf 1) | integer | Alternative | Time at which the object was created. Measured in seconds since the Unix epoch. Format: unix-time |
created (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
credit_note | JSON | Optional | |
credit_note (anyOf 1) | JSON | Alternative | The ID of the credit note (if any) related to the transaction. |
credit_note (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
credit_note (anyOf 1) (anyOf 2) | Model | Alternative | Expand Void a credit note — response body |
credit_note (anyOf 2) | null | Alternative | |
currency | string | Required within parent | Three-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 |
customer | JSON | Required within parent | The ID of the customer the transaction belongs to. |
customer (anyOf 1) | string | Alternative | Maximum length: 5000 |
customer (anyOf 2) | Model | Alternative | Expand Create a customer — response body |
customer_account | JSON | Optional | |
customer_account (anyOf 1) | string | Alternative | The ID of an Account representing a customer that the transaction belongs to. Maximum length: 5000 |
customer_account (anyOf 2) | null | Alternative | |
description | JSON | Optional | |
description (anyOf 1) | string | Alternative | An arbitrary string attached to the object. Often useful for displaying to users. Maximum length: 5000 |
description (anyOf 2) | null | Alternative | |
ending_balance | JSON | Required within parent | |
ending_balance (anyOf 1) | integer | Alternative | The 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) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
invoice | JSON | Optional | |
invoice (anyOf 1) | JSON | Alternative | The ID of the invoice (if any) related to the transaction. |
invoice (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
invoice (anyOf 1) (anyOf 2) | Model | Alternative | Expand Pay an invoice — response body |
invoice (anyOf 2) | null | Alternative | |
livemode | boolean | Required within parent | If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. |
metadata | JSON | Optional | |
metadata (anyOf 1) | object | Alternative | 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. Additional keys: see wildcard field |
metadata (anyOf 1).* | string | Additional keys | Maximum length: 500 |
metadata (anyOf 2) | null | Alternative | |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: customer_balance_transaction |
type | string | Required within parent | Transaction 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Default invoice settings for this customer. |
custom_fields | JSON | Optional | |
custom_fields (anyOf 1) | array | Alternative | |
custom_fields (anyOf 1)[] | object | Each item | |
custom_fields (anyOf 1)[].name | string | Required within parent | Maximum length: 40 |
custom_fields (anyOf 1)[].value | string | Required within parent | Maximum length: 140 |
custom_fields (anyOf 2) | string | Alternative | One of: |
default_payment_method | string | Optional | Maximum length: 5000 |
footer | string | Optional | Maximum length: 5000 |
rendering_options | JSON | Optional | |
rendering_options (anyOf 1) | object | Alternative | |
rendering_options (anyOf 1).amount_tax_display | string | Optional | One of: , exclude_tax, include_inclusive_tax |
rendering_options (anyOf 1).template | string | Optional | Maximum length: 5000 |
rendering_options (anyOf 2) | string | Alternative | One of: |
Create a customer — request body — body tax id data item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
type | string | Required within parent | One 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 |
value | string | Required within parent |
Create a customer — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | This 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. |
address | JSON | Optional | |
address (anyOf 1) | JSON | Alternative | The customer's billing address. |
address (anyOf 1) (anyOf 1) | Model | Alternative | Expand Create a Location — response body — address |
address (anyOf 2) | null | Alternative | |
balance | JSON | Optional | |
balance (anyOf 1) | integer | Alternative | The 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) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
business_name | string | Optional | The customer's business name. Maximum length: 150 |
cash_balance | JSON | Optional | |
cash_balance (anyOf 1) | JSON | Alternative | The 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) | Model | Alternative | Expand Retrieve a cash balance — response body |
cash_balance (anyOf 2) | null | Alternative | |
created | JSON | Required within parent | |
created (anyOf 1) | integer | Alternative | Time at which the object was created. Measured in seconds since the Unix epoch. Format: unix-time |
created (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
currency | JSON | Optional | |
currency (anyOf 1) | string | Alternative | Three-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) | null | Alternative | |
customer_account | JSON | Optional | |
customer_account (anyOf 1) | string | Alternative | The 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) | null | Alternative | |
default_source | JSON | Optional | |
default_source (anyOf 1) | JSON | Alternative | ID 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) | string | Alternative | Maximum length: 5000 |
default_source (anyOf 1) (anyOf 2) | Model | Alternative | Expand Retrieve a bank account — response body |
default_source (anyOf 1) (anyOf 3) | Model | Alternative | Expand Retrieve a card — customers get Customers Customer Cards Id — response body |
default_source (anyOf 1) (anyOf 4) | Model | Alternative | Expand Create a source — response body |
default_source (anyOf 2) | null | Alternative | |
delinquent | JSON | Optional | |
delinquent (anyOf 1) | boolean | Alternative | Tracks 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) | null | Alternative | |
description | JSON | Optional | |
description (anyOf 1) | string | Alternative | An arbitrary string attached to the object. Often useful for displaying to users. Maximum length: 5000 |
description (anyOf 2) | null | Alternative | |
discount | JSON | Optional | |
discount (anyOf 1) | JSON | Alternative | Describes the current discount active on the customer, if there is one. |
discount (anyOf 1) (anyOf 1) | Model | Alternative | Expand Get Customers Customer Discount — response body |
discount (anyOf 2) | null | Alternative | |
email | JSON | Optional | |
email (anyOf 1) | string | Alternative | The customer's email address. Maximum length: 5000 |
email (anyOf 2) | null | Alternative | |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
individual_name | string | Optional | The customer's individual name. Maximum length: 150 |
invoice_credit_balance | object | Optional | The 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.* | JSON | Additional keys | |
invoice_credit_balance.* (anyOf 1) | integer | Alternative | |
invoice_credit_balance.* (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
invoice_prefix | JSON | Optional | |
invoice_prefix (anyOf 1) | string | Alternative | The prefix for the customer used to generate unique invoice numbers. Maximum length: 5000 |
invoice_prefix (anyOf 2) | null | Alternative | |
invoice_settings | Model | Optional | Expand Create a customer — response body — invoice settings |
livemode | boolean | Required within parent | If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. |
metadata | object | Optional | 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. Additional keys: see wildcard field |
metadata.* | string | Additional keys | Maximum length: 500 |
name | JSON | Optional | |
name (anyOf 1) | string | Alternative | The customer's full name or business name. Maximum length: 5000 |
name (anyOf 2) | null | Alternative | |
next_invoice_sequence | JSON | Optional | |
next_invoice_sequence (anyOf 1) | integer | Alternative | The 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) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: customer |
phone | JSON | Optional | |
phone (anyOf 1) | string | Alternative | The customer's phone number. Maximum length: 5000 |
phone (anyOf 2) | null | Alternative | |
preferred_locales | JSON | Optional | |
preferred_locales (anyOf 1) | array | Alternative | The customer's preferred locales (languages), ordered by preference. |
preferred_locales (anyOf 1)[] | string | Each item | Maximum length: 5000 |
preferred_locales (anyOf 2) | null | Alternative | |
shipping | JSON | Optional | |
shipping (anyOf 1) | JSON | Alternative | Mailing and shipping address for the customer. Appears on invoices emailed to this customer. |
shipping (anyOf 1) (anyOf 1) | Model | Alternative | Expand Create a source — response body — source order shipping |
shipping (anyOf 2) | null | Alternative | |
sources | object | Optional | The customer's payment sources, if any. |
sources.data | array | Required within parent | Details about each object. |
sources.data[] | JSON | Each item | |
sources.data[] (anyOf 1) | Model | Alternative | Expand Retrieve a bank account — response body |
sources.data[] (anyOf 2) | Model | Alternative | Expand Retrieve a card — customers get Customers Customer Cards Id — response body |
sources.data[] (anyOf 3) | Model | Alternative | Expand Create a source — response body |
sources.has_more | boolean | Required within parent | True if this list has another page of items after this one that can be fetched. |
sources.object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Always has the value `list`. Known values: list |
sources.url | string | Required within parent | The URL where this list can be accessed. Maximum length: 5000 |
subscriptions | object | Optional | The customer's current subscriptions, if any. |
subscriptions.data | array | Required within parent | Details about each object. |
subscriptions.data[] | Model | Each item | Expand Pause a subscription — response body |
subscriptions.has_more | boolean | Required within parent | True if this list has another page of items after this one that can be fetched. |
subscriptions.object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Always has the value `list`. Known values: list |
subscriptions.url | string | Required within parent | The URL where this list can be accessed. Maximum length: 5000 |
tax | Model | Optional | Expand Create a customer — response body — tax |
tax_exempt | JSON | Optional | |
tax_exempt (anyOf 1) | string | Alternative | Describes 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) | null | Alternative | |
tax_ids | object | Optional | The customer's tax IDs. |
tax_ids.data | array | Required within parent | Details about each object. |
tax_ids.data[] | Model | Each item | Expand Create a tax ID — response body |
tax_ids.has_more | boolean | Required within parent | True if this list has another page of items after this one that can be fetched. |
tax_ids.object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Always has the value `list`. Known values: list |
tax_ids.url | string | Required within parent | The URL where this list can be accessed. Maximum length: 5000 |
test_clock | JSON | Optional | |
test_clock (anyOf 1) | JSON | Alternative | ID of the test clock that this customer belongs to. |
test_clock (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
test_clock (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a test clock — response body |
test_clock (anyOf 2) | null | Alternative |
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
custom_fields | JSON | Optional | |
custom_fields (anyOf 1) | array | Alternative | Default custom fields to be displayed on invoices for this customer. |
custom_fields (anyOf 1)[] | Model | Each item | Expand Pay an invoice — response body — custom fields Custom fields displayed on the invoice item |
custom_fields (anyOf 2) | null | Alternative | |
default_payment_method | JSON | Optional | |
default_payment_method (anyOf 1) | JSON | Alternative | ID 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) | string | Alternative | Maximum length: 5000 |
default_payment_method (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a Payment Method — response body |
default_payment_method (anyOf 2) | null | Alternative | |
footer | JSON | Optional | |
footer (anyOf 1) | string | Alternative | Default footer to be displayed on invoices for this customer. Maximum length: 5000 |
footer (anyOf 2) | null | Alternative | |
rendering_options | JSON | Optional | |
rendering_options (anyOf 1) | JSON | Alternative | Default options for invoice PDF rendering for this customer. |
rendering_options (anyOf 1) (anyOf 1) | Model | Alternative | Expand Create a customer — response body — invoice settings rendering options value amount tax display, template |
rendering_options (anyOf 2) | null | Alternative |
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
amount_tax_display | JSON | Optional | |
amount_tax_display (anyOf 1) | string | Alternative | How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. Maximum length: 5000 |
amount_tax_display (anyOf 2) | null | Alternative | |
template | JSON | Optional | |
template (anyOf 1) | string | Alternative | ID 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) | null | Alternative |
Create a customer — response body — tax
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
automatic_tax | string | Required within parent | Surfaces if automatic tax computation is possible given the current customer location information. Known values: failed, not_collecting, supported, unrecognized_location |
ip_address | JSON | Optional | |
ip_address (anyOf 1) | string | Alternative | A recent IP address of the customer used for tax reporting and tax location inference. Maximum length: 5000 |
ip_address (anyOf 2) | null | Alternative | |
location | JSON | Optional | |
location (anyOf 1) | JSON | Alternative | The identified tax location of the customer. |
location (anyOf 1) (anyOf 1) | Model | Alternative | Expand 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) | null | Alternative | |
provider | string | Required within parent | The 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 |
Create a customer — response body — tax / location / The identified tax location of the customer / source: billing address, ip address, payment method, shipping destination
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
country | string | Required within parent | The identified tax country of the customer. Maximum length: 5000 |
source | string | Required within parent | The data source used to infer the customer's location. Known values: billing_address, ip_address, payment_method, shipping_destination |
state | JSON | Optional | |
state (anyOf 1) | string | Alternative | The identified tax state, county, province, or region of the customer. Maximum length: 5000 |
state (anyOf 2) | null | Alternative |
Create or retrieve funding instructions for a customer cash balance — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Each 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_transfer | Model | Required within parent | Expand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer |
currency | string | Required within parent | Three-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_type | string | Required within parent | The `funding_type` of the returned instructions Known values: bank_transfer |
livemode | boolean | Required within parent | If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. |
object | string | Required within parent | String 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
country | string | Required within parent | The country of the bank account to fund Maximum length: 5000 |
financial_addresses | array | Required within parent | A list of financial addresses that can be used to fund a particular balance |
financial_addresses[] | Model | Each item | Expand Create or retrieve funding instructions for a customer cash balance — response body — bank transfer financial addresses item |
type | string | Required within parent | The 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
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | ABA Records contain U.S. bank account details per the ABA format. |
account_holder_address | Model | Required within parent | Expand Create a Location — response body — address |
account_holder_name | string | Required within parent | The account holder name Maximum length: 5000 |
account_number | string | Required within parent | The ABA account number Maximum length: 5000 |
account_type | string | Required within parent | The account type Maximum length: 5000 |
bank_address | Model | Required within parent | Expand Create a Location — response body — address |
bank_name | string | Required within parent | The bank name Maximum length: 5000 |
routing_number | string | Required within parent | The 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Iban Records contain E.U. bank account details per the SEPA format. |
account_holder_address | Model | Required within parent | Expand Create a Location — response body — address |
account_holder_name | string | Required within parent | The name of the person or business that owns the bank account Maximum length: 5000 |
bank_address | Model | Required within parent | Expand Create a Location — response body — address |
bic | string | Required within parent | The BIC/SWIFT code of the account. Maximum length: 5000 |
country | string | Required within parent | Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). Maximum length: 5000 |
iban | string | Required within parent | The 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Sort Code Records contain U.K. bank account details per the sort code format. |
account_holder_address | Model | Required within parent | Expand Create a Location — response body — address |
account_holder_name | string | Required within parent | The name of the person or business that owns the bank account Maximum length: 5000 |
account_number | string | Required within parent | The account number Maximum length: 5000 |
bank_address | Model | Required within parent | Expand Create a Location — response body — address |
sort_code | string | Required within parent | The 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | SPEI Records contain Mexico bank account details per the SPEI format. |
account_holder_address | Model | Required within parent | Expand Create a Location — response body — address |
account_holder_name | string | Required within parent | The account holder name Maximum length: 5000 |
bank_address | Model | Required within parent | Expand Create a Location — response body — address |
bank_code | string | Required within parent | The three-digit bank code Maximum length: 5000 |
bank_name | string | Required within parent | The short banking institution name Maximum length: 5000 |
clabe | string | Required within parent | The 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | SWIFT Records contain U.S. bank account details per the SWIFT format. |
account_holder_address | Model | Required within parent | Expand Create a Location — response body — address |
account_holder_name | string | Required within parent | The account holder name Maximum length: 5000 |
account_number | string | Required within parent | The account number Maximum length: 5000 |
account_type | string | Required within parent | The account type Maximum length: 5000 |
bank_address | Model | Required within parent | Expand Create a Location — response body — address |
bank_name | string | Required within parent | The bank name Maximum length: 5000 |
swift_code | string | Required within parent | The 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Zengin Records contain Japan bank account details per the Zengin format. |
account_holder_address | Model | Required within parent | Expand Create a Location — response body — address |
account_holder_name | JSON | Optional | |
account_holder_name (anyOf 1) | string | Alternative | The account holder name Maximum length: 5000 |
account_holder_name (anyOf 2) | null | Alternative | |
account_number | JSON | Optional | |
account_number (anyOf 1) | string | Alternative | The account number Maximum length: 5000 |
account_number (anyOf 2) | null | Alternative | |
account_type | JSON | Optional | |
account_type (anyOf 1) | string | Alternative | The bank account type. In Japan, this can only be `futsu` or `toza`. Maximum length: 5000 |
account_type (anyOf 2) | null | Alternative | |
bank_address | Model | Required within parent | Expand Create a Location — response body — address |
bank_code | JSON | Optional | |
bank_code (anyOf 1) | string | Alternative | The bank code of the account Maximum length: 5000 |
bank_code (anyOf 2) | null | Alternative | |
bank_name | JSON | Optional | |
bank_name (anyOf 1) | string | Alternative | The bank name of the account Maximum length: 5000 |
bank_name (anyOf 2) | null | Alternative | |
branch_code | JSON | Optional | |
branch_code (anyOf 1) | string | Alternative | The branch code of the account Maximum length: 5000 |
branch_code (anyOf 2) | null | Alternative | |
branch_name | JSON | Optional | |
branch_name (anyOf 1) | string | Alternative | The branch name of the account Maximum length: 5000 |
branch_name (anyOf 2) | null | Alternative |
Referenced models: Create a Location — response body — address
Delete a customer — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
deleted | boolean | Required within parent | Always true for a deleted object Known values: True |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: customer |
Get Customers Customer Discount — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | A 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_session | JSON | Optional | |
checkout_session (anyOf 1) | string | Alternative | The 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) | null | Alternative | |
customer | JSON | Optional | |
customer (anyOf 1) | JSON | Alternative | The ID of the customer associated with this discount. |
customer (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
customer (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a customer — response body |
customer (anyOf 1) (anyOf 3) | Model | Alternative | Expand Delete a customer — response body |
customer (anyOf 2) | null | Alternative | |
customer_account | JSON | Optional | |
customer_account (anyOf 1) | string | Alternative | The ID of the account representing the customer associated with this discount. Maximum length: 5000 |
customer_account (anyOf 2) | null | Alternative | |
end | JSON | Optional | |
end (anyOf 1) | JSON | Alternative | |
end (anyOf 1) (anyOf 1) | integer | Alternative | If 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) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
end (anyOf 2) | null | Alternative | |
id | string | Required within parent | The 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 |
invoice | JSON | Optional | |
invoice (anyOf 1) | string | Alternative | The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice. Maximum length: 5000 |
invoice (anyOf 2) | null | Alternative | |
invoice_item | JSON | Optional | |
invoice_item (anyOf 1) | string | Alternative | The 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) | null | Alternative | |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: discount |
promotion_code | JSON | Optional | |
promotion_code (anyOf 1) | JSON | Alternative | The promotion code applied to create this discount. |
promotion_code (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
promotion_code (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a promotion code — response body |
promotion_code (anyOf 2) | null | Alternative | |
source | Model | Required within parent | Expand Get Customers Customer Discount — response body — source |
start | JSON | Required within parent | |
start (anyOf 1) | integer | Alternative | Date that the coupon was applied. Format: unix-time |
start (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
subscription | JSON | Optional | |
subscription (anyOf 1) | string | Alternative | The subscription that this coupon is applied to, if it is applied to a particular subscription. Maximum length: 5000 |
subscription (anyOf 2) | null | Alternative | |
subscription_item | JSON | Optional | |
subscription_item (anyOf 1) | string | Alternative | The subscription item that this coupon is applied to, if it is applied to a particular subscription item. Maximum length: 5000 |
subscription_item (anyOf 2) | null | Alternative |
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
coupon | JSON | Optional | |
coupon (anyOf 1) | JSON | Alternative | The coupon that was redeemed to create this discount. |
coupon (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
coupon (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a coupon — response body |
coupon (anyOf 2) | null | Alternative | |
type | string | Required within parent | The source type of the discount. Known values: coupon |
Referenced models: Create a coupon — response body
Get Customers Customer Sources Id — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | Model | Alternative | Expand Create an account — response body |
$ (anyOf 2) | Model | Alternative | Expand Retrieve a bank account — response body |
$ (anyOf 3) | Model | Alternative | Expand Retrieve a card — customers get Customers Customer Cards Id — response body |
$ (anyOf 4) | Model | Alternative | Expand 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | These 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) |
account | JSON | Optional | |
account (anyOf 1) | JSON | Alternative | The 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) | string | Alternative | Maximum length: 5000 |
account (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create an account — response body |
account (anyOf 2) | null | Alternative | |
account_holder_name | JSON | Optional | |
account_holder_name (anyOf 1) | string | Alternative | The name of the person or business that owns the bank account. Maximum length: 5000 |
account_holder_name (anyOf 2) | null | Alternative | |
account_holder_type | JSON | Optional | |
account_holder_type (anyOf 1) | string | Alternative | The type of entity that holds the account. This can be either `individual` or `company`. Maximum length: 5000 |
account_holder_type (anyOf 2) | null | Alternative | |
account_type | JSON | Optional | |
account_type (anyOf 1) | string | Alternative | The 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) | null | Alternative | |
available_payout_methods | JSON | Optional | |
available_payout_methods (anyOf 1) | array | Alternative | A 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)[] | string | Each item | Known values: instant, standard |
available_payout_methods (anyOf 2) | null | Alternative | |
bank_name | JSON | Optional | |
bank_name (anyOf 1) | string | Alternative | Name of the bank associated with the routing number (e.g., `WELLS FARGO`). Maximum length: 5000 |
bank_name (anyOf 2) | null | Alternative | |
country | string | Required within parent | Two-letter ISO code representing the country the bank account is located in. Maximum length: 5000 |
currency | string | Required within parent | Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account. Format: currency |
customer | JSON | Optional | |
customer (anyOf 1) | JSON | Alternative | The ID of the customer that the bank account is associated with. |
customer (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
customer (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a customer — response body |
customer (anyOf 1) (anyOf 3) | Model | Alternative | Expand Delete a customer — response body |
customer (anyOf 2) | null | Alternative | |
default_for_currency | JSON | Optional | |
default_for_currency (anyOf 1) | boolean | Alternative | Whether this bank account is the default external account for its currency. |
default_for_currency (anyOf 2) | null | Alternative | |
fingerprint | JSON | Optional | |
fingerprint (anyOf 1) | string | Alternative | Uniquely 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) | null | Alternative | |
future_requirements | JSON | Optional | |
future_requirements (anyOf 1) | JSON | Alternative | Information 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) | Model | Alternative | Expand Retrieve a bank account — response body — requirements value currently due, errors, past due, pending verification |
future_requirements (anyOf 2) | null | Alternative | |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
last4 | string | Required within parent | The last four digits of the bank account number. Maximum length: 5000 |
metadata | JSON | Optional | |
metadata (anyOf 1) | object | Alternative | 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. Additional keys: see wildcard field |
metadata (anyOf 1).* | string | Additional keys | Maximum length: 500 |
metadata (anyOf 2) | null | Alternative | |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: bank_account |
requirements | JSON | Optional | |
requirements (anyOf 1) | JSON | Alternative | Information about the requirements for the bank account, including what information needs to be collected. |
requirements (anyOf 1) (anyOf 1) | Model | Alternative | Expand Retrieve a bank account — response body — requirements value currently due, errors, past due, pending verification |
requirements (anyOf 2) | null | Alternative | |
routing_number | JSON | Optional | |
routing_number (anyOf 1) | string | Alternative | The routing transit number for the bank account. Maximum length: 5000 |
routing_number (anyOf 2) | null | Alternative | |
status | string | Required within parent | For 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
currently_due | JSON | Optional | |
currently_due (anyOf 1) | array | Alternative | Fields 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)[] | string | Each item | Maximum length: 5000 |
currently_due (anyOf 2) | null | Alternative | |
errors | JSON | Optional | |
errors (anyOf 1) | array | Alternative | Fields that are `currently_due` and need to be collected again because validation or verification failed. |
errors (anyOf 1)[] | Model | Each item | Expand Update an Account Capability — response body — requirements errors item |
errors (anyOf 2) | null | Alternative | |
past_due | JSON | Optional | |
past_due (anyOf 1) | array | Alternative | Fields that haven't been resolved by `current_deadline`. These fields need to be resolved to enable the external account. |
past_due (anyOf 1)[] | string | Each item | Maximum length: 5000 |
past_due (anyOf 2) | null | Alternative | |
pending_verification | JSON | Optional | |
pending_verification (anyOf 1) | array | Alternative | Fields 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)[] | string | Each item | Maximum length: 5000 |
pending_verification (anyOf 2) | null | Alternative |
Referenced models: Update an Account Capability — response body — requirements errors item
Retrieve a card — customers get Customers Customer Cards Id — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | You 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) |
account | JSON | Optional | |
account (anyOf 1) | JSON | Alternative | |
account (anyOf 1) (anyOf 1) | string | Alternative | Maximum length: 5000 |
account (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create an account — response body |
account (anyOf 2) | null | Alternative | |
address_city | JSON | Optional | |
address_city (anyOf 1) | string | Alternative | City/District/Suburb/Town/Village. Maximum length: 5000 |
address_city (anyOf 2) | null | Alternative | |
address_country | JSON | Optional | |
address_country (anyOf 1) | string | Alternative | Billing address country, if provided when creating card. Maximum length: 5000 |
address_country (anyOf 2) | null | Alternative | |
address_line1 | JSON | Optional | |
address_line1 (anyOf 1) | string | Alternative | Address line 1 (Street address/PO Box/Company name). Maximum length: 5000 |
address_line1 (anyOf 2) | null | Alternative | |
address_line1_check | JSON | Optional | |
address_line1_check (anyOf 1) | string | Alternative | If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. Maximum length: 5000 |
address_line1_check (anyOf 2) | null | Alternative | |
address_line2 | JSON | Optional | |
address_line2 (anyOf 1) | string | Alternative | Address line 2 (Apartment/Suite/Unit/Building). Maximum length: 5000 |
address_line2 (anyOf 2) | null | Alternative | |
address_state | JSON | Optional | |
address_state (anyOf 1) | string | Alternative | State/County/Province/Region. Maximum length: 5000 |
address_state (anyOf 2) | null | Alternative | |
address_zip | JSON | Optional | |
address_zip (anyOf 1) | string | Alternative | ZIP or postal code. Maximum length: 5000 |
address_zip (anyOf 2) | null | Alternative | |
address_zip_check | JSON | Optional | |
address_zip_check (anyOf 1) | string | Alternative | If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. Maximum length: 5000 |
address_zip_check (anyOf 2) | null | Alternative | |
allow_redisplay | JSON | Optional | |
allow_redisplay (anyOf 1) | string | Alternative | This 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) | null | Alternative | |
available_payout_methods | JSON | Optional | |
available_payout_methods (anyOf 1) | array | Alternative | A 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)[] | string | Each item | Known values: instant, standard |
available_payout_methods (anyOf 2) | null | Alternative | |
brand | string | Required within parent | Card brand. Can be `American Express`, `Cartes Bancaires`, `Diners Club`, `Discover`, `Eftpos Australia`, `Girocard`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`. Maximum length: 5000 |
country | JSON | Optional | |
country (anyOf 1) | string | Alternative | Two-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) | null | Alternative | |
currency | JSON | Optional | |
currency (anyOf 1) | string | Alternative | Three-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) | null | Alternative | |
customer | JSON | Optional | |
customer (anyOf 1) | JSON | Alternative | The 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) | string | Alternative | Maximum length: 5000 |
customer (anyOf 1) (anyOf 2) | Model | Alternative | Expand Create a customer — response body |
customer (anyOf 1) (anyOf 3) | Model | Alternative | Expand Delete a customer — response body |
customer (anyOf 2) | null | Alternative | |
cvc_check | JSON | Optional | |
cvc_check (anyOf 1) | string | Alternative | If 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) | null | Alternative | |
default_for_currency | JSON | Optional | |
default_for_currency (anyOf 1) | boolean | Alternative | Whether 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) | null | Alternative | |
dynamic_last4 | JSON | Optional | |
dynamic_last4 (anyOf 1) | string | Alternative | (For tokenized numbers only.) The last four digits of the device account number. Maximum length: 5000 |
dynamic_last4 (anyOf 2) | null | Alternative | |
exp_month | JSON | Required within parent | |
exp_month (anyOf 1) | integer | Alternative | Two-digit number representing the card's expiration month. |
exp_month (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
exp_year | JSON | Required within parent | |
exp_year (anyOf 1) | integer | Alternative | Four-digit number representing the card's expiration year. |
exp_year (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
fingerprint | JSON | Optional | |
fingerprint (anyOf 1) | string | Alternative | Uniquely 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) | null | Alternative | |
funding | string | Required within parent | Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. Maximum length: 5000 |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
last4 | string | Required within parent | The last four digits of the card. Maximum length: 5000 |
metadata | JSON | Optional | |
metadata (anyOf 1) | object | Alternative | 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. Additional keys: see wildcard field |
metadata (anyOf 1).* | string | Additional keys | Maximum length: 500 |
metadata (anyOf 2) | null | Alternative | |
name | JSON | Optional | |
name (anyOf 1) | string | Alternative | Cardholder name. Maximum length: 5000 |
name (anyOf 2) | null | Alternative | |
networks | Model | Optional | Expand Retrieve a card — customers get Customers Customer Cards Id — response body — networks |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: card |
regulated_status | JSON | Optional | |
regulated_status (anyOf 1) | string | Alternative | Status of a card based on the card issuer. Known values: regulated, unregulated |
regulated_status (anyOf 2) | null | Alternative | |
status | JSON | Optional | |
status (anyOf 1) | string | Alternative | For 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) | null | Alternative | |
tokenization_method | JSON | Optional | |
tokenization_method (anyOf 1) | string | Alternative | If 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) | null | Alternative |
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
preferred | JSON | Optional | |
preferred (anyOf 1) | string | Alternative | The 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) | null | Alternative |
Retrieve a cash balance — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | A 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. |
available | JSON | Optional | |
available (anyOf 1) | object | Alternative | A 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).* | JSON | Additional keys | |
available (anyOf 1).* (anyOf 1) | integer | Alternative | |
available (anyOf 1).* (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
available (anyOf 2) | null | Alternative | |
customer | string | Required within parent | The ID of the customer whose cash balance this object represents. Maximum length: 5000 |
customer_account | JSON | Optional | |
customer_account (anyOf 1) | string | Alternative | The ID of an Account representing a customer whose cash balance this object represents. Maximum length: 5000 |
customer_account (anyOf 2) | null | Alternative | |
livemode | boolean | Required within parent | If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: cash_balance |
settings | Model | Required within parent | Expand Retrieve a cash balance — response body — settings |
Referenced models: Retrieve a cash balance — response body — settings
Retrieve a cash balance — response body — settings
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
reconciliation_mode | string | Required within parent | The configuration for how funds that land in the customer cash balance are reconciled. Known values: automatic, manual |
using_merchant_default | boolean | Required within parent | A 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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
account_holder_name | string | Optional | The name of the person or business that owns the bank account. Maximum length: 5000 |
account_holder_type | string | Optional | The type of entity that holds the account. This can be either `individual` or `company`. One of: company, individual Maximum length: 5000 |
address_city | string | Optional | City/District/Suburb/Town/Village. Maximum length: 5000 |
address_country | string | Optional | Billing address country, if provided when creating card. Maximum length: 5000 |
address_line1 | string | Optional | Address line 1 (Street address/PO Box/Company name). Maximum length: 5000 |
address_line2 | string | Optional | Address line 2 (Apartment/Suite/Unit/Building). Maximum length: 5000 |
address_state | string | Optional | State/County/Province/Region. Maximum length: 5000 |
address_zip | string | Optional | ZIP or postal code. Maximum length: 5000 |
exp_month | string | Optional | Two digit number representing the card’s expiration month. Maximum length: 5000 |
exp_year | string | Optional | Four digit number representing the card’s expiration year. Maximum length: 5000 |
expand | array | Optional | Specifies which fields in the response should be expanded. |
expand[] | string | Each item | Maximum length: 5000 |
metadata | JSON | Optional | 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`. |
metadata (anyOf 1) | object | Alternative | Additional keys: see wildcard field |
metadata (anyOf 1).* | string | Additional keys | |
metadata (anyOf 2) | string | Alternative | One of: |
name | string | Optional | Cardholder name. Maximum length: 5000 |
owner | object | Optional | |
owner.address | object | Optional | |
owner.address.city | string | Optional | Maximum length: 5000 |
owner.address.country | string | Optional | Maximum length: 5000 |
owner.address.line1 | string | Optional | Maximum length: 5000 |
owner.address.line2 | string | Optional | Maximum length: 5000 |
owner.address.postal_code | string | Optional | Maximum length: 5000 |
owner.address.state | string | Optional | Maximum length: 5000 |
owner.email | string | Optional | |
owner.name | string | Optional | Maximum length: 5000 |
owner.phone | string | Optional | Maximum length: 5000 |
Update a customer — request body — body / bank_account / account_holder_type: company, individual, object: bank account
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
account_holder_name | string | Optional | Maximum length: 5000 |
account_holder_type | string | Optional | One of: company, individual Maximum length: 5000 |
account_number | string | Required within parent | Maximum length: 5000 |
country | string | Required within parent | Maximum length: 5000 |
currency | string | Optional | Format: currency |
object | string | Optional | One of: bank_account Maximum length: 5000 |
routing_number | string | Optional | Maximum length: 5000 |