# French Invoice Validation

Validates a French company identifier, optional EU VAT number and optional structured invoice fields including supplier name, date and amount arithmetic.

## Endpoint

- Method: `POST`
- URL: `https://api.helpmyagent.com/v1/company/fr/invoice-check`
- Price: `0.020 USD` / call

## Machine discovery

- llms.txt: https://helpmyagent.com/llms.txt
- OpenAPI 3.1: https://api.helpmyagent.com/openapi.json
- capabilities.json: https://helpmyagent.com/capabilities.json
- MCP: https://helpmyagent.com/mcp
- RFC 9727: https://helpmyagent.com/.well-known/api-catalog
- pricing.json: https://helpmyagent.com/pricing.json
- x402: https://helpmyagent.com/.well-known/x402
- x402-service.json: https://helpmyagent.com/.well-known/x402-service.json
- Health status: https://helpmyagent.com/health

## x402 payment methods

- USDC on `eip155:8453`
- RLUSD on `xrpl:0`

## Coverage

FR, EU

## 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.

## Example queries

- Check this French supplier invoice identifier, VAT number and totals.

## Freshness

```json
{
    "mode": "source_dependent"
}
```

## Sources

- [API Recherche d’entreprises](https://recherche-entreprises.api.gouv.fr)
- [European Commission VIES](https://ec.europa.eu/taxation_customs/vies/)

## Input schema

```json
{
    "type": "object",
    "properties": {
        "identifier": {
            "type": "string",
            "pattern": "^[0-9]{9}([0-9]{5})?$",
            "description": "French company identifier: 9-digit SIREN or 14-digit SIRET."
        },
        "vat_number": {
            "type": "string",
            "description": "Optional or required VAT identifier used by this validation or consistency check."
        },
        "invoice": {
            "type": "object",
            "properties": {
                "number": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Identifier body used together with the supplied country code. (minimum length 1)."
                },
                "date": {
                    "type": "string",
                    "format": "date",
                    "description": "Optional value for “date” as defined by this API contract."
                },
                "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "Optional value for “currency” as defined by this API contract."
                },
                "supplier_name": {
                    "type": "string",
                    "description": "Optional value for “supplier name” as defined by this API contract."
                },
                "subtotal": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Optional value for “subtotal” as defined by this API contract. (minimum 0)."
                },
                "vat_amount": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Optional value for “vat amount” as defined by this API contract. (minimum 0)."
                },
                "total": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Optional value for “total” as defined by this API contract. (minimum 0)."
                }
            },
            "additionalProperties": false,
            "description": "Optional value for “invoice” as defined by this API contract."
        }
    },
    "additionalProperties": false,
    "required": [
        "identifier"
    ],
    "description": "Structured input parameters for the company/fr/invoice-check API."
}
```

## Output schema

```json
{
    "type": "object",
    "properties": {
        "identifier": {
            "type": "string",
            "description": "Identifier supplied for the request, echoed in normalized form when applicable."
        },
        "exists": {
            "type": "boolean",
            "description": "Whether the requested company or public record was found in the checked source."
        },
        "siren": {
            "type": [
                "string",
                "null"
            ],
            "description": "Normalized 9-digit French SIREN when available."
        },
        "name": {
            "type": [
                "string",
                "null"
            ],
            "description": "Publicly available company, person, buyer or record name for this result."
        },
        "expected_vat_number": {
            "type": [
                "string",
                "null"
            ],
            "description": "Structured value returned for “expected vat number” as defined by this API contract."
        },
        "supplied_vat_number": {
            "type": [
                "string",
                "null"
            ],
            "description": "Structured value returned for “supplied vat number” as defined by this API contract."
        },
        "format_match": {
            "type": [
                "boolean",
                "null"
            ],
            "description": "Structured value returned for “format match” as defined by this API contract."
        },
        "vies_status": {
            "type": "string",
            "description": "Structured value returned for “vies status” as defined by this API contract."
        },
        "vies_valid": {
            "type": [
                "boolean",
                "null"
            ],
            "description": "Structured value returned for “vies valid” as defined by this API contract."
        },
        "vies_name": {
            "type": [
                "string",
                "null"
            ],
            "description": "Structured value returned for “vies name” as defined by this API contract."
        },
        "verdict": {
            "type": "string",
            "description": "Normalized endpoint conclusion derived from the checked public data."
        },
        "invoice_validation": {
            "type": "object",
            "properties": {
                "provided": {
                    "type": "boolean",
                    "description": "Structured value returned for “provided” as defined by this API contract."
                },
                "verdict": {
                    "type": "string",
                    "enum": [
                        "not_checked",
                        "coherent",
                        "incomplete",
                        "incoherent"
                    ],
                    "description": "Normalized endpoint conclusion derived from the checked public data. (allowed values: not_checked, coherent, incomplete, incoherent)."
                },
                "arithmetic_consistent": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "description": "Structured value returned for “arithmetic consistent” as defined by this API contract."
                },
                "supplier_name_match": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "description": "Structured value returned for “supplier name match” as defined by this API contract."
                },
                "invoice_date_valid": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "description": "Structured value returned for “invoice date valid” as defined by this API contract."
                },
                "issues": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "code": {
                                "type": "string",
                                "description": "Structured value returned for “code” as defined by this API contract."
                            },
                            "severity": {
                                "type": "string",
                                "enum": [
                                    "warning",
                                    "error"
                                ],
                                "description": "Structured value returned for “severity” as defined by this API contract. (allowed values: warning, error)."
                            }
                        },
                        "additionalProperties": false,
                        "required": [
                            "code",
                            "severity"
                        ]
                    },
                    "description": "Structured value returned for “issues” as defined by this API contract."
                }
            },
            "additionalProperties": false,
            "required": [
                "provided",
                "verdict",
                "arithmetic_consistent",
                "supplier_name_match",
                "invoice_date_valid",
                "issues"
            ],
            "description": "Structured value returned for “invoice validation” as defined by this API contract."
        },
        "checked_at": {
            "type": "string",
            "description": "UTC timestamp at which HelpMyAgent performed the check."
        },
        "limitations": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Known interpretation, source-coverage or freshness limitations for this result."
        }
    },
    "additionalProperties": false,
    "required": [
        "identifier",
        "exists",
        "siren",
        "name",
        "expected_vat_number",
        "supplied_vat_number",
        "format_match",
        "vies_status",
        "vies_valid",
        "vies_name",
        "verdict",
        "invoice_validation",
        "checked_at"
    ],
    "description": "Structured result returned by the company/fr/invoice-check API."
}
```

## Billing policy

```json
{
    "charge_on": "valid_result",
    "no_charge_on_empty_result": true,
    "no_charge_on_error": true
}
```
