SWIFT Message Parser

Parse SWIFT MT103, MT940 and MT202 messages into fields: sender and receiver BIC, amount, currency and beneficiary.

Pay by wallet (x402) swift-message-parse

Example

Example answer
{
  "amount": null,
  "fields": [],
  "charges": null,
  "currency": null,
  "direction": null,
  "reference": null,
  "raw_blocks": {
    "block1": null,
    "block2": null,
    "block3": null,
    "block4": null
  },
  "sender_bic": null,
  "value_date": null,
  "beneficiary": null,
  "message_type": "unknown",
  "receiver_bic": null,
  "remittance_info": null,
  "ordering_customer": null,
  "message_description": null
}

Inputs

FieldTypeRequiredWhat it is
messagestringYesRaw SWIFT message text

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
amountnumberAlways (present in every successful answer)
currencystringAlways (present in every successful answer)
sender_bicstringAlways (present in every successful answer)
message_typestringAlways (present in every successful answer)
receiver_bicstringAlways (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "swift-message-parse",
    "inputs": {
      "message": "{1:F01BANKBEBBAXXX0000000000}{2:I103BANKDEBBXXXXN}{4:\n:20:REFTEST001\n:23B:CRED\n:32A:230115EUR1500,00\n:50K:SENDER NAME\nSENDER STREET 1\n:59:RECEIVER NAME\nRECEIVER STREET 1\n:71A:SHA\n-}"
    },
    "max_price_cents": 2
  }'

Limitations

  • MX and ISO 20022 messages are not supported

    Parses MT message formats (MT103, MT202, etc.) — MX/ISO 20022 XML messages are not supported

    What to do instead: For ISO 20022 messages, use xml-to-json to parse the XML structure first