Stripe + commercetools integration

Vendor pluginLast verified 2026-09-11 · Reviewed by a person 2026-09-25

Stripe connects to commercetools through two Stripe-built Connect apps installed from the Connect marketplace in the Merchant Center: a Checkout app that plugs the Payment Element into commercetools Checkout, and a Composable app for custom storefronts that adds Express Checkout and Stripe Billing subscriptions. commercetools lists the Stripe connector as a third-party public connector; Stripe maintains both apps as MIT-licensed repositories with releases in late August 2026.1

UAT-Ops testing: Stripe's sandbox was verified by UAT-Ops on 2026-09-11 with the directory's card flow (6 passed) → evidence on the Stripe hub. The commercetools integration itself has not been run.

Sources checked: 15 claims from 5 sites, listed at the foot of the page.

Connects through Connect connectors (enabler + processor) installed from the Connect marketplace in the Merchant Center; the processor creates PaymentIntents and turns Stripe webhooks into commercetools Payment transactions. Biggest gotcha: Two apps, three marketplace names.

How it connects

Method
Connect connectors (enabler + processor) installed from the Connect marketplace in the Merchant Center; the processor creates PaymentIntents and turns Stripe webhooks into commercetools Payment transactions1
Maintained by
Stripe (stripe GitHub organization)1
Cost of the integration
No charge listed; MIT-licensed source3
Latest release
2026-08-284
Checkout modes
commercetools Checkout (Complete Checkout and Payment Only) via the Stripe Payment for Checkout app, Custom storefront via the Stripe Payment for Composable Commerce app (Payment Element and Express Checkout Element)1
PCI scope
SAQ A for most merchants: card data is entered in the gateway's own fields or page, so it never touches your server. The gateway or your acquirer can still require a different questionnaire.1

What works on this platform

Yes: a source confirms it on this integration. Not verified here: the gateway supports it, but no source confirms this integration exposes it. No: not available. A capability with no source either way is left off.

CapabilityOn this integrationNotes
CardsYes1Both apps embed the Stripe Payment Element with deferred-intent, server-side confirmation; automatic and manual capture and refunds are mapped to the commercetools payment schema.
Apple PayYes5Express Checkout Element wallets (Apple Pay, Google Pay) are wrapped by the enabler; Express Checkout can update shipping methods and briefly unfreezes the cart to do so.
Google PayYes5Express Checkout Element wallets (Apple Pay, Google Pay) are wrapped by the enabler.
ACH bank paymentsYes5ACH Direct Debit is supported, including on subscriptions since v1.7.5; micro-deposit verification is not supported on subscriptions and late returns need manual reconciliation.
Buy now, pay laterYes5The connector README lists Buy Now Pay Later among supported Stripe-enabled methods surfaced through the Payment Element.
3-D SecureYes6The commercetools partner listing describes the integration as 3DS 2.0 compliant; authentication is handled by the Payment Element.
Saved cards (vault)Yes1Saved payment methods are selectable in the Payment Element through Stripe Customer Sessions; pi_first mode cannot save methods.
SubscriptionsYes7Composable app only: product variants carry the payment-app-subscription-information type and Stripe Billing creates a new commercetools order per renewal; the Checkout app does not cover this guide.
Partial refundsYes2charge.refunded adds Refund transactions; multiple partial captures and refunds need the opt-in STRIPE_ENABLE_MULTI_OPERATIONS flag, manual capture and multicapture enabled on the Stripe account.
PayPalNot verified here8Stripe supports this; no source confirms it on this integration.
SEPA Direct DebitNot verified here8Stripe supports this; no source confirms it on this integration.
Multi-currencyNot verified here9Stripe supports this; no source confirms it on this integration.

Capability status reflects the integration and documentation available at the time of verification, not necessarily every capability of the underlying gateway or platform.

Testing it

Create a Stripe sandbox and a restricted key with at least Refunds, PaymentIntents, Customer, CustomerSession, Webhook Endpoints and Subscriptions write permissions. In the Stripe Dashboard create a webhook endpoint with a placeholder URL and copy its endpoint id and whsec_ signing secret into STRIPE_WEBHOOK_ID and STRIPE_WEBHOOK_SIGNING_SECRET; the post-deploy script rewrites the endpoint URL to the deployed processor after install. Install the connector from the Connect marketplace in a commercetools trial Project with an API client holding manage_payments, manage_orders, view_sessions, view_api_clients, manage_checkout_payment_intents, introspect_oauth_tokens, manage_types and view_types. For local runs, docker compose starts a JWT server, enabler and processor and the Stripe CLI forwards events to the processor root path. Pay with Stripe test cards and assert that payment_intent.succeeded produces a Charge:Success transaction (automatic capture) or Authorization then Charge (manual), that charge.refunded adds Refund:Success, and that the Order Subscriber sets Order.paymentState.2

UAT-Ops runs integration flows like this against the real sandbox and keeps the evidence. Get one email when it opens.

Gotchas

Two apps, three marketplace names

Stripe ships two separate Connect apps: "Stripe Payment for Checkout" (repo stripe-commercetools-checkout-app, v1.5.0 on 2026-08-28) for commercetools Checkout, and "Stripe Payment for Composable Commerce" (stripe-commercetools-connect-app, v1.7.5 on 2026-08-26) for custom storefronts. The commercetools partner page uses different names again, including "Stripe Payments for Payment Hub". Subscriptions and the Express Checkout shipping-update flow are documented only for the Composable app, so pick the app before scoping the project.

Source: docs.stripe.com1

Webhook URL is rewritten after deploy, but not every event is registered

You create the Stripe webhook endpoint with a placeholder URL before install; a post-deploy script then swaps in the deployed processor URL and enables its event list. Two things it does not do: register charge.updated, which multicapture needs (the handler exists but Stripe never sends it), or add invoice.paid and invoice.payment_failed, which subscriptions require. Check the endpoint's enabled events in the Dashboard after every redeploy.

Source: github.com12

Do not switch on pi_first

STRIPE_PAYMENT_FLOW defaults to deferred. The README says not to set pi_first yet: opening the payment page creates a PaymentIntent and commercetools Payment without deterministic idempotency, a remount orphans the pair, an unfunded bank transfer reads as paid in full, and saved payment methods cannot be used. Yet EU customer_balance bank transfers on subscription carts require pi_first, and BLIK needs it, so those methods are effectively not production-ready through this connector.

Source: github.com13

Capture default differs between Stripe's docs and the Checkout app

Stripe's install pages state STRIPE_CAPTURE_METHOD defaults to automatic; the Checkout app README defaults it to automatic_async and lists manual as limited to certain payment methods. Multicapture (partial captures and multiple refunds) is opt-in via STRIPE_ENABLE_MULTI_OPERATIONS=true, only works with manual, and needs multicapture enabled on the Stripe account. Set the variable explicitly rather than trusting either default.

Source: docs.stripe.com14

Async rails give you Pending transactions and clawbacks you must watch

Stablecoin and bank-transfer payments create Authorization: Pending transactions that finalize only on payment_intent.succeeded. ACH late returns (reversals up to about 60 days) are flagged as ach_late_return on the payment interface code, and bank-transfer clawbacks arrive only as customer_cash_balance_transaction.created. The README calls that the only in-connector signal that money was pulled back, so route it to an alert; nothing updates the commercetools order for you.

Source: github.com5

Alternatives

Other gateways on commercetools

Stripe on other platforms

Sources

  1. https://docs.stripe.com/connectors/commercetools-connectofficial documentation · describes this integration · checked 2026-09-11
  2. https://docs.stripe.com/connectors/commercetools-connect/install-and-configureofficial documentation · describes this integration · checked 2026-09-11
  3. https://api.github.com/repos/stripe/stripe-commercetools-connect-appcode repository · describes the connector · checked 2026-09-11
  4. https://api.github.com/repos/stripe/stripe-commercetools-connect-app/releases?per_page=6code repository · describes the connector · checked 2026-09-11
  5. https://github.com/stripe/stripe-commercetools-connect-appcode repository · describes the connector · checked 2026-09-11
  6. https://commercetools.com/technology-partners/stripepartner directory · describes this integration · checked 2026-09-11
  7. https://docs.stripe.com/use-stripe-apps/commercetools-connect/use-subscriptionsofficial documentation · describes this integration · checked 2026-09-11
  8. https://docs.stripe.com/payments/payment-methods/overviewofficial documentation · checked 2026-09-10
  9. https://docs.stripe.com/currenciesofficial documentation · checked 2026-09-10
  10. https://docs.stripe.com/sandboxesofficial documentation · checked 2026-09-10
  11. https://docs.stripe.com/testingofficial documentation · checked 2026-09-10
  12. https://github.com/stripe/stripe-commercetools-connect-app/blob/main/README.md
  13. https://github.com/stripe/stripe-commercetools-checkout-app/blob/main/README.md
  14. https://docs.stripe.com/connectors/commercetools-connect/install-and-configure-checkout

Last verified 2026-09-11 · Reviewed by a person 2026-09-25

Integration capabilities, requirements, pricing, availability, and vendor policies may change over time. UAT-Ops documents information based on the authoritative sources and testing available at the time of review.

Where newer information, testing, or vendor documentation materially changes a published claim, UAT-Ops may revise the page to reflect the most current verified information. Readers should confirm time-sensitive requirements with the relevant vendor before making production or purchasing decisions.