Skip to content

Stripe: Update a Checkout Session

Stripe checkout.postCheckoutSessionsSession: arguments, response, policy and SDK examples.

← Checkout operations · Get started

Operation stripe.postcheckoutsessionssession

Provider route: POST /v1/checkout/sessions/{session}. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/stripe with npm, or alter-sdk-stripe with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { StripeIntegration } from "@alter-ai/stripe";
async function execute(input: Parameters<StripeIntegration["checkout"]["postCheckoutSessionsSession"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new StripeIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.checkout.postCheckoutSessionsSession(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_stripe import StripeIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = StripeIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.checkout.post_checkout_sessions_session(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.sessionstringRequired within parentMaximum length: 5000
headersobjectOptionalAdditional keys: not allowed
headers.Idempotency-KeystringOptionalMinimum length: 1
Maximum length: 255
bodyobjectOptionalAdditional keys: not allowed
body.collected_informationobjectOptionalInformation about the customer collected within the Checkout Session. Can only be set when updating `embedded_page` or `elements` sessions.
body.collected_information.shipping_detailsobjectOptional
body.collected_information.shipping_details.addressobjectRequired within parent
body.collected_information.shipping_details.address.citystringOptionalMaximum length: 5000
body.collected_information.shipping_details.address.countrystringRequired within parentMaximum length: 5000
body.collected_information.shipping_details.address.line1stringRequired within parentMaximum length: 5000
body.collected_information.shipping_details.address.line2stringOptionalMaximum length: 5000
body.collected_information.shipping_details.address.postal_codestringOptionalMaximum length: 5000
body.collected_information.shipping_details.address.statestringOptionalMaximum length: 5000
body.collected_information.shipping_details.namestringRequired within parentMaximum length: 255
body.expandarrayOptionalSpecifies which fields in the response should be expanded.
body.expand[]stringEach itemMaximum length: 5000
body.line_itemsarrayOptionalA list of items the customer is purchasing.

When updating line items, you must retransmit the entire array of line items.

To retain an existing line item, specify its `id`.

To update an existing line item, specify its `id` along with the new values of the fields to update.

To add a new line item, specify one of `price` or `price_data` and `quantity`.

To remove an existing line item, omit the line item’s ID from the retransmitted array.

To reorder a line item, specify it at the desired position in the retransmitted array.
body.line_items[]objectEach item
body.line_items[].adjustable_quantityobjectOptional
body.line_items[].adjustable_quantity.enabledbooleanRequired within parent
body.line_items[].adjustable_quantity.maximumintegerOptional
body.line_items[].adjustable_quantity.minimumintegerOptional
body.line_items[].idstringOptionalMaximum length: 5000
body.line_items[].metadataJSONOptional
body.line_items[].metadata (anyOf 1)objectAlternativeAdditional keys: see wildcard field
body.line_items[].metadata (anyOf 1).*stringAdditional keys
body.line_items[].metadata (anyOf 2)stringAlternativeOne of:
body.line_items[].pricestringOptionalMaximum length: 5000
body.line_items[].price_dataModelOptionalExpand Create a payment link — request body — body line items item price data
body.line_items[].quantityintegerOptional
body.line_items[].tax_ratesJSONOptional
body.line_items[].tax_rates (anyOf 1)arrayAlternative
body.line_items[].tax_rates (anyOf 1)[]stringEach itemMaximum length: 5000
body.line_items[].tax_rates (anyOf 2)stringAlternativeOne of:
body.metadataJSONOptionalSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
body.metadata (anyOf 1)objectAlternativeAdditional keys: see wildcard field
body.metadata (anyOf 1).*stringAdditional keys
body.metadata (anyOf 2)stringAlternativeOne of:
body.shipping_optionsJSONOptionalThe shipping rate options to apply to this Session. Up to a maximum of 5.
body.shipping_options (anyOf 1)arrayAlternative
body.shipping_options (anyOf 1)[]ModelEach itemExpand Create a Checkout Session — request body — body shipping options item
body.shipping_options (anyOf 2)stringAlternativeOne of:

Referenced models: Create a payment link — request body — body line items item price data, Create a Checkout Session — request body — body shipping options item

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Create a Checkout Session — response body

Referenced models: Create a Checkout Session — response body

797 more schemas are linked from the tables above, on the schema pages.

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

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

Create a Checkout Session — request body — body shipping options item
FieldTypePresenceDescription and constraints
$objectRoot
shipping_ratestringOptionalMaximum length: 5000
shipping_rate_dataModelOptionalExpand Create an invoice — request body — body shipping cost shipping rate data

Referenced models: Create an invoice — request body — body shipping cost shipping rate data

Create a Checkout Session — response body — wallet options value link
FieldTypePresenceDescription and constraints
$objectRoot
linkModelOptionalExpand Create a Checkout Session — response body — wallet options value link link

Referenced models: Create a Checkout Session — response body — wallet options value link link

Delete a customer — response body
FieldTypePresenceDescription and constraints
$objectRoot
deletedbooleanRequired within parentAlways true for a deleted object
Known values: True
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: customer
Retrieve a quote's line items — response body — data item
FieldTypePresenceDescription and constraints
$objectRootA line item.
adjustable_quantityJSONOptional
adjustable_quantity (anyOf 1)JSONAlternative
adjustable_quantity (anyOf 1) (anyOf 1)ModelAlternativeExpand Retrieve a quote's line items — response body — data item adjustable quantity value enabled, maximum, minimum
adjustable_quantity (anyOf 2)nullAlternative
amount_discountJSONRequired within parent
amount_discount (anyOf 1)integerAlternativeTotal discount amount applied. If no discounts were applied, defaults to 0.
amount_discount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_subtotalJSONRequired within parent
amount_subtotal (anyOf 1)integerAlternativeTotal before any discounts or taxes are applied.
amount_subtotal (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_taxJSONRequired within parent
amount_tax (anyOf 1)integerAlternativeTotal tax amount applied. If no tax was applied, defaults to 0.
amount_tax (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_totalJSONRequired within parent
amount_total (anyOf 1)integerAlternativeTotal after discounts and taxes.
amount_total (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
currencystringRequired within parentThree-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
Format: currency
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.
Maximum length: 5000
description (anyOf 2)nullAlternative
discountsarrayOptionalThe discounts applied to the line item.
discounts[]ModelEach itemExpand Retrieve a quote's line items — response body — data item discounts item
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: item
priceJSONOptional
price (anyOf 1)JSONAlternativeThe price used to generate the line item.
price (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a price — response body
price (anyOf 2)nullAlternative
quantityJSONOptional
quantity (anyOf 1)JSONAlternative
quantity (anyOf 1) (anyOf 1)integerAlternativeThe quantity of products being purchased.
quantity (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
quantity (anyOf 2)nullAlternative
taxesarrayOptionalThe taxes applied to the line item.
taxes[]ModelEach itemExpand Retrieve a quote's line items — response body — data item taxes item

Referenced models: Retrieve a quote's line items — response body — data item adjustable quantity value enabled, maximum, minimum, Retrieve a quote's line items — response body — data item discounts item, Retrieve a quote's line items — response body — data item taxes item, Create a price — response body

Cancel a refund — response body — presentment details
FieldTypePresenceDescription and constraints
$objectRoot
presentment_amountJSONRequired within parent
presentment_amount (anyOf 1)integerAlternativeAmount intended to be collected by this payment, denominated in `presentment_currency`.
presentment_amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
presentment_currencystringRequired within parentCurrency presented to the customer during payment.
Maximum length: 5000
Create a payment link — response body — custom text
FieldTypePresenceDescription and constraints
$objectRoot
after_submitJSONOptional
after_submit (anyOf 1)JSONAlternativeCustom text that should be displayed after the payment confirmation button.
after_submit (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
after_submit (anyOf 2)nullAlternative
shipping_addressJSONOptional
shipping_address (anyOf 1)JSONAlternativeCustom text that should be displayed alongside shipping address collection.
shipping_address (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
shipping_address (anyOf 2)nullAlternative
submitJSONOptional
submit (anyOf 1)JSONAlternativeCustom text that should be displayed alongside the payment confirmation button.
submit (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
submit (anyOf 2)nullAlternative
terms_of_service_acceptanceJSONOptional
terms_of_service_acceptance (anyOf 1)JSONAlternativeCustom text that should be displayed in place of the default terms of service agreement text.
terms_of_service_acceptance (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a payment link — response body — custom text submit value message
terms_of_service_acceptance (anyOf 2)nullAlternative

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

SDK function policy ID: stripe.postcheckoutsessionssession. Catalog operation: PostCheckoutSessionsSession. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"Stripe-Version": "2026-09-30.endive"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.