Skip to main content
O plugin Bank Transfer divide a configuração em três níveis. Você pode mudar a maioria das configurações de negócio em tempo de execução, sem reiniciar o serviço. A identidade do tenant e o escopo da organização Midaz servem a propósitos diferentes. Mantenha os dois distintos. A claim JWT tenantId no contexto da requisição autenticada resolve o tenant. O tenant controla o isolamento no nível de infraestrutura: ele seleciona o banco de dados da plataforma de multi-tenancy e concede acesso aos segredos com escopo de tenant. O header X-Organization-Id define o escopo da organização Midaz dentro desse tenant. Cada rota de transferência com escopo de organização exige este header, em todos os modos de deploy. Uma requisição retorna 400 se omitir o header ou enviar um valor que não seja um UUID válido. Processos em segundo plano, como o poller de TED IN e os workers de conciliação, não recebem headers de requisição. Em deploys single-tenant, esses processos usam a variável de ambiente ORGANIZATION_ID como contexto de organização.

Níveis de configuração


O plugin Bank Transfer tem três níveis de configuração:
  • Configuração de infraestrutura (o DevOps gerencia) controla URLs, credenciais, configurações de autenticação e timeouts. As mudanças precisam de reinício do serviço.
  • Configurações de tenant (o time de Produto gerencia pela Admin API) controlam limites de transferência, políticas de tarifas e sobreposições de horário de funcionamento. As mudanças entram em vigor sem reinício do serviço.
  • Configurações de conta (o time de Produto gerencia pela Admin API) controlam limites e restrições de contas individuais. As mudanças entram em vigor sem reinício do serviço.

Decisões de negócio que você pode configurar


GPMs e times de produto se importam com estas configurações. Você gerencia todas elas pela Admin API em tempo de execução, sem deploy.

Limites de transferência

Defina tetos diários e mensais de volume em dois níveis:
  • Por organização: aplica-se às transferências de uma organização Midaz dentro do tenant resolvido
  • Por conta: aplica-se a uma conta específica de usuário final (sobrepõe os padrões da organização)
Os limites cobrem tanto o valor total quanto o número de transações. Defina isso para gerenciar risco e cumprir os requisitos do BACEN.

Política de tarifas

Controle se o plugin cobra tarifa nas transferências TED OUT, TED IN e P2P. O Fees Engine define as regras de tarifa e as aplica por organização. Veja Fees Engine para detalhes de configuração.

Fail-open vs. fail-closed

Se o serviço de cálculo de tarifas estiver indisponível quando uma transferência rodar, você tem duas opções:
  • Fail-open: permitir que a transferência siga sem tarifa
  • Fail-closed: bloquear a transferência até o serviço de tarifas voltar a ficar disponível
A política padrão do serviço de tarifas é fail-open (FEES_FAIL_CLOSED_DEFAULT=false). Mude-a por organização pela Admin API quando você precisa que quedas do serviço de tarifas bloqueiem transferências. A TED IN tem sua própria chave de segurança, BTF_FEES_TED_IN_FAIL_OPEN, cujo padrão é true. Se o plugin-fees estiver fora, o plugin credita os valores de entrada com fee=0.

Recebimento de TED IN

As transferências de entrada ficam desabilitadas por padrão. Habilite a TED IN por organização depois de configurar suas credenciais JD SPB e ligar o worker de polling.

Sobreposições de horário de funcionamento

O plugin aplica por padrão a janela de funcionamento da TED definida pelo BACEN. Você pode definir janelas personalizadas por política de tenant dentro dos limites do BACEN, por exemplo transferências apenas no horário comercial.

Configuração de infraestrutura


O DevOps define as variáveis de ambiente do momento do deploy (URLs, credenciais, TLS, persistência, integrações, chaves de segurança). Essas variáveis exigem reinício do serviço. Veja a referência completa em Variáveis de ambiente.

Configuração em tempo de execução (Admin API)


Você gerencia as configurações de tenant e de conta pela Admin API, sem reinício. As mudanças entram em vigor de imediato (sujeitas ao TTL do cache para configurações de tenant). As configurações ajustáveis incluem:
  • Limites de transferência (diários e mensais, por organização e por conta)
  • Comportamento de tarifa (fail-open ou fail-closed quando o serviço de tarifas está indisponível)
  • Recebimento de TED IN (habilitado ou desabilitado por organização)
  • Sobreposições de horário de funcionamento (janelas personalizadas dentro dos limites do BACEN)
Veja a referência da Admin API para a lista completa de campos configuráveis e o formato da requisição.

Configurações gerenciadas pelo systemplane

O systemplane (Admin API) gerencia as configurações abaixo em tempo de execução, não no momento do deploy. Cada uma tem um nome de variável de ambiente correspondente que ainda existe no código. O carregador de configuração ignora essas variáveis de ambiente e registra um WARN de depreciação se você as definir. Atribuí-las pelo ambiente não tem efeito. Use o systemplane para mudá-las.
Definir qualquer um dos nomes acima pelo ambiente não tem efeito. Em vez disso, o carregador registra um WARN de depreciação. Esses nomes existem apenas como equivalentes depreciados, em variável de ambiente, de configurações gerenciadas em tempo de execução pelo systemplane.
Quando o CORS não está configurado, a origem permitida padrão é o coringa *. Qualquer origem pode então chamar a API, e o plugin não a valida na inicialização. Para produção, defina origens explícitas pela chave cors.allowed_origins do systemplane, em vez do coringa.