Invoice check: validate an EU invoice before paying

$0.05 per call · failed calls are never charged · no account needed: a card key or USDC

Check an invoice in one call: send a PDF, Word or Excel file, scan or photo (URL or POST body). It reads the fields, checks the seller's and buyer's VAT numbers in EU VIES with the registered name, validates the IBAN and its country, recomputes net + VAT = total and the line items, and checks the dates. Returns pass, review or fail with each check. Use before paying a supplier invoice or in an accounts-payable workflow.

Buy credits by card (from $1) Example result (JSON)

Inputs

NameTypeDescription
url (required)stringAbsolute public http(s) URL of the invoice file (or send the file in a POST body instead)

Request

Over HTTP, with a card key from /credits:

curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/invoice/check?url=https%3A%2F%2Fraw.githubusercontent.com%2Finvoice-x%2Finvoice2data%2Fmaster%2Ftests%2Fcompare%2Fcoolblue1.pdf"

Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.

Example result

{
  "url": "https://raw.githubusercontent.com/invoice-x/invoice2data/master/tests/compare/coolblue1.pdf",
  "verdict": "pass",
  "summary": "Every check that could run passed.",
  "checks": [
    {
      "check": "seller_vat",
      "status": "pass",
      "detail": "valid in VIES, registered to COOLBLUE B.V."
    },
    {
      "check": "iban",
      "status": "pass",
      "detail": "IBAN NL50 INGB 0683 2513 09 is valid (NL)"
    },
    {
      "check": "totals",
      "status": "pass",
      "detail": "net 593.36 + VAT 124.61 = total 717.97"
    },
    {
      "check": "vat_rate",
      "status": "pass",
      "detail": "VAT is 21% of the net amount"
    },
    {
      "check": "line_items",
      "status": "pass",
      "detail": "5 line(s) add up to the total 717.97"
    },
    {
      "check": "dates",
      "status": "pass",
      "detail": "issued 2014-04-19, no due date stated"
    }
  ],
  "invoice": {
    "invoice_number": "993548900",
    "invoice_date": "2014-04-19",
    "seller_name": "Coolblue B.V.",
    "seller_vat_number": "NL810433941B01",
    "iban": "NL50INGB0683251309",
    "bic": "INGBNL2A",
    "currency": "EUR",
    "net_amount": 593.36,
    "vat_amount": 124.61,
    "total_amount": 717.97
  }
}

From an AI agent (MCP)

Add the MCP server to Claude, Cursor or any MCP client. This tool is invoice_check, and the first 25 successful calls are free:

https://tools.funwords.eu/mcp

Related tools