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
    FX Quotes
    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
    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
    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
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
  • Ruby SDK 15.4.0 • Basil
  • API Reference
  • Docs
  • Support
  • Sign in →

Create a payment link 

Payment Links
Payment Link
Create a payment link

Creates a payment link.

Parameters

  • line_itemsarray of hashesRequired

    The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported.

    • line_items.quantityintegerRequired

      The quantity of the line item being purchased.

    • line_items.adjustable_quantityhash

      When set, provides configuration for this item’s quantity to be adjusted by the customer during checkout.

      • line_items.adjustable_quantity.enabledbooleanRequired

        Set to true if the quantity can be adjusted to any non-negative Integer.

      • line_items.adjustable_quantity.maximuminteger

        The maximum quantity the customer can purchase. By default this value is 99. You can specify a value up to 999999.

      • line_items.adjustable_quantity.minimuminteger

        The minimum quantity the customer can purchase. By default this value is 0. If there is only one item in the cart then that item’s quantity cannot go down to 0.

    • line_items.pricestringRequired conditionally

      The ID of the Price or Plan object. One of price or price_data is required.

    • line_items.price_datahashRequired conditionally

      Data used to generate a new Price object inline. One of price or price_data is required.

      • line_items.price_data.currencyenumRequired

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

      • line_items.price_data.productstringRequired conditionally

        The ID of the Product that this Price will belong to. One of product or product_data is required.

      • line_items.price_data.product_datahashRequired conditionally

        Data used to generate a new Product object inline. One of product or product_data is required.

        • line_items.price_data.product_data.namestringRequired

          The product’s name, meant to be displayable to the customer.

        • line_items.price_data.product_data.descriptionstring

          The product’s description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.

        • line_items.price_data.product_data.imagesarray of strings

          A list of up to 8 URLs of images for this product, meant to be displayable to the customer.

        • line_items.price_data.product_data.metadatahash

          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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

        • line_items.price_data.product_data.tax_codestringRecommended if calculating taxes

          A tax code ID.

      • line_items.price_data.recurringhash

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

        • line_items.price_data.recurring.intervalenumRequired

          Specifies billing frequency. Either day, week, month or year.

          Possible enum values
          day
          month
          week
          year
        • line_items.price_data.recurring.interval_countinteger

          The number of intervals between subscription billings. For example, interval=month and interval_count=3 bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).

      • line_items.price_data.tax_behaviorenumRecommended if calculating taxes

        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.price_data.unit_amountintegerRequired conditionally

        A non-negative integer in cents representing how much to charge. One of unit_amount or unit_amount_decimal is required.

      • line_items.price_data.unit_amount_decimalstringRequired conditionally

        Same as unit_amount, but accepts a decimal value in cents with at most 12 decimal places. Only one of unit_amount and unit_amount_decimal can be set.

  • metadatahash

    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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata. Metadata associated with this Payment Link will automatically be copied to checkout sessions created by this payment link.

More parameters

  • after_completionhash

    Behavior after the purchase is complete.

    • after_completion.typeenumRequired

      The specified behavior after the purchase is complete. Either redirect or hosted_confirmation.

      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.

    • after_completion.hosted_confirmationhash

      Configuration when type=hosted_confirmation.

      • after_completion.hosted_confirmation.custom_messagestring

        A custom message to display to the customer after the purchase is complete.

    • after_completion.redirecthash

      Configuration when type=redirect.

      • after_completion.redirect.urlstringRequired

        The URL the customer will be redirected to after the purchase is complete. You can embed {CHECKOUT_SESSION_ID} into the URL to have the id of the completed checkout session included.

  • allow_promotion_codesboolean

    Enables user redeemable promotion codes.

  • application_fee_amountintegerConnect 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. Can only be applied when there are no line items with recurring prices.

  • application_fee_percentfloatConnect only

    A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner’s Stripe account. There must be at least 1 line item with a recurring price to use this field.

  • automatic_taxhash

    Configuration for automatic tax collection.

    • automatic_tax.enabledbooleanRequired

      Set to true to calculate tax automatically using the customer’s location.

      Enabling this parameter causes the payment link to collect any billing address information necessary for tax calculation.

    • automatic_tax.liabilityhashConnect 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.typeenumRequired

        Type of the account referenced in the request.

        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.

      • automatic_tax.liability.accountstringRequired only if type is account

        The connected account being referenced when type is account.

  • 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_collectionhash

    Configure fields to gather active consent from customers.

    • consent_collection.payment_method_reuse_agreementhash

      Determines the display of payment method reuse agreement text in the UI. If set to hidden, it will hide legal text related to the reuse of a payment method.

      • consent_collection.payment_method_reuse_agreement.positionenumRequired

        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

        Uses Stripe defaults to determine the visibility and position of the payment method reuse agreement.

        hidden

        Hides the payment method reuse agreement.

    • consent_collection.promotionsenum

      If set to auto, enables the collection of customer consent for promotional communications. The Checkout Session will determine whether to display an option to opt into promotional communication from the merchant depending on the customer’s locale. Only available to US merchants.

      Possible enum values
      auto

      Enable the collection of customer consent for promotional communications. The Checkout Session will determine whether to display an option to opt into promotional communication from the merchant depending on if a customer is provided, and if that customer has consented to receiving promotional communications from the merchant in the past.

      none

      Checkout will not collect customer consent for promotional communications.

    • consent_collection.terms_of_serviceenum

      If set to required, it requires customers to check a terms of service checkbox before being able to pay. There must be a valid terms of service URL set in your Dashboard settings.

      Possible enum values
      none

      Does not display checkbox for the terms of service agreement.

      required

      Displays a checkbox for the terms of service agreement which requires customer to check before being able to pay.

  • currencyenum

    Three-letter ISO currency code, in lowercase. Must be a supported currency and supported by each line item’s price.

  • custom_fieldsarray of hashes

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

    • custom_fields.keystringRequired

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

      The label for the field, displayed to the customer.

      • custom_fields.label.customstringRequired

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

      • custom_fields.label.typeenumRequired

        The type of the label.

        Possible enum values
        custom

        Set a custom label for the field.

    • custom_fields.typeenumRequired

      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_fields.dropdownhash

      Configuration for type=dropdown fields.

      • custom_fields.dropdown.optionsarray of hashesRequired

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

        • custom_fields.dropdown.options.labelstringRequired

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

        • custom_fields.dropdown.options.valuestringRequired

          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.dropdown.default_valuestring

        The value that will pre-fill the field on the payment page.Must match a value in the options array.

    • custom_fields.numerichash

      Configuration for type=numeric fields.

      • custom_fields.numeric.default_valuestring

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

      • custom_fields.numeric.maximum_lengthinteger

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

      • custom_fields.numeric.minimum_lengthinteger

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

      Configuration for type=text fields.

      • custom_fields.text.default_valuestring

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

      • custom_fields.text.maximum_lengthinteger

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

      • custom_fields.text.minimum_lengthinteger

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

  • custom_texthash

    Display additional text for your customers using custom text.

    • custom_text.after_submithash

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

      • custom_text.after_submit.messagestringRequired

        Text may be up to 1200 characters in length.

    • custom_text.shipping_addresshash

      Custom text that should be displayed alongside shipping address collection.

      • custom_text.shipping_address.messagestringRequired

        Text may be up to 1200 characters in length.

    • custom_text.submithash

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

      • custom_text.submit.messagestringRequired

        Text may be up to 1200 characters in length.

    • custom_text.terms_of_service_acceptancehash

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

      • custom_text.terms_of_service_acceptance.messagestringRequired

        Text may be up to 1200 characters in length.

  • customer_creationenum

    Configures whether checkout sessions created by this payment link create a Customer.

    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_messagestring

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

  • invoice_creationhash

    Generate a post-purchase Invoice for one-time payments.

    • invoice_creation.enabledbooleanRequired

      Whether the feature is enabled

    • invoice_creation.invoice_datahash

      Invoice PDF configuration.

      • invoice_creation.invoice_data.account_tax_idsarray of strings

        The account tax IDs associated with the invoice.

      • invoice_creation.invoice_data.custom_fieldsarray of hashes

        Default custom fields to be displayed on invoices for this customer.

        • invoice_creation.invoice_data.custom_fields.namestringRequired

          The name of the custom field. This may be up to 40 characters.

        • invoice_creation.invoice_data.custom_fields.valuestringRequired

          The value of the custom field. This may be up to 140 characters.

      • invoice_creation.invoice_data.descriptionstring

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

      • invoice_creation.invoice_data.footerstring

        Default footer to be displayed on invoices for this customer.

      • invoice_creation.invoice_data.issuerhashConnect 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.typeenumRequired

          Type of the account referenced in the request.

          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.issuer.accountstringRequired only if type is account

          The connected account being referenced when type is account.

      • invoice_creation.invoice_data.metadatahash

        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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

      • invoice_creation.invoice_data.rendering_optionshash

        Default options for invoice PDF rendering for this customer.

        • invoice_creation.invoice_data.rendering_options.amount_tax_displayenum

          How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of exclude_tax or include_inclusive_tax. include_inclusive_tax will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. exclude_tax will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts.

          Possible enum values
          exclude_tax
          include_inclusive_tax
        • invoice_creation.invoice_data.rendering_options.templatestring

          ID of the invoice rendering template to use for this invoice.

  • on_behalf_ofstringConnect only

    The account on behalf of which to charge.

  • optional_itemsarray of hashes

    A list of optional items the customer can add to their order at checkout. Use this parameter to pass one-time or recurring Prices. There is a maximum of 10 optional items allowed on a payment link, and the existing limits on the number of line items allowed on a payment link apply to the combined number of line items and optional items. There is a maximum of 20 combined line items and optional items.

    • optional_items.pricestringRequired

      The ID of the Price or Plan object.

    • optional_items.quantityintegerRequired

      The initial quantity of the line item created when a customer chooses to add this optional item to their order.

    • optional_items.adjustable_quantityhash

      When set, provides configuration for the customer to adjust the quantity of the line item created when a customer chooses to add this optional item to their order.

      • optional_items.adjustable_quantity.enabledbooleanRequired

        Set to true if the quantity can be adjusted to any non-negative integer.

      • optional_items.adjustable_quantity.maximuminteger

        The maximum quantity of this item the customer can purchase. By default this value is 99.

      • optional_items.adjustable_quantity.minimuminteger

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

  • payment_intent_datahash

    A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in payment mode.

    • payment_intent_data.capture_methodenum

      Controls 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.descriptionstring

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

    • payment_intent_data.metadatahash

      Set of key-value pairs that will declaratively set metadata on Payment Intents generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values.

    • payment_intent_data.setup_future_usageenum

      Indicates that you intend to make future payments with the payment method collected by this Checkout Session.

      When setting this to on_session, Checkout will show a notice to the customer that their payment details will be saved.

      When setting this to off_session, Checkout will show a notice to the customer that their payment details will be saved and used for future payments.

      If a Customer has been provided or Checkout creates a new Customer,Checkout will attach the payment method to the Customer.

      If Checkout does not create a Customer, the payment method is not attached to a Customer. To reuse the payment method, you can retrieve it from the Checkout Session’s PaymentIntent.

      When processing card payments, Checkout also uses setup_future_usage to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA.

      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_descriptorstring

      Text that appears on the customer’s statement as the statement descriptor for a non-card charge. This value overrides the account’s default statement descriptor. For information about requirements, including the 22-character limit, see the Statement Descriptor docs.

      Setting this value for a card charge returns an error. For card charges, set the statement_descriptor_suffix instead.

    • payment_intent_data.statement_descriptor_suffixstring

      Provides information about a card charge. Concatenated to the account’s statement descriptor prefix to form the complete statement descriptor that appears on the customer’s statement.

    • payment_intent_data.transfer_groupstringConnect 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

    Specify whether Checkout should collect a payment method. When set to if_required, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount.

    Can only be set in subscription mode. Defaults to always.

    If you’d like information on how to collect a payment method outside of Checkout, read the guide on configuring subscriptions with a free trial.

    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_typesarray of enums

    The list of payment method types that customers can use. If no value is passed, Stripe will dynamically show relevant payment methods from your payment method settings (20+ payment methods supported).

  • phone_number_collectionhash

    Controls phone number collection settings during checkout.

    We recommend that you review your privacy policy and check with your legal contacts.

    • phone_number_collection.enabledbooleanRequired

      Set to true to enable phone number collection.

  • restrictionshash

    Settings that restrict the usage of a payment link.

    • restrictions.completed_sessionshashRequired

      Configuration for the completed_sessions restriction type.

      • restrictions.completed_sessions.limitintegerRequired

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

  • shipping_address_collectionhash

    Configuration for collecting the customer’s shipping address.

    • shipping_address_collection.allowed_countriesarray of enumsRequired

      An array of two-letter ISO country codes representing which countries Checkout should provide as options for shipping locations.

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

    The shipping rate options to apply to checkout sessions created by this payment link.

    • shipping_options.shipping_ratestring

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

  • submit_typeenum

    Describes the type of transaction being performed in order to customize relevant text on the page, such as the submit button. Changing this value will also affect the hostname in the url property (example: donate.stripe.com).

    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_datahash

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

      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_settingshash

      All invoices will be billed using the specified settings.

      • subscription_data.invoice_settings.issuerhashConnect 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.typeenumRequired

          Type of the account referenced in the request.

          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.invoice_settings.issuer.accountstringRequired only if type is account

          The connected account being referenced when type is account.

    • subscription_data.metadatahash

      Set of key-value pairs that will declaratively set metadata on Subscriptions generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values.

    • subscription_data.trial_period_daysinteger

      Integer representing the number of trial period days before the customer is charged for the first time. Has to be at least 1.

    • subscription_data.trial_settingshash

      Settings related to subscription trials.

      • subscription_data.trial_settings.end_behaviorhashRequired

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

        • subscription_data.trial_settings.end_behavior.missing_payment_methodenumRequired

          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_collectionhash

    Controls tax ID collection during checkout.

    • tax_id_collection.enabledbooleanRequired

      Enable tax ID collection during checkout. Defaults to false.

    • tax_id_collection.requiredenum

      Describes whether a tax ID is required during checkout. Defaults to never.

      Possible enum values
      if_supported

      A tax ID will be required if collection is supported for the selected billing address country.

      never

      Tax ID collection is never required.

  • transfer_datahashConnect 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.destinationstringRequired

      If specified, successful charges will be attributed to the destination account for tax reporting, and the funds from charges will be transferred to the destination account. The ID of the resulting transfer will be returned on the successful charge’s transfer field.

    • transfer_data.amountinteger

      The amount that will be transferred automatically when a charge succeeds.

Returns

Returns the payment link.

POST /v1/payment_links
Stripe.api_key = 'sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2'
payment_link = Stripe::PaymentLink.create({
line_items: [
{
price: 'price_1MoC3TLkdIwHu7ixcIbKelAC',
quantity: 1,
},
],
})
Response
{
"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"
}