The endpoint runs. It is private, so you cannot call it yet. The validator is deployed and answering, and the acceptance suite was run against the deployed endpoint on 6 September 2026. What is not done is the public listing and the one-off price write, so no prices are attached and nobody is being charged. The try-it box below tells you the same thing rather than faking a result.
Not legal or tax advice. Technical validation against the published rule sets. Transmission to a tax authority or to a certified platform is outside this service, and so is deciding what your business is required to do.
Four operations, priced per document
Valid or not, with the rule id, in one HTTP call.
Validate and generate EN 16931 e-invoices over HTTP: EN 16931 core and XRechnung, in UBL and CII, plus Factur-X and ZUGFeRD PDFs. One error shape whichever profile the document is in, and the version of every rule set used echoed back in the answer.
No monthly fee, no start fee, no seat. You are charged for a document that was parsed, and for nothing else.
Most of the volume
POST /validate
$0.02per document
XML, or a Factur-X or ZUGFeRD PDF
Answer: valid or not, against the published rule set, with the rule id, the severity and the location of every failure.
EN 16931 core and XRechnung, in both the UBL and the CII syntax, plus Factur-X and ZUGFeRD PDFs
One error shape whichever profile the document turns out to be in
The version of every rule set used, echoed in the response
Embedded XML extracted and checked when you send a PDF
POST /generate
$0.05per document
A canonical invoice JSON in, XML out, in the profile you asked for. The output is validated before it is returned, and invalid output is never returned.
Fields map one to one onto the EN 16931 business terms
UBL and CII syntaxes
Refuses to return a document that does not pass, and hands back the errors instead
POST /generate-pdf
$0.08per document
The same input, returned as a PDF a human can read with the machine-readable invoice embedded inside it.
Factur-X and ZUGFeRD, with the XML embedded
A visual rendering for the recipient who still wants to look at an invoice
POST /extract
$0.02per document
The other direction: an XML or a Factur-X PDF in, the canonical JSON out, for the receiving side.
Round trips with generate, so what you put in comes back out
Reads the embedded XML out of a PDF
Per document, metered, no monthly fee and no start fee. These are the intended list prices for the four operations. No prices are attached to the endpoint yet, so nothing is being charged to anyone today. Bulk use through an accounting practice is invoiced by NeuraScale in euro instead of metered here.
The profiles
One error shape, whichever rule set applies.
You do not pick a profile. The validator reads the customizationId out of the document, matches it to a scenario, and names the scenario it used in the answer.
EN 16931 core
The European standard itself, in UBL and CII. The base every national profile is built on.
XRechnung 3.0
The German profile, in UBL and CII, run through the KoSIT validator with the official XRechnung configuration. Its rule set is republished twice a year and the version used is echoed in every answer.
Factur-X and ZUGFeRD
The hybrid: a PDF a person can read with the machine-readable invoice embedded inside it. The French and German name for the same thing.
The answer
A rule id, a severity and a location. Not a score.
A number out of ten tells a developer nothing about what to change. Every failure comes back with the identifier of the rule that produced it, so it can be looked up in the published rule set, and the rule set versions come back with it so an answer can be reproduced later.
A real answer, with the xpath shortened to fit. Those version strings are the ones pinned in the running build: KoSIT validator 1.6.3, the XRechnung 3.0.2 configuration released 2026-08-31, Mustang 2.26.0. Each artifact is checked against its sha256 at build time, so a silently replaced release asset fails the build rather than quietly changing a verdict. One thing worth knowing before you integrate: valid is the validator's own verdict, not one we compute, and a handful of rules are classified as warnings and still make the report reject the document. When that happens you get valid false with an empty errors array and the reason in warnings.
Measured, not projected
Numbers off the deployed endpoint, on one day.
Every row below was measured on 6 September 2026 against the running validator, and where a row is a range that range is the whole spread rather than the best of it. They are one day's numbers on one connection, not a service level, and they are here because a docs page with no numbers on it is asking you to take its word.
Validator time, ordinary invoice
32 to 101 ms
The Schematron pass itself, excluding the network.
XML round trip from Egypt, warm, p95
2.89 s at concurrency 1, ten sequential calls
Median 1.98 s over those ten calls, on a residential connection to the deployed endpoint. Standby is capped at four requests per run here, so this is not a p95 under load and no concurrent load test was run.
PDF round trip
generate-pdf 18.6 to 54.4 s
Because every Mustang action starts a fresh JVM, and generate-pdf runs three of them. Give a PDF call a 90 s timeout, and do not put one behind a form that expects an answer in a second. 54.4 s was the deployed endpoint, 18.6 s and 24.2 s the same build locally. Validating a Factur-X PDF measured 18.9 to 24.1 s on a batch run.
Cold start of the validator
6.7 to 69.7 s over three Standby observations, 2026-09-06
A JVM boot at 2048 MB, paid once by the first caller after an idle period. Two batch runs the same day booted in 15.7 and 23.7 seconds. It is a distribution rather than a number, which is why the range is here instead of the best of it.
Acceptance suite
48 of 48 in the built image (0.1.2)
The Standby suite was last run on 0.1.1 at 42 of 43, the one miss a 504 on gateway scale-up, and has not been re-run against 0.1.2.
Platform cost per document
about $0.002
A six document run on build 0.1.2 cost $0.011379 in platform usage. An earlier nine document run on 0.1.1 cost $0.009405.
Not connected yet
Try it, and see the honest answer.
The box below is wired to the real route, and the route is wired to the real validator. What is missing is one thing: a demo access token, which only the account owner can issue. Until it exists the route says so and the box prints that answer instead of a fake result. The day the token is set, the same box starts returning real validation output and nothing else on this page changes. Capped at 20 documents a day per address.
Out of scope, on purpose
What this deliberately does not do.
Transmission. Sending a document to a tax authority or through a certified national platform is outside this service.
Acting as a certified platform or a network access point.
Peppol BIS Billing 3.0. The rule set in this build is XRechnung and EN 16931 core. Peppol needs a second Schematron set and is planned, not shipped.
The Polish and Spanish national formats.
Digital signatures and long-term archiving.
Tax advice of any kind.
If you are an accountant, not a developer
You probably want the service, not the endpoint.
A practice does not want an API. It wants its clients moved off spreadsheets and templates without changing the tool anyone works in, one client at a time, at a price it can quote. That is a different page and it is open today.
Technical validation against the published rule sets. Not tax or legal advice. Transmission to a tax authority or to a certified platform is outside this service.
France is the case where that matters most, so it is worth saying before you build against this rather than after. Only a registered platform, a plateforme de dematerialisation partenaire, may transmit an invoice in France. NeuraScale is not one and will not become one. You need a platform account of your own, contracted directly with that provider. This endpoint produces and checks the document; getting it to the other side is the platform's job.
FAQ
What a developer asks before writing the integration.
Not yet, and the reason is a listing rather than an engineering one. The validator is deployed and answering: the acceptance suite ran against the deployed endpoint on 6 September 2026. It is private while the public listing and the one-off price write are finished, so there is no credential to hand you. Send a document to omar@neurascale.org in the meantime and it is put through the same validator by hand, with the same rule ids in the answer, within a working day.
Private until the listing is done
Send a document and get the same answer by hand in the meantime.
The validator runs; the public credentials do not exist yet. A document sent to omar@neurascale.org goes through the same validator, comes back with the same rule ids, within a working day, and you get told when the endpoint opens. Not legal or tax advice.