🇪🇺 Static IP for Adyen — Payment API Proxy

🇪🇺 Static IP for Adyen

Processing payments with Adyen from containers, serverless, or cloud platforms? Adyen lets you restrict API credentials to specific IP addresses. Route all payment, payout, and management API calls through a dedicated static EU IP for secure, auditable payment processing.

payment.py

import Adyen

import os

# Route through static EU IP

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

adyen = Adyen.Adyen()

adyen.payment.client.xapikey = os.environ["ADYEN_API_KEY"]

result = adyen.payment.authorise({

  "amount": {"value": 2000, "currency": "EUR"},

  "reference": "ORDER-123",

  "merchantAccount": "YourMerchant",

})

The Problem

Adyen lets you restrict API credentials to specific IP addresses — but your infrastructure IPs keep changing

Adyen Allowed IP Range Restrictions

Adyen's API credential settings let you add allowed IP ranges. Only requests from those IPs are permitted — but your containers and serverless functions get new IPs on every deploy.

Dynamic IPs Break Payment Flows

Kubernetes pods, Lambda functions, and Docker containers rotate IPs constantly. Your Adyen API credentials stop working without warning — payments fail, captures miss, and refunds don't go through.

PCI DSS Compliance Audits

Payment security audits require stable, documented outbound IPs for all Adyen API interactions. Dynamic IPs create gaps in your PCI DSS network security documentation.

Multiple API Credentials, Multiple IPs

Adyen recommends separate API credentials for online, POS, and refund channels. Each credential needs its own IP whitelisting — unmanageable with rotating IPs across environments.

When Your Security Team Asks

"All Adyen API credentials must be restricted to approved IP addresses. No unrestricted access to payment endpoints."

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

The Solution

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

Your Payment App

HTTPS Proxy

(Static EU IP)

Adyen API

Adyen sees your fixed EU IP addresses — every API call from payments and payouts to refunds and disputes. Two IPs for high availability.

Works with all Adyen APIs — Checkout, Payments, Payouts, Recurring, Management, Transfers, 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 Adyen

Two static IPs for HA — whitelist both in your Adyen API credential settings under "Allowed IP range" with automatic failover
Works across all Adyen API credentials — online payments, POS, refunds, payouts, each with separate IP restrictions
EU-hosted infrastructure — payment traffic stays within the EU, supporting GDPR and PSD2 compliance
PCI DSS audit trail — stable outbound IPs provide clear documentation for payment security assessments
Works with Adyen SDKs in Python, Node.js, Java, PHP, Ruby, and Go — 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 Adyen that need IP-restricted API credentials and stable outbound IPs for PCI DSS compliance

Enterprise Platforms

Running multi-channel payment platforms with Adyen — online, POS, and marketplace — each needing separate IP-whitelisted API credentials

E-Commerce Teams

Processing online payments with Adyen from cloud infrastructure that needs consistent IPs for fraud prevention and security

Security & Compliance Teams

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

Implementation

Configure your Adyen SDK to use HTTPS_PROXY. All API calls route through your static EU IP.

Python (Adyen SDK)

Set HTTPS_PROXY and pass it to the Adyen SDK. Every API call routes through your static EU IP.

# .env or shell
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
ADYEN_API_KEY=your_api_key
ADYEN_MERCHANT_ACCOUNT=YourMerchant

import os
import Adyen
import requests

adyen = Adyen.Adyen()
adyen.payment.client.xapikey = os.environ["ADYEN_API_KEY"]
adyen.payment.client.merchant_account = os.environ["ADYEN_MERCHANT_ACCOUNT"]

# Set proxy on the underlying HTTP session
adyen.payment.client.http_force_proxy = os.environ["HTTPS_PROXY"]

# All API calls now route through your static EU IP
result = adyen.payment.authorise({
    "amount": {"value": 2000, "currency": "EUR"},
    "reference": "ORDER-123",
    "paymentMethod": {
        "type": "scheme",
        "number": "4111111111111111",
        "expiryMonth": "03",
        "expiryYear": "2030",
        "holderName": "John Smith",
    },
    "returnUrl": "https://example.com/return",
})

print(result.message["pspReference"])

Node.js (Adyen SDK)

Pass HTTPS_PROXY to the Adyen Node.js SDK via https-proxy-agent.

// .env or shell
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
ADYEN_API_KEY=your_api_key
ADYEN_MERCHANT_ACCOUNT=YourMerchant

const HttpsProxyAgent = require('https-proxy-agent');
const { Client, Checkout } = require('@adyen/api-library');

const client = new Client({
  apiKey: process.env.ADYEN_API_KEY,
  environment: 'LIVE',
  httpAgent: new HttpsProxyAgent(process.env.HTTPS_PROXY),
});

const checkout = new Checkout(client);

// Every API call routes through your static EU IP
const paymentResponse = await checkout.payments({
  amount: { currency: 'EUR', value: 2000 },
  reference: 'ORDER-123',
  paymentMethod: { type: 'scheme' },
  merchantAccountCode: process.env.ADYEN_MERCHANT_ACCOUNT,
  returnUrl: 'https://example.com/return',
});

console.log(paymentResponse.pspReference);

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). Add both to your Adyen API credential "Allowed IP range" — if one proxy node goes down, traffic automatically fails over. 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 Adyen payment integrations.

EU-Hosted Infrastructure

European data centers. Payment traffic routes through EU infrastructure — Adyen is EU-based (Netherlands), so your traffic stays within European borders.

PCI DSS Alignment

TLS passthrough means we never see your payment data. Adyen API keys and cardholder data stay encrypted end-to-end. Stable IPs support 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 Adyen API credential IP restrictions. Automatic failover keeps payments flowing.

Why Developers Choose OutboundGateway for Adyen

Two Static IPs for HA

Two fixed IPs for all Adyen API calls. Add both to your "Allowed IP range" in the Adyen Customer Area — automatic failover if one node goes down.

Zero Code Changes

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

EU-Hosted Infrastructure

European data centers. GDPR-conscious setup. Adyen is Netherlands-based — your traffic stays in the EU.

All Adyen Products

Checkout, Payments, Payouts, Recurring, Management API, Transfers, POS — one static IP covers every Adyen endpoint 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 Adyen

Stop worrying about dynamic IPs breaking your Adyen 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 Adyen payment integrations.

Contact Our Founders →