{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-payment-link-schema.json", "title": "PaymentLink", "description": "A 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.\n\nWhen a customer opens a payment link it will open a new [checkout session](https://stripe.com/docs/api/checkout/sessions) to render the payment page. You can use [checkout session events](https://stripe.com/docs/api/events/types#event_types-checkout.session.completed) to track payments through payment links.\n\nRelated guide: [Payment Links API](https://stripe.com/docs/payment-links)", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/stripe-payment-links-api-openapi.yml#/components/schemas/payment_link", "properties": { "active": { "description": "Whether 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.", "type": "boolean" }, "after_completion": { "$ref": "#/$defs/payment_links_resource_after_completion" }, "allow_promotion_codes": { "description": "Whether user redeemable promotion codes are enabled.", "type": "boolean" }, "application": { "anyOf": [ { "maxLength": 5000, "type": "string" }, { "$ref": "#/$defs/application" }, { "$ref": "#/$defs/deleted_application" } ], "description": "The ID of the Connect application that created the Payment Link.", "x-expansionResources": { "oneOf": [ { "$ref": "#/$defs/application" }, { "$ref": "#/$defs/deleted_application" } ] } }, "application_fee_amount": { "description": "The 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.", "type": [ "integer", "null" ] }, "application_fee_percent": { "description": "This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account.", "type": [ "number", "null" ] }, "automatic_tax": { "$ref": "#/$defs/payment_links_resource_automatic_tax" }, "billing_address_collection": { "description": "Configuration for collecting the customer's billing address.", "enum": [ "auto", "required" ], "type": "string" }, "consent_collection": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_consent_collection" } ], "description": "When set, provides configuration to gather active consent from customers." }, "currency": { "description": "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).", "type": "string" }, "custom_fields": { "description": "Collect additional information from your customer using custom fields. Up to 2 fields are supported.", "items": { "$ref": "#/$defs/payment_links_resource_custom_fields" }, "type": "array" }, "custom_text": { "$ref": "#/$defs/payment_links_resource_custom_text" }, "customer_creation": { "description": "Configuration for Customer creation during checkout.", "enum": [ "always", "if_required" ], "type": "string" }, "id": { "description": "Unique identifier for the object.", "maxLength": 5000, "type": "string" }, "inactive_message": { "description": "The custom message to be displayed to a customer when a payment link is no longer active.", "maxLength": 5000, "type": [ "string", "null" ] }, "invoice_creation": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_invoice_creation" } ], "description": "Configuration for creating invoice for payment mode payment links." }, "line_items": { "description": "The line items representing what is being sold.", "properties": { "data": { "description": "Details about each object.", "items": { "$ref": "#/$defs/item" }, "type": "array" }, "has_more": { "description": "True if this list has another page of items after this one that can be fetched.", "type": "boolean" }, "object": { "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", "enum": [ "list" ], "type": "string" }, "url": { "description": "The URL where this list can be accessed.", "maxLength": 5000, "type": "string" } }, "required": [ "data", "has_more", "object", "url" ], "title": "PaymentLinksResourceListLineItems", "type": "object", "x-expandableFields": [ "data" ] }, "livemode": { "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", "type": "boolean" }, "metadata": { "additionalProperties": { "maxLength": 500, "type": "string" }, "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "type": "object" }, "object": { "description": "String representing the object's type. Objects of the same type share the same value.", "enum": [ "payment_link" ], "type": "string" }, "on_behalf_of": { "anyOf": [ { "maxLength": 5000, "type": "string" }, { "$ref": "#/$defs/account" } ], "description": "The 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.", "x-expansionResources": { "oneOf": [ { "$ref": "#/$defs/account" } ] } }, "payment_intent_data": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_payment_intent_data" } ], "description": "Indicates the parameters to be passed to PaymentIntent creation during checkout." }, "payment_method_collection": { "description": "Configuration for collecting a payment method during checkout.", "enum": [ "always", "if_required" ], "type": "string" }, "payment_method_types": { "description": "The 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).", "items": { "enum": [ "affirm", "afterpay_clearpay", "alipay", "au_becs_debit", "bacs_debit", "bancontact", "blik", "boleto", "card", "cashapp", "eps", "fpx", "giropay", "grabpay", "ideal", "klarna", "konbini", "link", "oxxo", "p24", "paynow", "paypal", "pix", "promptpay", "sepa_debit", "sofort", "us_bank_account", "wechat_pay" ], "type": "string", "x-stripeBypassValidation": true }, "type": [ "array", "null" ] }, "phone_number_collection": { "$ref": "#/$defs/payment_links_resource_phone_number_collection" }, "restrictions": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_restrictions" } ], "description": "Settings that restrict the usage of a payment link." }, "shipping_address_collection": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_shipping_address_collection" } ], "description": "Configuration for collecting the customer's shipping address." }, "shipping_options": { "description": "The shipping rate options applied to the session.", "items": { "$ref": "#/$defs/payment_links_resource_shipping_option" }, "type": "array" }, "submit_type": { "description": "Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button.", "enum": [ "auto", "book", "donate", "pay" ], "type": "string" }, "subscription_data": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_subscription_data" } ], "description": "When 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`." }, "tax_id_collection": { "$ref": "#/$defs/payment_links_resource_tax_id_collection" }, "transfer_data": { "anyOf": [ { "$ref": "#/$defs/payment_links_resource_transfer_data" } ], "description": "The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to." }, "url": { "description": "The public URL that can be shared with customers.", "maxLength": 5000, "type": "string" } }, "required": [ "active", "after_completion", "allow_promotion_codes", "automatic_tax", "billing_address_collection", "currency", "custom_fields", "custom_text", "customer_creation", "id", "livemode", "metadata", "object", "payment_method_collection", "phone_number_collection", "shipping_options", "submit_type", "tax_id_collection", "url" ], "type": "object", "x-expandableFields": [ "after_completion", "application", "automatic_tax", "consent_collection", "custom_fields", "custom_text", "invoice_creation", "line_items", "on_behalf_of", "payment_intent_data", "phone_number_collection", "restrictions", "shipping_address_collection", "shipping_options", "subscription_data", "tax_id_collection", "transfer_data" ], "x-resourceId": "payment_link", "$defs": { "account": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "application": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "deleted_application": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "item": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_after_completion": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_automatic_tax": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_consent_collection": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_custom_fields": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_custom_text": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_invoice_creation": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_payment_intent_data": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_phone_number_collection": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_restrictions": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_shipping_address_collection": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_shipping_option": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_subscription_data": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_tax_id_collection": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "payment_links_resource_transfer_data": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true } } }