🇪🇺 Aggregation-grade egress

🇪🇺 Static IP for Powens

Powens tokens can walk through every customer account your platform syncs across France, Spain, and Italy. Lock that power behind two fixed static EU IPs and the lock never slips.

powens_sync.py

import requests, os

# HTTPS_PROXY from env, honoured

r = requests.post(

f"https://{os.environ['POWENS_DOMAIN']}"

".biapi.pro/2.0/auth/init",

auth=(CLIENT_ID, CLIENT_SECRET))

Your credentials are master keys

Aggregation means one platform holding bank connections for thousands of users. The tokens that orchestrate those connections deserve the same perimeter discipline as the data they reach.

One leak empties everything

A manage token from your Powens setup does not open one account, it opens the corridor: enumerate users, trigger bank synchronizations, pull refreshed transactions at scale. Enterprise clients therefore restrict token usage to specific single /32 addresses in the console, so a stolen credential fired from anywhere else simply bounces.

A /32 lock hates moving platforms

Single-address restrictions are rigorous precisely because they admit exactly one origin. Run your sync workers on Kubernetes, serverless, or any autoscaling fleet, and the next pod lands outside the rule. Teams face a bad choice: widen the allowlist until it protects nothing, or watch background jobs fail after every scale-out event.

Syncs never sleep

Account aggregation is a standing arrangement: connections on your biapi.pro domain refresh on schedules, webhook reactions fire when banks respond, and none of it waits for a human. An origin that changes overnight is discovered as a pile of failed synchronizations the next morning.

Three markets of data gravity

Powens (which absorbed Budget Insight) aggregates across France, Spain, and Italy, so your syncs move bank data belonging to consumers in three jurisdictions. Under GDPR, where that traffic exits from is part of your processing story, and "wherever the cluster scheduler put the pod" is nobody's favourite answer.

The Solution

Two /32s your tokens can call home

Sync workers

auth/init, connections, webhooks

HTTPS Proxy

(Static EU IP)

yourdomain.biapi.pro

users, connections, payments

Every request your platform sends, from the first auth/init to the thousandth connection refresh, arrives from one of exactly two permanent European addresses. Enter those two /32s in the console restriction and the lock finally fits an autoscaling world.

Set HTTPS_PROXY in the workers' environment and standard HTTP libraries route the whole domain through the pair, no Powens SDK surgery required.
Both addresses are static for the life of the account and stand in for one another, so the console restriction keeps holding through any node maintenance.
Client secrets and user tokens stay inside their TLS envelopes end to end; the relay between is ciphertext-only.

Why aggregators pick OutboundGateway

Built for /32 discipline

Two permanent addresses, each a clean single-host entry, and the pair fails over between itself without ever introducing a third. Your console restriction stays exactly as tight as the day you configured it.

Invisible to your integration

The proxy lives in an environment variable beneath your sync workers. Token handling, connection management, and webhook processing continue exactly as Powens documents them.

EU provider, EU exits

A French open banking platform on one side and European data centres on the other: bank data from Paris, Madrid, and Milan stays on Union ground the whole way.

Designed for

Products whose value depends on holding thousands of bank connections and keeping them safe.

Personal finance apps

PFM tools aggregating accounts for consumers across France, Spain, and Italy, where one platform token touches every user's financial life.

Lending and scoring platforms

Credit decisioning services pulling transaction history on demand, whose risk engines must never lose a data pull to a rotated pod address.

Expensify-style B2B tools

Expense and treasury software syncing corporate accounts nightly, needing their batch pulls whitelisted once and trusted forever.

Security reviewers

Teams told to harden aggregation credentials after a pen test or audit, looking for the narrowest possible network story around their Powens tokens.

Implementation

One environment variable, and every call to your biapi.pro domain travels through the fixed pair.

Python: initialize a user, proxied

Create a user and fetch their token with your client credentials. requests honours HTTPS_PROXY straight from the environment, so the workers inherit the fixed egress automatically.

import requests, os

# HTTPS_PROXY is honoured automatically
resp = requests.post(
    f"https://{os.environ['POWENS_DOMAIN']}.biapi.pro/2.0/auth/init",
    auth=(os.environ["POWENS_CLIENT_ID"],
          os.environ["POWENS_CLIENT_SECRET"]),
    timeout=30,
)

# Bearer token for this user's subsequent calls
user_token = resp.json()["auth_token"]

Node.js: dispatcher once, reuse everywhere

Node's fetch needs the proxy handed to it explicitly. Build the dispatcher at startup and share it across connection refreshes and payment calls.

import { ProxyAgent } from "undici";

const base = `https://${process.env.POWENS_DOMAIN}.biapi.pro/2.0`;
const dispatcher = new ProxyAgent(process.env.HTTPS_PROXY);

const res = await fetch(`${base}/users/me/me`,
  { dispatcher, headers: { Authorization: `Bearer ${userToken}` } });

Docker: secrets in one ignored file

Keep the proxy credential and your Powens client pair together, outside the image and outside git.

# .env.powens (git-ignored)
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
POWENS_DOMAIN=yourdomain
POWENS_CLIENT_ID=your-client-id
POWENS_CLIENT_SECRET=your-secret
services:
  sync-workers:
    image: your-aggregation-service
    env_file: .env.powens

Two entries, entered once

Your account provides two permanent European addresses operating as a redundant set. Register both as the allowed single-host entries on your token restrictions: whichever node serves a request, the source Powens checks against stays within that pair for the life of the account.

📖 Complete Documentation: For detailed examples, error handling, and advanced configurations, see the all guides.

Aggregated accounts, EU path

PSD2-regulated aggregation moves consumer bank data in bulk. A fixed European exit keeps the network chapter of your DPIA short.

PSD2 and GDPR by default

Account information services operate under PSD2, and the underlying data belongs to consumers in France, Spain, and Italy. Exiting through EU nodes keeps cross-border descriptions factual and short.

Tokens sealed in transit

Client secrets, manage tokens, and user-scoped bearer tokens all travel inside TLS that the proxy relays without touching. Your credentials reach only the host they were meant for, from an address that is yours alone.

What you get

Theft-proof by address

Credentials restricted to your two addresses are useless anywhere else, which is the whole point of locking them.

Env-var only setup

One variable in the worker environment. Auth flows, connection sync, and payment calls continue unchanged in code.

Failover that keeps the lock

If a node steps out, its partner carries the traffic without adding a new address, so restrictions configured once never need revisiting.

European data centres

Syncs covering French, Spanish, and Italian banks leave from inside the Union, simplifying your GDPR record-keeping.

Scale without widening

Grow the worker fleet to any size and the allowed set stays exactly two addresses; capacity changes, the permit does not.

Honest pricing

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

Give your master keys a safe home

One environment variable and every Powens call your platform makes, today and at a hundred thousand users, leaves through the same two fixed EU IPs.

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

Frequently asked questions

Can I restrict my Powens tokens to specific IP addresses?

Yes, that is exactly the protection this setup is built around: enterprise clients can limit token usage to specific single-address (/32) entries, so a credential lifted from your infrastructure is worthless from anywhere else. Because the restriction is configured per client with Powens, confirm the exact console options available on your contract. OutboundGateway hands you two permanent addresses that fit such entries cleanly, with failover between them.

Does the proxy interfere with the auth/init flow or user tokens?

No. The exchange of your client credentials for a user token at /2.0/auth/init is an ordinary HTTPS request; it crosses the fixed pair inside its TLS envelope, and the token it returns works in Bearer headers exactly as documented. The proxy only changes where the request appears to originate, which is the entire point.

We aggregate in France, Spain, and Italy. One setup or three?

One. The multi-tenant domain model means your biapi.pro host serves every market your connections cover, and a single proxy variable in each worker's environment routes all of it through the same European pair. Banks in Paris, Madrid, and Milan all see the identical two addresses.

Aggregating with Powens?

Tell us how many connections you sync and how your tokens are scoped. Locking aggregation credentials down is a conversation we enjoy.

Contact Our Founders →