Skip to content

x402

UBL 2.1 after x402 settlement

Fiscal402 emits EN 16931 flavoured UBL 2.1 invoices for production EU events. The receipt binds SHA-256 of the exact UTF-8 bytes. No XML canonicalization.

PRODUCTION

Production EU events emit UBL 2.1 invoice XML in an EN 16931 flavour. Invoice currency is EUR. Original USDC amount and the historical FX quote are recorded in document notes.

Why UBL after x402

Machine payments settle in stablecoins. European accounting and e-invoicing stacks expect UBL, not a Base transaction hash. Fiscal402 generates the document after classification, then binds it so a later re-serializer cannot silently substitute bytes.

Binding rule

  1. UBL as generated
  2. exact UTF-8 bytes
  3. SHA-256
  4. artifacts.ubl_sha256 on the receipt

There is no XML Canonicalization (C14N). Whitespace-equivalent XML is a different artifact and must fail the hash check. Fetch with GET /settlements/:id/ubl.

Last updated 13 September 2026