Stripe: Create a test Confirmation Token
Stripe testHelpers.postTestHelpersConfirmationTokens: arguments, response, policy and SDK examples.
← Test helpers operations · Get started
Operation stripe.posttesthelpersconfirmationtokens
Provider route: POST /v1/test_helpers/confirmation_tokens. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”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["testHelpers"]["postTestHelpersConfirmationTokens"]>[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.testHelpers.postTestHelpersConfirmationTokens(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom 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.test_helpers.post_test_helpers_confirmation_tokens(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
headers | object | Optional | Additional keys: not allowed |
headers.Idempotency-Key | string | Optional | Minimum length: 1 Maximum length: 255 |
body | object | Optional | Additional keys: not allowed |
body.expand | array | Optional | Specifies which fields in the response should be expanded. |
body.expand[] | string | Each item | Maximum length: 5000 |
body.payment_method | string | Optional | ID of an existing PaymentMethod. Maximum length: 5000 |
body.payment_method_data | object | Optional | If provided, this hash will be used to create a PaymentMethod. |
body.payment_method_data.acss_debit | object | Optional | |
body.payment_method_data.acss_debit.account_number | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.acss_debit.institution_number | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.acss_debit.transit_number | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.affirm | object | Optional | |
body.payment_method_data.afterpay_clearpay | object | Optional | |
body.payment_method_data.alipay | object | Optional | |
body.payment_method_data.allow_redisplay | string | Optional | One of: always, limited, unspecified |
body.payment_method_data.alma | object | Optional | |
body.payment_method_data.amazon_pay | object | Optional | |
body.payment_method_data.au_becs_debit | object | Optional | |
body.payment_method_data.au_becs_debit.account_number | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.au_becs_debit.bsb_number | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.bacs_debit | object | Optional | |
body.payment_method_data.bacs_debit.account_number | string | Optional | Maximum length: 5000 |
body.payment_method_data.bacs_debit.sort_code | string | Optional | Maximum length: 5000 |
body.payment_method_data.bancontact | object | Optional | |
body.payment_method_data.billie | object | Optional | |
body.payment_method_data.billing_details | Model | Optional | Expand Create a Setup Intent — request body — body payment method data billing details |
body.payment_method_data.bizum | object | Optional | |
body.payment_method_data.blik | object | Optional | |
body.payment_method_data.boleto | object | Optional | |
body.payment_method_data.boleto.tax_id | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.cashapp | object | Optional | |
body.payment_method_data.crypto | object | Optional | |
body.payment_method_data.customer_balance | object | Optional | |
body.payment_method_data.eps | Model | Optional | Expand Create a Setup Intent — request body — body payment method data eps |
body.payment_method_data.fpx | object | Optional | |
body.payment_method_data.fpx.bank | string | Required within parent | One of: affin_bank, agrobank, alliance_bank, ambank, bank_islam, bank_muamalat, bank_of_china, bank_rakyat, bnp_paribas, bsn, cimb, citibank, deutsche_bank, hong_leong_bank, hsbc, kfh, maybank2e, maybank2u, mbsb_bank, ocbc, pb_enterprise, public_bank, rhb, standard_chartered, uob Maximum length: 5000 |
body.payment_method_data.giropay | object | Optional | |
body.payment_method_data.grabpay | object | Optional | |
body.payment_method_data.ideal | object | Optional | |
body.payment_method_data.ideal.bank | string | Optional | One of: abn_amro, adyen, asn_bank, bunq, buut, finom, handelsbanken, ing, knab, mollie, moneyou, n26, nn, rabobank, regiobank, revolut, sns_bank, triodos_bank, van_lanschot, yoursafe Maximum length: 5000 |
body.payment_method_data.interac_present | object | Optional | |
body.payment_method_data.kakao_pay | object | Optional | |
body.payment_method_data.klarna | object | Optional | |
body.payment_method_data.klarna.dob | object | Optional | |
body.payment_method_data.klarna.dob.day | integer | Required within parent | |
body.payment_method_data.klarna.dob.month | integer | Required within parent | |
body.payment_method_data.klarna.dob.year | integer | Required within parent | |
body.payment_method_data.konbini | object | Optional | |
body.payment_method_data.kr_card | object | Optional | |
body.payment_method_data.link | object | Optional | |
body.payment_method_data.mb_way | object | Optional | |
body.payment_method_data.metadata | object | Optional | Additional keys: see wildcard field |
body.payment_method_data.metadata.* | string | Additional keys | |
body.payment_method_data.mobilepay | object | Optional | |
body.payment_method_data.multibanco | object | Optional | |
body.payment_method_data.naver_pay | object | Optional | |
body.payment_method_data.naver_pay.funding | string | Optional | One of: card, points |
body.payment_method_data.nz_bank_account | object | Optional | |
body.payment_method_data.nz_bank_account.account_holder_name | string | Optional | Maximum length: 5000 |
body.payment_method_data.nz_bank_account.account_number | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.nz_bank_account.bank_code | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.nz_bank_account.branch_code | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.nz_bank_account.reference | string | Optional | Maximum length: 128 |
body.payment_method_data.nz_bank_account.suffix | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.oxxo | object | Optional | |
body.payment_method_data.p24 | object | Optional | |
body.payment_method_data.p24.bank | string | Optional | One of: alior_bank, bank_millennium, bank_nowy_bfg_sa, bank_pekao_sa, banki_spbdzielcze, blik, bnp_paribas, boz, citi_handlowy, credit_agricole, envelobank, etransfer_pocztowy24, getin_bank, ideabank, ing, inteligo, mbank_mtransfer, nest_przelew, noble_pay, pbac_z_ipko, plus_bank, santander_przelew24, tmobile_usbugi_bankowe, toyota_bank, velobank, volkswagen_bank |
body.payment_method_data.pay_by_bank | object | Optional | |
body.payment_method_data.payco | object | Optional | |
body.payment_method_data.paynow | object | Optional | |
body.payment_method_data.paypal | object | Optional | |
body.payment_method_data.paypay | object | Optional | |
body.payment_method_data.payto | object | Optional | |
body.payment_method_data.payto.account_number | string | Optional | Maximum length: 5000 |
body.payment_method_data.payto.bsb_number | string | Optional | Maximum length: 5000 |
body.payment_method_data.payto.pay_id | string | Optional | Maximum length: 5000 |
body.payment_method_data.pix | object | Optional | |
body.payment_method_data.promptpay | object | Optional | |
body.payment_method_data.radar_options | object | Optional | |
body.payment_method_data.radar_options.session | string | Optional | Maximum length: 5000 |
body.payment_method_data.revolut_pay | object | Optional | |
body.payment_method_data.samsung_pay | object | Optional | |
body.payment_method_data.satispay | object | Optional | |
body.payment_method_data.scalapay | object | Optional | |
body.payment_method_data.sepa_debit | object | Optional | |
body.payment_method_data.sepa_debit.iban | string | Required within parent | Maximum length: 5000 |
body.payment_method_data.sequra | object | Optional | |
body.payment_method_data.sofort | object | Optional | |
body.payment_method_data.sofort.country | string | Required within parent | One of: AT, BE, DE, ES, IT, NL |
body.payment_method_data.sunbit | object | Optional | |
body.payment_method_data.swish | object | Optional | |
body.payment_method_data.twint | object | Optional | |
body.payment_method_data.type | string | Required within parent | One of: acss_debit, affirm, afterpay_clearpay, alipay, alma, amazon_pay, au_becs_debit, bacs_debit, bancontact, billie, bizum, blik, boleto, cashapp, crypto, customer_balance, eps, fpx, giropay, grabpay, ideal, kakao_pay, klarna, konbini, kr_card, link, mb_way, mobilepay, multibanco, naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, payco, paynow, paypal, paypay, payto, pix, promptpay, revolut_pay, samsung_pay, satispay, scalapay, sepa_debit, sequra, sofort, sunbit, swish, twint, upi, us_bank_account, wechat_pay, zip |
body.payment_method_data.upi | object | Optional | |
body.payment_method_data.upi.mandate_options | object | Optional | |
body.payment_method_data.upi.mandate_options.amount | integer | Optional | |
body.payment_method_data.upi.mandate_options.amount_type | string | Optional | One of: fixed, maximum |
body.payment_method_data.upi.mandate_options.description | string | Optional | Maximum length: 20 |
body.payment_method_data.upi.mandate_options.end_date | integer | Optional | Format: unix-time |
body.payment_method_data.us_bank_account | object | Optional | |
body.payment_method_data.us_bank_account.account_holder_type | string | Optional | One of: company, individual |
body.payment_method_data.us_bank_account.account_number | string | Optional | Maximum length: 5000 |
body.payment_method_data.us_bank_account.account_type | string | Optional | One of: checking, savings |
body.payment_method_data.us_bank_account.financial_connections_account | string | Optional | Maximum length: 5000 |
body.payment_method_data.us_bank_account.routing_number | string | Optional | Maximum length: 5000 |
body.payment_method_data.wechat_pay | object | Optional | |
body.payment_method_data.zip | object | Optional | |
body.payment_method_options | object | Optional | Payment-method-specific configuration for this ConfirmationToken. |
body.payment_method_options.card | object | Optional | |
body.payment_method_options.card.installments | object | Optional | |
body.payment_method_options.card.installments.plan | object | Required within parent | |
body.payment_method_options.card.installments.plan.count | integer | Optional | |
body.payment_method_options.card.installments.plan.interval | string | Optional | One of: month |
body.payment_method_options.card.installments.plan.type | string | Required within parent | One of: bonus, fixed_count, revolving |
body.return_url | string | Optional | Return URL used to confirm the Intent. |
body.setup_future_usage | string | Optional | Indicates that you intend to make future payments with this ConfirmationToken’s payment method. The presence of this property will [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the PaymentIntent’s Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. One of: off_session, on_session |
body.shipping | object | Optional | Shipping information for this ConfirmationToken. |
body.shipping.address | object | Required within parent | |
body.shipping.address.city | string | Optional | Maximum length: 5000 |
body.shipping.address.country | string | Optional | Maximum length: 5000 |
body.shipping.address.line1 | string | Optional | Maximum length: 5000 |
body.shipping.address.line2 | string | Optional | Maximum length: 5000 |
body.shipping.address.postal_code | string | Optional | Maximum length: 5000 |
body.shipping.address.state | string | Optional | Maximum length: 5000 |
body.shipping.name | string | Required within parent | Maximum length: 5000 |
body.shipping.phone | JSON | Optional | |
body.shipping.phone (anyOf 1) | string | Alternative | Maximum length: 5000 |
body.shipping.phone (anyOf 2) | string | Alternative | One of: |
Referenced models: Create a Setup Intent — request body — body payment method data billing details, Create a Setup Intent — request body — body payment method data eps
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Retrieve a Confirmation Token — response body |
Referenced models: Retrieve a Confirmation Token — response body
Schemas
Section titled “Schemas”714 more schemas are linked from the tables above, on the schema pages.
Retrieve a Confirmation Token — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | ConfirmationTokens help transport client side data collected by Stripe JS over to your server for confirming a PaymentIntent or SetupIntent. If the confirmation is successful, values present on the ConfirmationToken are written onto the Intent. To learn more about how to use ConfirmationToken, visit the related guides: - [Finalize payments on the server](https://docs.stripe.com/payments/finalize-payments-on-the-server) - [Build two-step confirmation](https://docs.stripe.com/payments/build-a-two-step-confirmation). |
created | JSON | Required within parent | |
created (anyOf 1) | integer | Alternative | Time at which the object was created. Measured in seconds since the Unix epoch. Format: unix-time |
created (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
expires_at | JSON | Optional | |
expires_at (anyOf 1) | JSON | Alternative | |
expires_at (anyOf 1) (anyOf 1) | integer | Alternative | Time at which this ConfirmationToken expires and can no longer be used to confirm a PaymentIntent or SetupIntent. Format: unix-time |
expires_at (anyOf 1) (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
expires_at (anyOf 2) | null | Alternative | |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
livemode | boolean | Required within parent | If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. |
mandate_data | JSON | Optional | |
mandate_data (anyOf 1) | JSON | Alternative | Data used for generating a Mandate. |
mandate_data (anyOf 1) (anyOf 1) | Model | Alternative | Expand Retrieve a Confirmation Token — response body — mandate data Data used for generating a Mandate Data used for generating a Mandate |
mandate_data (anyOf 2) | null | Alternative | |
metadata | JSON | Optional | |
metadata (anyOf 1) | object | Alternative | 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. Additional keys: see wildcard field |
metadata (anyOf 1).* | string | Additional keys | Maximum length: 500 |
metadata (anyOf 2) | null | Alternative | |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: confirmation_token |
payment_intent | JSON | Optional | |
payment_intent (anyOf 1) | string | Alternative | ID of the PaymentIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used. Maximum length: 5000 |
payment_intent (anyOf 2) | null | Alternative | |
payment_method_options | JSON | Optional | |
payment_method_options (anyOf 1) | JSON | Alternative | Payment-method-specific configuration for this ConfirmationToken. |
payment_method_options (anyOf 1) (anyOf 1) | Model | Alternative | Expand Retrieve a Confirmation Token — response body — payment method options value Payment-method-specific configuration |
payment_method_options (anyOf 2) | null | Alternative | |
payment_method_preview | JSON | Optional | |
payment_method_preview (anyOf 1) | JSON | Alternative | Payment details collected by the Payment Element, used to create a PaymentMethod when a PaymentIntent or SetupIntent is confirmed with this ConfirmationToken. |
payment_method_preview (anyOf 1) (anyOf 1) | Model | Alternative | Expand Retrieve a ConfirmationToken — response body — payment_method_preview / value / allow_redisplay: always, limited, unspecified |
payment_method_preview (anyOf 2) | null | Alternative | |
return_url | JSON | Optional | |
return_url (anyOf 1) | string | Alternative | Return URL used to confirm the Intent. Maximum length: 5000 |
return_url (anyOf 2) | null | Alternative | |
setup_future_usage | JSON | Optional | |
setup_future_usage (anyOf 1) | string | Alternative | Indicates that you intend to make future payments with this ConfirmationToken's payment method. The presence of this property will [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. Known values: off_session, on_session |
setup_future_usage (anyOf 2) | null | Alternative | |
setup_intent | JSON | Optional | |
setup_intent (anyOf 1) | string | Alternative | ID of the SetupIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used. Maximum length: 5000 |
setup_intent (anyOf 2) | null | Alternative | |
shipping | JSON | Optional | |
shipping (anyOf 1) | JSON | Alternative | Shipping information collected on this ConfirmationToken. |
shipping (anyOf 1) (anyOf 1) | Model | Alternative | Expand Retrieve a Confirmation Token — response body — shipping value address, name, phone |
shipping (anyOf 2) | null | Alternative | |
use_stripe_sdk | boolean | Required within parent | Indicates whether the Stripe SDK is used to handle confirmation flow. Defaults to `true` on ConfirmationToken. |
Referenced models: Retrieve a Confirmation Token — response body — mandate data Data used for generating a Mandate Data used for generating a Mandate, Retrieve a Confirmation Token — response body — payment method options value Payment-method-specific configuration, Retrieve a ConfirmationToken — response body — payment_method_preview / value / allow_redisplay: always, limited, unspecified, Retrieve a Confirmation Token — response body — shipping value address, name, phone
Create a Setup Intent — request body — body payment method data billing details
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
address | JSON | Optional | |
address (anyOf 1) | object | Alternative | |
address (anyOf 1).city | string | Optional | Maximum length: 5000 |
address (anyOf 1).country | string | Optional | Maximum length: 5000 |
address (anyOf 1).line1 | string | Optional | Maximum length: 5000 |
address (anyOf 1).line2 | string | Optional | Maximum length: 5000 |
address (anyOf 1).postal_code | string | Optional | Maximum length: 5000 |
address (anyOf 1).state | string | Optional | Maximum length: 5000 |
address (anyOf 2) | string | Alternative | One of: |
email | JSON | Optional | |
email (anyOf 1) | string | Alternative | |
email (anyOf 2) | string | Alternative | One of: |
name | JSON | Optional | |
name (anyOf 1) | string | Alternative | Maximum length: 5000 |
name (anyOf 2) | string | Alternative | One of: |
phone | JSON | Optional | |
phone (anyOf 1) | string | Alternative | Maximum length: 5000 |
phone (anyOf 2) | string | Alternative | One of: |
tax_id | string | Optional | Maximum length: 5000 |
Create a Setup Intent — request body — body payment method data eps
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
bank | string | Optional | One of: arzte_und_apotheker_bank, austrian_anadi_bank_ag, bank_austria, bankhaus_carl_spangler, bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag, brull_kallmus_bank_ag, btv_vier_lander_bank, capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank, easybank_ag, erste_bank_und_sparkassen, hypo_alpeadriabank_international_ag, hypo_bank_burgenland_aktiengesellschaft, hypo_noe_lb_fur_niederosterreich_u_wien, hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag, hypo_vorarlberg_bank_ag, marchfelder_bank, oberbank_ag, raiffeisen_bankengruppe_osterreich, schoellerbank_ag, sparda_bank_wien, volksbank_gruppe, volkskreditbank_ag, vr_bank_braunau Maximum length: 5000 |
Retrieve a Confirmation Token — response body — mandate data Data used for generating a Mandate Data used for generating a Mandate
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Data used for generating a Mandate. |
customer_acceptance | Model | Required within parent | Expand Retrieve a Confirmation Token — response body — mandate data Data used for generating a Mandate Data used for generating a Mandate customer acceptance |
Referenced models: Retrieve a Confirmation Token — response body — mandate data Data used for generating a Mandate Data used for generating a Mandate customer acceptance
Retrieve a Confirmation Token — response body — payment method options value Payment-method-specific configuration
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Payment-method-specific configuration |
card | JSON | Optional | |
card (anyOf 1) | JSON | Alternative | This hash contains the card payment method options. |
card (anyOf 1) (anyOf 1) | Model | Alternative | Expand Retrieve a Confirmation Token — response body — payment method options value Payment-method-specific configuration card This hash contains the card payment method options This hash contains the card payment method options |
card (anyOf 2) | null | Alternative |
Create a Payment Method — response body — zip
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: stripe.posttesthelpersconfirmationtokens. Catalog operation: PostTestHelpersConfirmationTokens. 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"}