INVOICE VALIDATION

Peppol and EN16931 invoice validation API.

Catch invoice format and business-rule errors before an invoice reaches your customer's accounting system. Send UBL XML and receive a structured JSON result with rule codes, severity and XML locations.

Start with 100 free validations

What is validated?

A predictable integration

POST https://api.apivect.com/v1/invoices/validate
Authorization: Bearer YOUR_API_KEY
Content-Type: application/xml
Idempotency-Key: invoice-validation-0001

Read valid, findings and stages in the response. HTTP 200 means validation completed; it does not mean the invoice is valid. A completed invalid invoice consumes one unit, while rejected unsafe input or an engine failure does not.

Retry without duplicate usage

Use a distinct idempotency key for each logical invoice submission. Replaying exactly the same request within 24 hours returns the stored result and does not consume another unit. Changed input with the same key is rejected.

Privacy and scope

XML is processed in memory and is not archived in application logs. Sanitized validation results are encrypted for 24-hour retry support. Technical validation is not a legal or tax determination. ApiVect is not a Peppol access point and does not transmit invoices. XRechnung and Factur-X/ZUGFeRD are outside this API's current scope.

Which profile should I select?

Use auto for supported documents with profile identifiers, peppol-bis-billing-3 for Peppol, or en16931-ubl for EN16931 UBL. ubl-2.1-schema checks XML structure only and does not establish business-rule conformance.

Follow the quickstart with a sample invoice, inspect the OpenAPI reference or compare product plans.