The Invonio API
Every screen in Invonio — web and mobile — is built on this exact API. There is no separate "integration tier": what you can do by hand, you can automate.
Register, authenticate, create an invoice
curl https://invonio.talivio.com/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"name": "Max Mustermann",
"email": "[email protected]",
"password": "a-strong-password",
"password_confirmation": "a-strong-password",
"terms": true,
"device_name": "integration-server"
}'
# => { "token": "1|abcdef...", "user": { "has_subscription": false, ... } }
curl https://invonio.talivio.com/api/v1/invoices \
-H "Authorization: Bearer 1|abcdef..." \
-H "Content-Type: application/json" \
-X POST -d '{
"number": "RE-2026-0001",
"issue_date": "2026-07-09",
"buyer_name": "Kunde GmbH",
"buyer_address_line1": "Musterstraße 1",
"buyer_postal_code": "10115",
"buyer_city": "Berlin",
"buyer_country_code": "DE",
"lines": [
{ "name": "Consulting", "quantity": 5, "unit_price": 150, "vat_rate": 19, "unit_code": "HUR" }
]
}'
A card is always required — Invonio has no free tier. A new account can register and authenticate, but invoice/business/stats endpoints return 402 until a subscription is active (see Billing below).
Resources
Auth
POST /auth/register, POST /auth/login,
POST /auth/logout — Sanctum bearer tokens, one per device/integration.
Billing
GET /billing, POST /billing/checkout,
GET /billing/portal — subscription status and Stripe-hosted URLs.
Business
GET/PUT /business — the seller profile stamped on every invoice you issue.
Invoices
GET/POST /invoices, plus per-invoice
/document, /send,
/duplicate, /credit-note,
/validate. Full CRUD; a sent invoice is locked (immutable, as required
by law) — duplicate or issue a credit note instead.
Incoming invoices
GET /incoming, POST /incoming (upload
PDF/XML), /download — the same parser behind the inbox screen.
Stats & channels
GET /stats (dashboard summary), GET /channels
(available send channels — email is always on; Peppol appears once configured).
Conventions
Authorization: Bearer {token} on every request after registering or logging in.
Tokens are per-device/integration and can be revoked individually from Settings → API tokens in the
web app, or by calling POST /auth/logout.POST /billing/checkout to get a Stripe Checkout URL.GET /invoices/{id}/document?format= accepts zugferd-en16931 (Factur-X PDF,
the default), xrechnung-cii, xrechnung-ubl, or peppol-bis
(all XML).Building on top of Invonio?
The Business tier adds bulk generation, webhooks, and multi-user access — same API, higher limits.