One invoice in. The exact failure path out.
Run the file here. Keep the finding, rule and fix in one place while you work.
PINT-AE XML, maximum 256 KB
Built for testing, implementation and troubleshooting. Not another invoicing system.
Validated in memory; not persisted by this application.
Paste 2–50 invoices separated by a line containing ---.
The browser station is a free single-shot XML preflight surface backed by POST /v2/validate. It accepts XML only. New canonical JSON integrations use POST /v1/preflight; existing POST /v1/validate clients remain supported as a legacy JSON/XML compatibility path. Authenticated API calls use an x-api-key header; usage is metered per key and per-minute rate limits apply.
curl -X POST https://api.einvoicecheck.ae/v1/preflight \
-H "x-api-key: $EINVOICE_KEY" \
-H "content-type: application/json" \
--data-binary @invoice.jsonconst res = await fetch("https://api.einvoicecheck.ae/v1/preflight", {
method: "POST",
headers: {
"x-api-key": process.env.EINVOICECHECK_API_KEY,
"content-type": "application/json",
},
body: JSON.stringify(invoice),
});
const { valid, invoiceType, schemaVersion, errors } = await res.json();
if (!valid) {
for (const e of errors) {
console.error(`[${e.severity}] ${e.path} ${e.rule}: ${e.message}`);
}
process.exit(1);
}Preflight only. Supported checks still include format, structure and semantic layers; your accredited provider still handles legal transmission.
Submitted content is validated in memory and is not persisted by the application, database or rate-limit store.