S Spwig Marketplace
Stripe
Payment Provider

Stripe

by Spwig ✓ Verified · v1.5.0
★ 4.75 (4 ratings) · 0 installs
Free

Install directly from your Spwig admin → Don't have Spwig yet?

Screenshots

About this component

Complete payment processing platform supporting cards, digital wallets, BNPL, and 135+ currencies. Industry-leading developer experience with extensive documentation and robust fraud prevention.

Versions

v1.5.0
2026-08-07

- Pluggability: implemented get_client_publishable_key() so the platform reads the Stripe publishable key from the provider instead of a hardcoded account-serializer branch.
- Fixed the checkout handler_config country_code to use the resolved customer/order country supplied by the orchestrator instead of defaulting to US.

v1.4.0
2026-08-02

- Subscriptions: added provider-agnostic reusable-payment-method setup. Declares the reusable_setup capability and implements begin_setup(), which creates a customer-less SetupIntent so the storefront can capture an off-session card WITHOUT charging; the resulting PaymentMethod is attached to the customer at finalize time.
- Checkout handler: added an initializeSetup(bundle, container, onToken, onError) entry that renders a Stripe Payment Element and confirms the SetupIntent (confirmSetup, not confirmPayment), returning the reusable payment method id for recurring billing.

v1.3.0
2026-08-01

- SECURITY: Fixed three-decimal currency handling (KWD, BHD, OMR, JOD, TND). These were treated as zero-decimal and undercharged by 1000x (e.g. KWD 10.500 was sent to Stripe as 10 = 0.010 KWD). They are now converted in thousandths and rounded to Stripe's required multiple of 10; conversion back from Stripe amounts is also corrected.
- SECURITY: Merchant API key is no longer set on the process-global stripe.api_key. Every API call now passes this provider instance's key explicitly, so concurrent providers (different merchants, or test vs live) can no longer be charged/refunded against the wrong account.
- SECURITY: Idempotency keys are now sent on PaymentIntent, Checkout Session, Refund and Subscription creation when the orchestrator supplies an explicit per-attempt/request id (metadata idempotency_key / payment_attempt_id / refund_id). A retry after a lost response no longer creates a second charge, refund, or subscription, while legitimate retries with a new card and repeat operations are not collapsed.
- Amount conversion now rounds (ROUND_HALF_UP) to the currency's minor unit instead of truncating, fixing off-by-one undercharges for amounts with sub-unit precision.
- checkout.session.completed is only treated as a completed payment when payment_status is 'paid'; delayed-payment sessions are reported pending so orders are not fulfilled before funds arrive.
- Subscription invoice webhook amounts are converted using the currency exponent instead of always dividing by 100 (fixes JPY/KWD amounts).
- Subscriptions (native provider): charge amounts use the currency exponent with rounding; PaymentIntent statuses processing/requires_action/requires_capture are mapped to pending (not failed) to prevent double-charge retries; scheduled period-end cancellations return canceled_at=None with a separate effective_cancellation_at instead of a fabricated timestamp.

v1.2.2
2026-07-04

- Fixed 400 'payment_intent_invalid_parameter' from Stripe when enabled_payment_methods contained wallet aliases (apple_pay, google_pay) — these are not valid Stripe payment_method_types values; they surface automatically on PaymentElement when card is enabled and the device supports them. New _filter_stripe_payment_method_types() strips wallet aliases before calling Stripe.
- When no valid payment_method_types remain after filtering, fall back to Stripe's recommended automatic_payment_methods: {enabled: true, allow_redirects: 'if_required'}. Applies to both integrated PaymentElement and hosted Checkout Session modes.
- Include the Stripe error message on failure responses so the orchestrator surfaces the real reason to the storefront instead of the generic 'Payment intent creation failed' fallback.

v1.2.0
2026-03-31

- Accept payment_method_types from orchestration service for per-country method filtering
- Hosted checkout: pass payment_method_types to Stripe Checkout Session when specified
- Integrated checkout: use explicit payment_method_types instead of automatic_payment_methods when specified
- Added **kwargs to create_payment_intent_for_checkout for forward-compatible parameter passing

v1.1.2
2026-03-10

- Fixed webhook URL in setup instructions (was /payment-providers/webhook/{slug}/, corrected to /webhooks/payments/{slug}/)
- Fixed timezone.utc AttributeError in subscription event timestamp parsing

v1.1.1
2026-03-01

- Fixed critical NameError in integrated checkout (undefined customer_country variable)
- Simplified credential initialization - removed redundant workaround now that base class handles dual-credential selection
- Fixed redact_credentials to handle dual-credential format (test_/live_ prefixed keys)
- Fixed webhook verification to fail-secure when webhook secret is not configured
- Removed stale environment field from credential_schema property
- Restored subscription_provider.py for subscription framework compatibility
- Fixed invoice charge type-checking for safe null handling

v1.0.0
2026-02-09

- Initial release with full payment processing support
- Support for cards, digital wallets, BNPL, and bank transfers
- 135+ currency support with automatic zero-decimal handling
- Stripe Checkout (hosted) and Payment Intents (integrated) support
- Webhook integration with signature verification
- Full and partial refund capabilities
- 3D Secure authentication support
- Authorize and capture workflow

Reviews

4.75 ★
5★
3
4★
1
3★
0
2★
0
1★
0
★★★★★ Best payment provider available — TechGear Australia · verified purchase · 2026-02-11
Migrated from a custom PayPal integration and the difference is night and day. Checkout conversion went up about 15% just from the cleaner payment flow. The admin dashboard shows all transactions clearly and reconciliation is straightforward.
★★★★☆ Great but would love Apple Pay support — Maison Belle · verified purchase · 2026-02-11
The core Stripe integration is excellent. Card payments, refunds, and partial captures all work as expected. Only reason for 4 stars is that Apple Pay and Google Pay are not yet supported through this provider. Would bump to 5 stars once digital wallets are added.
★★★★★ Seamless integration, works perfectly — Nordic Outdoor Co. · verified purchase · 2026-02-11
Set up Stripe payments in under 10 minutes. The webhook handling is solid and we have not had a single missed payment notification in 3 months of use. Card tokenisation works flawlessly and the test mode toggle is really convenient for staging environments.
★★★★★ Seamless integration, works perfectly — Nordic Outdoor Co. · verified purchase · 2026-02-11
Set up Stripe payments in under 10 minutes. The webhook handling is solid and we have not had a single missed payment notification in 3 months of use. Card tokenisation works flawlessly and the test mode toggle is really convenient for staging environments.

Ready to install Stripe?

Install from your Spwig admin → Marketplace tab. Don't have a Spwig install yet? The commerce platform is free and open source.

Get Spwig → Browse more