EDGE ENGINE Sub-2ms Deterministic V8 Execution • Zero Data Retention Explore API Specs →
<5ms Edge Latency 99.9% SLA Available V8 Pure Compute Fintech & Banking

ISO 20022 Financial Message Parser & Validator API

Transform complex SWIFT MX, SEPA, and FedNow ISO 20022 XML payloads into validated, hierarchical JSON in sub-5ms pure compute.

Interactive Edge Workbench

⚡ Live Pure-Compute Playground

Test deterministic edge parsing with sub-2ms execution across 330+ Cloudflare V8 edge locations. Zero persistent storage, zero cold-starts, pure function $f(x)=y$.

32KB Demo Cap 60 req/min Burst <2ms V8 Compute Zero Data Retention
input.xml 0 B
output.json demo-ready
Status: Ready
{
  "status": "Click 'Run Edge Parse' to test live on Global Edge Isolates..."
}
Need 512KB+ Payloads, High-Throughput & 99.9% Production SLA?
Direct API keys include pooled monthly quotas, zero cold-starts, and optional HIPAA Business Associate Agreements.
Get Production API Key →

Key Capabilities & Performance Architecture

Message Type Specifications (6 Specifications)

Explore full structural breakdowns, checksum logic, and field schemas for every supported format.

API Endpoints & Request Signatures

Method Path Description
POST /api/v1/iso20022/parse Parse raw ISO 20022 XML into structured JSON
POST /api/v1/iso20022/validate Validate ISO 20022 XML schema structure and business rules

Sample Response JSON Payload

All endpoints deliver strongly-typed envelopes with deterministic parsing and performance metrics.

HTTP 200 Response Payload
{
  "success": true,
  "data": {
    "messageType": "pacs.008.001.08",
    "messageId": "MSG20260830-01",
    "creationDateTime": "2026-08-30T12:00:00Z",
    "numberOfTransactions": 1,
    "settlementAmount": {
      "currency": "EUR",
      "value": 150000
    },
    "uetr": "eb9b1248-8422-441a-8c85-80252f9b8830",
    "debtor": {
      "name": "ACME CORP",
      "iban": "DE89370400440532013000",
      "bic": "DBEUMM21XXX"
    },
    "creditor": {
      "name": "GLOBAL LOGISTICS SAS",
      "iban": "FR7630006000011234567890189",
      "bic": "BNPAFRPPXXX"
    }
  },
  "meta": {
    "latency_ms": 1.95,
    "version": "1.0.0"
  }
}

Multi-Language Integration Code

Copy and paste ready-to-run snippets with your direct API credentials:

cURL
curl --request POST \
  --url "https://iso-20022-financial-message-parser-validator.stanzaapi.com/api/v1/iso20022/parse" \
  --header "Content-Type: application/json" \
  --header "x-api-key: YOUR_API_KEY" \
  --data '{
  "rawXml": "<Document xmlns=\"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08\"><FIToFICstmrCdtTrf><GrpHdr><MsgId>MSG20260830-01</MsgId><CreDtTm>2026-08-30T12:00:00Z</CreDtTm><NbOfTxs>1</NbOfTxs><SttlmInf><SttlmMtd>CLRG</SttlmMtd></SttlmInf></GrpHdr><CdtTrfTxInf><PmtId><EndToEndId>E2E-991823</EndToEndId><UETR>eb9b1248-8422-441a-8c85-80252f9b8830</UETR></PmtId><IntrBkSttlmAmt Ccy=\"EUR\">150000.00</IntrBkSttlmAmt><Dbtr><Nm>ACME CORP</Nm></Dbtr><DbtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BICFI>DBEUMM21XXX</BICFI></FinInstnId></DbtrAgt><CdtrAgt><FinInstnId><BICFI>BNPAFRPPXXX</BICFI></FinInstnId></CdtrAgt><Cdtr><Nm>GLOBAL LOGISTICS SAS</Nm></Cdtr><CdtrAcct><Id><IBAN>FR7630006000011234567890189</IBAN></Id></CdtrAcct></CdtTrfTxInf></FIToFICstmrCdtTrf></Document>"
}'
Node.js (Fetch)
const response = await fetch("https://iso-20022-financial-message-parser-validator.stanzaapi.com/api/v1/iso20022/parse", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.API_KEY || "YOUR_API_KEY"
  },
  body: JSON.stringify({
  "rawXml": "<Document xmlns=\"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08\"><FIToFICstmrCdtTrf><GrpHdr><MsgId>MSG20260830-01</MsgId><CreDtTm>2026-08-30T12:00:00Z</CreDtTm><NbOfTxs>1</NbOfTxs><SttlmInf><SttlmMtd>CLRG</SttlmMtd></SttlmInf></GrpHdr><CdtTrfTxInf><PmtId><EndToEndId>E2E-991823</EndToEndId><UETR>eb9b1248-8422-441a-8c85-80252f9b8830</UETR></PmtId><IntrBkSttlmAmt Ccy=\"EUR\">150000.00</IntrBkSttlmAmt><Dbtr><Nm>ACME CORP</Nm></Dbtr><DbtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BICFI>DBEUMM21XXX</BICFI></FinInstnId></DbtrAgt><CdtrAgt><FinInstnId><BICFI>BNPAFRPPXXX</BICFI></FinInstnId></CdtrAgt><Cdtr><Nm>GLOBAL LOGISTICS SAS</Nm></Cdtr><CdtrAcct><Id><IBAN>FR7630006000011234567890189</IBAN></Id></CdtrAcct></CdtTrfTxInf></FIToFICstmrCdtTrf></Document>"
})
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests
import json

url = "https://iso-20022-financial-message-parser-validator.stanzaapi.com/api/v1/iso20022/parse"
headers = {
    "Content-Type": "application/json",
    "x-api-key": "YOUR_API_KEY"
}
payload = {
    "rawXml": "<Document xmlns=\"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08\"><FIToFICstmrCdtTrf><GrpHdr><MsgId>MSG20260830-01</MsgId><CreDtTm>2026-08-30T12:00:00Z</CreDtTm><NbOfTxs>1</NbOfTxs><SttlmInf><SttlmMtd>CLRG</SttlmMtd></SttlmInf></GrpHdr><CdtTrfTxInf><PmtId><EndToEndId>E2E-991823</EndToEndId><UETR>eb9b1248-8422-441a-8c85-80252f9b8830</UETR></PmtId><IntrBkSttlmAmt Ccy=\"EUR\">150000.00</IntrBkSttlmAmt><Dbtr><Nm>ACME CORP</Nm></Dbtr><DbtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BICFI>DBEUMM21XXX</BICFI></FinInstnId></DbtrAgt><CdtrAgt><FinInstnId><BICFI>BNPAFRPPXXX</BICFI></FinInstnId></CdtrAgt><Cdtr><Nm>GLOBAL LOGISTICS SAS</Nm></Cdtr><CdtrAcct><Id><IBAN>FR7630006000011234567890189</IBAN></Id></CdtrAcct></CdtTrfTxInf></FIToFICstmrCdtTrf></Document>"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
Go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	url := "https://iso-20022-financial-message-parser-validator.stanzaapi.com/api/v1/iso20022/parse"
	payload := []byte(`{"rawXml":"<Document xmlns=\"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08\"><FIToFICstmrCdtTrf><GrpHdr><MsgId>MSG20260830-01</MsgId><CreDtTm>2026-08-30T12:00:00Z</CreDtTm><NbOfTxs>1</NbOfTxs><SttlmInf><SttlmMtd>CLRG</SttlmMtd></SttlmInf></GrpHdr><CdtTrfTxInf><PmtId><EndToEndId>E2E-991823</EndToEndId><UETR>eb9b1248-8422-441a-8c85-80252f9b8830</UETR></PmtId><IntrBkSttlmAmt Ccy=\"EUR\">150000.00</IntrBkSttlmAmt><Dbtr><Nm>ACME CORP</Nm></Dbtr><DbtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BICFI>DBEUMM21XXX</BICFI></FinInstnId></DbtrAgt><CdtrAgt><FinInstnId><BICFI>BNPAFRPPXXX</BICFI></FinInstnId></CdtrAgt><Cdtr><Nm>GLOBAL LOGISTICS SAS</Nm></Cdtr><CdtrAcct><Id><IBAN>FR7630006000011234567890189</IBAN></Id></CdtrAcct></CdtTrfTxInf></FIToFICstmrCdtTrf></Document>"}`)

	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("x-api-key", os.Getenv("API_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}

Frequently Asked Questions

Which ISO 20022 message types are supported?

The engine natively supports pacs.008 (Financial Institutional Customer Credit Transfer), pacs.002 (Payment Status Report), pain.001 (Customer Credit Transfer Initiation), pain.002 (Customer Payment Status), camt.053 (Bank-to-Customer Statement), and camt.054 (Debit/Credit Notification).

Does this handle FedNow and SEPA ISO 20022 implementations?

Yes. The parser adheres to SWIFT MX ISO 20022, EPC SEPA Rulebooks, and US Federal Reserve FedNow Service XML schemas.

How is the Unique End-to-End Transaction Reference (UETR) extracted?

The parser automatically locates and extracts RFC 4122 UUID v4 UETR tags from PmtId/UETR elements across payment messages for global SWIFT gpi tracking.