{
  "id": 12750374,
  "title": "Processing ISO 20022 payment XML in Rust: detection, typed parsing and JSON",
  "url": "https://urgent.news/2026/10/08/processing-iso-20022-payment-xml-in-rust-detection-typed-parsing-and",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-08T00:52:56.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/_94369c98041f774f0608f/processing-iso-20022-payment-xml-in-rust-detection-typed-parsing-and-json-2j2p"
  },
  "original_language": "en",
  "account": "ISO 20022 payment messages are XML documents that can be versioned and have various business fields. In an integration service, the first step is to identify the message and access some business fields. Later, typed field access, arithmetic on an amount, and serialization for another system may be required. The rust_iso20022 0.1.6 toolkit, with a Rust 1.85 core MSRV, covers 1,130 message versions across 32 business areas. We will use the pacs.008.001.08 version for this walkthrough. The XML below is a synthetic, minimal teaching sample. It demonstrates the SDK's parsing APIs but does not perform complete XSD or banking-scheme validation.\n\nTo start, create a Rust application and add the rust_iso20022 library. Replace the src/main.rs file with the provided complete program. This program uses the rust_iso20022::detect function to read the message identity from its XML namespace and prints the message name. It also uses MxNode for generic tree access and parses the XML to access the message ID and amount. The amount is then printed along with its currency.\n\nNext, add typed parsing, JSON, and decimal conversion to the project by using the rust_iso20022@0.1.6 library with the model-pacs, serde, and convert features. Replace the src/main.rs file with the provided complete program. This updated program uses the rust_iso20022 generated model for pacs.008.001.08, serde for JSON serialization and deserialization, and convert for decimal conversion. It prints the message ID, amount, and doubled amount, and also performs an XML round trip by serializing and reparsing the document.",
  "summary": "ISO 20022 payment messages are versioned XML documents. In an integration service, the first task may be to identify a message and read a few business fields. A later stage may need typed field access, arithmetic on an amount, and serialization for another system. This walkthrough uses rust_iso20022 0.1.6 , an Apache-2.0 toolkit with a Rust 1.85 core MSRV. Its generated model collection covers…",
  "key_points": [
    "rustiso20022 toolkit covers 1,130 message versions across 32 business areas",
    "rustiso20022::detect function reads message identity from XML namespace",
    "Updated program uses serde for JSON serialization and convert for decimal conversion"
  ],
  "editors_take": "The rustiso20022 toolkit enables efficient processing of ISO 20022 payment XML messages in Rust, allowing for detection, typed parsing, and JSON serialization, streamlining integration services.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}