Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
OverviewAccept a paymentUpgrade your integration
Online payments
OverviewFind your use case
Use Payment Links
Use a pre-built checkout page
Build a custom integration with Elements
Build an in-app integration
Use Managed Payments
Recurring payments
In-person payments
Terminal
Payment Methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment operations
Analytics
Balances and settlement time
Compliance and security
Currencies
Declines
Disputes
Fraud prevention
Radar fraud protection
Payouts
ReceiptsRefunds and cancellations
Advanced integrations
Custom payment flows
Flexible acquiring
Off-Session Payments
    Overview
Multiprocessor orchestration
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Machine payments
Financial Connections
Climate
Verify identities
United States
English (United Kingdom)
HomePaymentsOff-Session Payments

The Off-Session Payments APIPrivate preview

Create your own payment flow for recurring and unscheduled payments .

Features

  • Retry a payment using smart retries: Configure a retry strategy using AI inference to choose the best times to retry failed payments that increase the chance of a successful payment.
  • Process payments on multiple processors: Route payments to any of the Stripe-supported processors, or automatically route payments created through the Off-Session Payments API and other supported payments APIs.

How it works

With a single API request, you can initiate a payment and let Stripe handle retries for you.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/payments/off_session_payments \ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "amount": { "value": 1000, "currency": "usd" }, "customer":
"{{CUSTOMER_ID}}"
, "payment_method":
"{{PAYMENT_METHOD_ID}}"
, "cadence": "recurring", "metadata": {}, "retry_details": { "retry_strategy": "best_available" } }'

Compatible APIs

Stripe offers three core payments APIs compatible with Off-Session Payments that allow you to accept various types of payments from your customers. You can integrate these APIs into the Stripe prebuilt payment interfaces. The APIs serve different use cases, depending on how you structure your checkout flow and how much control you require.

  • Use the Checkout Sessions API to handle collection and setup of payment information with a prebuilt payment form that presents the customer’s complete checkout flow. With the Checkout Sessions API, you can save a payment for future use with a payment or without an initial payment, depending on your payment flow. Build a checkout page with the Checkout Sessions API.

  • Use the Payment Intents API to implement the payment step only, but with more control. Unlike the Checkout Sessions API, which requires line item details, you only pass in the final amount you want to charge. Use this for advanced payment flows where you want to manually compute the final amount. Build an advanced integration with the Payment Intents API.

  • Use the Setup Intents API to save a customer’s payment details without an initial payment. Use this when you want to onboard customers now, set them up for payments, and charge them in the future. Use this integration to set up recurring payments, or to create one-time payments with a final amount determined later, often after the customer receives your service. Build an advanced integration with the Setup Intents API.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc