ESX File Validator
Check a Xactimate .esx file, or pasted estimate XML, before you import it. Get a pass/fail verdict with every issue listed: whether the container opens, whether the document inside it parses, and whether its internal references resolve. A file that reads cleanly here is an import-ready starting point; your own licensed copy of Xactimate is still the only final proof of an import.
Free, no signup, and browser-local: the file you check never leaves your machine.
The checks are format-agnostic: the container opens, the document parses, and its internal references resolve. Everything runs in your browser, nothing is uploaded.
Your pasted XML is saved in this browser only, so you can pick up where you left off. An uploaded file is never saved. Nothing is sent to ESXPress. Clear it when you finish on a shared computer.
What the validator checks
A file that opens and a file that gets rejected can look identical until one of them is loaded. The validator reads the properties that decide whether a file reads at all, so a broken file shows up here instead of in the middle of a claim. Here is what it reads:
- The file itself: an .esx has to open before anything else can be read.
- The estimate document inside it, so the reader finds something to read.
- The document parses as well-formed XML, with no broken markup.
- Internal references resolve, so every link inside the file points at something the file defines.
- Ids are unambiguous, so a reference cannot point at two different things at once.
Why some files come back rejected
The most common blocking defect on import is a SEL code carrying a character that Xactimate project files do not allow. Codes are built from A through Z, a through z, 0 through 9, and the four separators #, +, ., and /. When catalog data gets corrupted, an entity character can leak in, and a code like APP|CKIT> or RFG|ARMV>> comes back as "Invalid file format" on import with no clue which line is at fault. That defect lives in the file the producing tool wrote, and the tool that wrote the file is the one that can find it line by line.
A file is rejected before it is read
A file that imports cleanly carries no fixed pricing block of its own. Xactimate prices the file from its own list when it opens, so a totals block written by the producing tool is not something the platform trusts, and certain shapes it does not expect are rejected for the same reason. A converter that writes those blocks hands you a file that fails on import for a reason that has nothing to do with the estimate. Check the file you were handed before it costs you a review cycle; always confirm the money in your own licensed copy before you submit.
Browser-local by design
Validation runs in your browser. The file is not uploaded to ESXPress, and there is no signup and no conversion quota attached to the tool. That is deliberate: the validator is for checking a file you already have, and a file you already have should not have to leave your machine to get a verdict.
Validate first, then reprice
Structural checking and repricing answer different questions. Check the file when you want to know whether it opens and reads cleanly. Read the pricing explainer when the file imports cleanly but the totals move, because that is Xactimate pricing the lines against the list loaded on your machine rather than a defect in the file.
Where to go next
- What an ESX file is, the format the validator is checking
- How to import an ESX file into Xactimate, including the failures that stop an import
- Inside the ESX file format, what each check is protecting
- Where your scope data goes, on the difference between a browser-local check and a full conversion
- Xactimate code lookup, to confirm a code against the reference
Frequently Asked Questions
What does the ESX validator check?
Why does Xactimate reject some ESX files as 'Invalid file format'?
Does the validator check totals in the file?
Should I run the validator or the reprice check?
Can the validator open my .esx file?
Is the ESX validator free?
What is an ESX file?
Want a full PDF scope converted, not just checked?
Drop the whole carrier PDF in ESXPress and get an import-ready .esx in about two minutes, with every line item checked against the SEL dictionary and 1,000+ line items per scope. Always verify the output in your own environment before submission.