Skip to main content

Stripe

info

Keep your Stripe integration as‑is and change only the base URL. Optional enhancements are available when you’re ready.

Overview

Modo transposes the Stripe API: your requests, headers, and authentication remain unchanged while we route through Modo.

Frontend Integration

Option A: Minimal change

Replace the Stripe.js script tag only. Your usage of the global Stripe object remains unchanged.

Replace:

<script src="https://js.stripe.com/v3"></script>

With:

<script src="https://js.api.modopayments.io/stripe.js"></script>

Option B: Use Modo Elements

  • Cross‑processor input components
  • Unified UI and styling

Backend Integration

Change the base API URL only.

Replace:

https://api.stripe.com/v1/

With:

https://stripe.api.modopayments.io/

All payloads, headers, authentication tokens, and object behavior remain consistent with Stripe’s REST API.

Authentication

Continue using your existing Stripe API keys (sk_test_…, sk_live_…). Modo supports:

  • Direct passthrough
  • Centralized key management
  • Environment or vault injection

Supported Endpoints

Representative endpoints work out of the box.

EndpointSupport
/v1/chargesFull passthrough
/v1/payment_intentsFull support
/v1/customersTransparent proxy/remapped IDs
/v1/webhooksProxy or standardized handling

For a complete compatibility table, contact your implementation team.

Versioning

We mirror your current Stripe API version. Stripe.js v3 is fully supported; named versions are routed accordingly.

Compatibility Notes

  • Stripe.js versioning preserved
  • Webhooks can be proxied/standardized
  • Optional smart retry
  • Error codes preserved unless normalization is enabled

Examples

Tokenize a Card

curl https://stripe.api.modopayments.io/v1/tokens \
-u sk_test_123456: \
-d "card[number]"=4242424242424242 \
-d "card[exp_month]"=12 \
-d "card[exp_year]"=2025 \
-d "card[cvc]"=123

Create a Payment Intent

curl https://stripe.api.modopayments.io/v1/payment_intents \
-u sk_test_123456: \
-d amount=1000 \
-d currency=usd \
-d "payment_method_types[]"=card

FAQ

Do I need to change token or customer ID storage? No—unless you opt into unified profiles.

Are my existing API keys compatible? Yes—same format.

What if I add another processor later? Expansion is seamless via routing abstractions.

How are errors handled? By default, the same errors Stripe returns. Normalized errors are optional.