einvoicecheck
Menu

Documentation

Quickstart

Validate your first invoice in about 5 minutes. Or try it in the browser first.

Invoices are validated in memory and never stored.

1. Get a key

Create a free account and API key in the dashboard. Test keys (eiv_test_…) don't count against quota.

2. Validate an invoice

Example language
curl -s -X POST 'https://einvoicecheck.eu/v1/validate' \
  -H 'Authorization: Bearer eiv_live_your_key' \
  -H 'Content-Type: application/xml' \
  --data-binary @invoice.xml
const res = await fetch('https://einvoicecheck.eu/v1/validate', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer ' + process.env.EIV_KEY, 'Content-Type': 'application/xml' },
  body: invoiceXml,
});
const result = await res.json();
console.log(result.valid, result.errors);
import os, requests
r = requests.post(
    'https://einvoicecheck.eu/v1/validate',
    headers={'Authorization': 'Bearer ' + os.environ['EIV_KEY'], 'Content-Type': 'application/xml'},
    data=open('invoice.xml', 'rb'),
)
print(r.json()['valid'], r.json()['errors'])

You get back

{
  "valid": false,
  "format": "peppol-bis-3",
  "documentType": "invoice",
  "rulesetVersion": "2026.5",
  "counts": { "fatal": 1, "warning": 0, "information": 0 },
  "errors": [
    {
      "ruleId": "BR-CO-10",
      "severity": "fatal",
      "message": "Sum of Invoice line net amount (BT-106) must equal the sum of all invoice line net amounts (BT-131).",
      "docsUrl": "https://einvoicecheck.eu/rules/br-co-10"
    },
    {
      "ruleId": "BR-CO-16",
      "severity": "fatal",
      "message": "Amount due for payment (BT-115) must equal the invoice total with VAT (BT-112).",
      "docsUrl": "https://einvoicecheck.eu/rules/br-co-16"
    }
  ],
  "meta": { "requestId": "req_abc123", "durationMs": 142 }
}

Every error includes a docsUrl — e.g. BR-CO-10.

3. Check a VAT number

curl -s 'https://einvoicecheck.eu/v1/vat/SI/12345678' -H 'Authorization: Bearer eiv_live_your_key'

4. List formats

curl -s 'https://einvoicecheck.eu/v1/formats'

Full reference: OpenAPI.

Limits & plans: free tier includes 100 validations/month — see your dashboard for usage and upgrades.