InvoiceVerify

Check Peppol receivability (incl. Belgian client lists) and validate EU e-invoices. Free check.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
92%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,097Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (1.64% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "invoiceverify": {
      "url": "https://peppol-invoice-compass.lovable.app/mcp"
    }
  }
}

Remote endpoints

https://peppol-invoice-compass.lovable.app/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_peppol_receivability(id, lang)

Free, no sign-in needed: check whether one Belgian company can receive Peppol e-invoices under each of its two Belgian Peppol IDs — 0208 (enterprise/KBO-BCE number) and 9925 (VAT number). Returns receivable under both, only 0208, only 9925, neither or unknown, which ID to send to, the access point (service provider) per ID, and the risk and fix in English, Dutch or French. Limited to 20 checks per hour per connection; for client lists use check_belgian_peppol_list (sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Belgian enterprise or VAT number, e.g. BE0403170701, 0403.170.701 or 0403170701."
    },
    "lang": {
      "description": "Language of the explanation: en (default), nl or fr.",
      "type": "string",
      "enum": [
        "en",
        "nl",
        "fr"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢validate_invoice(xml, profile)

Validate a UBL 2.1, Peppol BIS Billing 3.0, XRechnung or CII / Factur-X XML invoice against EN 16931 and Peppol rules; returns pass/fail with rule IDs, line numbers and fixes. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "xml": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5242880,
      "description": "The complete invoice XML document."
    },
    "profile": {
      "description": "Rule set to apply. 'auto' (default) detects it from the CustomizationID.",
      "type": "string",
      "enum": [
        "auto",
        "peppol",
        "en16931",
        "xrechnung"
      ]
    }
  },
  "required": [
    "xml"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢generate_invoice(invoice, format)

Create a Peppol BIS 3 UBL, XRechnung (UBL or CII) or Factur-X/ZUGFeRD CII XML invoice from structured invoice data, with totals and VAT computed and the result validated. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "invoice": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Invoice data: {number, issueDate (YYYY-MM-DD), dueDate?, currency?, buyerReference?, seller: Party, buyer: Party, payment?: {meansCode, iban, bic}, lines: [{name, quantity, unitPrice, unitCode?, vatCategory? (S,Z,E,AE,K,G,O), vatRate?}]}. Party: {name, vatId?, companyId?, endpointId, endpointScheme (EAS code, e.g. 0208, 9930), street?, city?, postalCode?, country (ISO 2)}. Full schema: InvoiceData in /openapi.json."
    },
    "format": {
      "description": "Output format. Default 'peppol' (Peppol BIS Billing 3.0 UBL).",
      "type": "string",
      "enum": [
        "peppol",
        "xrechnung-ubl",
        "xrechnung-cii",
        "cii"
      ]
    }
  },
  "required": [
    "invoice"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢convert_invoice(xml, format)

Convert an existing UBL or CII / Factur-X invoice XML into Peppol BIS 3 UBL, XRechnung UBL, XRechnung CII or Factur-X CII, and validate the result. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "xml": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5242880,
      "description": "The source invoice XML."
    },
    "format": {
      "type": "string",
      "enum": [
        "peppol",
        "xrechnung-ubl",
        "xrechnung-cii",
        "cii"
      ],
      "description": "Target format, e.g. 'peppol' or 'xrechnung-ubl'."
    }
  },
  "required": [
    "xml",
    "format"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢parse_invoice(xml)

Read a UBL or CII / Factur-X invoice XML into structured JSON (parties, lines, VAT, totals, payment) for booking or reconciliation. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "xml": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5242880,
      "description": "The invoice XML."
    }
  },
  "required": [
    "xml"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢lookup_peppol_participant(id, country)

Check whether a company can receive Peppol e-invoices: give a VAT number, company number (KBO/BCE, KvK, SIREN/SIRET), GLN or Peppol ID and it checks every relevant scheme (e.g. Belgian 0208 and 9925) in the live Peppol SML/SMP, lists supported document types and says which ID to send to. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "VAT number (BE0403170701), company number or Peppol ID (0208:0403170701)."
    },
    "country": {
      "description": "ISO country code hint for ambiguous numbers, e.g. 'BE' or 'FR'.",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢check_belgian_peppol_list(companies, lang)

Check up to 25 Belgian companies (enterprise or VAT numbers) for Peppol receivability under both Belgian IDs — 0208 (enterprise number) and 9925 (VAT number). Returns per company: receivable under both, only 0208, only 9925, neither, or unknown, with the risk and what to fix in Dutch, French or English. Uses one metered call per valid company; unreadable numbers are free. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "companies": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "Enterprise or VAT number, e.g. BE0403170701 or 0403.170.701"
              },
              "name": {
                "description": "Optional client name to echo back",
                "type": "string",
                "maxLength": 200
              }
            },
            "required": [
              "id"
            ]
          }
        ]
      },
      "description": "1 to 25 Belgian enterprise or VAT numbers (strings or {id, name}). Split longer lists into several calls."
    },
    "lang": {
      "description": "Language of the explanations: en (default), nl or fr.",
      "type": "string",
      "enum": [
        "en",
        "nl",
        "fr"
      ]
    }
  },
  "required": [
    "companies"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢explain_rule(rule_id, language)

Explain an EN 16931, Peppol or XRechnung business rule (e.g. BR-CO-15, PEPPOL-EN16931-R003) in plain English, Dutch or French, with typical causes and fix steps. Free. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {
    "rule_id": {
      "type": "string",
      "minLength": 2,
      "maxLength": 40,
      "description": "Rule ID as reported by validate_invoice, e.g. BR-CO-15."
    },
    "language": {
      "description": "Explanation language. Default 'en'.",
      "type": "string",
      "enum": [
        "en",
        "nl",
        "fr"
      ]
    }
  },
  "required": [
    "rule_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_usage

Show this month's metered calls, the included allowance, remaining call-pack credits and the reset date for the signed-in account. Free. Requires an InvoiceVerify account (OAuth sign-in).

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools