🇪🇺 Static IP for Stripe — Payment API Proxy

🇪🇺 Static IP for Stripe

Using Stripe for payments from containers, serverless functions, or cloud platforms? Your dynamic outbound IP changes on every deploy. Route payment intents, subscriptions, refunds, and all Stripe API calls through a dedicated static EU IP for secure, auditable payment processing.

charge.py

import stripe

# Route through static EU IP

# HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443

stripe.api_key = "sk_live_..."

charge = stripe.Charge.create(

  amount=2000,

  currency="eur",

  source="tok_visa",

  description="Order #1234"

)

The Problem

Stripe supports IP restrictions on API keys and webhook endpoints — but your infrastructure IPs keep changing

Stripe API Key IP Restrictions

Stripe lets you restrict API keys to specific IP addresses. Payment processing demands strict access controls — but your IPs keep rotating with every deployment.

Dynamic IPs Break Payment Flows

Containers, Kubernetes pods, and serverless functions get new IPs on every deploy. Your IP-restricted Stripe keys stop working without warning — payments fail silently.

PCI Compliance & Audit Requirements

Payment compliance audits require stable, auditable outbound IPs for all Stripe API interactions. Dynamic IPs create gaps in your security documentation and audit trails.

Webhook Verification Complexity

Stripe webhooks need to reach your servers, and your outbound calls to Stripe need stable IPs. Multiple environments with different IPs make webhook management unscalable.

When Your Security Team Asks

"All Stripe API keys must be IP-restricted. Payments can only originate from approved addresses."

You need one stable IP to give them — not an IP that changes with every deployment.

The Solution

Route Stripe API Calls Through a Dedicated HTTPS Proxy with Static IP

Your Payment App

HTTPS Proxy

(Static EU IP)

Stripe API

Stripe sees your fixed EU IP addresses — every API call from payment intents and subscriptions to refunds and payouts. Two IPs for high availability.

Works with all Stripe APIs — Payment Intents, Charges, Subscriptions, Customers, Payouts, Refunds, and more
Set HTTPS_PROXY as an environment variable — zero code changes required
TLS passthrough — payment data and API keys stay encrypted end-to-end

Why Teams Choose This for Stripe

Two static IPs to whitelist — works across all Stripe endpoints (Payments, Subscriptions, Connect, Billing, Identity) with automatic failover
IP-restricted API keys — lock your Stripe secret keys to one fixed IP for maximum payment security
EU-hosted infrastructure — payment traffic stays within the EU, supporting GDPR and PSD2 compliance
PCI DSS audit trail — stable outbound IP provides clear documentation for payment security assessments
Works with Stripe SDK in Python, Node.js, Ruby, PHP, Go, Java, and .NET — standard HTTPS_PROXY support
Consolidates API calls from all services — Lambda, Docker, Kubernetes, on-premise — into two IPs with automatic failover

Designed For

Payment Engineers

Building payment flows with Stripe that need IP-restricted API keys and stable outbound IPs for PCI DSS compliance

SaaS Builders

Running subscription-based SaaS platforms with Stripe Billing that need IP-whitelisted API access across multiple environments

E-Commerce Teams

Processing online payments with Stripe from cloud infrastructure that needs consistent IP addresses for fraud prevention and security

Security & Compliance Teams

Ensuring PCI DSS and GDPR compliance for payment processing with auditable outbound IP trails and EU-only routing

Implementation

Set HTTPS_PROXY as an environment variable. All Stripe API calls automatically route through your static IP. No code changes needed.

Python (Payment Intent)

Set stripe.proxy to your proxy URL. Every Stripe API call routes through your static EU IP.

# .env or shell
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
STRIPE_SECRET_KEY=sk_live_...

import os
import stripe

stripe.api_key = os.environ["STRIPE_SECRET_KEY"]
stripe.proxy = {
    "https": os.environ["HTTPS_PROXY"],
}

# All API calls now route through your static EU IP
intent = stripe.PaymentIntent.create(
    amount=2000,
    currency="eur",
    automatic_payment_methods={"enabled": True},
)

print(intent.id)  # pi_3MtwBw...

Node.js (Subscription)

Pass HTTPS_PROXY to the Stripe SDK via the httpAgent option. All calls route through your static EU IP.

// .env or shell
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
STRIPE_SECRET_KEY=sk_live_...

const HttpsProxyAgent = require('https-proxy-agent');
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY, {
  httpAgent: new HttpsProxyAgent(process.env.HTTPS_PROXY),
});

// Every API call routes through your static EU IP
const subscription = await stripe.subscriptions.create({
  customer: 'cus_Nq1k8a',
  items: [{ price: 'price_1MtwBw' }],
});

console.log(subscription.id);

Docker / Kubernetes / Lambda

Set the env var in your platform config. Every environment works the same way.

# Docker Compose: reference a .env file (never hardcode secrets)
services:
  app:
    env_file:
      - .env

# Kubernetes: use a Secret object
env:
  - name: HTTPS_PROXY
    valueFrom:
      secretKeyRef:
        name: outboundgateway-proxy
        key: proxy-url

# AWS Lambda: set in function environment variables
HTTPS_PROXY=${OUTBOUNDGATEWAY_PROXY_URL}

Two Static IPs for High Availability

You get two static IP addresses (e.g. 51.xx.xx.10 and 51.xx.xx.11). Whitelist both in your Stripe Dashboard — if one proxy node goes down, traffic automatically fails over to the other. No single point of failure for your payment flows.

📖 Complete Documentation: For detailed examples, error handling, and advanced configurations, see our Python SSL Proxy Guide, Node.js Guide, and all other language guides.

Built for EU Payment Processing

EU-hosted infrastructure designed for GDPR and PSD2 compliance for your Stripe payment integrations.

EU-Hosted Infrastructure

European data centers. Payment traffic routes through EU infrastructure — supporting GDPR data residency and PSD2 strong customer authentication requirements.

PCI DSS Alignment

TLS passthrough means we never see your payment data. Stripe API keys and cardholder data stay encrypted end-to-end. Stable IP supports PCI DSS network security documentation.

No US-Based Routing

API traffic routes entirely within EU infrastructure. No detours through US servers that could complicate GDPR compliance for payment data.

Clear Audit Trail

Two static IPs provide a clear, auditable outbound identity for PCI DSS security reviews and Stripe dashboard IP restriction configuration. Automatic failover keeps payments flowing.

Why Developers Choose OutboundGateway for Stripe

Two Static IPs for HA

Two fixed IPs for all Stripe API calls. Whitelist both in your Stripe Dashboard — automatic failover if one node goes down. Works across every Stripe product.

Zero Code Changes

Set the HTTPS_PROXY env var. Stripe SDKs in Python, Node.js, Ruby, PHP, Go, and Java automatically detect it. Your payment code works as-is.

EU-Hosted Infrastructure

European data centers. GDPR-conscious setup. Perfect for EU businesses processing payments with PSD2 and GDPR requirements.

All Stripe Products

Payments, Subscriptions, Connect, Billing, Identity, Radar, Payouts — one static IP covers every Stripe API your application uses.

End-to-End Encryption

TLS passthrough means we can't see your traffic. Your API keys stay secure.

Simple Transparent Pricing

Starting from €29/month. Flexible plans for every scale. Cancel anytime.

Get Your Static EU IP for Stripe

Stop worrying about dynamic IPs breaking your Stripe API access. Start using a dedicated, EU-based static IP for secure, auditable payment processing.

€29/month starter plan • 7-day refund policy • Direct founder support

Still Deciding?

We're happy to help you determine if OutboundGateway is the right fit for your Stripe payment integrations.

Contact Our Founders →