Message FamiliesCharges Requests

Charges Requests

The charges family: MT191 and MT291 requests for payment of charges to and from camt.106, with the :71B: charge codewords.

Formats

FormatWhat it isVersions acceptedEmitted by default
mt191Request for payment of charges, interest and other expenses (customer side)n/an/a
mt291The same request between financial institutionsn/an/a
camt.106Charges payment request.001.02.001.02

Pairs

FromTo
mt191, mt291camt.106
camt.106mt191, mt291

A charges request is its own family: it never converts to a payment, a statement, a notice or an investigation, and mt191 → mt291 is not a pair. There is no canonical source.

How fields map

The canonical model is one charges request: the claimed total, the individual charges, the institutions involved and a reference to the payment the charges relate to.

MT191/MT291 to camt.106.

  • :20: becomes the message id; :21: (the reference of the original payment) becomes the underlying transaction's message id.
  • :32B: becomes the requested amount.
  • :52a: becomes the charges requester; :57a: the charges account agent.
  • :71B: is read line by line. A coded line with a currency and amount (/COMM/EUR30,00) becomes one charge of that type. Other lines are narrative and become additional information.
  • :72: becomes the instruction for the instructed agent.

camt.106 to MT191/MT291. :71B: is rebuilt with the coded charges first, then the narrative, at most six lines. The target id (mt191 or mt291) decides the message type.

Document shape. A request with zero or one charge is written as a single record (Sngl). With two or more charges it is grouped by charge type (PerTp), and the group header states the record count and the requested total.

Recognised charge codewords

:71B: codewordMeaning
BRKFBrokerage fee
CHGSCharges, also used for a charge with no type
COMMCommission
POSTPostage
STMPStamp duty
TELETeletransmission charges

A codeword outside this list, or a coded line without a clean currency and amount, is kept as narrative and flagged.

Where information is lost

SituationWarning
A :71B: codeword or camt.106 charge type with no table rowCHARGES_DETAIL_UNMAPPED
camt.106 creation time (MT carries none)MISSING_REQUIRED_DEFAULTED
A charge with no type going to MT; written as /CHGS/MISSING_REQUIRED_DEFAULTED
The charges or the stated total do not agree with the requested amountAMOUNT_MISMATCH
Several camt.106 records aggregated: only the first record's references are keptDROP_FIELD
camt.106 elements with no canonical slot (record ids, value date, debtor agent, …)DROP_FIELD
UETR going to MT (no field)DROP_FIELD
:71B: or :72: beyond six lines; camt.106 text beyond 140 charactersTRUNC_REMITTANCE

Conventions

  • Amounts are never invented. When camt.106 states no total, the requested amount is the exact sum of the charges, and only when they share one currency.
  • Narrative is not loss. A :71B: line that is plain text is carried as narrative without a warning.
  • Sibling detection. A bare MT291 detects as mt191; send the FIN envelope or from=mt291 to keep the type.

Example

curl -sS -X POST "https://api.transmute.403fin.io/v1/convert?to=camt.106" \
  -H "Authorization: Bearer $TRANSMUTE_KEY" \
  -H "Content-Type: text/plain" \
  --data-binary @- <<'MT'
:20:CHG-2026-0001
:21:PAY-2026-0001
:32B:EUR45,50
:52A:AAAADEFF
:57A:BBBBDEFF
:71B:/COMM/EUR30,00
/POST/EUR15,50
:72:/ACC/CHARGES FOR PAY-2026-0001
MT

The result document, formatted:

<GrpHdr>
  <MsgId>CHG-2026-0001</MsgId>
  <ChrgsRqstr><FinInstnId><BICFI>AAAADEFF</BICFI></FinInstnId></ChrgsRqstr>
  <TtlChrgs><NbOfChrgsRcrds>2</NbOfChrgsRcrds><TtlChrgsAmt Ccy="EUR">45.50</TtlChrgsAmt></TtlChrgs>
  <ChrgsAcctAgt><FinInstnId><BICFI>BBBBDEFF</BICFI></FinInstnId></ChrgsAcctAgt>
</GrpHdr>
<Chrgs>
  <PerTp>
    <Tp><Cd>COMM</Cd></Tp>
    <Rcrd>
      <UndrlygTx><MsgId>PAY-2026-0001</MsgId></UndrlygTx>
      <Amt Ccy="EUR">30.00</Amt>
      <InstrForInstdAgt><InstrInf>/ACC/CHARGES FOR PAY-2026-0001</InstrInf></InstrForInstdAgt>
    </Rcrd>
  </PerTp>
  <PerTp>
    <Tp><Cd>POST</Cd></Tp>
    <Rcrd><UndrlygTx><MsgId>PAY-2026-0001</MsgId></UndrlygTx><Amt Ccy="EUR">15.50</Amt></Rcrd>
  </PerTp>
</Chrgs>

The only warning is MISSING_REQUIRED_DEFAULTED (info) for GrpHdr/CreDtTm; meta.targetType is camt.106.001.02.