Skip to main content
DevOps sets these variables at deploy time. A change requires a service restart. Runtime and business settings live in Configuration. In the tables below, the Default / Required column shows the default value. A bold qualifier (for example Required, Required in production, Required if enabled) marks a variable you must set. — means no default.

Infrastructure configuration


This section is for DevOps teams. DevOps sets these variables at deploy time. A change takes effect only after a service restart.

Application

TLS

Proxy headers

Set these when the service runs behind a load balancer or reverse proxy. They let the service read the real client IP for rate limiting and audit logs.

Authentication

This plugin delegates authorization to Access Manager. Configure the connection with the variables below.
When PLUGIN_AUTH_ENABLED=true, PLUGIN_AUTH_ADDRESS must use HTTPS in production environments. The service rejects an HTTP address at startup.

Organization scope

PostgreSQL

PostgreSQL replica

Configure a read replica for query offloading. All fields fall back to primary values when unset.

MongoDB

The service uses MongoDB to persist transfer audit events. It does not start without a valid MongoDB connection.

Redis

Redis is a mandatory dependency. It caches idempotency keys and detects duplicates. If Redis is unavailable at startup, or becomes unreachable at runtime, the service reports as DOWN to the readiness probe. It then stops accepting requests.

JD SPB connection

The plugin validates the JD variables only when JD_BASE_URL is set.

JD polling

JD_POLLING_ENABLED defaults to false for safer deployments. Set ORGANIZATION_ID before you enable it. Background workers inject that value into the context for downstream CRM and Midaz calls.

External services (Midaz)

Bank Transfer asks Midaz to create a transaction metadata index for its correlation reads. This call needs the Midaz settings post permission, in both fee modes.
Under the default auto, Bank Transfer moves to native by itself as soon as it reads Midaz 4.1.0 or later. If your fee packages still live in plugin-fees, Midaz finds no package, and new transfers carry no fee. Set MIDAZ_FEE_MODE=legacy before you upgrade Midaz, then follow Migrate Bank Transfer fees to Midaz.

External services (CRM)

External services (Fees)

These variables configure plugin-fees, and they apply only when the fee mode is legacy. BTF_FEE_ENABLED turns plugin-fees on. When false (default), the plugin builds no plugin-fees adapter, and every legacy transfer proceeds with fee 0 and no HTTP call. The other FEES_* variables take effect only when BTF_FEE_ENABLED=true. In native mode, BTF_FEE_ENABLED does not turn fees on or off: the Midaz fee package of the ledger does.

RabbitMQ

When streaming is enabled, the plugin can fan out transfer lifecycle events to RabbitMQ for downstream consumers.

Streaming outbox

The streaming subsystem publishes transfer events to the single application topic lerian.streaming.plugin-br-bank-transfer on a Redpanda/Kafka broker through a transactional outbox. You must enable it for outbound webhook delivery (WEBHOOK_ENABLED=true requires STREAMING_ENABLED=true). While streaming is off, the plugin discards events: turning it on later publishes only new events.

Webhook delivery

Outbound webhook delivery requires both RabbitMQ and the streaming outbox. The webhook worker consumes events from a RabbitMQ queue and delivers them to subscriber endpoints.

Telemetry (OpenTelemetry)

License

Encryption

Field-level encryption for sensitive data at rest. Each key must be a hex-encoded 32-byte AES-256 key (64 hex characters). Both keys are required in production. Outside production, an empty key disables encryption for that field.