API-first

L'API Invonio

Chaque écran d'Invonio — web et mobile — repose sur cette même API. Ce que vous faites à la main, vous pouvez l'automatiser : les jetons API pour vos propres outils sont inclus dans la formule Business.

Démarrage rapide

Créer un jeton, créer une facture

# Business plan: Account → API tokens → "Create token"
# => 1|abcdef...  (shown once)

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" }
    ]
  }'

Les jetons API pour vos propres outils (Compte → Jetons API) font partie de la formule Business ; un jeton dont le compte n'est pas en Business reçoit 403. Créer une facture au-delà des gratuites (POST /invoices, /duplicate) renvoie 402 tant qu'aucun abonnement n'est actif ; un envoi Peppol au-delà du quota mensuel renvoie 429.

Référence

Ressources

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 and the France PDP channel appear once configured).

Détails

Conventions

Create a personal access token under Account → API tokens (Business plan) and send Authorization: Bearer {token} on every request. Tokens can be revoked individually from the same page. If the account leaves the Business plan, its API tokens answer 403 until it is back.
Only the invoice-issuing endpoints (/invoices/*, /channels, /peppol/verify-recipient) require an active subscription — a 402 means the token is valid but the account isn't subscribed yet. Everything else, including /business, /incoming, and /stats, is free. Call POST /billing/checkout (plan: list|business, interval: month|year) to get a Stripe Checkout URL.
Peppol sending is in beta with a monthly quota per account. POST /invoices/{id}/send with channel=peppol beyond it returns 429 (code: peppol_quota_exhausted) and the invoice stays a draft; sending by email is not limited this way.
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.

Vous développez sur Invonio ?

La formule Business ajoute à tout le contenu de Standard l'API REST complète avec jetons d'accès personnels — dès 29 €/mois ou 290 €/an.