Invoices and credit notes
Check Peppol BIS Billing 3 in UBL, XRechnung in UBL or CII, and ZUGFeRD / Factur-X as a hybrid PDF or its XML. Use the free browser tools or send a request from your application.
Ironfang Finance
E-invoice validation
Check Peppol, XRechnung and ZUGFeRD / Factur-X invoices against EN 16931 and each format's official rules. Find the failure, understand the rule and fix the source document.
Other formats: XRechnung or ZUGFeRD / Factur-X. View plansNo account needed to try it. Anonymous documents and results are not kept.
invoice.xml
UBL Invoice / validation completed
BR-CO-10
Line amounts do not add up
The document-level line total must match the sum of the individual line net amounts.
Read the rule explanationDocument validation
Every format is checked the same way: one result brings the document checks and rule findings together, names the ruleset that checked it, and tells an invalid document apart from a service failure.
Check Peppol BIS Billing 3 in UBL, XRechnung in UBL or CII, and ZUGFeRD / Factur-X as a hybrid PDF or its XML. Use the free browser tools or send a request from your application.
See each layer separately: the XML and its schema, the format's business rules and, for a hybrid PDF, the PDF/A and attachment checks. Distinguish an invalid document from a validation service failure.
Read the rule identifier and finding, then follow a reviewed explanation where available. Fix the source document and validate it again.
Signed-in and API results are saved for 30 days, with the option to delete them sooner. Download the JSON, or turn a retained result into a signed report anyone can verify.
Your first validation
Open the validator for your format and try its sample, or upload your own invoice or credit note: XML, or a hybrid PDF for ZUGFeRD / Factur-X. No account needed.
Follow the verdict through each validation layer. Open the available rule explanations to understand what needs to change.
Update your source document and validate it again. Keep the result, or bring the same check into your application through the API.
Other formats: XRechnung or ZUGFeRD / Factur-X.
New to e-invoicing? Explore the e-invoicing learning hub
Try Ironfang Finance without an account. Create one when you're ready to integrate it. Free includes 250 validations each month; account generation requires a paid plan.
Create free accountRule explanations
Start with the rule, follow its meaning and work back to your document. Explanations come from the same reviewed catalogue as the validator.
BR-01
Invoice and CreditNote documents need a non-empty CustomizationID identifying their specification.
BR-CO-10
The document-level line total must match the sum of the individual line net amounts.
PEPPOL-EN16931-R004
This rule checks the Peppol Billing identifier prefix and rejects a double-colon sequence in the identifier.
Other rules retain their engine finding and identifier. Explanations are shown where reviewed guidance is available. Browse all 142 rule explanations.
Developer workflow
Send an invoice's XML, or a ZUGFeRD / Factur-X PDF, over HTTPS and receive structured results. List saved validations, read their findings and delete results through the same API.
Use the published Python or TypeScript validation SDK, Python CLI or GitHub Action. For durable work, configure signed webhooks and S3-compatible artifact delivery with independent retries. Delivery to your endpoint or bucket does not send an invoice over Peppol.
Integration examples for your account are in the portal.
Required key scope:finance:einvoices:write
curl --request POST \
'https://api.ironfang.com/finance/v1/einvoices/validate' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/json' \
--header 'Idempotency-Key: invoice-2026-001' \
--data-binary '@invoice.xml'Content-Type: application/json
{
"operation_id": "019f29a4-3158-7b81-8f64-f1072146de30",
"status": "completed",
"outcome": "valid",
"ruleset": {
"id": "fwrs_example_invoice_2026a"
},
"findings": [],
"findings_summary": {
"returned": 0, "total": 0,
"cap": 1000, "truncated": false
}
}Send your XML file as the request body. The optional Idempotency-Key lets you retry the same request without a second validation or charge. Invalid documents also return 200, with outcome: invalid and their findings. XRechnung and ZUGFeRD / Factur-X use the V2 route; see the API quickstart.
Required key scope:finance:einvoices:read
curl 'https://api.ironfang.com/finance/v1/einvoices/results' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Accept: application/json'Content-Type: application/json
Cache-Control: no-store
{
"results": [
{
"operation_id": "019f29a4-3158-7b81-8f64-f1072146de30",
"outcome": "valid",
"ruleset_id": "fwrs_example_invoice_2026a",
"created_at": "2026-09-02T09:15:04Z",
"expires_at": "2026-10-02T09:15:04Z",
"available": true
}
],
"retention_days": 30
}Returns up to 20 results, newest first. If next_cursor is returned, pass its value as ?before=NEXT_CURSOR to request the next page.
Illustrative responses. Authenticated results are saved for 30 days. Synchronous validation does not retain uploaded XML.
Pricing
Validate on Free, or subscribe to generate invoices and handle more documents. Fixed monthly prices in GBP, including applicable tax. No automatic overage charges.
£0/ month
250 validations / month
£29/ month
5,000 operations / month
£99/ month
25,000 operations / month
£299/ month
100,000 operations / month
One completed validation counts, including a result that finds invoice errors. One successful generation counts once. Downloads and idempotent retries add no usage. Malformed requests and service failures do not use your allowance; unfinished work reserves it.
Free resets each UTC calendar month. Paid allowances follow your monthly subscription period. Account-based generation requires a paid plan. The anonymous validator and JSON playground remain free with request and rate limits.
Paid plans are available to businesses and sole traders established in the UK or EU. UK businesses do not need a VAT number. EU automatic checkout requires a verified VAT number and matching business details. EU businesses without a VAT number, or with verified details that need review, must be approved before paying.
Enter your business details and request any required review in the billing portal. You choose your subscription explicitly. Manage plan changes and cancellation there too; Ironfang Finance has separate payment details and invoice history.
See our terms and refund policy. Document validation and generation do not send invoices over Peppol or certify legal or tax compliance.
Questions
Less to operate. More to ship.
Try the sample, understand the findings and bring validation into your workflow.
No card required for a Free account. Start with 250 validations per UTC calendar month and upgrade when you need more.