Skip to content

Verification model

Protocol

Verification model

Receipt + JWKS + optional bound artifact → local verifier → VERIFIED or INVALID.

Inputs

  • The receipt JSON.
  • JWKS (or a provided PEM for the expected kid).
  • Optional: the exact UBL bytes claimed by artifacts.ubl_sha256.

Hard fail

The local model reports INVALID when any of these hold:

  • Schema is not fiscal402.receipt / 1.0.0.
  • Signature is not VALID.
  • Canonical payload is MISMATCH.
  • UBL hash is MISMATCH when bytes were provided.
  • Settlement network or tx_hash is missing.
  • JWKS kid is unknown.

Result is VERIFIED only when the signature is VALID and a settlement reference is present, and no hard fail occurred.

VERIFIED means

Cryptographic integrity and successful verification under Fiscal402’s rules. It does not mean “tax authority approved” or “legally compliant in every jurisdiction.”

Server endpoint

POST /v1/compliance/receipts/verify returns { "valid": true|false } after checking the stored hash’s Ed25519 signature against this node’s keys. It does not re-canonicalize. Use it as a convenience, not as the independent model.