
From Letterbox to Ledger: Building a Paperless Invoice Workflow with ePost, Alfred & Bexio
Step-by-step guide to pushing every supplier invoice from your physical letterbox straight into Bexio—no manual entry.
Time & Cost Impact
Swiss SMEs spend up to 3 hours/week manually entering invoice data; AI parsing removes 85% of that workload.[packagex.io]
Prerequisites
What you'll need:
- 1ePost Business inbox
Active Swiss ePost account with business subscription
- 2Alfred Business plan
Includes API access and invoice parsing features
- 3Bexio account with "Documents" API token
Generate from Bexio Settings → API → Create New Token
Step 1: Set up an ePost forwarding rule
First, we need to ensure all invoices arriving at your physical address are digitized and sent to Alfred:
- Log into your ePost Business account
Navigate to post.ch/business-login
- Go to Settings → Forwarding Rules
Click "Create New Rule"
- Configure the rule:
Name: "Invoice to Alfred"
Condition: Subject contains "Rechnung" OR "Facture" OR "Invoice"
Action: Forward to alfred@your-domain.ch
Active: ✓
💡 Pro Tip:
Add sender email addresses of your regular suppliers to ensure 100% capture rate.
Step 2: Create an Alfred routing recipe
Now we'll configure Alfred to recognize invoices and route them to Bexio:
Alfred Dashboard → Automations → New Recipe
{
"name": "Supplier Invoice to Bexio",
"trigger": {
"type": "document_classified",
"conditions": {
"classification": "invoice",
"confidence": ">= 0.90"
}
},
"actions": [
{
"type": "extract_invoice_data",
"parser": "v2"
},
{
"type": "webhook",
"url": "https://api.bexio.com/2.0/kb_invoice",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR_BEXIO_TOKEN"
},
"body_mapping": {
"vendor_name": "$.extracted.vendor",
"amount": "$.extracted.total_amount",
"currency": "$.extracted.currency",
"due_date": "$.extracted.due_date",
"invoice_number": "$.extracted.invoice_number"
}
}
]
}Condition: sender domain matches @supplier.com ➜ Action: POST to Bexio /invoices endpoint.
Step 3: Extract line-item data (Alfred's Invoice Parser v2)
Alfred's Invoice Parser v2 uses advanced AI to extract detailed information from invoices:
Extracted Fields:
- ✓ Vendor name & address
- ✓ Invoice number & date
- ✓ Line items with descriptions
- ✓ Quantities & unit prices
- ✓ Tax rates & amounts
- ✓ Total amount & currency
- ✓ Payment terms & due date
- ✓ Bank account details
Parser Features:
- ✓ Multi-language support (DE/FR/IT/EN)
- ✓ Table detection & extraction
- ✓ QR-bill recognition
- ✓ Handwritten notes detection
- ✓ Currency conversion
- ✓ Duplicate detection
- ✓ Confidence scoring
Example extraction output:
{
"vendor": {
"name": "Swisscom AG",
"address": "Alte Tiefenaustrasse 6, 3048 Worblaufen",
"vat_number": "CHE-101.654.423 MWST"
},
"invoice": {
"number": "2025-001234",
"date": "2025-01-05",
"due_date": "2025-02-05"
},
"line_items": [
{
"description": "Business Internet L",
"quantity": 1,
"unit_price": 89.00,
"tax_rate": 8.1,
"total": 96.21
},
{
"description": "Mobile Business Plans (5x)",
"quantity": 5,
"unit_price": 45.00,
"tax_rate": 8.1,
"total": 243.23
}
],
"totals": {
"subtotal": 314.00,
"tax": 25.44,
"total": 339.44,
"currency": "CHF"
}
}Step 4: Auto-match to cost centres in Bexio
Alfred can intelligently map extracted data to your Bexio cost centres:
Mapping Rules Configuration:
| If invoice contains | Map to Bexio account |
|---|---|
| "Internet" or "Hosting" | 6000 - IT & Telecommunications |
| "Mobile" or "Phone" | 6001 - Mobile Communications |
| "Office" or "Büro" | 6100 - Office Supplies |
| Default (no match) | 6900 - Other Operating Expenses |
Advanced matching with AI:
// Alfred learns from your corrections
if (confidence < 0.85) {
// Flag for review
invoice.needs_review = true;
invoice.suggested_account = ml_model.predict(invoice);
// Learn from user feedback
on_user_correction((correction) => {
ml_model.update(invoice, correction);
});
}Step 5: Reconcile & archive
The final step ensures compliance and easy retrieval:
Automatic tagging:
- • UID: Unique document identifier
- • FADP hash: Compliance checksum
- • Processing date: Timestamp
- • Bexio ID: Cross-reference
- • Confidence score: AI accuracy
Archive features:
- • 10-year retention policy
- • Encrypted cloud storage
- • Full-text search
- • Audit trail
- • GDPR-compliant deletion
Complete Workflow Example
Invoice Journey: 8 Steps, 0 Manual Work
ROI Calculator
For a typical Swiss SME processing 50 invoices/month:
| Metric | Before | After | Savings |
|---|---|---|---|
| Time per invoice | 6 minutes | 0.5 minutes | -91% |
| Monthly hours | 5 hours | 25 minutes | 4.5 hours |
| Error rate | 3-5% | <0.5% | -85% |
| Annual cost | CHF 3,600 | CHF 540 | CHF 3,060 |
Troubleshooting Common Issues
Invoice not appearing in Bexio?
Check:
- API token has "kb_invoice" write permission
- Confidence threshold isn't too high (try 0.80)
- Webhook URL matches your Bexio instance
Wrong cost centre mapping?
Solution:
- Review mapping rules in Alfred dashboard
- Add vendor-specific rules for regular suppliers
- Use the "train" button to improve AI matching
Missing line items?
Ensure:
- Invoice scan quality is 300 DPI or higher
- Tables are clearly visible (not cut off)
- Enable "Enhanced OCR" in Alfred settings
Ready to Automate Your Invoices?
Join hundreds of Swiss SMEs saving hours every week