— means no default.
Infrastructure configuration
This section is for DevOps teams. These variables are set at deployment time and require a service restart to take effect.
Application
TLS
Proxy headers
Used when the service runs behind a load balancer or reverse proxy. Required to extract the real client IP for rate limiting and audit logs.Authentication
This plugin delegates authorization toplugin-auth. Configure the connection with the variables below.
Test admin (non-production only)
Idempotency
Multi-tenancy
BYOC single-tenant:
PostgreSQL
PostgreSQL replica
Configure a read replica for query offloading. All fields fall back to primary values when unset.MongoDB
MongoDB is required for transfer audit event persistence. The service will not start without a valid MongoDB connection.Redis
JD SPB connection
These variables are required for BYOC deployments. In SaaS mode, Lerian manages the JD connection.JD polling
JD_POLLING_ENABLED defaults to false for safer deployments. In single-tenant mode, set ORGANIZATION_ID before enabling it — background workers inject it into context for downstream CRM/Midaz calls. In multi-tenant mode, the TED IN poller manager starts one poller per active tenant discovered through the multi-tenancy platform service and resolves each tenant’s JD configuration through the multi-tenancy platform service.External services (Midaz)
External services (CRM)
External services (Fees)
BTF_FEE_ENABLED is the master switch. When false (default), no Fees adapter is constructed and every transfer proceeds with fee=0 with no HTTP call. The other FEES_* variables only take effect when BTF_FEE_ENABLED=true.RabbitMQ
Transfer lifecycle events can be published to RabbitMQ for downstream consumers.Streaming outbox
The streaming subsystem publishes transfer events to a Redpanda/Kafka broker via a transactional outbox. It must be enabled for outbound webhook delivery to work (WEBHOOK_ENABLED=true requires STREAMING_ENABLED=true).

