Pular para o conteúdo principal
Antes de implantar o Matcher, certifique-se de que seu ambiente atende aos requisitos descritos nesta página. Estes pré-requisitos definem a base para executar conciliações de forma confiável em ambientes de desenvolvimento e produção.

Requisitos do sistema


Infraestrutura

ComponenteMínimoRecomendadoPropósito
CPU2 cores4+ coresA lógica de matching e scoring é intensiva em CPU
Memória2 GB4+ GBProcessamento em memória de lotes de transações
Armazenamento10 GB50+ GBArmazenamento persistente para transações e logs de auditoria

Dependências

O Matcher depende dos seguintes serviços:
  • PostgreSQL 15+: Armazenamento principal para contextos de conciliação, transações, matches e logs de auditoria.
  • Redis 7+: Usado para cache, detecção de duplicatas, locking distribuído e controle de idempotência.
  • RabbitMQ 3.12+: Message broker para processamento assíncrono entre bounded contexts.

Runtime

O Matcher permite os seguintes runtimes e ferramentas:
  • Go 1.24+ (necessário apenas ao compilar a partir do código-fonte)
  • Docker 24+ e Docker Compose 2.20+ para implantações containerizadas
  • Kubernetes 1.28+ para implantações em produção usando Helm

Opcional: integração com Midaz


O Matcher pode opcionalmente se integrar com o Midaz Ledger para consultar transações do ledger diretamente. Esta integração é totalmente opcional—o Matcher funciona como um produto standalone conciliando quaisquer fontes de dados.

Quando usar a integração com Midaz

Use a integração com Midaz se:
  • Você está usando o Midaz como seu sistema de ledger
  • Você quer conciliar transações do Midaz contra fontes externas
  • Você quer sincronização automática de transações do Midaz

Quando o Midaz não é necessário

O Matcher funciona independentemente quando:
  • Conciliando entre sistemas externos (bancos, ERPs, processadores de pagamento)
  • Usando um sistema de ledger diferente
  • Importando dados do ledger via arquivos CSV/JSON/XML

Requisitos de conexão

Para habilitar a integração com Midaz, certifique-se de que:
  1. Uma instância do Midaz está em execução e acessível da rede do Matcher
  2. Acesso à API está configurado com permissões para consultar transações
  3. Autenticação compartilhada está habilitada via lib-auth (mesmo provedor de identidade)

Configuração

Configure a conexão com o Midaz através de variáveis de ambiente:
# Endpoint da API do Midaz
MIDAZ_API_URL=https://midaz.example.com/api/v1

# Autenticação compartilhada (lib-auth)
AUTH_SERVICE_ADDRESS=https://auth.example.com
Veja o guia de Integração com Midaz para instruções completas de configuração.

Autenticação


O Matcher usa lib-auth para autenticação e autorização, consistente com o resto do ecossistema Lerian.

Fluxo de autenticação

  1. O cliente obtém um JWT do provedor de identidade
  2. O token é enviado no header Authorization: Bearer <token>
  3. O Matcher valida o token via lib-auth
  4. A identidade do tenant e permissões são extraídas das claims do token

Permissões necessárias

O acesso às funcionalidades do Matcher é controlado através de permissões granulares:
PermissãoDescrição
config:context:createCriar contextos de conciliação
config:context:readVisualizar configuração de contexto
config:rule:createCriar e atualizar regras de match
ingestion:import:createFazer upload de arquivos de transações
matching:job:runExecutar jobs de matching
exception:item:listVisualizar exceções
exception:item:resolveResolver exceções
governance:report:readAcessar relatórios e views de auditoria

Modo single-tenant

Se a autenticação estiver desabilitada ou nenhum identificador de tenant estiver presente no JWT, o Matcher executa em modo single-tenant usando um tenant padrão.
# Configuração do tenant padrão (modo single-tenant)
DEFAULT_TENANT_ID=00000000-0000-0000-0000-000000000001
DEFAULT_TENANT_SLUG=default

Formatos de arquivo suportados


O Matcher aceita dados de transações nos seguintes formatos. Cada formato tem requisitos estruturais específicos para ingestão bem-sucedida.

CSV (valores separados por vírgula)

Comumente usado para extratos bancários e exportações. Requisitos:
  • Linha de cabeçalho é obrigatória
  • Codificação UTF-8
  • Delimitador vírgula (configurável)
  • Campos entre aspas para valores contendo delimitadores
Exemplo:
transaction_id,amount,currency,date,reference
TXN-001,1000.00,USD,2024-01-15,Invoice payment
TXN-002,-250.50,USD,2024-01-16,Refund

JSON (JavaScript Object Notation)

Recomendado para integrações baseadas em API. Requisitos:
  • Array JSON válido de objetos de transação
  • Codificação UTF-8
  • Nomes de campos consistentes entre registros
Exemplo:
[
  {
    "transaction_id": "TXN-001",
    "amount": 1000.0,
    "currency": "USD",
    "date": "2024-01-15",
    "reference": "Invoice payment"
  }
]

XML (Extensible Markup Language)

Comum em integrações empresariais e bancárias. Requisitos:
  • Elemento raiz único
  • Codificação UTF-8
  • Estrutura de elementos consistente
Exemplo:
<?xml version="1.0" encoding="UTF-8"?>
<transactions>
 <transaction>
 <transaction_id>TXN-001</transaction_id>
 <amount>1000.00</amount>
 <currency>USD</currency>
 <date>2024-01-15</date>
 <reference>Invoice payment</reference>
 </transaction>
</transactions>

Limites de tamanho de arquivo

LimitePadrãoConfigurável via
Tamanho máximo do arquivo100 MBHTTP_BODY_LIMIT_BYTES
Máximo de transações por arquivo100.000Configuração no nível do contexto

Requisitos de rede


Acesso de entrada

O Matcher expõe uma API REST que deve ser acessível pelos clientes:
PortaProtocoloPropósito
8080HTTPServidor de API (padrão)
8443HTTPSServidor de API com TLS

Acesso de saída

O Matcher deve ser capaz de alcançar os seguintes serviços:
ServiçoPropósitoObrigatório
PostgreSQLPersistência de dadosSim
RedisCache e coordenaçãoSim
RabbitMQMensageriaSim
Serviço de authValidação de tokenSe autenticação estiver habilitada
API do MidazConsultas ao ledgerOpcional (apenas se usar Midaz)
JIRA / ServiceNowRoteamento de exceçõesOpcional
Webhooks customizadosNotificações de eventosOpcional

Configuração TLS

Para ambientes de produção, configure TLS:
SERVER_TLS_CERT_FILE=/path/to/cert.pem
SERVER_TLS_KEY_FILE=/path/to/key.pem

Checklist do ambiente


Antes de prosseguir com a instalação, confirme que:
  • Infraestrutura está pronta: PostgreSQL, Redis e RabbitMQ estão em execução e acessíveis
  • Autenticação está configurada: Serviço de auth está disponível, ou auth está explicitamente desabilitada
  • Acesso de rede está validado: Conectividade de entrada e saída necessária está em vigor
  • Credenciais estão disponíveis: Credenciais de banco de dados e tokens de API estão configurados
  • Dados de exemplo estão preparados: Arquivos de transações estão prontos para teste (veja Início Rápido)

Próximos passos