Why field mapping?
External systems rarely share the same field names, formats, or sign conventions. For example:
| System | Amount field | Date field | Reference field |
|---|---|---|---|
| Bank A | transactionAmount | postDate | checkNumber |
| Bank B | amt | transaction_date | ref_num |
| ERP | AMOUNT_USD | GL_DATE | DOC_NUM |
Matcher’s standard schema
Required fields
Every transaction must provide these fields after mapping:| Field | Type | Description | Example |
|---|---|---|---|
transaction_id | String | Unique identifier within the source | "TXN-2024-001" |
amount | Decimal | Transaction amount (up to 4 decimal places) | 1234.56 |
currency | String | ISO 4217 currency code | "USD" |
date | Date | Transaction date (YYYY-MM-DD) | "2024-01-15" |
Optional fields
| Field | Type | Description | Example |
|---|---|---|---|
reference | String | External reference or description | "Invoice #1234" |
counterparty | String | Other party in the transaction | "Acme Corp" |
type | String | Transaction direction/type | "credit", "debit" |
category | String | Transaction category | "payment", "fee" |
posting_date | Date | Posting date | "2024-01-16" |
value_date | Date | Value/settlement date | "2024-01-17" |
external_id | String | External system identifier | "BANK-REF-999" |
metadata | Object | Source-specific fields | {"department": "sales"} |
Creating field maps
Basic field map
cURL
Assign a field map to a source
Data transformations
Field maps can apply transformations to normalize formats and conventions before matching.
Available transformations
| Transformation | Description | Example |
|---|---|---|
uppercase | Convert to uppercase | "abc" → "ABC" |
lowercase | Convert to lowercase | "ABC" → "abc" |
trim | Remove leading/trailing whitespace | " abc " → "abc" |
parse_date | Parse date by format | "01/15/2024" → "2024-01-15" |
parse_number | Parse number with locale | "1,234.56" → 1234.56 |
abs | Absolute value | -100 → 100 |
negate | Negate number | 100 → -100 |
multiply | Multiply by factor | 100 × 0.01 → 1 |
replace | String replacement | "USD$" → "USD" |
extract | Regex extraction | Extract numbers from string |
default | Default if empty | null → "UNKNOWN" |
concat | Concatenate fields | field1 + field2 |
Transformation examples
cURL
Date format patterns
Commonparse_date patterns:
| Pattern | Example input | Output |
|---|---|---|
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 |
Computed fields
Use computed fields when values must be derived rather than copied from a single source field.
Concatenation
DOC_TYPE: "INV", DOC_NUM: "12345"
Output: reference: "INV-12345"
Conditional mapping
Amount sign based on type
Mapping examples by source type
Bank statements (csv)
Source format
Field map
Result
ERP systems (json)
Source format
Field map
Result
Payment gateways (xml)
Source format
Field map
Result
Validating field maps
Validate field maps using representative sample data before enabling them in production.
Validate field map
cURL
Best practices
Validate with representative data
Validate with representative data
Use real samples from the source system to catch parsing and transformation issues early.
Name field maps like versions
Name field maps like versions
Make format changes explicit (for example,
Bank CSV v2.0) to preserve reimport and auditability.Explain non-obvious transformations
Explain non-obvious transformations
Add descriptions for transformations that change semantics (for example, “Amount in cents, divide by 100”).
Default optional fields intentionally
Default optional fields intentionally
Use
default only for optional fields and choose values that make downstream behavior explicit.Normalize sign conventions
Normalize sign conventions
Standardize debits and credits across sources before matching.
Version instead of editing in place
Version instead of editing in place
When source formats change, create a new field map rather than modifying an existing one.

