SPC is the payload format embedded inside a Swiss QR-bill QR code. v0200 is the current version (v0100 was a 2018 pre-release; everything since 2020 is v0200). The payload is a 31-line, CRLF-delimited UTF-8 text blob with a strict line-by-line schema.
Layout: lines 1–3 are the header ("SPC" / "0200" / "1" for UTF-8 encoding), 4 is the creditor IBAN, 5–11 are the creditor address block, 12–18 are the ultimate-creditor block (usually empty), 19 is the amount, 20 is the currency code, 21–27 are the ultimate-debtor block, 28 is the reference type ("QRR" or "SCOR" or "NON"), 29 is the reference value, 30 is the unstructured message, 31 is the trailer ("EPD"). Optional line 32 carries Swico bill-information.
Total payload size is capped at 997 bytes. Empty lines are kept (they hold position) — the *line number* is the schema, not the field name. A misalignment by one line silently maps every field below it to the wrong column.
iso-compliant emits SPC deterministically and parses it for validation at apps/api/src/lib/spc.ts (server) and lib/spc-parse.ts (browser). The free /qrbill page lets buyers paste an SPC payload and round-trip it.