Validate EU invoices (Peppol/XRechnung/Factur-X/UBL) in your CI/CD pipeline. Powered by eleata Peppol API.
name: validate-invoices
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hernaninverso/validate-xrechnung-action@v1
with:
files: ./invoices/**/*.xml
format: xrechnung-2.x
api-key: ${{ secrets.ELEATA_KEY }}| Input | Required | Default | Description |
|---|---|---|---|
files |
yes | — | Glob pattern of XML files to validate |
format |
no | peppol-bis-3 |
One of: peppol-bis-3, xrechnung-2.x, factur-x, ubl |
api-key |
yes | — | Your evk_live_... API key |
fail-fast |
no | false |
Exit on first invalid file |
report |
no | true |
Generate per-file PR comment |
| Output | Description |
|---|---|
valid-count |
Number of files that passed validation |
error-count |
Number of files that failed validation |
report-urls |
JSON array of public report URLs |
[](https://github.com/marketplace/actions/eleata-validate-xrechnung)Renders as:
The action loops over each XML file matching files and POSTs to the
eleata API. Validation uses
phive under the hood — same Schematron
rules everyone in EU e-invoicing uses.
If any file fails, the action exits non-zero (or continues if
fail-fast: false). Per-file reports are posted to the PR if report: true.
100 validations/month free. No card needed. Get a key at peppol.eleata.io.
MIT