A field map only renames columns. It does not parse, compute, transform, or combine values. Each canonical field is populated from exactly one source column.
What a field map is
A field map belongs to a single source inside a context. A context reconciles two sides — a
LEFT source and a RIGHT source — and each source has its own field map. Matcher compares the canonical fields produced by both maps, so both sides must resolve to the same vocabulary even when their raw files look nothing alike.
The mapping is a JSON object in the form:
- The key is a canonical field. Keys come from a closed, case-sensitive vocabulary — Matcher rejects any key outside it.
- The value is the name of the column in the raw source that carries that field. Values are free text (whatever your file calls the column) and must be non-empty strings.
Canonical vocabulary
The key space is closed. These are the only keys Matcher accepts.
Required keys
Every field map must declare all four:Optional keys
Declare these only when the source carries them:fee_amount and fee_currency are the optional fee slot. When present, the mapped column’s value is copied into the transaction metadata that fee verification reads, so a column named anything (for example mdr_fee) can carry fees end to end without hand-built metadata. Omit them and behavior is identical to a map without a fee slot.Creating a field map
Field maps are created per source. Send the mapping object to the source’s field-map endpoint:
cURL
Updating a field map
Each source has one field map. To change a mapping,
PATCH it by its own ID (not the source ID). Send the full mapping — it replaces the previous one and increments version.
cURL
Example: both sides of a context
A context reconciles a bank feed against an internal ledger export. The two files use different column names, so each source declares its own map — but both resolve to the same canonical keys.
LEFT source — bank statement (CSV)
Raw columns:RIGHT source — ledger export (CSV)
Raw columns:external_id, amount, currency, and date in the canonical vocabulary, so match rules can compare them directly — even though one file called the amount Amount and the other called it value.
Common mistakes
Reversing the direction
Reversing the direction
The key is the canonical field and the value is your column —
{"external_id": "BankRef"}, not {"BankRef": "external_id"}. Writing it backwards puts an unknown key (BankRef) on the left and is rejected.Using keys outside the vocabulary
Using keys outside the vocabulary
Only
external_id, amount, currency, date, description, fee_amount, and fee_currency are accepted. Keys such as transaction_id, reference, counterparty, or type are rejected as unknown keys, and the error names each offender.Wrong case
Wrong case
Keys are case-sensitive lowercase tokens.
External_Id, Amount, or CURRENCY are treated as unknown keys.Missing a required key
Missing a required key
All of
external_id, amount, currency, and date must be present. A map missing any of them fails validation with a “missing required keys” message.Empty or non-string values
Empty or non-string values
Every value must be a non-empty string naming a source column.
null, numbers, objects, or "" are rejected.Expecting transformations
Expecting transformations
Field maps do not parse dates, divide amounts, concatenate columns, or apply conditionals. Deliver values already in the expected shape from the source file, or normalize upstream before upload.
Next steps
Match rules
Define how the canonical fields are compared and grouped.
Uploading files
Import transactions using your field maps.

