Por que mapeamento de campos?
Sistemas externos raramente compartilham os mesmos nomes de campos, formatos ou convenções de sinal. Por exemplo:
| Sistema | Campo de valor | Campo de data | Campo de referência |
|---|---|---|---|
| Banco A | transactionAmount | postDate | checkNumber |
| Banco B | amt | transaction_date | ref_num |
| ERP | AMOUNT_USD | GL_DATE | DOC_NUM |
Schema padrão do Matcher
Campos obrigatórios
Toda transação deve fornecer estes campos após o mapeamento:| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
transaction_id | String | Identificador único dentro da fonte | "TXN-2024-001" |
amount | Decimal | Valor da transação (até 4 casas decimais) | 1234.56 |
currency | String | Código de moeda ISO 4217 | "USD" |
date | Date | Data da transação (YYYY-MM-DD) | "2024-01-15" |
Campos opcionais
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
reference | String | Referência externa ou descrição | "Fatura #1234" |
counterparty | String | Outra parte na transação | "Acme Corp" |
type | String | Direção/tipo da transação | "credit", "debit" |
category | String | Categoria da transação | "payment", "fee" |
posting_date | Date | Data de lançamento | "2024-01-16" |
value_date | Date | Data de valor/liquidação | "2024-01-17" |
external_id | String | Identificador do sistema externo | "BANK-REF-999" |
metadata | Object | Campos específicos da fonte | {"department": "sales"} |
Criando mapas de campos
Mapa de campos básico
Mapas de campos são criados para uma fonte específica dentro de um contexto. O objetomapping define como os campos da fonte mapeiam para o schema do Matcher.
cURL
Transformações de dados
Mapas de campos podem aplicar transformações para normalizar formatos e convenções antes do matching.
Transformações disponíveis
| Transformação | Descrição | Exemplo |
|---|---|---|
uppercase | Converter para maiúsculas | "abc" → "ABC" |
lowercase | Converter para minúsculas | "ABC" → "abc" |
trim | Remover espaços em branco | " abc " → "abc" |
parse_date | Parsear data por formato | "01/15/2024" → "2024-01-15" |
parse_number | Parsear número com locale | "1,234.56" → 1234.56 |
abs | Valor absoluto | -100 → 100 |
negate | Negar número | 100 → -100 |
multiply | Multiplicar por fator | 100 × 0.01 → 1 |
replace | Substituição de string | "USD$" → "USD" |
extract | Extração com regex | Extrair números de string |
default | Padrão se vazio | null → "UNKNOWN" |
concat | Concatenar campos | field1 + field2 |
Exemplos de transformação
cURL
Padrões de formato de data
Padrões comuns deparse_date:
| Padrão | Exemplo de entrada | Saída |
|---|---|---|
YYYY-MM-DD | 2024-01-15 | 2024-01-15 |
MM/DD/YYYY | 01/15/2024 | 2024-01-15 |
DD/MM/YYYY | 15/01/2024 | 2024-01-15 |
YYYY-MM-DDTHH:mm:ssZ | 2024-01-15T10:30:00Z | 2024-01-15 |
MMM DD, YYYY | Jan 15, 2024 | 2024-01-15 |
DD-MMM-YYYY | 15-Jan-2024 | 2024-01-15 |
Campos computados
Use campos computados quando valores devem ser derivados em vez de copiados de um único campo da fonte.
Concatenação
DOC_TYPE: "INV", DOC_NUM: "12345"
Saída: reference: "INV-12345"
Mapeamento condicional
Sinal do valor baseado em tipo
Exemplos de mapeamento por tipo de fonte
Extratos bancários (csv)
Formato da fonte
Mapa de campos
Resultado
Sistemas ERP (json)
Formato da fonte
Mapa de campos
Resultado
Gateways de pagamento (xml)
Formato da fonte
Mapa de campos
Resultado
Boas práticas
Nomeie mapas de campos como versões
Nomeie mapas de campos como versões
Torne mudanças de formato explícitas (por exemplo,
CSV Banco v2.0) para preservar reimportação e auditabilidade.Explique transformações não óbvias
Explique transformações não óbvias
Adicione descrições para transformações que mudam a semântica (por exemplo, “Valor em centavos, dividir por 100”).
Defina valores padrão para campos opcionais intencionalmente
Defina valores padrão para campos opcionais intencionalmente
Use
default apenas para campos opcionais e escolha valores que tornem o comportamento downstream explícito.Normalize convenções de sinal
Normalize convenções de sinal
Padronize débitos e créditos entre fontes antes do matching.
Versione em vez de editar no lugar
Versione em vez de editar no lugar
Quando formatos da fonte mudam, crie um novo mapa de campos em vez de modificar um existente.

