One reject, whole batch
Some bank IGs fail the entire <PmtInf> block on a single bad address. The cost of a reject scales with the size of the run.
Nightly payroll, monthly AR, and recurring direct-debit batches across subscription, utilities, insurance, and adjacent verticals. iso-compliant is the headless generator that turns a JSON batch into bank-accepted ISO 20022 XML — at a flat per-document price, never a percentage of transaction volume. You keep your bank channel; we shape the file.
The problem
When you emit dozens or hundreds of transactions in a single file, one malformed party block can reject the whole batch — and a rejected payroll run is not a code bug, it’s a workforce problem. Building and maintaining the ISO 20022 emitter in-house means owning the XSD envelopes, the per-bank overlays, the ASCII-fold rules, and the structured-address mandate — for a file format that is not your product.
Some bank IGs fail the entire <PmtInf> block on a single bad address. The cost of a reject scales with the size of the run.
Each receiving bank layers its own overlay on the ISO baseline. Maintaining that matrix by hand, versioned and tested, is a standing engineering cost.
A PSP-style cut of transaction volume makes your file-generation cost grow with the money you move — even though the work per file is constant.
How iso-compliant solves it
iso-compliant is bank-channel-agnostic: it generates the file and hands it back. The deterministic path means no LLM in the request flow and a latency profile bounded by validation, not inference — which is what you want when a 50,000-line payroll batch has to be out the door before the bank’s cut-off. Pricing is sub-linear with batch size and is a flat amount per document.
Your scheduler or ERP sends a structured payload — debtor, the list of credit transfers or direct debits, remittance info. Same payload shape across pain.001 (credit transfer) and pain.008 (direct debit). No envelope-template hunting.
The pipeline lints addresses, applies the pinned bank rule pack, builds the batch, ASCII-folds, and signs. 99% of traffic resolves through a compiled rule-pack AST walk — no LLM in the request path, so p99 latency is bounded by syntactic validation, not inference.
The XML pipes straight to the channel you already run — EBICS T, BACS, SWIFT FileAct, FedACH, or SFTP. We do not hold your bank credentials or EBICS keys, and we never sit in the funds flow.
Per-document, on a volume curve
| Monthly volume | Price |
|---|---|
| 1 – 9,999 docs/mo | $0.050 / doc |
| 10,000 – 99,999 docs/mo | $0.030 / doc |
| 100,000 – 999,999 docs/mo | $0.015 / doc |
| 1M – 9.9M docs/mo | $0.008 / doc |
| 10M+ docs/mo | $0.005 / doc |
First 100 documents per month are free, no card. Full calculator and break-even math at /pricing.
What you integrate
Your scheduler calls one endpoint per batch and persists the returned XML to disk; your existing EBICS or SFTP client uploads it. iso-compliant is the file-shaping layer, not the channel layer — it replaces the part of your stack that writes the XML, nothing downstream of it.
POST /v1/iso20022/pain.001 and /v1/iso20022/pain.008 for the batch builds.MsgId so a retried batch never double-emits.Start free
100 documents per month free, no card. POST a JSON batch, get XSD-valid XML back, and pipe it to your existing channel.