Pricing API docs
Log in Get started
API-first

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.

Quickstart

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).

Reference

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).

Details

Conventions

Send 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.
Invonio has no free tier. Every endpoint except auth, account, and billing requires an active subscription — a 402 means the token is valid but the account isn't subscribed yet. Call 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).
Auth endpoints are throttled to 10 requests/minute per IP. Other endpoints are not separately throttled beyond normal abuse protection.
/openapi.yaml — a complete OpenAPI 3.0 document you can import into Postman, Insomnia, or any code generator.

Building on top of Invonio?

The Business tier adds bulk generation, webhooks, and multi-user access — same API, higher limits.