EDGE ENGINE Sub-2ms Deterministic V8 Execution • Zero Data Retention Explore API Specs →
Latency: <3ms Edge Availability: 99.99% Standard: camt.054.001.08 V8 Pure Compute

ISO 20022 camt.054 Bank-to-Customer Debit/Credit Notification Parser

Real-time intra-day camt.054 bank notification parser for immediate payment reconciliation in JSON.

Official Regulatory Standard & Verification Protocol Authority: ISO 20022 Universal Financial Industry Message Scheme ↗

Quick Technical Summary: Real-time intra-day camt.054 bank notification parser for immediate payment reconciliation in JSON. Implementation conforms to ISO 20022 XML Financial Schemas.

Execution SLA
<3ms Edge (Cloudflare V8)
Governing Norm
camt.054.001.08
Throughput Limit
512 KB / Payload
Data Privacy
100% In-Memory (Zero Store)

Specification & Structural Breakdown

The camt.054 message delivers real-time notifications of incoming credits or outgoing debits to an account without waiting for end-of-day statements.

XML PathDescriptionExtracted JSON FieldStandard
Ntfctn/Ntry/AmtNotification AmountamountCurrency + Value
Ntfctn/Ntry/CdtDbtIndCredit / Debit IndicatorcreditDebitCRDT / DBIT
Interactive Edge Validator

Test ISO 20022 camt.054 Bank-to-Customer Debit/Credit Notification Parser Live

Paste raw inputs up to 32KB and inspect deterministic parsed JSON in real-time across 330+ Cloudflare edge locations. Pure compute, zero cold-starts.

Launch Workbench →

Parsed JSON Response Model

The edge microservice transforms input payloads into strongly-typed hierarchical JSON with zero cold starts:

HTTP 200 JSON Payload
{
  "messageType": "camt.054.001.08",
  "notificationId": "NTF-20260830-01",
  "amount": {
    "currency": "EUR",
    "value": 12500
  },
  "creditDebit": "CRDT",
  "debtor": {
    "name": "EURO TRADING GMBH"
  }
}

Copy-Paste Integration Code

Integrate this validator directly into your application using your production API key:

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 & Technical Notes

Is camt.054 used for instant payment reconciliation?

Yes, payment gateways and ERP systems utilize camt.054 to instantly trigger order fulfillment upon credit notification.

Related ISO 20022 Financial Message Parser & Validator API Formats

Explore sibling specifications and standards in the same developer cluster: