| name | invoice-processing |
| description | Extract, validate, and classify invoices from PDF, Factur-X, and UBL formats. Multi-country support with field mapping and anomaly detection. |
| version | 1.0.0 |
| last-updated | 2026-04-17 |
| model_tested | claude-sonnet-4-6 |
| category | documents |
| platforms | ["claude-code","codex","gemini-cli","cursor","copilot","windsurf","cline"] |
| language | en |
| geo_relevance | ["global","fr","eu"] |
| priority | medium |
| dependencies | {"mcp":[],"skills":["fr-facturation-electronique"],"apis":[],"data":[]} |
| update_sources | [{"url":"https://fnfe-mpe.org/factur-x/","check_frequency":"yearly","last_checked":"2026-04-21"}] |
| license | MIT |
Invoice Processing
When to Use
- Extracting data from PDF invoices
- Validating Factur-X or UBL structured invoices
- Classifying invoices by type, vendor, or account
- Detecting anomalies (duplicates, unusual amounts, missing fields)
- Mapping invoice fields to accounting entries
Extraction Pipeline
1. INPUT: PDF / Factur-X / UBL / image
2. DETECT FORMAT: structured XML embedded? → parse directly
No XML? → OCR + field extraction
3. EXTRACT FIELDS: map to canonical schema
4. VALIDATE: required fields, amounts, VAT consistency
5. CLASSIFY: expense category, accounting account, vendor
6. OUTPUT: structured JSON + confidence scores
Canonical Invoice Schema
{
"invoice_number": "FA-2026-042",
"invoice_date": "2026-04-15",
"due_date": "2026-05-15",
"supplier": {
"name": "Fournisseur SAS",
"tax_id": "FR12345678901",
"address": "12 rue Example, 75001 Paris"
},
"buyer": {
"name": "Client SARL",
"tax_id": "FR98765432109"
},
"lines": [
{
"description": "Prestation conseil",
"quantity": 5,
"unit_price": 200.00,
"vat_rate": 20.0,
"line_total": 1000.00
}
],
"subtotal": 1000.00,
"vat_amount": 200.00,
"total": 1200.00,
"currency": "EUR",
"payment_terms": "30 jours net"
}
Validation Rules
| Rule | Check | Severity |
|---|
| Required fields | invoice_number, date, supplier, total | Critical |
| Math consistency | sum(lines) = subtotal, subtotal + VAT = total | Critical |
| VAT rate validity | Rate matches country standard rates | Warning |
| Duplicate detection | Same number + supplier + amount | Critical |
| Date logic | due_date >= invoice_date | Warning |
| Currency | Valid ISO 4217 code | Warning |
Anomaly Detection
| Anomaly | Signal | Action |
|---|
| Duplicate invoice | Same number + supplier + amount +/- 5% | Block, flag for review |
| Round amount | Total is exact round number (1000, 5000) | Flag (common in fraud) |
| Weekend/holiday date | Invoice dated on non-business day | Flag |
| Unusual amount | > 3 standard deviations from vendor average | Flag for review |
| Missing VAT | Taxable transaction with 0% VAT | Flag, check exemption |
What This Skill Does NOT Do
- Does not perform OCR (uses existing OCR output or structured XML)
- Does not approve or pay invoices (validation and extraction only)
- Does not connect to ERP systems (outputs structured data)
- Does not handle tax compliance (see
fr-comptabilite)