Privacy policy
Your files never leave your browser
ISO 20022 Navigator reads camt, pain and MT940 files with JavaScript on your own device. This page lists everything the site’s server does receive: anonymous counters, the files you choose to send to the API, and, if you donate, a request to Stripe.
Last updated October 29, 2026
What happens in your browser
- Files you open in the camt, pain and MT940 viewers are read, parsed and checked by JavaScript on the page. They are not uploaded, stored or logged anywhere.
- Converting an MT940 file to camt.053 happens in your browser too. The converted file opens in the camt viewer or downloads straight to your device.
- File contents are never written to browser storage. Close or reload the tab and they are gone.
- The pages’ security policy only allows connections back to this site (
connect-src 'self'), so a page couldn’t send your file anywhere else even by mistake. To check, open your browser’s developer tools, choose the Network tab and open a file.
What our server receives
The site runs on Cloudflare. Like any website, Cloudflare handles the connection, including your IP address, to deliver the pages and block abuse, under Cloudflare’s privacy policy. Our own code receives only the following.
Anonymous usage counters
When you open a page or use a tool, the page sends the name of the event, such as page:home, and nothing else. The server adds one to that counter and to the same counter for the current day. No cookie, IP address, browser details, file name or file content is stored with it. These are all of the counters:
| Counted when | Counter names |
|---|---|
| Page views. A page is opened (one counter per page). | page:homepage:pain_viewerpage:mt940_viewerpage:iso20022_referencepage:api_docspage:use_casespage:termspage:privacypage:donatepage:donation_successpage:analyticspage:not_found |
| Files opened. A file is opened or pasted, or a built-in sample is opened, in one of the viewers (one counter per viewer and source). Only the count is sent; the file stays on your device. | file:camt:uploadfile:camt:samplefile:pain:uploadfile:pain:samplefile:mt940:uploadfile:mt940:sample |
| Conversions. The MT940 Viewer converts a file to camt.053 in your browser. | convert:mt940:camt053 |
| Downloads. A result is downloaded from a viewer: CSV, JSON or a converted camt.053 file. | export:camt:csvexport:camt:jsonexport:pain:csvexport:pain:jsonexport:mt940:csvexport:mt940:jsonexport:mt940:camt053 |
| API calls. A REST API endpoint answers a call successfully (one counter per endpoint). | api:detectapi:parseapi:validateapi:convertapi:explain |
| MCP tool calls. An MCP tool answers a call successfully (one counter per tool). | mcp:detect_message_typemcp:parse_iso20022mcp:validate_payment_filemcp:parse_mt940mcp:convert_mt940_to_camt053mcp:explain_code |
The totals are public on the analytics page: you see the same numbers we do.
The REST API and the MCP server
If you, your software or an AI agent call the REST API (/api/v1/…) or the MCP server (/mcp), the file text is in the request body: that is how an API works. The server reads it into memory, parses it, sends back the result and drops it. The file is never stored and never written to logs: the server’s own log lines carry short tags only, such as a failed counter write, never request data, and query strings are removed from the request URLs that are logged. Each successful call adds one to its counter (api:… or mcp:…), as listed above. No account, key or cookie is involved. To keep a file entirely on your device, use the viewers instead.
Rate limiting
To stop abuse, the API and MCP server, the counters and donation requests are rate-limited per visitor. The key is your IP address: an IPv4 address as it is, or the /64 network of an IPv6 address. It is checked against Cloudflare’s rate-limiting counters, which count requests per key over 60 seconds. IP addresses are never written to our database.
Donations
On the donate page, the amount you choose is sent to our server, which asks Stripe to create a payment for exactly that amount. Your card or bank details go from Stripe’s payment form straight to Stripe and never reach our server. Stripe processes the payment under the Stripe privacy policy. Stripe’s code loads only on the donate and thank-you pages.
Cookies and storage
- ISO 20022 Navigator sets no cookies.
- Display preferences, like your choice of light or dark theme, are saved in your browser’s local storage. They never leave your device.
- On the donate and thank-you pages, Stripe’s payment form may set its own cookies to prevent fraud, as its privacy policy describes.
Questions
Email davidkaylor95+iso20022@gmail.com. The terms and conditions cover the rest.