Estas variables describen un despliegue BYOC. En Lerian Cloud, no las defines.
En las tablas siguientes, la columna Predeterminado / Obligatorio muestra el valor predeterminado. Un calificador en negrita (por ejemplo Obligatorio) marca las variables que debes definir.
— significa que no hay valor predeterminado. 🔒 marca un secreto. Inyéctalo en el momento del despliegue desde tu almacén de secretos y nunca lo incluyas en un commit. Esta página lista solo nombres de variables y comportamiento. No imprime ningún valor secreto.Servidor y puerto
El servicio escucha en la dirección deSERVER_ADDRESS (predeterminado :8080). Las sondas de liveness, readiness y version se enlazan a este mismo puerto. Consulta Servidor para los controles compartidos del servidor y Puertos de red predeterminados.
Conexiones sin TLS
Integración con JD
Credenciales, endpoints, reintentos y límites de tiempo de la API de JD protegida con OAuth y de su superficie Pix (JDPI).
Los dos timeouts aplican en los dos modos de despliegue. Un valor de
0 o menor da el predeterminado. Mantén JDPI_TOTAL_TIMEOUT_MS por debajo del timeout de tu ingress. Así, en una solicitud de cliente, un JD que no responde recibe 504 PIX-1051 del riel, no un timeout del proxy.
Firma de la orden de pago
La clave que firma cada orden de pago de salida. Son opcionales: las necesitas solo cuando tu entorno de JD exige órdenes firmadas. La API lee estas variables. El worker no.
Deja las tres vacías y el riel envía órdenes sin firma. Define solo algunas, o un valor que no sirve, y el riel rechaza cada pago a otra institución con
409 PIX-0136 antes de llamar a JD. Para la clave, el certificado y JDPI Cabine, consulta Firma de la orden de pago.
Alojamiento de QR codes dinámicos
El riel aloja los payloads de QR dinámico firmados (JWS) y el conjunto de JWK que los verifica. La sección de referencia de QR codes da las formas de las rutas públicas, el formato de host sin esquema y el límite de 77 caracteres de URL de payload de BACEN. Las variables siguientes definen las partes que este despliegue controla.
Un participante directo puede publicar sus QR codes dinámicos en un host propio. El riel toma el host de los QR codes dinámicos de un participante directo de la primera de estas fuentes que tiene un valor:
- El campo
qrPublicBaseUrlde la entrada del participante en el catálogo de organizaciones. Una entrada con el ISPB detenancy/jd_integration_bindingdefine el host de ese participante. - Para el participante que nombra
tenancy/jd_integration_binding, la clave del systemplanetenant_policy/qrcodes.public_base_url. Su valor predeterminado es vacío. QRCODE_PUBLIC_BASE_URL.
500 PIX-0053. Cuando el riel no puede leer la clave, los rechaza con 503 PIX-0122.
Antes de definir o cambiar el host de un participante:
- Enruta la ruta de payload y la ruta de JWK del nuevo host (por defecto
/qr/*y/v1/qrcodes/jwks/*) a este servicio, sin ningún autorizador delante. El PSP del pagador llama a estas rutas sin credencial. - Mantén el host anterior en servicio hasta que venzan los QR codes emitidos en él. Un QR code mantiene el host en el que se emitió.
Conexión con el ledger de Midaz
Los endpoints del servicio de ledger y las credenciales machine-to-machine.No hay una dirección de Access Manager aparte para Midaz. El riel acuña su token saliente de Midaz contra el mismo Access Manager con el que valida los bearers entrantes,
PLUGIN_AUTH_HOST. Consulta Fundamentos de configuración BYOC.
Las dos claves
tenant_policy empiezan vacías. Hasta que escribas las dos, el riel rechaza todos los asientos, reembolsos y créditos entrantes con 409 PIX-0106. Para los pasos, consulta Configurar el riel.
Rutas contables
El riel registra cada flujo Pix en un par de rutas de operación de Midaz, una pata de crédito y una pata de débito. Los identificadores de ruta no son variables de entorno. Viven en las claves de systemplanetenant_policy/routing.<profile>.operation_credit_route y tenant_policy/routing.<profile>.operation_debit_route. No hay fallback de entorno.
Cada perfil también tiene una clave opcional de ruta de transacción, tenant_policy/routing.<profile>.transaction_route. El riel envía su valor como la ruta de cada asiento de ese perfil. Un ledger de Midaz que valida rutas rechaza un asiento sin ella. El riel responde entonces PIX-4011. Cuando la clave está vacía, el asiento no lleva ruta de transacción.
Para los perfiles, los nombres exactos de las claves y cómo escribirlas, consulta Configurar el riel.
Jobs
La ventana diaria de los límites de transacción no es una variable de entorno. Vive en las claves de systemplane
tenant_policy/transaction_limits.daily_period_init y tenant_policy/transaction_limits.daily_period_end, en los dos modos de despliegue. Cada clave toma una hora de reloj de 0 a 23. El riel ignora las variables antiguas TRANSACTION_LIMIT_DAILY_PERIOD_INIT y TRANSACTION_LIMIT_DAILY_PERIOD_END.Pix Automático
El Pix Automático de JD tiene dos pasos opcionales que permanecen apagados hasta que tu institución los activa. El débito en sí siempre se ejecuta.
Activa cada uno solo después de que tu institución acuerde con JD usar ese paso. El riel lee ambos al arrancar, así que un cambio requiere un reinicio.
Filtrado de créditos entrantes
Tu Tracer puede juzgar los créditos Pix entrantes en la validación de cuenta, síncrona y asíncrona, antes de que el riel los acepte. La clave del systemplanetenant_policy/tracer.inbound_credit_enabled activa el filtrado para un tenant. Su valor predeterminado es false. Cuando es true:
- Tracer juzga los créditos que pasaron las verificaciones propias del riel, solo con sus reglas. No verifica ni cuenta límites.
- Tracer no ve estos créditos, y cada uno mantiene el veredicto propio del riel:
- un crédito cuyo pagador es Bacen
- un crédito en el que atiendes solo el lado del pagador
- un crédito cuyos datos de cuenta no coinciden con ninguna cuenta del CRM, o coinciden con más de una
- un crédito sin monto
- un crédito para un cliente de un participante indirecto
DENYyREVIEWrechazan el crédito con el motivoDS04.- Cuando Tracer no puede responder, el riel acepta el crédito sin filtrarlo. Esto incluye una
MIDAZ_URL_TRACERvacía, un Tracer de una release de Midaz anterior a 4.3.0 y ninguna respuesta en 1 segundo. - Tracer recibe el CPF o el CNPJ y el ISPB del pagador, el monto, la cuenta del ledger acreditada y el
endToEndId. No recibe nombres.
validations (acción post).
Este filtrado no es la verificación de Tracer en el ledger. Cuando esa verificación rechaza el crédito de un Pix recibido, el Pix espera a un operador. Consulta Pix recibido que espera a un operador.
Notificaciones
Notificaciones opcionales al cliente final para los eventos de Pix. Deja los bloques de proveedor sin definir para deshabilitar ese canal.CRM
Mapa de propiedad de Courier
Algunas instituciones comparten un ISPB entre dos sistemas core. JD Courier mantiene un mapa de propiedad que indica qué core tiene cada cuenta. El riel consulta ese mapa en un solo caso. El receptor de un Pix saliente nombra el ISPB propio del participante que paga, y tú declaras ese ISPB como compartido.
Pix JD intercambia
COURIER_CLIENT_ID y COURIER_CLIENT_SECRET con Access Manager por un token, y envía ese token en cada llamada a JD Courier.
Declaras un ISPB compartido en el systemplane. La clave tenant_policy/onus.shared_ispb_gate_enabled cubre tu organización predeterminada, y su valor predeterminado es false. Una organización del catálogo de organizaciones usa su campo sharedIspbGate. Mientras la declaración es false, el riel no consulta el mapa.
Cuando la declaración es true, estos rechazos aplican a un Pix saliente hacia una cuenta en tu propio ISPB:
El riel rechaza antes de reservar un saldo, así que un rechazo no mueve dinero.
Tres claves de systemplane definen los límites de tiempo de la consulta. Aplican en los dos modos de despliegue:
Pix entre cores
Cuando el mapa asigna la cuenta al otro core, el riel no envía el Pix al SPI. Retiene el monto en la cuenta del pagador contra la cuenta@intercore. Después, envía el Pix al otro core por el relay de JD Courier:
Por el relay, el riel también recibe los Pix que envía el otro core y las devoluciones de los Pix que el riel envió. Acredita al receptor contra
@intercore. Una devolución de un Pix que el riel recibió del otro core vuelve por el relay.
Antes del primer Pix entre cores, crea la cuenta @intercore en el ledger. Un Pix o una devolución del otro core la debita, así que permite el sobregiro en su saldo. Define también las rutas de los perfiles cross_core_out, cross_core_in, cross_core_return_out y cross_core_return_in. Sin las rutas de un perfil, el riel rechaza su flujo con 409 PIX-0105.
Reclamaciones en el Courier
Consulta Conectar un motor. Cuando el Courier está configurado, el worker reclama en el Courier las recurrencias de Pix Automático que el riel aceptó como la institución del pagador. Envía hasta 100 reclamaciones en cada pasada. Cuando una reclamación falla, el worker la envía de nuevo en una pasada posterior. El worker no envía de nuevo una reclamación que el Courier rechaza con un conflicto. El worker lee la configuración del Courier del mismo lugar que la API. El worker y la ruta de abajo reclaman cada participante en su propio Courier, y omiten un participante que no tiene Courier. Antes de que el Courier empiece a recibir tu Pix, llama a la ruta de propiedad del Courier (POST /v1/pix-automatico/courier-ownership). Reclama las recurrencias que ya existen y declara los bloqueos del débito y los agendamientos de los pagos en curso. Llámala de nuevo después de que el Courier empiece a recibir tu Pix, para declarar las etapas abiertas entre las dos llamadas. La ruta también reclama de nuevo las recurrencias que el Courier rechazó antes.
heldElsewhere en la respuesta lista las claves que el Courier rechazó con un conflicto. Un operador resuelve cada una.
Participantes indirectos
Solo es relevante si este despliegue liquida Pix por cuenta de otras instituciones.Configuración de runtime (systemplane)
Este riel monta la API de administración de systemplane en su puerto principal.SYSTEMPLANE_ENABLED la activa.
Cuando la habilitas, el servicio expone un plano autenticado para leer y escribir la configuración de runtime. Consulta Systemplane para la API, los namespaces y los permisos necesarios.
El riel lee varios valores solo desde ese plano, en los dos modos de despliegue. Un despliegue que los deja sin definir arranca sano y rechaza dinero:
Con
SYSTEMPLANE_ENABLED=false, el servicio no monta el grupo de rutas /system. Todas las escrituras de configuración responden entonces 404. Una ruta de dinero que no puede leer su configuración responde el 503 PIX-0051 reintentable, no un rechazo por aprovisionamiento. El permiso de escritura es systemplane:write. Sin él, las escrituras responden 403.Llamadas de JD sin JD Courier
Para los pasos, mira Dale a JD su credencial.
Declaración de permisos
Al iniciar, el servicio puede publicar su declaración de permisos en el Access Manager. En el modo multi-tenant, el Tenant Manager la publica.
Con
IDP_DECLARATION_ENABLED=true, el servicio no inicia cuando una de las otras tres variables está vacía, cuando IDP_HOST no es válida, o cuando PLUGIN_AUTH_ENABLED no es true. Cuando el Access Manager rechaza la publicación o no responde, el servicio inicia de todos modos.
Actualizar desde una versión anterior
Sigue los pasos de cada versión por la que pasas camino a la versión que instalas. A 1.4.0.- En un despliegue self-hosted donde la declaración de permisos de Pix JD no está publicada, dale a los roles de Pix el permiso
parked-credits(acciónpost). Sin él, las dos rutas de créditos en espera responden403. - Actualiza fuera del intervalo 00:00–08:00, hora de Brasilia. Los bloqueos y los débitos de Pix Automático corren en ese intervalo.
- Una aplicación existente de JD con el origen
jd-consultoressigue funcionando, y una instalación detrás de JD Courier no necesita ningún paso. Para una nueva integración directa con JD, mira Dale a JD su credencial.
- Si la aplicación de JD no tiene el origen
jd-consultores, lista su client ID como describe Dale a JD su credencial, en cuanto el riel corra la 1.4.0. Hasta que lo listes, el riel rechaza cada llamada que hace JD, Pix entrantes incluidos, con403 PIX-0005. Con JD Courier, la credencial del Courier debe tener el origenjd-courier. - En modo single-tenant con
ENV_NAME=production, confirma queJD_BASE_URLes una direcciónhttps. De lo contrario, el servicio no inicia. - Confirma que tus clientes envían el header
X-Idempotencycuando registran una clave aleatoria (keyType4). Sin él, el riel responde400 PIX-0061. - Confirma que tus clientes usan solo los nombres de campo en inglés. Consulta Nombres de campo en inglés.
MULTI_TENANT_ALLOW_INSECURE_HTTP. En modo multi-tenant con un Tenant Manager en http://, define ALLOW_INSECURE_TLS=true en la API y en el worker antes de la actualización. De lo contrario, el servicio no inicia. Si tu despliegue ya define ALLOW_INSECURE_TLS=true, Pix JD 1.2.1 y posteriores también aceptan direcciones http:// para las conexiones de Conexiones sin TLS, en todo entorno.
A 1.2.0. En un despliegue self-hosted, antes de la actualización, dale a la aplicación que COURIER_CLIENT_ID nombra el permiso ownership:write en JD Courier. Donde la declaración de permisos de Pix JD no está publicada, confirma también que los roles de Pix en el Access Manager tienen el permiso courier-ownership (acción post). La ruta de propiedad del Courier de esta versión necesita courier-ownership, y responde 403 sin él. En un despliegue single-tenant, define también las variables CRM_*, y con JD Courier las variables COURIER_*, en el worker. Consulta Reclamaciones en el Courier.
A 1.1.1. No se requiere ningún paso. Las tres variables de firma de la orden de pago son nuevas y opcionales. Defínelas solo si JD exige órdenes de pago firmadas para tu institución. Consulta Firma de la orden de pago.
A 1.1.0. En un despliegue self-hosted donde la declaración de permisos de Pix JD no está publicada, antes de la actualización, confirma que los roles de Pix en el Access Manager tienen el permiso entries-lookup (acción get). La ruta de consulta de claves de esta versión lo necesita, y responde 403 sin él.
A 1.0.0, desde el plugin Pix anterior.
-
Antes de la actualización, escribe
tenant_policy/midaz.asset_idytenant_policy/midaz.external_id. Usa los valores deMIDAZ_ASSET_IDyMIDAZ_EXTERNAL_ID. Sin ellos, el riel actualizado rechaza todos los asientos con409 PIX-0106. -
Vuelve a leer
tenancy/jd_integration_binding. Confirma queorganizationIdyledgerIdnombran la organización y el ledger en los que este despliegue registra asientos. El riel los lee en cada llamada. -
Antes de actualizar, configura
MIDAZ_FEE_MODE=legacyen la API y en el worker. El valor predeterminado esauto. Cambia el valor aautosolo después de que se cumplan estas dos condiciones:- Ningún pod de la versión anterior atiende a ningún tenant.
- Revisaste tus paquetes de tarifas. Un paquete de tarifas sin ruta de transacción puede cobrar una tarifa en cada flujo Pix.
refundSental catálogo de organizaciones solo después de que ningún pod de la versión anterior atienda al tenant. - Con el streaming de eventos activo, el servicio no arranca mientras su outbox tenga eventos sin entregar en un formato de evento anterior. Entrega esos eventos con el build que los escribió antes de actualizar.
-
Después de la actualización, elimina de tu entorno las cuatro variables de identidad
MIDAZ_*.
Salud y readiness
El riel exponeGET /health (liveness) y GET /readyz (readiness) en el puerto principal, además de /metrics y /version. Consulta Salud y readiness para la forma de la respuesta.
