OpenAPI-first developer guide
Irish eInvoice validation API documentation
The browser checker and external clients use the same API. No account or API key is currently required. The base URL is https://e-invoices.verens.com/api/v1.
Quick start: XML
curl https://e-invoices.verens.com/api/v1/validate \
-H 'Content-Type: application/xml' \
--data-binary @invoice.xmlQuick start: canonical JSON
curl https://e-invoices.verens.com/api/v1/validate \
-H 'Content-Type: application/json' \
--data-binary @invoice.jsonBrowser JavaScript
const response = await fetch('https://e-invoices.verens.com/api/v1/validate', {
method: 'POST',
headers: {'Content-Type': 'application/xml'},
body: xml
});
const report = await response.json();
if (!response.ok) throw new Error(report.error.message);PHP
<?php
$ch = curl_init('https://e-invoices.verens.com/api/v1/validate');
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Content-Type: application/xml'], CURLOPT_POSTFIELDS => file_get_contents('invoice.xml'), CURLOPT_RETURNTRANSFER => true]);
$report = json_decode(curl_exec($ch), true, flags: JSON_THROW_ON_ERROR);Endpoints
POST /validate— validate XML, canonical JSON, or multipart fieldinvoice.GET /results/{uuid}— retrieve a result during retention.GET /samplesand/samples/{id}— discover fictitious test documents.GET /rulesets,/capabilities,/health— integration metadata.GET /phase1/requirementsandPOST /phase1/assess— non-persistent capability assessment.
Response and HTTP behaviour
A completed validation returns 200, including an invoice with rule errors. Request errors use 400, 413, 415, 422 or 429 and the stable shape {"error":{"code":"…","message":"…","request_id":"…"}}. Unexpected or unavailable services use 500/503.
Limits, CORS and privacy
Validation is limited to 60 requests per source per hour and 2.0 MiB per document. Public v1 endpoints support cross-origin browser use and OPTIONS preflight. Invoice bodies and values are never persisted or logged; result metadata and findings are retained for 90 days.
Test with a published sample
curl https://e-invoices.verens.com/api/v1/samples
curl https://e-invoices.verens.com/api/v1/samples/json-arithmeticThe OpenAPI 3.1 contract is authoritative for request and response schemas. Also review coverage boundaries.