Dialect profiles
The profile option: named presets that bundle the right conversion options for a bank or regional MT dialect, how they combine with options you set, and where you can use them.
What a profile is
Banks in some regions follow their own habits in MT statements, for example German MultiCash exports with structured :86: narratives. Getting the matching output takes a couple of options. A profile is a named preset that sets them for you:
curl -sS -X POST "https://api.transmute.403fin.io/v1/convert?from=camt.053&to=mt940&profile=de-multicash" \
-H "Authorization: Bearer $TRANSMUTE_KEY" \
-H "Content-Type: application/xml" \
--data-binary @statement.camt053.xml
A profile only bundles options that already exist. It adds no new behaviour, so anything a profile does, you can also do by setting the options yourself.
The presets
profile | Sets translitProfile | Sets field86Profile | Use it for |
|---|---|---|---|
de-multicash | german | german | German MultiCash statements: German transliteration (Ä to AE, ß to SS) and the structured ?-subfield :86: |
at-elba | german | (not set) | Austrian ELBA statements: German transliteration. ELBA's ~ subfields in :86: are read automatically when parsing |
nordic | base | (not set) | Nordic banks (ING, Nordea): base transliteration. Their :25: account-plus-currency style is detected automatically when parsing |
What the two options do:
translitProfiledecides how characters outside the SWIFT X character set are rewritten in MT output (baseorgerman).field86Profiledecides how the:86:narrative of MT940 and MT942 output is composed (plainorgerman).
Both shape MT output. Reading bank dialects happens automatically on every request, with or without a profile.
The live list, with exactly what each preset sets, is profiles in GET /v1/formats:
"profiles": [
{ "id": "at-elba", "description": "Austrian ELBA statements: ...", "options": { "translitProfile": "german" } },
{ "id": "de-multicash", "description": "German MultiCash statements: ...", "options": { "translitProfile": "german", "field86Profile": "german" } },
{ "id": "nordic", "description": "Nordic banks (ING/Nordea): ...", "options": { "translitProfile": "base" } }
]
Your options win
A profile fills only the options your request leaves empty. Any option you set yourself is kept, even when it's the default value:
{
"from": "camt.053",
"to": "mt940",
"message": "<?xml version="1.0"?>...",
"options": { "profile": "de-multicash", "field86Profile": "plain" }
}
This request gets German transliteration from the preset and the plain :86: you asked for.
Where you can use it
| Surface | How |
|---|---|
POST /v1/convert | options.profile in the JSON envelope, or ?profile= on raw requests |
POST /v1/normalize | options.profile or ?profile= |
| Batch items | options.profile on each item |
| File connector watches | profile in the watch's options |
There is no header form. An unknown name is invalid-input 400, and the detail lists the supported values: unknown profile "x": supported values are at-elba, de-multicash, nordic.
New presets are added as data and show up in GET /v1/formats first. Read the list from there rather than hard-coding it.