DEMO — FIXTURE DATA — NOT A LIVE COMPANY VERIFICATION

See the decision workflow

Three fixture scenarios show exactly what Jithox returns — computed by the same decision engine the production tools use. No live company is contacted; nothing you type is sent to VIES, Peppol, DNS or Stripe.

Two things to read correctly

Accepted is not a verdict. A call that returns HTTP 200 (and, in production, counts one check) only means Jithox ran the check — the business answer is decision.status, below. Unavailable is not invalid. When a provider can't answer, the status is unavailable — an unknown, never invalid or not_registered.

The three decisions

READY — evidence supports proceeding (within limitations)

Fixture Foods BV (fictional) — The receiver is registered on the production Peppol network and accepts BIS Billing 3.0.

Tool: lookup_peppol_participant · Input (fixture): {"countryCode":"BE","vatId":"BE0123456789"}

Decision: ready · canProceed true · requiresHumanReview false

Registered on the Peppol network and accepts BIS Billing 3.0 invoices.

blockingReasons: none

warnings: none

nextActions:

Full decision envelope (JSON)
{
  "status": "ready",
  "summary": "Registered on the Peppol network and accepts BIS Billing 3.0 invoices.",
  "decision": {
    "canProceed": true,
    "requiresHumanReview": false,
    "blockingReasons": [],
    "warnings": [],
    "nextActions": [
      "Proceed with Peppol readiness for this receiver."
    ]
  },
  "evidence": [
    {
      "source": "peppol-smp",
      "statement": "Registered; BIS Billing 3.0 accepted.",
      "observedAt": "2026-07-16T09:00:00Z"
    }
  ],
  "limitations": [
    "Technical readiness only: not a legal, fiscal or compliance guarantee, not proof a payment or a Peppol delivery will occur, and current only as of the stated check time."
  ],
  "provenance": {
    "source": "peppol-smp",
    "network": "peppol-production",
    "checkedAt": "2026-07-16T09:00:00Z",
    "scheme": "0208"
  },
  "requestId": "demo-ready",
  "receiptId": "demo-ready-receipt"
}

Signed demo receipt (kind:"demo", key canary-ed25519-147dad7768ced8d7) is in the evaluation bundle — verify it offline (below).

NEEDS_REVIEW — a human must judge, not the agent

Example Widgets SPRL (fictional) — Registered on Peppol, but BIS Billing 3.0 acceptance is not advertised for the queried document type.

Tool: lookup_peppol_participant · Input (fixture): {"countryCode":"BE","vatId":"BE0987654321"}

Decision: needs_review · canProceed false · requiresHumanReview true

Registered on Peppol, but BIS Billing 3.0 acceptance is not confirmed.

blockingReasons: none

warnings:

nextActions:

Full decision envelope (JSON)
{
  "status": "needs_review",
  "summary": "Registered on Peppol, but BIS Billing 3.0 acceptance is not confirmed.",
  "decision": {
    "canProceed": false,
    "requiresHumanReview": true,
    "blockingReasons": [],
    "warnings": [
      "The receiver is registered but does not advertise BIS Billing 3.0 support for the queried document type."
    ],
    "nextActions": [
      "Confirm with the receiver which document types they accept."
    ]
  },
  "evidence": [
    {
      "source": "peppol-smp",
      "statement": "Registered; BIS 3.0 support not advertised.",
      "observedAt": "2026-07-16T09:00:00Z"
    }
  ],
  "limitations": [
    "Technical readiness only: not a legal, fiscal or compliance guarantee, not proof a payment or a Peppol delivery will occur, and current only as of the stated check time."
  ],
  "provenance": {
    "source": "peppol-smp",
    "network": "peppol-production",
    "checkedAt": "2026-07-16T09:00:00Z",
    "scheme": "0208"
  },
  "requestId": "demo-needs_review",
  "receiptId": "demo-needs_review-receipt"
}

Signed demo receipt (kind:"demo", key canary-ed25519-147dad7768ced8d7) is in the evaluation bundle — verify it offline (below).

UNAVAILABLE — an unknown, never a 'no'

Sample Traders GmbH (fictional) — VIES did not return a reliable answer (timeout). This is NOT 'invalid' and NOT 'not registered'.

Tool: verify_vat_vies · Input (fixture): {"vatNumber":"BE0123456749"}

Decision: unavailable · canProceed false · requiresHumanReview false

VIES could not be reached; no validity claim is made.

blockingReasons: none

warnings: none

nextActions:

Full decision envelope (JSON)
{
  "status": "unavailable",
  "summary": "VIES could not be reached; no validity claim is made.",
  "decision": {
    "canProceed": false,
    "requiresHumanReview": false,
    "blockingReasons": [],
    "warnings": [],
    "nextActions": [
      "Retry later — VIES availability is outside Jithox's control."
    ]
  },
  "evidence": [],
  "limitations": [
    "Technical readiness only: not a legal, fiscal or compliance guarantee, not proof a payment or a Peppol delivery will occur, and current only as of the stated check time.",
    "VIES did not answer (timeout); this is NOT 'invalid'."
  ],
  "provenance": {
    "source": "vies",
    "checkedAt": "2026-07-16T09:00:00Z"
  },
  "requestId": "demo-unavailable",
  "receiptId": "demo-unavailable-receipt"
}

Signed demo receipt (kind:"demo", key canary-ed25519-147dad7768ced8d7) is in the evaluation bundle — verify it offline (below).

The five-tool workflow (order)

An agent calls only the tools a task needs — it does not always run all five.

ToolWhyFixture exampleDefinitive?
validate_vat_numberLocal format + checksum (no network).BE0123456749 → valid format (warns: run VIES next)indicative (format only)
verify_vat_viesLive EU VIES active-registration check.BE0123456749 → invalid (checksum-valid but not VIES-active — the teaching case)definitive when VIES answers; else unavailable
lookup_peppol_participantPeppol SML/SMP reachability + BIS 3.0.Fixture Foods → registered + BIS 3.0registered/not_registered are definitive; unavailable is not
validate_invoiceStructural BIS 3.0 completeness + totals.draft invoice → structural errors listed, if anystructural only — not tax/legal correctness
get_einvoice_readinessComposite readiness + next step.combines the above into one decisionone decision status + nextActions

Verify a demo receipt offline (2 minutes, no account)

curl -sO https://sanctions.mcp.jithox.com/demo/public-key.pem
curl -sO https://sanctions.mcp.jithox.com/receipts/verify-receipt.mjs
curl -s https://sanctions.mcp.jithox.com/demo/evaluation-bundle.json -o bundle.json
node -e "const b=require('./bundle.json');require('fs').writeFileSync('receipt.json',JSON.stringify(b.scenarios[0].receipt))"
node verify-receipt.mjs receipt.json public-key.pem   # → VALID DEMO RECEIPT

A demo receipt verifies with the demo public key and prints VALID DEMO RECEIPT. The production verifier rejects it (unknown key id) — demo evidence can never be shown as a live verification. Alter any field and verification fails.

Integrate before you pay — the evaluation bundle

Download the evaluation bundle — three fixture inputs, their decisions, three signed demo receipts, the demo public key, offline verification and checksums. No production token, key, or customer data. Wire the decision semantics into your agent, then start the pilot for live checks.

Try the workflow with your agent

These prompts analyze the fixtures above; real production MCP calls require the €39 Developer Pilot + OAuth (this demo is a web page, not an MCP endpoint).

Start the €39 developer pilot →   Developer guide   Contact: info.jithox@gmail.com