Validation

A preflight check of UBL XML against EN 16931 + Peppol BIS Billing 3.0 and the Slovak Financial Administration overlay, via POST /v1/partner/einvoice/validate. Use it before sending your own XML, to catch errors before you send the document to the network.

This endpoint is part of the partner portal and authenticates via session (a portal login), not the X-API-Key header. That's why you send partnerId in the body. It's meant for pre-validating XML you assemble yourself; invoices issued via POST /v1/agent/invoices generate UBL automatically.
If you integrate via the Agent API (X-API-Key key), use Preflight instead (POST /v1/agent/peppol/preflight): the same validation without a session, plus an SMP lookup of the recipient and normalized BIS 3.0 UBL, still with no DB write and no credit deduction.

Endpoint

MethodPathAuthentication
POST/v1/partner/einvoice/validatePartner session (portal)

Request body

FieldTypeRequiredDescription
partnerIdUUIDYesThe ID of the partner you have access to.
xmlstring (1–4,000,000 characters)YesUBL Invoice / CreditNote XML to validate.
POST /v1/partner/einvoice/validate
Content-Type: application/json

{
  "partnerId": "7b8d…",
  "xml": "<?xml version=\"1.0\"?><Invoice …>…</Invoice>"
}

Response

The validator has 3 layers (EN 16931 / Peppol + SK Financial Administration overlay). If the validation runtime is unavailable, the response indicates it via available: false instead of a 5xx error.

{
  "data": {
    "available": true,
    "valid": false,
    "errorCount": 2,
    "warningCount": 1,
    "issues": [
      {
        "layer": "sk-fs-overlay",
        "severity": "error",
        "code": "SK-BT-35-REQUIRED",
        "message": "Seller address line is mandatory for Slovak e-invoice export.",
        "location": "Invoice/AccountingSupplierParty/Party/PostalAddress/StreetName",
        "businessTerm": "BT-35"
      }
    ]
  }
}
FieldTypeDescription
availablebooleanWhether the validation runtime was available. When false, the other fields are empty / null.
validboolean | nulltrue if there are no errors (errorCount === 0). null if available is false.
errorCountintNumber of errors (severity error): these block sending.
warningCountintNumber of warnings (severity warning): these don't block, but we recommend fixing them.
issuesarray of objectsThe list of findings. See the table below.

The issue object

FieldTypeDescription
layeren16931-peppol | sk-fs-overlayThe layer that generated the finding.
severityerror | warningerror blocks sending, warning doesn't.
codestringA machine-readable code (e.g. SK-BT-35-REQUIRED).
messagestringA human-readable description.
locationstring (optional)An XPath to the problematic location in the document.
businessTermstring (optional)The EN 16931 business term (e.g. BT-35).

When to validate

Run validation whenever you generate UBL XML with your own logic and want to verify completeness before sending. The SK Financial Administration overlay only activates for invoices with a Slovak seller (Country/IdentificationCode = SK); inbound invoices from foreign suppliers are validated only against EN 16931 / Peppol. The most common errors involve a missing seller/buyer address (SK-BT-35/37/38, SK-BT-50/52/53) and a missing schemeID on the registration identifier (SK-BT-30/47), the same rules that block sending. More context in the Invoices section.