The Novadesko API
Connect your tools to Novadesko: key figures, invoices, customers, products and unpaid invoices across all your companies, for reading and writing.
Authentication
Generate your credentials from your Novadesko workspace at web.novadesko.com/integrations/api. Two credential types, revocable at any time:
nvk_…— User key: covers every company of your account.nvt_…— Company token: limited to a single company.
https://web.novadesko.com/api/v1
Three authentication formats are accepted:
// 1. Bearer Authorization: Bearer CLE.SECRET // 2. Basic Authorization: Basic base64(CLE:SECRET) // 3. Dedicated headers X-Api-Key: CLE X-Api-Secret: SECRET
The secret is shown only once, at creation. Revocation is immediate from the same page. Legacy Sanctum tokens and nsk_ keys are still accepted.
Example
curl https://web.novadesko.com/api/v1/me \
-H "Authorization: Bearer nvk_xxx.SECRET"
Profile & companies
Identify the caller and list the companies accessible with your credential.
/api/v1/meProfile + accessible companies/api/v1/companiesCompany list (id, name, VAT, contact details)curl https://web.novadesko.com/api/v1/me \
-H "Authorization: Bearer nvk_xxx.SECRET"
{
"user": { "id": 1, "name": "John Doe", "email": "john@doe.com" },
"credential": { "kind": "user_key", "name": "Zapier", "shop_id": null },
"companies": [
{
"id": 1,
"name": "Demo SPRL",
"vat_number": "BE0123456789",
"email": "info@demo.com",
"phone": "+32 2 123 45 67",
"city": "Bruxelles",
"country": "Belgique"
}
]
}
Statistics
Key figures of a company over a period: revenue incl. VAT, credit notes, purchases, gross result, unpaid customer and supplier invoices, counters.
/api/v1/companies/{id}/stats?from=&to=Dates in YYYY-MM-DD format. Default: current year.
curl "https://web.novadesko.com/api/v1/companies/1/stats?from=2026-01-01" \ -H "Authorization: Bearer nvk_xxx.SECRET"
{
"company": { "id": 1, "name": "Demo SPRL" },
"period": { "from": "2026-01-01", "to": "2026-08-17" },
"revenue_ttc": 17077.46,
"credit_notes_ttc": 250.00,
"net_revenue_ttc": 16827.46,
"purchases_ttc": 6420.35,
"gross_result_ttc": 10407.11,
"invoices_count": 34,
"purchases_count": 21,
"estimates_count": 8,
"unpaid_invoices": { "count": 6, "total_ttc": 11769.28, "overdue_count": 6 },
"unpaid_purchases": { "count": 2, "total_ttc": 840.50 },
"customers_count": 57,
"products_count": 112
}
Documents (read)
Search and browse the documents of each company, across all types.
/api/v1/companies/{id}/documentsList / filter/api/v1/companies/{id}/documents/{docId}Detail + lines + customerAvailable filters:
?type=&paid=&from=&to=&q=&page=&per_page=
Document types:
invoice · purchase · estimate · order · credit_note · proforma · receipt
{
"data": [
{
"id": 123,
"number": "FAC-2026-0042",
"type": "invoice",
"date": "2026-06-12",
"due_date": "2026-07-12",
"customer": "ACME SRL",
"amount_ttc": 1200.00,
"is_paid": false
}
],
"meta": { "page": 1, "per_page": 25, "total": 34 }
}
{
"id": 123,
"number": "FAC-2026-0042",
"type": "invoice",
"amount_ttc": 1200.00,
"is_paid": false,
"customer": {
"id": 7,
"name": "ACME SRL",
"vat_number": "BE0987654321"
},
"lines": [
{
"product_name": "Abonnement Pro",
"quantity": 2,
"unit_amount": 495.87,
"tax_rate": 21
}
]
}
Customers & Products
Browse the customer records and product catalog of each company, with search and pagination.
/api/v1/companies/{id}/customers?q=&page=/api/v1/companies/{id}/products?q=&page={
"data": [
{
"id": 7,
"name": "ACME SRL",
"email": "contact@acme.be",
"phone": "+32 2 555 12 34",
"city": "Bruxelles"
}
],
"meta": { "page": 1, "per_page": 25, "total": 57 }
}
{
"data": [
{
"id": 42,
"name": "Abonnement Pro",
"reference": "ABO-PRO",
"sale_price": 49.99,
"tax_included": true,
"stock_quantity": 0
}
],
"meta": { "page": 1, "per_page": 25, "total": 112 }
}
Unpaid invoices
Unpaid invoices of a company, grouped by customer, with overdue flags and total.
/api/v1/companies/{id}/unpaid-invoices{
"count": 6,
"total_ttc": 11769.28,
"invoices": [
{
"id": 118,
"number": "FAC-2026-0031",
"customer": "ACME SRL",
"date": "2026-03-02",
"due_date": "2026-04-01",
"amount_ttc": 3025.00,
"overdue": true
}
]
}
Transactions
Payments and cash movements of a company over a period (500 max).
/api/v1/companies/{id}/transactions?from=&to=&limit={
"period": { "from": "2026-01-01", "to": "2026-08-17" },
"count": 1,
"data": [
{
"id": 88,
"date": "2026-06-12",
"amount": 1200.00,
"type": "payment",
"direction": "in",
"source": "bank"
}
]
}
Documents (write)
Historical company-scoped endpoints: create and update all document types (slugs: invoices, quotes, orders…). Numbering is automatic at creation.
/api/v1/documents/{slug}List documents/api/v1/documents/{slug}Create (auto numbering)/api/v1/documents/{slug}/{id}Document detail/api/v1/documents/{slug}/{id}UpdateExample: Invoices
curl -H "Authorization: Bearer nvk_xxx.SECRET" \
https://web.novadesko.com/api/v1/documents/invoices
[
{
"id": 123,
"number": "FAC-2026-0042",
"date": "2026-06-12",
"client": { "id": 1, "name": "ACME Sarl" },
"total": 1200.00,
"status": "paid"
}
]
{
"client_id": 1,
"date": "2026-06-12",
"lines": [
{ "product_id": 15, "qty": 2, "price": 100 }
]
}
Customers
Manage your customer base: create, read and update.
/api/v1/customers/api/v1/customers/api/v1/customers/{id}/api/v1/customers/{id}curl -H "Authorization: Bearer nvk_xxx.SECRET" \
https://web.novadesko.com/api/v1/customers
{
"name": "Société Demo",
"email": "contact@demo.com",
"phone": "+32 2 123 45 67"
}
{
"id": 2,
"name": "Société Demo",
"email": "contact@demo.com",
"created_at": "2026-06-12T16:10:00Z"
}
Suppliers
Manage your suppliers and their information.
/api/v1/suppliers/api/v1/suppliers/api/v1/suppliers/{id}/api/v1/suppliers/{id}curl -H "Authorization: Bearer nvk_xxx.SECRET" \
https://web.novadesko.com/api/v1/suppliers
{
"company": "Fournisseur SARL",
"vat_number": "FR123456789",
"email": "info@fournisseur.com"
}
{
"id": 5,
"company": "Fournisseur SARL",
"created_at": "2026-06-12T16:22:00Z"
}
Products
Manage your product catalog.
/api/v1/products/api/v1/products/api/v1/products/{id}/api/v1/products/{id}curl -H "Authorization: Bearer nvk_xxx.SECRET" \
https://web.novadesko.com/api/v1/products
{
"name": "Abonnement Pro",
"price": 49.99,
"category_id": 1
}
{
"id": 42,
"name": "Abonnement Pro",
"price": 49.99
}
Document types
List of active document types and their slugs to use in the /documents/{slug} endpoints.
/api/v1/document-typescurl -H "Authorization: Bearer nvk_xxx.SECRET" \
https://web.novadesko.com/api/v1/document-types
[
{ "id": 2, "name": "Factures", "slug": "invoices", "prefix": "FAC" },
{ "id": 6, "name": "Devis", "slug": "quotes", "prefix": "DEV" }
]
Claude connector (MCP)
Read-onlyConnect Claude to your Novadesko data: ask questions in natural language, Claude reads your companies (figures, documents, customers, unpaid invoices).
- 1 Generate a secret URL from your Novadesko workspace at web.novadesko.com/integrations/claude.
- 2 In claude.ai: Settings › Connectors › Add custom connector, then paste the URL.
- 3 Claude can then query your companies in read-only mode, right inside your conversations.
https://web.novadesko.com/api/mcp/claude/{token}MCP protocol (JSON-RPC: initialize, tools/list, tools/call) · 9 tools available, including get_company_overview.
// JSON-RPC (MCP) { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_company_overview", "arguments": { "company_id": 1 } }, "id": 1 }
Ready to integrate Novadesko?
Generate your API key in seconds from your Novadesko workspace and automate your flows: invoicing, customers, statistics and unpaid invoices.