{
      "tool_id": "art-294-einvoice-vat-calc-verifier",
      "tool_version": "1.0.0",
      "display_name": "E-Invoice VAT Calculation Verifier",
      "mcp_name": "verify_einvoice_vat_calc",
      "mandate_type": "compliance_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-294-einvoice-vat-calc-verifier.html",
      "description": "Recompute an e-invoice's line VAT, per-category tax subtotals, tax total, and grand total from its line items under a supplied rounding convention, then compare against the document-asserted amounts. Reverse-charge and zero-rate categories are treated as zero VAT. Verifies arithmetic consistency only, not statutory rate correctness. Middle node of the einvoice-validation-pipeline chain. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-294-einvoice-vat-calc-verifier.html#manifest",
      "consumes": [
        "art-293-einvoice-format-validator"
      ],
      "feeds": [
        "art-295-einvoice-jurisdiction-mandate-router"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:986d37866299487054398f63d3e4ea13b3ae3c3ccd2e7c315e21d8269f9696e2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CARRGt3XF4/EShqj0tFEGDef5xZjy1UeWVwWewQWzaowELJhvP8QGqW0Cr4cmms2181IJ/CI3s/uIYFPFuc9lQwvSYonJfQIKzQ+uYAg8sT5G0KRXpt3xFbIhTBjgFleH7PcvTKVKC4MJ2eQkhbHezDoi80veq9x7bZM1JiHPQYJfR9HmSaDQZWnng2f5hL+PO8zlfJbzz+Yo2E4NndkVRdLhCssetRiRB3QH5lGx+696raSyuu1MZxtuyE3nxMKLcgdKerDLyTxWNHOcyCvynaQXmKdLMKAyHZSkAad2LAnXKMHxbGC716l9bDi7LJWko3gYLcc3Ldd6noF50Oqtg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:986d37866299487054398f63d3e4ea13b3ae3c3ccd2e7c315e21d8269f9696e2",
          "output": {
            "consistent": true,
            "grand_total_computed": 1690,
            "grand_total_delta": 0,
            "parse_error": null,
            "rounding": {
              "granularity": "per-line",
              "method": "half-up"
            },
            "subtotal_deltas": [
              {
                "matched_asserted_subtotal": true,
                "tax_amount_computed": 190,
                "tax_amount_delta": 0,
                "taxable_amount_computed": 1000,
                "taxable_amount_delta": 0,
                "vat_category": "S",
                "vat_rate_pct": 19
              },
              {
                "matched_asserted_subtotal": true,
                "tax_amount_computed": 0,
                "tax_amount_delta": 0,
                "taxable_amount_computed": 500,
                "taxable_amount_delta": 0,
                "vat_category": "Z",
                "vat_rate_pct": 0
              }
            ],
            "tax_total_computed": 190,
            "tax_total_delta": 0
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    }
