Skip to content

Stripe: Payment links schemas

41 Stripe schemas with complete fields and constraints.

← Payment links operations · All schemas

Create a payment link — request body — body custom fields item

FieldTypePresenceDescription and constraints
$objectRoot
dropdownobjectOptional
dropdown.default_valuestringOptionalMaximum length: 100
dropdown.optionsarrayRequired within parent
dropdown.options[]objectEach item
dropdown.options[].labelstringRequired within parentMaximum length: 100
dropdown.options[].valuestringRequired within parentMaximum length: 100
keystringRequired within parentMaximum length: 200
labelobjectRequired within parent
label.customstringRequired within parentMaximum length: 100
label.typestringRequired within parentOne of: custom
numericobjectOptional
numeric.default_valuestringOptionalMaximum length: 255
numeric.maximum_lengthintegerOptional
numeric.minimum_lengthintegerOptional
optionalbooleanOptional
textobjectOptional
text.default_valuestringOptionalMaximum length: 255
text.maximum_lengthintegerOptional
text.minimum_lengthintegerOptional
typestringRequired within parentOne of: dropdown, numeric, text

Create a payment link — request body — body custom text

FieldTypePresenceDescription and constraints
$objectRootDisplay additional text for your customers using custom text. You can't set this parameter if `ui_mode` is `elements`.
after_submitJSONOptional
after_submit (anyOf 1)objectAlternative
after_submit (anyOf 1).messagestringRequired within parentMaximum length: 1200
after_submit (anyOf 2)stringAlternativeOne of:
shipping_addressJSONOptional
shipping_address (anyOf 1)objectAlternative
shipping_address (anyOf 1).messagestringRequired within parentMaximum length: 1200
shipping_address (anyOf 2)stringAlternativeOne of:
submitJSONOptional
submit (anyOf 1)objectAlternative
submit (anyOf 1).messagestringRequired within parentMaximum length: 1200
submit (anyOf 2)stringAlternativeOne of:
terms_of_service_acceptanceJSONOptional
terms_of_service_acceptance (anyOf 1)objectAlternative
terms_of_service_acceptance (anyOf 1).messagestringRequired within parentMaximum length: 1200
terms_of_service_acceptance (anyOf 2)stringAlternativeOne of:

Create a payment link — request body — body invoice creation

FieldTypePresenceDescription and constraints
$objectRootGenerate a post-purchase Invoice for one-time payments.
enabledbooleanRequired within parent
invoice_dataModelOptionalExpand Create a payment link — request body — body invoice creation invoice data

Referenced models: Create a payment link — request body — body invoice creation invoice data

Create a payment link — request body — body invoice creation invoice data

FieldTypePresenceDescription and constraints
$objectRoot
account_tax_idsJSONOptional
account_tax_ids (anyOf 1)arrayAlternative
account_tax_ids (anyOf 1)[]stringEach itemMaximum length: 5000
account_tax_ids (anyOf 2)stringAlternativeOne of:
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:
descriptionstringOptionalMaximum length: 1500
footerstringOptionalMaximum length: 5000
issuerobjectOptional
issuer.accountstringOptional
issuer.typestringRequired within parentOne of: account, self
metadataJSONOptional
metadata (anyOf 1)objectAlternativeAdditional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keys
metadata (anyOf 2)stringAlternativeOne of:
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 payment link — request body — body line items item price data

FieldTypePresenceDescription and constraints
$objectRoot
currencystringRequired within parentFormat: currency
productstringOptionalMaximum length: 5000
product_dataModelOptionalExpand Update an invoice's line item — request body — body price data product data
recurringobjectOptional
recurring.intervalstringRequired within parentOne of: day, month, week, year
recurring.interval_countintegerOptional
tax_behaviorstringOptionalOne of: exclusive, inclusive, unspecified
unit_amountintegerOptional
unit_amount_decimalstringOptionalFormat: decimal

Referenced models: Update an invoice's line item — request body — body price data product data

Create a payment link — response body

FieldTypePresenceDescription and constraints
$objectRootA payment link is a shareable URL that will take your customers to a hosted payment page. A payment link can be shared and used multiple times.

When a customer opens a payment link it will open a new [checkout session](https://docs.stripe.com/api/checkout/sessions) to render the payment page. You can use [checkout session events](https://docs.stripe.com/api/events/types#event_types-checkout.session.completed) to track payments through payment links.

Related guide: [Payment Links API](https://docs.stripe.com/payment-links)
activebooleanRequired within parentWhether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated.
after_completionModelRequired within parentExpand Create a payment link — response body — after completion
allow_promotion_codesbooleanRequired within parentWhether user redeemable promotion codes are enabled.
applicationJSONOptional
application (anyOf 1)JSONAlternativeThe ID of the Connect application that created the Payment Link.
application (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
application (anyOf 1) (anyOf 2)ModelAlternativeExpand PostApplicationFeesIdRefund — response body — application / object: application
application (anyOf 1) (anyOf 3)ModelAlternativeExpand Accept a quote — response body — application / value / deleted: True, object: application
application (anyOf 2)nullAlternative
application_fee_amountJSONOptional
application_fee_amount (anyOf 1)JSONAlternative
application_fee_amount (anyOf 1) (anyOf 1)integerAlternativeThe amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account.
application_fee_amount (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
application_fee_amount (anyOf 2)nullAlternative
application_fee_percentJSONOptional
application_fee_percent (anyOf 1)JSONAlternative
application_fee_percent (anyOf 1) (anyOf 1)numberAlternativeThis represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account.
application_fee_percent (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
application_fee_percent (anyOf 2)nullAlternative
automatic_taxModelRequired within parentExpand Create a payment link — response body — automatic tax
billing_address_collectionstringRequired within parentConfiguration for collecting the customer's billing address. Defaults to `auto`.
Known values: auto, required
consent_collectionJSONOptional
consent_collection (anyOf 1)JSONAlternativeWhen set, provides configuration to gather active consent from customers.
consent_collection (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — consent collection value payment method reuse agreement, promotions, terms of service
consent_collection (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
custom_fieldsarrayRequired within parentCollect additional information from your customer using custom fields. Up to 3 fields are supported. You can't set this parameter if `ui_mode` is `elements`.
custom_fields[]ModelEach itemExpand Create a payment link — response body — custom fields item
custom_textModelRequired within parentExpand Create a payment link — response body — custom text
customer_creationstringRequired within parentConfiguration for Customer creation during checkout.
Known values: always, if_required
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
inactive_messageJSONOptional
inactive_message (anyOf 1)stringAlternativeThe custom message to be displayed to a customer when a payment link is no longer active.
Maximum length: 5000
inactive_message (anyOf 2)nullAlternative
invoice_creationJSONOptional
invoice_creation (anyOf 1)JSONAlternativeConfiguration for creating invoice for payment mode payment links.
invoice_creation (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — invoice creation value enabled, invoice data
invoice_creation (anyOf 2)nullAlternative
line_itemsobjectOptionalThe line items representing what is being sold.
line_items.dataarrayRequired within parentDetails about each object.
line_items.data[]ModelEach itemExpand Retrieve a quote's line items — response body — data item
line_items.has_morebooleanRequired within parentTrue if this list has another page of items after this one that can be fetched.
line_items.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
line_items.urlstringRequired within parentThe URL where this list can be accessed.
Maximum length: 5000
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
managed_paymentsJSONOptional
managed_payments (anyOf 1)JSONAlternativeSettings for Managed Payments for this Payment Link and resulting [CheckoutSessions](/api/checkout/sessions/object), [PaymentIntents](/api/payment_intents/object), [Invoices](/api/invoices/object), and [Subscriptions](/api/subscriptions/object).
managed_payments (anyOf 1) (anyOf 1)ModelAlternativeExpand Cancel a Setup Intent — response body — managed payments value enabled
managed_payments (anyOf 2)nullAlternative
metadataobjectRequired within parentSet 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
name_collectionModelOptionalExpand Create a payment link — response body — name collection
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: payment_link
on_behalf_ofJSONOptional
on_behalf_of (anyOf 1)JSONAlternativeThe account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details.
on_behalf_of (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
on_behalf_of (anyOf 1) (anyOf 2)ModelAlternativeExpand Create an account — response body
on_behalf_of (anyOf 2)nullAlternative
optional_itemsJSONOptional
optional_items (anyOf 1)arrayAlternativeThe optional items presented to the customer at checkout.
optional_items (anyOf 1)[]ModelEach itemExpand Create a payment link — response body — optional items array item
optional_items (anyOf 2)nullAlternative
payment_intent_dataJSONOptional
payment_intent_data (anyOf 1)JSONAlternativeIndicates the parameters to be passed to PaymentIntent creation during checkout.
payment_intent_data (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — payment intent data value capture method, description, metadata, setup future usage, statement descriptor, statement descriptor suffix, transfer group
payment_intent_data (anyOf 2)nullAlternative
payment_method_collectionstringRequired within parentConfiguration for collecting a payment method during checkout. Defaults to `always`.
Known values: always, if_required
payment_method_optionsJSONOptional
payment_method_options (anyOf 1)JSONAlternativePayment-method-specific configuration.
payment_method_options (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — payment method options Payment-method-specific configuration card
payment_method_options (anyOf 2)nullAlternative
payment_method_typesJSONOptional
payment_method_types (anyOf 1)arrayAlternativeThe list of payment method types that customers can use. When `null`, Stripe will dynamically show relevant payment methods you've enabled in your [payment method settings](https://dashboard.stripe.com/settings/payment_methods).
payment_method_types (anyOf 1)[]stringEach itemKnown values: affirm, afterpay_clearpay, alipay, alma, au_becs_debit, bacs_debit, bancontact, billie, bizum, blik, boleto, card, cashapp, eps, fpx, giropay, grabpay, ideal, klarna, konbini, link, mb_way, mobilepay, multibanco, oxxo, p24, pay_by_bank, paynow, paypal, paypay, payto, pix, promptpay, satispay, sepa_debit, sequra, sofort, sunbit, swish, twint, upi, us_bank_account, wechat_pay, zip
payment_method_types (anyOf 2)nullAlternative
phone_number_collectionModelRequired within parentExpand Create a payment link — response body — phone number collection
restrictionsJSONOptional
restrictions (anyOf 1)JSONAlternativeSettings that restrict the usage of a payment link.
restrictions (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — restrictions Settings that restrict the usage of a payment link completed sessions
restrictions (anyOf 2)nullAlternative
shipping_address_collectionJSONOptional
shipping_address_collection (anyOf 1)JSONAlternativeConfiguration for collecting the customer's shipping address.
shipping_address_collection (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — shipping address collection value allowed countries
shipping_address_collection (anyOf 2)nullAlternative
shipping_optionsarrayRequired within parentThe shipping rate options applied to the session.
shipping_options[]ModelEach itemExpand Create a payment link — response body — shipping options item
submit_typestringRequired within parentIndicates the type of transaction being performed which customizes relevant text on the page, such as the submit button.
Known values: auto, book, donate, pay, subscribe
subscription_dataJSONOptional
subscription_data (anyOf 1)JSONAlternativeWhen creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`.
subscription_data (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings
subscription_data (anyOf 2)nullAlternative
tax_id_collectionModelRequired within parentExpand Create a payment link — response body — tax id collection
transfer_dataJSONOptional
transfer_data (anyOf 1)JSONAlternativeThe account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to.
transfer_data (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — transfer data value amount, destination
transfer_data (anyOf 2)nullAlternative
urlstringRequired within parentThe public URL that can be shared with customers.
Maximum length: 5000

Referenced models: Create an account — response body, PostApplicationFeesIdRefund — response body — application / object: application, Accept a quote — response body — application / value / deleted: True, object: application, Retrieve a quote's line items — response body — data item, Create a payment link — response body — after completion, Create a payment link — response body — automatic tax, Create a payment link — response body — consent collection value payment method reuse agreement, promotions, terms of service, Create a payment link — response body — custom fields item, Create a payment link — response body — custom text, Create a payment link — response body — invoice creation value enabled, invoice data, Create a payment link — response body — name collection, Create a payment link — response body — optional items array item, Create a payment link — response body — payment intent data value capture method, description, metadata, setup future usage, statement descriptor, statement descriptor suffix, transfer group, Create a payment link — response body — payment method options Payment-method-specific configuration card, Create a payment link — response body — phone number collection, Create a payment link — response body — restrictions Settings that restrict the usage of a payment link completed sessions, Create a payment link — response body — shipping address collection value allowed countries, Create a payment link — response body — shipping options item, Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings, Create a payment link — response body — tax id collection, Create a payment link — response body — transfer data value amount, destination, Cancel a Setup Intent — response body — managed payments value enabled

Create a payment link — response body — after completion

FieldTypePresenceDescription and constraints
$objectRoot
hosted_confirmationModelOptionalExpand Create a payment link — response body — after completion hosted confirmation
redirectModelOptionalExpand Create a payment link — response body — after completion redirect
typestringRequired within parentThe specified behavior after the purchase is complete.
Known values: hosted_confirmation, redirect

Referenced models: Create a payment link — response body — after completion hosted confirmation, Create a payment link — response body — after completion redirect

Create a payment link — response body — after completion hosted confirmation

FieldTypePresenceDescription and constraints
$objectRoot
custom_messageJSONOptional
custom_message (anyOf 1)stringAlternativeThe custom message that is displayed to the customer after the purchase is complete.
Maximum length: 5000
custom_message (anyOf 2)nullAlternative

Create a payment link — response body — after completion redirect

FieldTypePresenceDescription and constraints
$objectRoot
urlstringRequired within parentThe URL the customer will be redirected to after the purchase is complete.
Maximum length: 5000

Create a payment link — response body — automatic tax

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIf `true`, tax will be calculated automatically using the customer's location.
liabilityJSONOptional
liability (anyOf 1)JSONAlternativeThe account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
liability (anyOf 1) (anyOf 1)ModelAlternativeExpand Pay an invoice — response body — issuer
liability (anyOf 2)nullAlternative

Referenced models: Pay an invoice — response body — issuer

Create a payment link — response body — consent collection value payment method reuse agreement, promotions, terms of service

FieldTypePresenceDescription and constraints
$objectRoot
payment_method_reuse_agreementJSONOptional
payment_method_reuse_agreement (anyOf 1)JSONAlternativeSettings related to the payment method reuse text shown in the Checkout UI.
payment_method_reuse_agreement (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — consent_collection / value / payment_method_reuse_agreement, promotions, terms_of_service / payment_method_reuse_agreement / value / position: auto, hidden
payment_method_reuse_agreement (anyOf 2)nullAlternative
promotionsJSONOptional
promotions (anyOf 1)stringAlternativeIf set to `auto`, enables the collection of customer consent for promotional communications.
Known values: auto, none
promotions (anyOf 2)nullAlternative
terms_of_serviceJSONOptional
terms_of_service (anyOf 1)stringAlternativeIf set to `required`, it requires cutomers to accept the terms of service before being able to pay. If set to `none`, customers won't be shown a checkbox to accept the terms of service.
Known values: none, required
terms_of_service (anyOf 2)nullAlternative

Referenced models: Create a payment link — response body — consent_collection / value / payment_method_reuse_agreement, promotions, terms_of_service / payment_method_reuse_agreement / value / position: auto, hidden

Create a payment link — response body — consent_collection / value / payment_method_reuse_agreement, promotions, terms_of_service / payment_method_reuse_agreement / value / position: auto, hidden

FieldTypePresenceDescription and constraints
$objectRoot
positionstringRequired within parentDetermines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used.

When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI.
Known values: auto, hidden

Create a payment link — response body — custom fields item

FieldTypePresenceDescription and constraints
$objectRoot
dropdownModelOptionalExpand Create a payment link — response body — custom fields item dropdown
keystringRequired within parentString of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters.
Maximum length: 5000
labelModelRequired within parentExpand Create a payment link — response body — custom fields item label
numericModelOptionalExpand Create a payment link — response body — custom fields item text
optionalbooleanRequired within parentWhether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`.
textModelOptionalExpand Create a payment link — response body — custom fields item text
typestringRequired within parentThe type of the field.
Known values: dropdown, numeric, text

Referenced models: Create a payment link — response body — custom fields item dropdown, Create a payment link — response body — custom fields item label, Create a payment link — response body — custom fields item text

Create a payment link — response body — custom fields item dropdown

FieldTypePresenceDescription and constraints
$objectRoot
default_valueJSONOptional
default_value (anyOf 1)stringAlternativeThe value that pre-fills on the payment page.
Maximum length: 5000
default_value (anyOf 2)nullAlternative
optionsarrayRequired within parentThe options available for the customer to select. Up to 200 options allowed.
options[]ModelEach itemExpand Create a payment link — response body — custom fields item dropdown options item

Referenced models: Create a payment link — response body — custom fields item dropdown options item

Create a payment link — response body — custom fields item dropdown options item

FieldTypePresenceDescription and constraints
$objectRoot
labelstringRequired within parentThe label for the option, displayed to the customer. Up to 100 characters.
Maximum length: 5000
valuestringRequired within parentThe value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters.
Maximum length: 5000

Create a payment link — response body — custom fields item label

FieldTypePresenceDescription and constraints
$objectRoot
customJSONOptional
custom (anyOf 1)stringAlternativeCustom text for the label, displayed to the customer. Up to 100 characters.
Maximum length: 5000
custom (anyOf 2)nullAlternative
typestringRequired within parentThe type of the label.
Known values: custom

Create a payment link — response body — custom fields item text

FieldTypePresenceDescription and constraints
$objectRoot
default_valueJSONOptional
default_value (anyOf 1)stringAlternativeThe value that pre-fills the field on the payment page.
Maximum length: 5000
default_value (anyOf 2)nullAlternative
maximum_lengthJSONOptional
maximum_length (anyOf 1)JSONAlternative
maximum_length (anyOf 1) (anyOf 1)integerAlternativeThe maximum character length constraint for the customer's input.
maximum_length (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
maximum_length (anyOf 2)nullAlternative
minimum_lengthJSONOptional
minimum_length (anyOf 1)JSONAlternative
minimum_length (anyOf 1) (anyOf 1)integerAlternativeThe minimum character length requirement for the customer's input.
minimum_length (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
minimum_length (anyOf 2)nullAlternative

Create a payment link — response body — custom text

FieldTypePresenceDescription and constraints
$objectRoot
after_submitJSONOptional
after_submit (anyOf 1)JSONAlternativeCustom text that should be displayed after the payment confirmation button.
after_submit (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
after_submit (anyOf 2)nullAlternative
shipping_addressJSONOptional
shipping_address (anyOf 1)JSONAlternativeCustom text that should be displayed alongside shipping address collection.
shipping_address (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
shipping_address (anyOf 2)nullAlternative
submitJSONOptional
submit (anyOf 1)JSONAlternativeCustom text that should be displayed alongside the payment confirmation button.
submit (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
submit (anyOf 2)nullAlternative
terms_of_service_acceptanceJSONOptional
terms_of_service_acceptance (anyOf 1)JSONAlternativeCustom text that should be displayed in place of the default terms of service agreement text.
terms_of_service_acceptance (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
terms_of_service_acceptance (anyOf 2)nullAlternative

Referenced models: Create a payment link — response body — custom text submit value message

Create a payment link — response body — custom text submit value message

FieldTypePresenceDescription and constraints
$objectRoot
messagestringRequired within parentText can be up to 1200 characters in length.
Maximum length: 1200

Create a payment link — response body — invoice creation value enabled, invoice data

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentEnable creating an invoice on successful payment.
invoice_dataJSONOptional
invoice_data (anyOf 1)JSONAlternativeConfiguration for the invoice. Default invoice values will be used if unspecified.
invoice_data (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — invoice creation value enabled, invoice data invoice data value account tax ids, custom fields, description, footer, issuer, metadata, rendering options
invoice_data (anyOf 2)nullAlternative

Referenced models: Create a payment link — response body — invoice creation value enabled, invoice data invoice data value account tax ids, custom fields, description, footer, issuer, metadata, rendering options

Create a payment link — response body — invoice creation value enabled, invoice data invoice data value account tax ids, custom fields, description, footer, issuer, metadata, rendering options

FieldTypePresenceDescription and constraints
$objectRoot
account_tax_idsJSONOptional
account_tax_ids (anyOf 1)arrayAlternativeThe account tax IDs associated with the invoice.
account_tax_ids (anyOf 1)[]JSONEach item
account_tax_ids (anyOf 1)[] (anyOf 1)stringAlternativeMaximum length: 5000
account_tax_ids (anyOf 1)[] (anyOf 2)ModelAlternativeExpand Create a tax ID — response body
account_tax_ids (anyOf 1)[] (anyOf 3)ModelAlternativeExpand Delete a tax ID — response body
account_tax_ids (anyOf 2)nullAlternative
custom_fieldsJSONOptional
custom_fields (anyOf 1)arrayAlternativeA list of up to 4 custom fields to be displayed on the invoice.
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
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
description (anyOf 2)nullAlternative
footerJSONOptional
footer (anyOf 1)stringAlternativeFooter to be displayed on the invoice.
Maximum length: 5000
footer (anyOf 2)nullAlternative
issuerJSONOptional
issuer (anyOf 1)JSONAlternativeThe connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
issuer (anyOf 1) (anyOf 1)ModelAlternativeExpand Pay an invoice — response body — issuer
issuer (anyOf 2)nullAlternative
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
rendering_optionsJSONOptional
rendering_options (anyOf 1)JSONAlternativeOptions for invoice PDF rendering.
rendering_options (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a Checkout Session — response body — invoice creation value enabled, invoice data invoice data rendering options Options for invoice PDF rendering amount tax display, template
rendering_options (anyOf 2)nullAlternative

Referenced models: Pay an invoice — response body — issuer, Delete a tax ID — response body, Create a Checkout Session — response body — invoice creation value enabled, invoice data invoice data rendering options Options for invoice PDF rendering amount tax display, template, Pay an invoice — response body — custom fields Custom fields displayed on the invoice item, Create a tax ID — response body

Create a payment link — response body — name collection

FieldTypePresenceDescription and constraints
$objectRoot
businessModelOptionalExpand Create a payment link — response body — name collection business
individualModelOptionalExpand Create a payment link — response body — name collection individual

Referenced models: Create a payment link — response body — name collection business, Create a payment link — response body — name collection individual

Create a payment link — response body — name collection business

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIndicates whether business name collection is enabled for the payment link.
optionalbooleanRequired within parentWhether the customer is required to complete the field before checking out. Defaults to `false`.

Create a payment link — response body — name collection individual

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIndicates whether individual name collection is enabled for the payment link.
optionalbooleanRequired within parentWhether the customer is required to complete the field before checking out. Defaults to `false`.

Create a payment link — response body — optional items array item

FieldTypePresenceDescription and constraints
$objectRoot
adjustable_quantityJSONOptional
adjustable_quantity (anyOf 1)JSONAlternative
adjustable_quantity (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — optional items array item adjustable quantity value enabled, maximum, minimum
adjustable_quantity (anyOf 2)nullAlternative
pricestringRequired within parentMaximum length: 5000
quantityJSONRequired within parent
quantity (anyOf 1)integerAlternative
quantity (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: Create a payment link — response body — optional items array item adjustable quantity value enabled, maximum, minimum

Create a payment link — response body — optional items array item adjustable quantity value enabled, maximum, minimum

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentSet to true if the quantity can be adjusted to any non-negative integer.
maximumJSONOptional
maximum (anyOf 1)JSONAlternative
maximum (anyOf 1) (anyOf 1)integerAlternativeThe maximum quantity of this item the customer can purchase. By default this value is 99.
maximum (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
maximum (anyOf 2)nullAlternative
minimumJSONOptional
minimum (anyOf 1)JSONAlternative
minimum (anyOf 1) (anyOf 1)integerAlternativeThe minimum quantity of this item the customer must purchase, if they choose to purchase it. Because this item is optional, the customer will always be able to remove it from their order, even if the `minimum` configured here is greater than 0. By default this value is 0.
minimum (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
minimum (anyOf 2)nullAlternative

Create a payment link — response body — payment intent data value capture method, description, metadata, setup future usage, statement descriptor, statement descriptor suffix, transfer group

FieldTypePresenceDescription and constraints
$objectRoot
capture_methodJSONOptional
capture_method (anyOf 1)stringAlternativeIndicates when the funds will be captured from the customer's account.
Known values: automatic, automatic_async, manual
capture_method (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
metadataobjectRequired within parentSet of [key-value pairs](https://docs.stripe.com/api/metadata) that will set metadata on [Payment Intents](https://docs.stripe.com/api/payment_intents) generated from this payment link.
Additional keys: see wildcard field
metadata.*stringAdditional keysMaximum length: 500
setup_future_usageJSONOptional
setup_future_usage (anyOf 1)stringAlternativeIndicates that you intend to make future payments with the payment method collected during checkout.
Known values: off_session, on_session
setup_future_usage (anyOf 2)nullAlternative
statement_descriptorJSONOptional
statement_descriptor (anyOf 1)stringAlternativeFor a non-card payment, information about the charge that appears on the customer's statement when this payment succeeds in creating a charge.
Maximum length: 5000
statement_descriptor (anyOf 2)nullAlternative
statement_descriptor_suffixJSONOptional
statement_descriptor_suffix (anyOf 1)stringAlternativeFor a card payment, information about the charge that appears on the customer's statement when this payment succeeds in creating a charge. Concatenated with the account's statement descriptor prefix to form the complete statement descriptor.
Maximum length: 5000
statement_descriptor_suffix (anyOf 2)nullAlternative
transfer_groupJSONOptional
transfer_group (anyOf 1)stringAlternativeA string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://docs.stripe.com/connect/separate-charges-and-transfers) for details.
Maximum length: 5000
transfer_group (anyOf 2)nullAlternative

Create a payment link — response body — payment method options Payment-method-specific configuration card

FieldTypePresenceDescription and constraints
$objectRoot
cardJSONOptional
card (anyOf 1)JSONAlternativeConfiguration for `card` payment methods.
card (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — payment method options Payment-method-specific configuration card card Configuration for `card` payment methods restrictions
card (anyOf 2)nullAlternative

Referenced models: Create a payment link — response body — payment method options Payment-method-specific configuration card card Configuration for `card` payment methods restrictions

Create a payment link — response body — payment method options Payment-method-specific configuration card card Configuration for `card` payment methods restrictions

FieldTypePresenceDescription and constraints
$objectRoot
restrictionsJSONOptional
restrictions (anyOf 1)JSONAlternativeRestrictions to apply to the card payment method. For example, you can block specific card brands.
restrictions (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — payment method options Payment-method-specific configuration card card Configuration for `card` payment methods restrictions restrictions value brands blocked
restrictions (anyOf 2)nullAlternative

Referenced models: Create a payment link — response body — payment method options Payment-method-specific configuration card card Configuration for `card` payment methods restrictions restrictions value brands blocked

Create a payment link — response body — payment method options Payment-method-specific configuration card card Configuration for `card` payment methods restrictions restrictions value brands blocked

FieldTypePresenceDescription and constraints
$objectRoot
brands_blockedarrayRequired within parentThe card brands to block. If a customer enters or selects a card belonging to a blocked brand, they can't complete the payment.
brands_blocked[]stringEach itemKnown values: american_express, discover_global_network, mastercard, visa

Create a payment link — response body — phone number collection

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIf `true`, a phone number will be collected during checkout.

Create a payment link — response body — restrictions Settings that restrict the usage of a payment link completed sessions

FieldTypePresenceDescription and constraints
$objectRoot
completed_sessionsModelRequired within parentExpand Create a payment link — response body — restrictions Settings that restrict the usage of a payment link completed sessions completed sessions

Referenced models: Create a payment link — response body — restrictions Settings that restrict the usage of a payment link completed sessions completed sessions

Create a payment link — response body — restrictions Settings that restrict the usage of a payment link completed sessions completed sessions

FieldTypePresenceDescription and constraints
$objectRoot
countJSONRequired within parent
count (anyOf 1)integerAlternativeThe current number of checkout sessions that have been completed on the payment link which count towards the `completed_sessions` restriction to be met.
count (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
limitJSONRequired within parent
limit (anyOf 1)integerAlternativeThe maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met.
limit (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Create a payment link — response body — shipping address collection value allowed countries

FieldTypePresenceDescription and constraints
$objectRoot
allowed_countriesarrayRequired within parentAn array of two-letter ISO country codes representing which countries Checkout should provide as options for shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`.
allowed_countries[]stringEach itemKnown values: AC, AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MK, ML, MM, MN, MO, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SZ, TA, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VA, VC, VE, VG, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW, ZZ

Create a payment link — response body — shipping options item

FieldTypePresenceDescription and constraints
$objectRoot
shipping_amountJSONRequired within parent
shipping_amount (anyOf 1)integerAlternativeA non-negative integer in cents representing how much to charge.
shipping_amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
shipping_rateJSONRequired within parentThe ID of the Shipping Rate to use for this shipping option.
shipping_rate (anyOf 1)stringAlternativeMaximum length: 5000
shipping_rate (anyOf 2)ModelAlternativeExpand Create a shipping rate — response body

Referenced models: Create a shipping rate — response body

Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings

FieldTypePresenceDescription and constraints
$objectRoot
descriptionJSONOptional
description (anyOf 1)stringAlternativeThe subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
Maximum length: 5000
description (anyOf 2)nullAlternative
invoice_settingsModelRequired within parentExpand Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings invoice settings
metadataobjectRequired within parentSet of [key-value pairs](https://docs.stripe.com/api/metadata) that will set metadata on [Subscriptions](https://docs.stripe.com/api/subscriptions) generated from this payment link.
Additional keys: see wildcard field
metadata.*stringAdditional keysMaximum length: 500
trial_period_daysJSONOptional
trial_period_days (anyOf 1)JSONAlternative
trial_period_days (anyOf 1) (anyOf 1)integerAlternativeInteger representing the number of trial period days before the customer is charged for the first time.
trial_period_days (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
trial_period_days (anyOf 2)nullAlternative
trial_settingsJSONOptional
trial_settings (anyOf 1)JSONAlternativeSettings related to subscription trials.
trial_settings (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings trial settings Settings related to subscription trials end behavior
trial_settings (anyOf 2)nullAlternative

Referenced models: Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings invoice settings, Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings trial settings Settings related to subscription trials end behavior

Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings invoice settings

FieldTypePresenceDescription and constraints
$objectRoot
issuerModelRequired within parentExpand Pay an invoice — response body — issuer

Referenced models: Pay an invoice — response body — issuer

Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings trial settings Settings related to subscription trials end behavior

FieldTypePresenceDescription and constraints
$objectRootConfigures how this subscription behaves during the trial period.
end_behaviorModelRequired within parentExpand Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings trial settings Settings related to subscription trials end behavior end behavior

Referenced models: Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings trial settings Settings related to subscription trials end behavior end behavior

Create a payment link — response body — subscription data value description, invoice settings, metadata, trial period days, trial settings trial settings Settings related to subscription trials end behavior end behavior

FieldTypePresenceDescription and constraints
$objectRootDefines how a subscription behaves when a free trial ends.
missing_payment_methodstringRequired within parentIndicates how the subscription should change when the trial ends if the user did not provide a payment method.
Known values: cancel, create_invoice, pause

Create a payment link — response body — tax id collection

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIndicates whether tax ID collection is enabled for the session.
requiredstringRequired within parentKnown values: if_supported, never

Create a payment link — response body — transfer data value amount, destination

FieldTypePresenceDescription and constraints
$objectRoot
amountJSONOptional
amount (anyOf 1)JSONAlternative
amount (anyOf 1) (anyOf 1)integerAlternativeThe amount in cents (or local equivalent) that will be transferred to the destination account. By default, the entire amount is transferred to the destination.
amount (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount (anyOf 2)nullAlternative
destinationJSONRequired within parentThe connected account receiving the transfer.
destination (anyOf 1)stringAlternativeMaximum length: 5000
destination (anyOf 2)ModelAlternativeExpand Create an account — response body

Referenced models: Create an account — response body

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.