Message FamiliesCustomer Payments

Customer Payments

The payment family: MT103 single customer credit transfers to and from pacs.008, including charges, parties, remittance and the UETR.

Formats

FormatWhat it isVersions acceptedEmitted by default
mt103Single customer credit transfern/an/a
pacs.008FI-to-FI customer credit transfer.001.08 – .001.13.001.08

Pairs

FromTo
mt103pacs.008, accounting-transaction
pacs.008mt103, accounting-transaction
canonicalmt103, pacs.008

An MT103 carrying /RETN/ or /REJT/ in :72: is not a payment: it is detected as mt103-retn (Returns) or mt103-rejt (Rejects).

How fields map

MT103 to pacs.008.

  • :20: becomes the group message id and the instruction id.
  • :32A: becomes the interbank settlement date and amount; :33B: the instructed amount; :36: the exchange rate.
  • :50a: becomes the debtor and debtor account; :59a: the creditor and creditor account. Option F lines become a structured postal address, options K and letterless become a name plus address lines.
  • :52a: to :57a: become the agent chain: debtor agent, the three reimbursement agents, the first intermediary, the creditor agent.
  • :70: becomes unstructured remittance. A /RFB/ reference also becomes the end-to-end id (when it fits) and a structured creditor reference.
  • :71A: becomes the charge bearer (OUR → DEBT, SHA → SHAR, BEN → CRED); each :71F:/:71G: becomes a charges record.
  • :72: lines become instructions for the next or creditor agent (/INT/, /ACC/) or previous instructing agents (/INS/). :77B: becomes regulatory reporting.
  • The block 3 UETR {121:} becomes the UETR.

pacs.008 to MT103. The reverse of the above. The instruction id is preferred for :20:; a party with a structured address is written as option F, otherwise as name and free address lines (option K or letterless). ChrgsInf records become :71F: or :71G: depending on the charge bearer.

Where information is lost

SituationWarning
Mandatory pacs.008 elements with no MT source: creation time, settlement method (INDA), end-to-end id (NOTPROVIDED)MISSING_REQUIRED_DEFAULTED
A reference longer than 16 characters going into :20:TRUNC_REFERENCE
A name or address that does not fit four lines of 35 charactersTRUNC_NAME, TRUNC_ADDRESS
Remittance longer than :70: (four lines of 35)TRUNC_REMITTANCE
Second and third intermediary agents (MT103 has one slot)DROP_AGENT
Purpose, ultimate debtor/creditor and supplementary data with no MT103 fieldDROP_FIELD
Structured remittance beyond the creditor referenceDROP_FIELD
A service level or local instrument with no :23B: code; :23B:CRED is writtenCODE_UNMAPPED_PROPRIETARY
:32A:, :33B: and the charges do not add upAMOUNT_MISMATCH
Characters outside the SWIFT character setCHARSET_TRANSLIT, CHARSET_DROP
A UETR that is not a well-formed UUIDUETR_INVALID

Conventions

  • Charges arithmetic. With OUR, the settled amount is the instructed amount plus the receiver's charges (:71G:); with SHA or BEN, it is the instructed amount minus the sender's charges (:71F:). transmute checks this in both directions and warns AMOUNT_MISMATCH when it does not hold; it never changes an amount the source states.
  • NOTPROVIDED. pacs.008 needs an end-to-end id. When the MT103 has no /RFB/ reference, the id is written as NOTPROVIDED.
  • Bulk. Several MT103s in one request become one pacs.008 with one transaction each. A pacs.008 with several transactions becomes one MT103 per transaction, and result is an array.
  • Standards Release. When a request runs under the SR2026 Standards Release (srVersion=SR2026), party and agent addresses are converted to the structured or hybrid form that release requires. Under SR2025 they travel as they are.

Example

curl -sS -X POST "https://api.transmute.403fin.io/v1/convert?to=pacs.008" \
  -H "Authorization: Bearer $TRANSMUTE_KEY" \
  -H "Content-Type: text/plain" \
  --data-binary @- <<'MT'
:20:PAY-2026-0001
:23B:CRED
:32A:260610EUR1250,00
:50K:/DE89370400440532013000
JANE EXAMPLE
:52A:AAAADEFF
:57A:BBBBDEFF
:59:/GB29NWBK60161331926819
ACME TOOLS LTD
:70:/RFB/INV-4711
:71A:SHA
MT

The result document, formatted:

<GrpHdr>
  <MsgId>PAY-2026-0001</MsgId>
  <NbOfTxs>1</NbOfTxs>
  <SttlmInf><SttlmMtd>INDA</SttlmMtd></SttlmInf>
</GrpHdr>
<CdtTrfTxInf>
  <PmtId><InstrId>PAY-2026-0001</InstrId><EndToEndId>INV-4711</EndToEndId></PmtId>
  <IntrBkSttlmAmt Ccy="EUR">1250.00</IntrBkSttlmAmt>
  <IntrBkSttlmDt>2026-06-10</IntrBkSttlmDt>
  <ChrgBr>SHAR</ChrgBr>
  <Dbtr><Nm>JANE EXAMPLE</Nm></Dbtr>
  <DbtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></DbtrAcct>
  <DbtrAgt><FinInstnId><BICFI>AAAADEFF</BICFI></FinInstnId></DbtrAgt>
  <CdtrAgt><FinInstnId><BICFI>BBBBDEFF</BICFI></FinInstnId></CdtrAgt>
  <Cdtr><Nm>ACME TOOLS LTD</Nm></Cdtr>
  <CdtrAcct><Id><IBAN>GB29NWBK60161331926819</IBAN></Id></CdtrAcct>
  <RmtInf>...</RmtInf>
</CdtTrfTxInf>
"warnings": [
  { "code": "MISSING_REQUIRED_DEFAULTED", "severity": "info", "targetField": "GrpHdr/CreDtTm", "detail": "..." },
  { "code": "MISSING_REQUIRED_DEFAULTED", "severity": "info", "targetField": "GrpHdr/SttlmInf/SttlmMtd", "detail": "..." }
],
"meta": { "detectedType": "mt103", "targetType": "pacs.008.001.08", "...": "..." }