Message FamiliesQueries

Queries

The query family: MT195 and MT295 queries to and from camt.110 investigation requests, with the :75: query codewords and :77A: narrative.

Formats

FormatWhat it isVersions acceptedEmitted by default
mt195Queries (customer payments)n/an/a
mt295Queries (bank transfers)n/an/a
camt.110Investigation request.001.02.001.02

Pairs

FromTo
mt195, mt295camt.110
camt.110mt195, mt295

A query never converts into an answer or a cancellation request, and mt195 → mt295 is not a pair. Answers are their own family: see Answers. There is no canonical source.

How fields map

A query normalizes to an investigation document of kind query: a case id, the references of the payment being asked about, query codes and narrative.

MT195/MT295 to camt.110.

  • :20: becomes the case id: the message id and the requester's investigation id.
  • :21: becomes the original end-to-end id of the payment in question.
  • :75: lines that start with a /CODE/ codeword become query codes: the first is the investigation type, each later one an extra investigation data block. Text after the codeword, and lines without one, become narrative.
  • :77A: and :79: lines become narrative, one investigation data block per line.
  • :11S:/:11R: identify the original message, as for cancellation requests.
  • A copied :32A: becomes the original amount and settlement date.

camt.110 to MT195/MT295. Query codes go to :75: as /CODE/ lines (six lines at most); narrative goes to :77A: (20 lines of 35). With no codes, narrative fills :75: first. The target id (mt195 or mt295) decides the message type.

Recognised query codes

BENV, MISG, RQFI and UPAY. Each keeps the meaning the ISO 20022 external code set gives it. A codeword of the same shape that is not in this list (for example a numbered query such as /3/) is still carried as a code and flagged with RETURN_REASON_UNMAPPED.

Where information is lost

SituationWarning
Narrative longer than :75:/:77A: can hold (MT), or longer than 500 characters per block (camt.110)TRUNC_NARRATIVE
A query code outside the recognised listRETURN_REASON_UNMAPPED
camt.110 needs a requester and a responder that MT does not carry; NOTPROVIDED placeholders are writtenMISSING_REQUIRED_DEFAULTED
No query code at all: the investigation type becomes NOTPROVIDEDMISSING_REQUIRED_DEFAULTED
Codes beyond the six :75: lines (moved to :77A:)DROP_FIELD
Requester, UETR, creation time and status going to MT (no field)DROP_FIELD
camt.110 parties, actions, service levels and structured request data with no canonical slotDROP_FIELD
A case id longer than 16 characters going to :20:TRUNC_REFERENCE

Conventions

  • :75: and :77A: capacity. :75: holds six lines and :77A: twenty lines of 35 characters. Narrative is converted to the SWIFT character set before it is wrapped, so the line count reflects the final text.
  • Repeated type. camt.110 repeats the investigation type as the reason of its first data block. On the way back, a reason identical to the type is not counted twice, so a single-code query round-trips cleanly.
  • Sibling detection. A bare MT295 detects as mt195; send the FIN envelope or from=mt295 to keep the type.

Example

curl -sS -X POST "https://api.transmute.403fin.io/v1/convert?to=camt.110" \
  -H "Authorization: Bearer $TRANSMUTE_KEY" \
  -H "Content-Type: text/plain" \
  --data-binary @- <<'MT'
:20:QRY-2026-0001
:21:PAY-2026-0001
:75:/UPAY/
:77A:PLEASE CONFIRM THE BENEFICIARY
WAS CREDITED
MT

The result document, formatted:

<InvstgtnReq>
  <MsgId>QRY-2026-0001</MsgId>
  <RqstrInvstgtnId>QRY-2026-0001</RqstrInvstgtnId>
  <InvstgtnTp><Cd>UPAY</Cd></InvstgtnTp>
  <Undrlyg><IntrBk><OrgnlEndToEndId>PAY-2026-0001</OrgnlEndToEndId></IntrBk></Undrlyg>
  <Rqstr><Pty><Nm>NOTPROVIDED</Nm></Pty></Rqstr>
  <Rspndr><Pty><Nm>NOTPROVIDED</Nm></Pty></Rspndr>
</InvstgtnReq>
<InvstgtnData>
  <Seq>1</Seq>
  <Rsn><Cd>UPAY</Cd></Rsn>
  <AddtlReqData><ReqNrrtv>PLEASE CONFIRM THE BENEFICIARY</ReqNrrtv></AddtlReqData>
</InvstgtnData>
<InvstgtnData>
  <Seq>2</Seq>
  <Rsn><Cd>UPAY</Cd></Rsn>
  <AddtlReqData><ReqNrrtv>WAS CREDITED</ReqNrrtv></AddtlReqData>
</InvstgtnData>

The warnings are two MISSING_REQUIRED_DEFAULTED (info) entries, for InvstgtnReq/Rspndr and InvstgtnReq/Rqstr; meta.targetType is camt.110.001.02.