Introduction
    Authentication
    Connected Accounts
    Errors
    Expanding Responses
    Idempotent requests
    Include-dependent response values (API v2)
    Metadata
    Pagination
    Request IDs
    Versioning
Core Resources
    Balance
    Balance Transactions
    Charges
    Customers
    Customer Session
    Disputes
    Events
    Eventsv2
    Event Destinationsv2
    Files
    File Links
    Mandates
    Payment Intents
    Setup Intents
    Setup Attempts
    Payouts
    Refunds
    Confirmation Token
    Tokens
Payment Methods
    Payment Methods
    Payment Method Configurations
    Payment Method Domains
    Bank Accounts
    Cash Balance
    Cash Balance Transaction
    Cards
    Sources
Products
    Products
    Prices
    Coupons
    Promotion Code
    Discounts
    Tax Code
    Tax Rate
    Shipping Rates
Checkout
    Checkout Sessions
Payment Links
    Payment Link
    The Payment Link objectCreate a payment linkUpdate a payment linkRetrieve a payment link's line itemsRetrieve payment linkList all payment links
Billing
    Credit Note
    Customer Balance Transaction
    Customer Portal Session
    Customer Portal Configuration
    Invoices
    Invoice Items
    Invoice Line Item
    Invoice Payment
    Invoice Rendering Templates
    Billing Intentsv2
    Alerts
    Meters
    Meter Events
    Meter Eventsv2
    Meter Event Adjustment
    Meter Event Adjustmentsv2
    Meter Event Streamsv2
    Meter Event Summary
    Credit Grant
    Credit Balance Summary
    Credit Balance Transaction
    Plans
    License Fee Subscriptionsv2
    Quote
    Subscriptions
    Subscription Items
    Subscription Schedule
    Tax IDs
    Test Clocks
Capital
    Financing Offer
    Financing Summary
Connect
    Accounts
    Login Links
    Account Links
    Account Session
    Application Fees
    Application Fee Refunds
    Capabilities
    Country Specs
    External Bank Accounts
    External Account Cards
    Person
    Top-ups
    Transfers
    Transfer Reversals
    Secrets
Reserves
    Overview
    Reserve Holds
    Reserve Plans
    Reserve Releases
Fraud
    Early Fraud Warning
    Reviews
    Value Lists
    Value List Items
Issuing
    Authorizations
    Cardholders
    Cards
    Disputes
    Funding Instructions
    Personalization Designs
    Physical Bundles
    Tokens
    Transactions
Terminal
    Connection Token
    Location
    Reader
    Terminal Hardware Order
    Terminal Hardware Product
    Terminal Hardware SKU
    Terminal Hardware Shipping Method
    Configuration
Treasury
    Financial Accounts
    Financial Account Features
    Transactions
    Transaction Entries
    Outbound Transfers
    Outbound Payments
    Inbound Transfers
    Received Credits
    Received Debits
    Credit Reversals
    Debit Reversals
Entitlements
    Feature
    Product Feature
    Active Entitlement
Sigma
    Scheduled Queries
    Query Run
Reporting
    Report Runs
    Report Types
    Report Runsv2
    Reportsv2
Financial Connections
    Accounts
    Account Owner
    Session
    Transactions
Tax
    Tax Calculations
    Tax Registrations
    Tax Transactions
    Tax Settings
Identity
    Verification Session
    Verification Report
Crypto
    Crypto Onramp Session
    Crypto Onramp Quotes
Climate
    Climate Order
    Climate Product
    Climate Supplier
Forwarding
    Forwarding Request
Privacy
    Redaction Job
    Redaction Job Validation Error
Webhooks
    Webhook Endpoints
  • 2025-08-27.basil
  • API Reference
  • Docs
  • Support
  • Sign in →

The Payment Link object 

Payment Links
Payment Link
The Payment Link object

Attributes

  • idstring

    Unique identifier for the object.

  • activeboolean

    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.

  • line_itemsobjectExpandable

    The line items representing what is being sold.

    • line_items.objectstring

      String representing the object’s type. Objects of the same type share the same value. Always has the value list.

    • line_items.dataarray of objects

      Details about each object.

      • line_items.data.idstring

        Unique identifier for the object.

      • line_items.data.objectstring

        String representing the object’s type. Objects of the same type share the same value.

      • line_items.data.amount_discountinteger

        Total discount amount applied. If no discounts were applied, defaults to 0.

      • line_items.data.amount_subtotalinteger

        Total before any discounts or taxes are applied.

      • line_items.data.amount_taxinteger

        Total tax amount applied. If no tax was applied, defaults to 0.

      • line_items.data.amount_totalinteger

        Total after discounts and taxes.

      • line_items.data.currencyenum

        Three-letter ISO currency code, in lowercase. Must be a supported currency.

      • line_items.data.descriptionnullable string

        An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.

      • line_items.data.discountsnullable array of objectsExpandable

        The discounts applied to the line item.

        • line_items.data.discounts.amountinteger

          The amount discounted.

        • line_items.data.discounts.discountobject

          The discount applied.

          • line_items.data.discounts.discount.idstring

            The ID of the discount object. Discounts cannot be fetched by ID. Use expand[]=discounts in API calls to expand discount IDs in an array.

          • line_items.data.discounts.discount.objectstring

            String representing the object’s type. Objects of the same type share the same value.

          • line_items.data.discounts.discount.checkout_sessionnullable string

            The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.

          • line_items.data.discounts.discount.couponobject

            Hash describing the coupon applied to create this discount.

            • line_items.data.discounts.discount.coupon.idstring

              Unique identifier for the object.

            • line_items.data.discounts.discount.coupon.objectstring

              String representing the object’s type. Objects of the same type share the same value.

            • line_items.data.discounts.discount.coupon.amount_offnullable integer

              Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer.

            • line_items.data.discounts.discount.coupon.applies_tonullable objectExpandable

              Contains information about what this coupon applies to.

              • line_items.data.discounts.discount.coupon.applies_to.productsarray of strings

                A list of product IDs this coupon applies to

            • line_items.data.discounts.discount.coupon.createdtimestamp

              Time at which the object was created. Measured in seconds since the Unix epoch.

            • line_items.data.discounts.discount.coupon.currencynullable enum

              If amount_off has been set, the three-letter ISO code for the currency of the amount to take off.

            • line_items.data.discounts.discount.coupon.currency_optionsnullable objectExpandable

              Coupons defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.

              • line_items.data.discounts.discount.coupon.currency_options.<currency>.amount_offinteger

                Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer.

            • line_items.data.discounts.discount.coupon.durationenum

              One of forever, once, or repeating. Describes how long a customer who applies this coupon will get the discount.

              Possible enum values
              forever

              Applies to all charges from a subscription with this coupon applied.

              once

              Applies to the first charge from a subscription with this coupon applied.

              repeating

              Applies to charges in the first duration_in_months months from a subscription with this coupon applied. This value is deprecated and will be replaced in future versions of the API.

            • line_items.data.discounts.discount.coupon.duration_in_monthsnullable integerDeprecated

              If duration is repeating, the number of months the coupon applies. Null if coupon duration is forever or once.

            • line_items.data.discounts.discount.coupon.livemodeboolean

              Has the value true if the object exists in live mode or the value false if the object exists in test mode.

            • line_items.data.discounts.discount.coupon.max_redemptionsnullable integer

              Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.

            • line_items.data.discounts.discount.coupon.metadatanullable object

              Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

            • line_items.data.discounts.discount.coupon.namenullable string

              Name of the coupon displayed to customers on for instance invoices or receipts.

            • line_items.data.discounts.discount.coupon.percent_offnullable float

              Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $100 invoice $50 instead.

            • line_items.data.discounts.discount.coupon.redeem_bynullable timestamp

              Date after which the coupon can no longer be redeemed.

            • line_items.data.discounts.discount.coupon.times_redeemedinteger

              Number of times this coupon has been applied to a customer.

            • line_items.data.discounts.discount.coupon.validboolean

              Taking account of the above properties, whether this coupon can still be applied to a customer.

          • line_items.data.discounts.discount.customernullable stringExpandable

            The ID of the customer associated with this discount.

          • line_items.data.discounts.discount.endnullable timestamp

            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.

          • line_items.data.discounts.discount.invoicenullable string

            The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice.

          • line_items.data.discounts.discount.invoice_itemnullable string

            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.

          • line_items.data.discounts.discount.promotion_codenullable stringExpandable

            The promotion code applied to create this discount.

          • line_items.data.discounts.discount.starttimestamp

            Date that the coupon was applied.

          • line_items.data.discounts.discount.subscriptionnullable string

            The subscription that this coupon is applied to, if it is applied to a particular subscription.

          • line_items.data.discounts.discount.subscription_itemnullable string

            The subscription item that this coupon is applied to, if it is applied to a particular subscription item.

      • line_items.data.pricenullable object

        The price used to generate the line item.

        • line_items.data.price.idstring

          Unique identifier for the object.

        • line_items.data.price.objectstring

          String representing the object’s type. Objects of the same type share the same value.

        • line_items.data.price.activeboolean

          Whether the price can be used for new purchases.

        • line_items.data.price.billing_schemeenum

          Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.

          Possible enum values
          per_unit
          tiered
        • line_items.data.price.createdtimestamp

          Time at which the object was created. Measured in seconds since the Unix epoch.

        • line_items.data.price.currencyenum

          Three-letter ISO currency code, in lowercase. Must be a supported currency.

        • line_items.data.price.currency_optionsnullable objectExpandable

          Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.

          • line_items.data.price.currency_options.<currency>.custom_unit_amountnullable object

            When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.

            • line_items.data.price.currency_options.<currency>.custom_unit_amount.maximumnullable integer

              The maximum unit amount the customer can specify for this item.

            • line_items.data.price.currency_options.<currency>.custom_unit_amount.minimumnullable integer

              The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.

            • line_items.data.price.currency_options.<currency>.custom_unit_amount.presetnullable integer

              The starting unit amount which can be updated by the customer.

          • line_items.data.price.currency_options.<currency>.tax_behaviornullable enum

            Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of inclusive, exclusive, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed.

            Possible enum values
            exclusive
            inclusive
            unspecified
          • line_items.data.price.currency_options.<currency>.tiersnullable array of objectsExpandable

            Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

            • line_items.data.price.currency_options.<currency>.tiers.flat_amountnullable integer

              Price for the entire tier.

            • line_items.data.price.currency_options.<currency>.tiers.flat_amount_decimalnullable decimal string

              Same as flat_amount, but contains a decimal value with at most 12 decimal places.

            • line_items.data.price.currency_options.<currency>.tiers.unit_amountnullable integer

              Per unit price for units relevant to the tier.

            • line_items.data.price.currency_options.<currency>.tiers.unit_amount_decimalnullable decimal string

              Same as unit_amount, but contains a decimal value with at most 12 decimal places.

            • line_items.data.price.currency_options.<currency>.tiers.up_tonullable integer

              Up to and including to this quantity will be contained in the tier.

          • line_items.data.price.currency_options.<currency>.unit_amountnullable integer

            The unit amount in cents to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.

          • line_items.data.price.currency_options.<currency>.unit_amount_decimalnullable decimal string

            The unit amount in cents to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.

        • line_items.data.price.custom_unit_amountnullable object

          When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.

          • line_items.data.price.custom_unit_amount.maximumnullable integer

            The maximum unit amount the customer can specify for this item.

          • line_items.data.price.custom_unit_amount.minimumnullable integer

            The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.

          • line_items.data.price.custom_unit_amount.presetnullable integer

            The starting unit amount which can be updated by the customer.

        • line_items.data.price.livemodeboolean

          Has the value true if the object exists in live mode or the value false if the object exists in test mode.

        • line_items.data.price.lookup_keynullable string

          A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.

        • line_items.data.price.metadataobject

          Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

        • line_items.data.price.nicknamenullable string

          A brief description of the price, hidden from customers.

        • line_items.data.price.productstringExpandable

          The ID of the product this price is associated with.

        • line_items.data.price.recurringnullable object

          The recurring components of a price such as interval and usage_type.

          • line_items.data.price.recurring.intervalenum

            The frequency at which a subscription is billed. One of day, week, month or year.

          • line_items.data.price.recurring.interval_countinteger

            The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.

          • line_items.data.price.recurring.meternullable string

            The meter tracking the usage of a metered price

          • line_items.data.price.recurring.usage_typeenum

            Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.

        • line_items.data.price.tax_behaviornullable enum

          Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of inclusive, exclusive, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed.

          Possible enum values
          exclusive
          inclusive
          unspecified
        • line_items.data.price.tiersnullable array of objectsExpandable

          Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

          • line_items.data.price.tiers.flat_amountnullable integer

            Price for the entire tier.

          • line_items.data.price.tiers.flat_amount_decimalnullable decimal string

            Same as flat_amount, but contains a decimal value with at most 12 decimal places.

          • line_items.data.price.tiers.unit_amountnullable integer

            Per unit price for units relevant to the tier.

          • line_items.data.price.tiers.unit_amount_decimalnullable decimal string

            Same as unit_amount, but contains a decimal value with at most 12 decimal places.

          • line_items.data.price.tiers.up_tonullable integer

            Up to and including to this quantity will be contained in the tier.

        • line_items.data.price.tiers_modenullable enum

          Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.

          Possible enum values
          graduated
          volume
        • line_items.data.price.transform_quantitynullable object

          Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.

          • line_items.data.price.transform_quantity.divide_byinteger

            Divide usage by this number.

          • line_items.data.price.transform_quantity.roundenum

            After division, either round the result up or down.

        • line_items.data.price.typeenum

          One of one_time or recurring depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.

          Possible enum values
          one_time
          recurring
        • line_items.data.price.unit_amountnullable integer

          The unit amount in cents to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.

        • line_items.data.price.unit_amount_decimalnullable decimal string

          The unit amount in cents to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.

      • line_items.data.quantitynullable integer

        The quantity of products being purchased.

      • line_items.data.taxesnullable array of objectsExpandable

        The taxes applied to the line item.

        • line_items.data.taxes.amountinteger

          Amount of tax applied for this rate.

        • line_items.data.taxes.rateobject

          The tax rate applied.

          • line_items.data.taxes.rate.idstring

            Unique identifier for the object.

          • line_items.data.taxes.rate.objectstring

            String representing the object’s type. Objects of the same type share the same value.

          • line_items.data.taxes.rate.activeboolean

            Defaults to true. When set to false, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.

          • line_items.data.taxes.rate.countrynullable string

            Two-letter country code (ISO 3166-1 alpha-2).

          • line_items.data.taxes.rate.createdtimestamp

            Time at which the object was created. Measured in seconds since the Unix epoch.

          • line_items.data.taxes.rate.descriptionnullable string

            An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.

          • line_items.data.taxes.rate.display_namestring

            The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.

          • line_items.data.taxes.rate.effective_percentagenullable float

            Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.

          • line_items.data.taxes.rate.flat_amountnullable object

            The amount of the tax rate when the rate_type is flat_amount. Tax rates with rate_type percentage can vary based on the transaction, resulting in this field being null. This field exposes the amount and currency of the flat tax rate.

            • line_items.data.taxes.rate.flat_amount.amountinteger

              Amount of the tax when the rate_type is flat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

            • line_items.data.taxes.rate.flat_amount.currencystring

              Three-letter ISO currency code, in lowercase.

          • line_items.data.taxes.rate.inclusiveboolean

            This specifies if the tax rate is inclusive or exclusive.

          • line_items.data.taxes.rate.jurisdictionnullable string

            The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.

          • line_items.data.taxes.rate.jurisdiction_levelnullable enum

            The level of the jurisdiction that imposes this tax rate. Will be null for manually defined tax rates.

            Possible enum values
            city
            country
            county
            district
            multiple
            state
          • line_items.data.taxes.rate.livemodeboolean

            Has the value true if the object exists in live mode or the value false if the object exists in test mode.

          • line_items.data.taxes.rate.metadatanullable object

            Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

          • line_items.data.taxes.rate.percentagefloat

            Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.

          • line_items.data.taxes.rate.rate_typenullable enum

            Indicates the type of tax rate applied to the taxable amount. This value can be null when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax.

            Possible enum values
            flat_amount

            A fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.

            percentage

            A tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.

          • line_items.data.taxes.rate.statenullable string

            ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.

          • line_items.data.taxes.rate.tax_typenullable enum

            The high-level tax type, such as vat or sales_tax.

            Possible enum values
            amusement_tax

            Amusement Tax

            communications_tax

            Communications Tax

            gst

            Goods and Services Tax

            hst

            Harmonized Sales Tax

            igst

            Integrated Goods and Services Tax

            jct

            Japanese Consumption Tax

            lease_tax

            Chicago Lease Tax

            pst

            Provincial Sales Tax

            qst

            Quebec Sales Tax

            retail_delivery_fee

            Retail Delivery Fee

            Show 4 more
        • line_items.data.taxes.taxability_reasonnullable enum

          The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.

          Possible enum values
          customer_exempt

          No tax is applied as the customer is exempt from tax.

          not_collecting

          No tax is collected either because you are not registered to collect tax in this jurisdiction, or because the non-taxable product tax code (txcd_00000000) was used.

          not_subject_to_tax

          No tax is imposed on this transaction.

          not_supported

          No tax applied. Stripe doesn’t support this jurisdiction, territory, or product.

          portion_product_exempt

          A portion of the price is exempt from tax.

          portion_reduced_rated

          A portion of the price is taxed at a reduced rate.

          portion_standard_rated

          A portion of the price is taxed at the standard rate.

          product_exempt

          The product or service is nontaxable or exempt from tax.

          product_exempt_holiday

          The product or service is not taxed due to a sales tax holiday.

          proportionally_rated

          The shipping cost tax rate is calculated as a weighted average of the other line items’ rates, weighted by their amounts.

          Show 5 more
        • line_items.data.taxes.taxable_amountnullable integer

          The amount on which tax is calculated, in cents.

    • line_items.has_moreboolean

      True if this list has another page of items after this one that can be fetched.

    • line_items.urlstring

      The URL where this list can be accessed.

  • metadataobject

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

  • urlstring

    The public URL that can be shared with customers.

More attributes

  • objectstring

    String representing the object’s type. Objects of the same type share the same value.

  • after_completionobject

    Behavior after the purchase is complete.

    • after_completion.hosted_confirmationnullable object

      Configuration when type=hosted_confirmation.

      • after_completion.hosted_confirmation.custom_messagenullable string

        The custom message that is displayed to the customer after the purchase is complete.

    • after_completion.redirectnullable object

      Configuration when type=redirect.

      • after_completion.redirect.urlstring

        The URL the customer will be redirected to after the purchase is complete.

    • after_completion.typeenum

      The specified behavior after the purchase is complete.

      Possible enum values
      hosted_confirmation

      Displays a message on the hosted surface after the purchase is complete.

      redirect

      Redirects the customer to the specified url after the purchase is complete.

  • allow_promotion_codesboolean

    Whether user redeemable promotion codes are enabled.

  • applicationnullable stringExpandableConnect only

    The ID of the Connect application that created the Payment Link.

  • application_fee_amountnullable integerConnect only

    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.

  • application_fee_percentnullable floatConnect only

    This represents the percentage of the subscription invoice total that will be transferred to the application owner’s Stripe account.

  • automatic_taxobject

    Configuration details for automatic tax collection.

    • automatic_tax.enabledboolean

      If true, tax will be calculated automatically using the customer’s location.

    • automatic_tax.liabilitynullable objectConnect only

      The 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.

      • automatic_tax.liability.accountnullable stringExpandable

        The connected account being referenced when type is account.

      • automatic_tax.liability.typeenum

        Type of the account referenced.

        Possible enum values
        account

        Indicates that the account being referenced is a connected account which is different from the account making the API request but related to it.

        self

        Indicates that the account being referenced is the account making the API request.

  • billing_address_collectionenum

    Configuration for collecting the customer’s billing address. Defaults to auto.

    Possible enum values
    auto

    Checkout will only collect the billing address when necessary. When using automatic_tax, Checkout will collect the minimum number of fields required for tax calculation.

    required

    Checkout will always collect the customer’s billing address.

  • consent_collectionnullable object

    When set, provides configuration to gather active consent from customers.

    • consent_collection.payment_method_reuse_agreementnullable object

      Settings related to the payment method reuse text shown in the Checkout UI.

      • consent_collection.payment_method_reuse_agreement.positionenum

        Determines 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.

        Possible enum values
        auto
        hidden
    • consent_collection.promotionsnullable enum

      If set to auto, enables the collection of customer consent for promotional communications.

      Possible enum values
      auto
      none
    • consent_collection.terms_of_servicenullable enum

      If 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.

      Possible enum values
      none
      required
  • currencyenum

    Three-letter ISO currency code, in lowercase. Must be a supported currency.

  • custom_fieldsarray of objects

    Collect additional information from your customer using custom fields. Up to 3 fields are supported.

    • custom_fields.dropdownnullable object

      Configuration for type=dropdown fields.

      • custom_fields.dropdown.default_valuenullable string

        The value that will pre-fill on the payment page.

      • custom_fields.dropdown.optionsarray of objects

        The options available for the customer to select. Up to 200 options allowed.

        • custom_fields.dropdown.options.labelstring

          The label for the option, displayed to the customer. Up to 100 characters.

        • custom_fields.dropdown.options.valuestring

          The 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.

    • custom_fields.keystring

      String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters.

    • custom_fields.labelobject

      The label for the field, displayed to the customer.

      • custom_fields.label.customnullable string

        Custom text for the label, displayed to the customer. Up to 50 characters.

      • custom_fields.label.typeenum

        The type of the label.

        Possible enum values
        custom

        Set a custom label for the field.

    • custom_fields.numericnullable object

      Configuration for type=numeric fields.

      • custom_fields.numeric.default_valuenullable string

        The value that will pre-fill the field on the payment page.

      • custom_fields.numeric.maximum_lengthnullable integer

        The maximum character length constraint for the customer’s input.

      • custom_fields.numeric.minimum_lengthnullable integer

        The minimum character length requirement for the customer’s input.

    • custom_fields.optionalboolean

      Whether the customer is required to complete the field before completing the Checkout Session. Defaults to false.

    • custom_fields.textnullable object

      Configuration for type=text fields.

      • custom_fields.text.default_valuenullable string

        The value that will pre-fill the field on the payment page.

      • custom_fields.text.maximum_lengthnullable integer

        The maximum character length constraint for the customer’s input.

      • custom_fields.text.minimum_lengthnullable integer

        The minimum character length requirement for the customer’s input.

    • custom_fields.typeenum

      The type of the field.

      Possible enum values
      dropdown

      Provide a list of options for your customer to select.

      numeric

      Collect a numbers-only field from your customer.

      text

      Collect a string field from your customer.

  • custom_textobject

    Display additional text for your customers using custom text.

    • custom_text.after_submitnullable object

      Custom text that should be displayed after the payment confirmation button.

      • custom_text.after_submit.messagestring

        Text may be up to 1200 characters in length.

    • custom_text.shipping_addressnullable object

      Custom text that should be displayed alongside shipping address collection.

      • custom_text.shipping_address.messagestring

        Text may be up to 1200 characters in length.

    • custom_text.submitnullable object

      Custom text that should be displayed alongside the payment confirmation button.

      • custom_text.submit.messagestring

        Text may be up to 1200 characters in length.

    • custom_text.terms_of_service_acceptancenullable object

      Custom text that should be displayed in place of the default terms of service agreement text.

      • custom_text.terms_of_service_acceptance.messagestring

        Text may be up to 1200 characters in length.

  • customer_creationenum

    Configuration for Customer creation during checkout.

    Possible enum values
    always

    The Checkout Session will always create a Customer when a Session confirmation is attempted.

    if_required

    The Checkout Session will only create a Customer if it is required for Session confirmation. Currently, only subscription mode Sessions and payment mode Sessions with post-purchase invoices enabled require a Customer.

  • inactive_messagenullable string

    The custom message to be displayed to a customer when a payment link is no longer active.

  • invoice_creationnullable object

    Configuration for creating invoice for payment mode payment links.

    • invoice_creation.enabledboolean

      Enable creating an invoice on successful payment.

    • invoice_creation.invoice_datanullable object

      Configuration for the invoice. Default invoice values will be used if unspecified.

      • invoice_creation.invoice_data.account_tax_idsnullable array of stringsExpandable

        The account tax IDs associated with the invoice.

      • invoice_creation.invoice_data.custom_fieldsnullable array of objects

        A list of up to 4 custom fields to be displayed on the invoice.

        • invoice_creation.invoice_data.custom_fields.namestring

          The name of the custom field.

        • invoice_creation.invoice_data.custom_fields.valuestring

          The value of the custom field.

      • invoice_creation.invoice_data.descriptionnullable string

        An arbitrary string attached to the object. Often useful for displaying to users.

      • invoice_creation.invoice_data.footernullable string

        Footer to be displayed on the invoice.

      • invoice_creation.invoice_data.issuernullable objectConnect only

        The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.

        • invoice_creation.invoice_data.issuer.accountnullable stringExpandable

          The connected account being referenced when type is account.

        • invoice_creation.invoice_data.issuer.typeenum

          Type of the account referenced.

          Possible enum values
          account

          Indicates that the account being referenced is a connected account which is different from the account making the API request but related to it.

          self

          Indicates that the account being referenced is the account making the API request.

      • invoice_creation.invoice_data.metadatanullable object

        Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

      • invoice_creation.invoice_data.rendering_optionsnullable object

        Options for invoice PDF rendering.

        • invoice_creation.invoice_data.rendering_options.amount_tax_displaynullable string

          How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.

        • invoice_creation.invoice_data.rendering_options.templatenullable string

          ID of the invoice rendering template to be used for the generated invoice.

  • livemodeboolean

    Has the value true if the object exists in live mode or the value false if the object exists in test mode.

  • on_behalf_ofnullable stringExpandableConnect only

    The account on behalf of which to charge. See the Connect documentation for details.

  • optional_itemsnullable array of objectsExpandable

    The optional items presented to the customer at checkout.

  • payment_intent_datanullable object

    Indicates the parameters to be passed to PaymentIntent creation during checkout.

    • payment_intent_data.capture_methodnullable enum

      Indicates when the funds will be captured from the customer’s account.

      Possible enum values
      automatic

      Stripe automatically captures funds when the customer authorizes the payment.

      automatic_async

      (Default) Stripe asynchronously captures funds when the customer authorizes the payment. Recommended over capture_method=automatic due to improved latency. Read the integration guide for more information.

      manual

      Place a hold on the funds when the customer authorizes the payment, but don’t capture the funds until later. (Not all payment methods support this.)

    • payment_intent_data.descriptionnullable string

      An arbitrary string attached to the object. Often useful for displaying to users.

    • payment_intent_data.metadataobject

      Set of key-value pairs that will set metadata on Payment Intents generated from this payment link.

    • payment_intent_data.setup_future_usagenullable enum

      Indicates that you intend to make future payments with the payment method collected during checkout.

      Possible enum values
      off_session

      Use off_session if your customer may or may not be present in your checkout flow.

      on_session

      Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

    • payment_intent_data.statement_descriptornullable string

      For a non-card payment, information about the charge that appears on the customer’s statement when this payment succeeds in creating a charge.

    • payment_intent_data.statement_descriptor_suffixnullable string

      For 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.

    • payment_intent_data.transfer_groupnullable stringConnect only

      A string that identifies the resulting payment as part of a group. See the PaymentIntents use case for connected accounts for details.

  • payment_method_collectionenum

    Configuration for collecting a payment method during checkout. Defaults to always.

    Possible enum values
    always

    The Checkout Session will always collect a PaymentMethod.

    if_required

    The Checkout Session will only collect a PaymentMethod if there is an amount due.

  • payment_method_typesnullable array of enums

    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.

  • phone_number_collectionobject

    Controls phone number collection settings during checkout.

    • phone_number_collection.enabledboolean

      If true, a phone number will be collected during checkout.

  • restrictionsnullable object

    Settings that restrict the usage of a payment link.

    • restrictions.completed_sessionsobject

      Configuration for the completed_sessions restriction type.

      • restrictions.completed_sessions.countinteger

        The current number of checkout sessions that have been completed on the payment link which count towards the completed_sessions restriction to be met.

      • restrictions.completed_sessions.limitinteger

        The maximum number of checkout sessions that can be completed for the completed_sessions restriction to be met.

  • shipping_address_collectionnullable object

    Configuration for collecting the customer’s shipping address.

    • shipping_address_collection.allowed_countriesarray of enums

      An 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.

      Possible enum values
      AC
      AD
      AE
      AF
      AG
      AI
      AL
      AM
      AO
      AQ
      Show 228 more
  • shipping_optionsarray of objects

    The shipping rate options applied to the session.

    • shipping_options.shipping_amountinteger

      A non-negative integer in cents representing how much to charge.

    • shipping_options.shipping_ratestringExpandable

      The ID of the Shipping Rate to use for this shipping option.

  • submit_typeenum

    Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button.

    Possible enum values
    auto

    Default value. pay will used in all scenarios

    book

    Recommended when offering bookings. Submit button includes a ‘Book’ label and URLs use the book.stripe.com hostname

    donate

    Recommended when accepting donations. Submit button includes a ‘Donate’ label and URLs use the donate.stripe.com hostname

    pay

    Submit button includes a ‘Buy’ label and URLs use the buy.stripe.com hostname

    subscribe

    Submit button includes a ‘Subscribe’ label and URLs use the buy.stripe.com hostname

  • subscription_datanullable object

    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.

    • subscription_data.descriptionnullable string

      The 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.

    • subscription_data.invoice_settingsobject

      All invoices will be billed using the specified settings.

      • subscription_data.invoice_settings.issuerobjectConnect only

        The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.

        • subscription_data.invoice_settings.issuer.accountnullable stringExpandable

          The connected account being referenced when type is account.

        • subscription_data.invoice_settings.issuer.typeenum

          Type of the account referenced.

          Possible enum values
          account

          Indicates that the account being referenced is a connected account which is different from the account making the API request but related to it.

          self

          Indicates that the account being referenced is the account making the API request.

    • subscription_data.metadataobject

      Set of key-value pairs that will set metadata on Subscriptions generated from this payment link.

    • subscription_data.trial_period_daysnullable integer

      Integer representing the number of trial period days before the customer is charged for the first time.

    • subscription_data.trial_settingsnullable object

      Settings related to subscription trials.

      • subscription_data.trial_settings.end_behaviorobject

        Defines how the subscription should behave when the user’s free trial ends.

        • subscription_data.trial_settings.end_behavior.missing_payment_methodenum

          Indicates how the subscription should change when the trial ends if the user did not provide a payment method.

          Possible enum values
          cancel

          Cancel the subscription if a payment method is not attached when the trial ends.

          create_invoice

          Create an invoice when the trial ends, even if the user did not set up a payment method.

          pause

          Pause the subscription if a payment method is not attached when the trial ends.

  • tax_id_collectionobject

    Details on the state of tax ID collection for the payment link.

    • tax_id_collection.enabledboolean

      Indicates whether tax ID collection is enabled for the session.

  • transfer_datanullable objectConnect only

    The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to.

    • transfer_data.amountnullable integer

      The amount in cents that will be transferred to the destination account. By default, the entire amount is transferred to the destination.

    • transfer_data.destinationstringExpandable

      The connected account receiving the transfer.

The Payment Link object
{
"id": "plink_1MoC3ULkdIwHu7ixZjtGpVl2",
"object": "payment_link",
"active": true,
"after_completion": {
"hosted_confirmation": {
"custom_message": null
},
"type": "hosted_confirmation"
},
"allow_promotion_codes": false,
"application_fee_amount": null,
"application_fee_percent": null,
"automatic_tax": {
"enabled": false,
"liability": null
},
"billing_address_collection": "auto",
"consent_collection": null,
"currency": "usd",
"custom_fields": [],
"custom_text": {
"shipping_address": null,
"submit": null
},
"customer_creation": "if_required",
"invoice_creation": {
"enabled": false,
"invoice_data": {
"account_tax_ids": null,
"custom_fields": null,
"description": null,
"footer": null,
"issuer": null,
"metadata": {},
"rendering_options": null
}
},
"livemode": false,
"metadata": {},
"on_behalf_of": null,
"payment_intent_data": null,
"payment_method_collection": "always",
"payment_method_types": null,
"phone_number_collection": {
"enabled": false
},
"shipping_address_collection": null,
"shipping_options": [],
"submit_type": "auto",
"subscription_data": {
"description": null,
"invoice_settings": {
"issuer": {
"type": "self"
}
},
"trial_period_days": null
},
"tax_id_collection": {
"enabled": false
},
"transfer_data": null,
"url": "https://buy.stripe.com/test_cN25nr0iZ7bUa7meUY"
}