v1
latestOpenAPI 3.0.32026-07-132534113.7 KBCreate Payment Intent
Creates a Stripe PaymentIntent for native checkout (Apple Pay / Google Pay payment sheet). Returns a client_secret for confirming the payment on the client side and a checkout_url for fallback browser checkout.
Request body
The product's reference_id (e.g., com.app.premium).
The user's external ID. Either this or user_id is required.
Alias for external_user_id. Either this or external_user_id is required.
The platform the purchase is being made from.
Existing Stripe customer ID to attach the payment to.
Optional customer display name to attach to the Stripe customer for this checkout. Also accepts the camelCase alias customerName.
Optional customer email to attach to the Stripe customer for this checkout. Also accepts the camelCase alias customerEmail.
Verified custom subdomain for the app's checkout (e.g., checkout.example.com). Configure via the dashboard — see the Custom Checkout Domains guide.
Preferred checkout mode. native uses the in-app payment sheet; browser opens a web checkout page.
ISO 8601 datetime of the current StoreKit subscription's expiry. Used for Switch & Save migrations to align the trial period.
The StoreKit original transaction ID for the subscription being migrated.
Apple externalPurchaseToken received from StoreKit at the disclosure-sheet confirmation step. When provided, ZeroSettle uses this token for automatic external-purchase reporting in eligible jurisdictions (EU/EEA under the DMA alternative terms, EEA music streaming, and Japan MSCA on iOS 26.4+). Optional — omit for non-Apple platforms or regions where reporting is not required.
iOS version of the checkout client (e.g., '26.4.1'). Used for JP MSCA regime gating, which requires iOS 26+. Optional.
Response
Payment intent created successfully
Stripe PaymentIntent client secret. Use this to confirm the payment on the client side.
Stripe PaymentIntent ID.
ZeroSettle transaction ID. Use this to poll for transaction status.
The charge amount in cents.
ISO 4217 currency code (e.g., usd).
Display name of the product being purchased.
Fallback URL for browser-based checkout.
ISO 3166-1 alpha-2 country code of the merchant's Stripe account. Required for Apple Pay paymentRequest() country parameter.
The original price before any discounts or prorations.
The type of trial applied to this checkout. free_trial for standard free trials, migration for Switch & Save aligned trials. Omitted when no trial is active.
Unix timestamp when the trial period ends. Only present when a trial is active.
The charge amount in cents that will be billed when the trial ends. Only present when a trial is active.
Discriminator for which Stripe confirm method the client must call. setup: confirms a SetupIntent (free trial — card saved, no immediate charge); payment: confirms a PaymentIntent (paid/auth_hold trial upfront charge, or any normal charge). Also returned by POST /iap/payment-intents/{transaction_id}/finalize/ with the same semantics.