Skip to main content
Glama

French Invoice Validation

company_fr_invoice_check

Validates a French company identifier, optional EU VAT number and optional structured invoice fields including supplier name, date and amount arithmetic. Use when: Validate identifiers and basic structural consistency of a French supplier invoice. Avoid when: You only need the e-invoicing obligation schedule; use company/fr/e-invoice. You need to validate only an EU VAT number; use vat/eu/validate. Limitations: The endpoint checks supplied structured fields; it does not authenticate a document or prove that goods, services or payment are real. Price: 0.020 USD per call via x402. Paid-call behavior: source records are not modified, but a successful invocation can consume the advertised x402 payment; the payment-required challenge is free, and repeating the tool after a completed paid invocation may require a new payment. Accepted x402 networks: eip155:8453, xrpl:0.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
invoiceNoOptional value for “invoice” as defined by this API contract.
identifierYesFrench company identifier: 9-digit SIREN or 14-digit SIRET.
vat_numberNoOptional or required VAT identifier used by this validation or consistency check.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesPublicly available company, person, buyer or record name for this result.
sirenYesNormalized 9-digit French SIREN when available.
existsYesWhether the requested company or public record was found in the checked source.
verdictYesNormalized endpoint conclusion derived from the checked public data.
vies_nameYesStructured value returned for “vies name” as defined by this API contract.
checked_atYesUTC timestamp at which HelpMyAgent performed the check.
identifierYesIdentifier supplied for the request, echoed in normalized form when applicable.
vies_validYesStructured value returned for “vies valid” as defined by this API contract.
limitationsNoKnown interpretation, source-coverage or freshness limitations for this result.
vies_statusYesStructured value returned for “vies status” as defined by this API contract.
format_matchYesStructured value returned for “format match” as defined by this API contract.
invoice_validationYesStructured value returned for “invoice validation” as defined by this API contract.
expected_vat_numberYesStructured value returned for “expected vat number” as defined by this API contract.
supplied_vat_numberYesStructured value returned for “supplied vat number” as defined by this API contract.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / required
      Previous value: -[
      -  "identifier",
      -  "exists",
      -  "siren",
      -  "name",
      -  "expected_vat_number",
      -  "supplied_vat_number",
      -  "format_match",
      -  "vies_status",
      -  "vies_valid",
      -  "vies_name",
      -  "verdict",
      -  "invoice_validation",
      -  "checked_at",
      -  "limitations"
      -]New value: +[
      +  "identifier",
      +  "exists",
      +  "siren",
      +  "name",
      +  "expected_vat_number",
      +  "supplied_vat_number",
      +  "format_match",
      +  "vies_status",
      +  "vies_valid",
      +  "vies_name",
      +  "verdict",
      +  "invoice_validation",
      +  "checked_at"
      +]
  2. Changed3 schema fields changed
    • addedInput schema / properties / invoice
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional value for “invoice” as defined by this API contract.",
      +  "properties": {
      +    "currency": {
      +      "description": "Optional value for “currency” as defined by this API contract.",
      +      "pattern": "^[A-Z]{3}$",
      +      "type": "string"
      +    },
      +    "date": {
      +      "description": "Optional value for “date” as defined by this API contract.",
      +      "format": "date",
      +      "type": "string"
      +    },
      +    "number": {
      +      "description": "Identifier body used together with the supplied country code. (minimum length 1).",
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "subtotal": {
      +      "description": "Optional value for “subtotal” as defined by this API contract. (minimum 0).",
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "supplier_name": {
      +      "description": "Optional value for “supplier name” as defined by this API contract.",
      +      "type": "string"
      +    },
      +    "total": {
      +      "description": "Optional value for “total” as defined by this API contract. (minimum 0).",
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "vat_amount": {
      +      "description": "Optional value for “vat amount” as defined by this API contract. (minimum 0).",
      +      "minimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / invoice_validation
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Structured value returned for “invoice validation” as defined by this API contract.",
      +  "properties": {
      +    "arithmetic_consistent": {
      +      "description": "Structured value returned for “arithmetic consistent” as defined by this API contract.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "invoice_date_valid": {
      +      "description": "Structured value returned for “invoice date valid” as defined by this API contract.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "issues": {
      +      "description": "Structured value returned for “issues” as defined by this API contract.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "description": "Structured value returned for “code” as defined by this API contract.",
      +            "type": "string"
      +          },
      +          "severity": {
      +            "description": "Structured value returned for “severity” as defined by this API contract. (allowed values: warning, error).",
      +            "enum": [
      +              "warning",
      +              "error"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "severity"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "provided": {
      +      "description": "Structured value returned for “provided” as defined by this API contract.",
      +      "type": "boolean"
      +    },
      +    "supplier_name_match": {
      +      "description": "Structured value returned for “supplier name match” as defined by this API contract.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "verdict": {
      +      "description": "Normalized endpoint conclusion derived from the checked public data. (allowed values: not_checked, coherent, incomplete, incoherent).",
      +      "enum": [
      +        "not_checked",
      +        "coherent",
      +        "incomplete",
      +        "incoherent"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "provided",
      +    "verdict",
      +    "arithmetic_consistent",
      +    "supplier_name_match",
      +    "invoice_date_valid",
      +    "issues"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "identifier",
      -  "exists",
      -  "siren",
      -  "name",
      -  "expected_vat_number",
      -  "supplied_vat_number",
      -  "format_match",
      -  "vies_status",
      -  "vies_valid",
      -  "vies_name",
      -  "verdict",
      -  "checked_at",
      -  "limitations"
      -]New value: +[
      +  "identifier",
      +  "exists",
      +  "siren",
      +  "name",
      +  "expected_vat_number",
      +  "supplied_vat_number",
      +  "format_match",
      +  "vies_status",
      +  "vies_valid",
      +  "vies_name",
      +  "verdict",
      +  "invoice_validation",
      +  "checked_at",
      +  "limitations"
      +]
  3. Changed17 schema fields changed
    • addedInput schema / description
      Added value: +"Structured input parameters for the company/fr/invoice-check API."
    • addedInput schema / properties / identifier / description
      Added value: +"French company identifier: 9-digit SIREN or 14-digit SIRET."
    • addedInput schema / properties / vat_number / description
      Added value: +"Optional or required VAT identifier used by this validation or consistency check."
    • addedOutput schema / description
      Added value: +"Structured result returned by the company/fr/invoice-check API."
    • addedOutput schema / properties / checked_at / description
      Added value: +"UTC timestamp at which HelpMyAgent performed the check."
    • addedOutput schema / properties / exists / description
      Added value: +"Whether the requested company or public record was found in the checked source."
    • addedOutput schema / properties / expected_vat_number / description
      Added value: +"Structured value returned for “expected vat number” as defined by this API contract."
    • addedOutput schema / properties / format_match / description
      Added value: +"Structured value returned for “format match” as defined by this API contract."
    • addedOutput schema / properties / identifier / description
      Added value: +"Identifier supplied for the request, echoed in normalized form when applicable."
    • addedOutput schema / properties / limitations / description
      Added value: +"Known interpretation, source-coverage or freshness limitations for this result."
    • addedOutput schema / properties / name / description
      Added value: +"Publicly available company, person, buyer or record name for this result."
    • addedOutput schema / properties / siren / description
      Added value: +"Normalized 9-digit French SIREN when available."
    • addedOutput schema / properties / supplied_vat_number / description
      Added value: +"Structured value returned for “supplied vat number” as defined by this API contract."
    • addedOutput schema / properties / verdict / description
      Added value: +"Normalized endpoint conclusion derived from the checked public data."
    • addedOutput schema / properties / vies_name / description
      Added value: +"Structured value returned for “vies name” as defined by this API contract."
    • addedOutput schema / properties / vies_status / description
      Added value: +"Structured value returned for “vies status” as defined by this API contract."
    • addedOutput schema / properties / vies_valid / description
      Added value: +"Structured value returned for “vies valid” as defined by this API contract."
  4. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite having annotations, the description adds critical behavioral context beyond the false hints: it discloses the tool is a paid call (x402), explains payment consumption and repetition behavior, and clearly states limitations (does not authenticate or prove reality). This fully informs the agent of side effects and non-idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Use when, Avoid when, Limitations, Price, Paid-call behavior, Accepted networks) and front-loads the core purpose. Every sentence adds value, and the organization makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (paid call, network constraints, optional fields, output schema exists), the description covers all necessary context: usage boundaries, limitations, payment mechanics, and supported networks. Nothing critical is missing for an agent to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with 100% description coverage, so the description doesn't need to add parameter-level detail. It does mention 'amount arithmetic' which hints at the validation logic, but this is not a significant enhancement over the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool validates a French company identifier, optional EU VAT number, and structured invoice fields via arithmetic checks. It distinguishes itself from siblings by naming explicit alternatives in the 'Avoid when' section, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'Use when' and 'Avoid when' guidance, naming the exact sibling tools (company/fr/e-invoice and vat/eu/validate) for other use cases. This leaves no ambiguity about when to select this tool over its relatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources