Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Lumabill API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Flumabill.ch%2Flumabill" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Flumabill.ch%2Flumabill" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Lumabill API.
Issue invoices with line items, per-line vat_rate, and CHF, EUR, USD, or GBP currency via POST /invoices, then fetch a public share link
Record a payment against an invoice through POST /payments and undo it with POST /invoices/{id}/unpay
Create a credit note (Gutschrift) for an issued invoice and settle it against open invoices (Verrechnung)
Post balanced journal entries with account_number, debit, and credit lines, and reverse a manual entry with a Storno
GET STARTED
Import a bank statement file and reconcile each transaction as MATCHED, CATEGORIZED, or IGNORED against invoices or expenses
Schedule monthly, quarterly, or yearly recurring invoices from an invoice template
Generate accounting reports for a fiscal year or date range via GET /reports/{type}
Patterns agents use Lumabill API for, with concrete tasks.
★ Bookkeeping assistant through Jentic
An agent handles a freelancer's invoicing from a chat request. It searches Jentic for 'create a Lumabill invoice', receives POST /invoices with its lines, currency, and vat_rate fields, looks up the client with GET /clients, and creates the invoice with status sent. When the money arrives it records the payment with POST /payments against the invoice_id and a paidDate.
Call GET /clients with q 'Muster AG', then POST /invoices with that client_id, currency CHF, status sent, and one line of description 'Consulting March', quantity 10, price 150, vat_rate 8.1
Bank reconciliation
Close the month by matching bank movements to the books. POST /bank-imports uploads a statement file for a bank_account_id, GET /bank-imports/{id}/transactions lists what came in, and PUT /bank-transactions/{id} marks each transaction MATCHED to an invoice or expense, CATEGORIZED to an account, or IGNORED.
Call GET /bank-imports/{id}/transactions with status UNMATCHED, find the transaction matching an open invoice amount, and call PUT /bank-transactions/{id} with status MATCHED and matchedInvoiceId
Credit notes and settlements
Correct an issued invoice the Swiss way. POST /invoices/{id}/credit-note creates a Gutschrift for an issued invoice, and POST /invoices/{id}/credit-allocations settles the credit note against one or more open invoices (Verrechnung) by invoiceId and amount, with DELETE /credit-allocations/{id} to undo a settlement.
Call POST /invoices/{id}/credit-note for the disputed invoice, then POST /invoices/{id}/credit-allocations on the new credit note with allocations naming the open invoiceId and amount
Expense capture and reporting
Log costs as they happen and report on them later. POST /expenses records an expense with description, amount, currency, date, and an optional receipt_url, POST /expenses/{id}/pay records the payment from a paymentAccountId, and GET /reports/{type} generates a report for a fiscal_year_id or date range.
Call POST /expenses with description 'Office supplies', amount 120, currency CHF, and today's date, then GET /reports to list report types and generate one for the current fiscal year
73 endpoints — the lumabill api gives pro and lifetime subscribers programmatic access to swiss invoicing and bookkeeping: it issues invoices, offers, credit notes, and recurring invoices, records payments, and posts journal entries against a chart of accounts.
METHOD
PATH
DESCRIPTION
/invoices
Create an invoice
/invoices
List invoices by status or client
/payments
Record a payment against an invoice
/expenses
Create an expense
/journal-entries
Create a journal entry
/bank-imports
Import bank transactions
/bank-transactions/{id}
Reconcile a bank transaction
/reports/{type}
Generate a report
/invoices
Create an invoice
/invoices
List invoices by status or client
/payments
Record a payment against an invoice
/expenses
Create an expense
/journal-entries
Create a journal entry
/bank-imports
Import bank transactions
/bank-transactions/{id}
Reconcile a bank transaction
/reports/{type}
Generate a report
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Lumabill by hand means handling its lmb_ bearer key, sending X-Profile-Id when a key reaches several companies, paging with page and per_page, and backing off on 429 with Retry-After under separate read and write limits. Through Jentic you install once, import Lumabill from the API Directory, store the key once, and your agent calls it.
Permission scoping
Rules filter by method and path. The company profile travels in the X-Profile-Id header rather than the path, so bound the agent by operations: for example reads of invoices, expenses, and reports. Destructive ones like invoice deletion, bank import deletion, or journal entry withdrawal are not included unless you add them.
Credential isolation
Your Lumabill API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create a Lumabill invoice' or 'reconcile a bank transaction', and Jentic returns the matching Lumabill operation with its input schema, including enums like the reconciliation status, so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Lumabill API through Jentic.
What authentication does the Lumabill API use?
Per its OpenAPI spec, the Lumabill API uses an HTTP bearer API key in the Authorization header, in the form Bearer lmb_..., created in the Lumabill dashboard under Settings, API Keys. Access is for Pro and Lifetime subscribers. If a key reaches several company profiles, add the X-Profile-Id header with the target profile's UUID. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at execution time.
Can I reconcile bank transactions with the Lumabill API?
Yes. Upload a statement with POST /bank-imports and a bank_account_id, list its transactions with GET /bank-imports/{id}/transactions, and set each one with PUT /bank-transactions/{id} to a status such as MATCHED with a matchedInvoiceId or matchedExpenseId, CATEGORIZED with a bookToAccountId, or IGNORED.
What are the rate limits for the Lumabill API?
The OpenAPI spec states reads (GET) are limited to 60 requests / minute per API key and writes (POST, PUT, DELETE) to 20 requests / minute per API key. Over the limit the API returns 429 Too Many Requests with a Retry-After header in seconds.
How do I create an invoice in Lumabill through Jentic?
Install Jentic One, add the Lumabill API from the Jentic directory, and store your lmb_ key. Your agent searches for 'create a Lumabill invoice', receives POST /invoices with its input schema, and sends client_id, currency, and lines with description, quantity, price, and vat_rate. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Does the Lumabill API have a sandbox?
Yes. The spec lists a Development / Sandbox server on the api.dev.lumabill.ch host next to the production api.lumabill.ch host, so you can test invoice and journal flows before pointing an agent at live books.
Is there a Lumabill MCP server?
You don't need an MCP server to give your agent Lumabill. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it, finding operations by intent rather than loading a long tool list into its context.
Can I limit what my agent is allowed to do with the Lumabill API?
Yes. For a reporting agent, allow only GET /invoices, GET /expenses, and GET /reports/{type}, so it can read figures and produce reports but cannot create invoices, post journal entries, or delete bank imports. The agent's calls are logged for review.
For Agents
Create and send Swiss invoices, record payments, log expenses, post journal entries, reconcile imported bank transactions, and generate accounting reports in Lumabill. Authenticates with an lmb_ bearer API key.
Use for: I need to send an invoice in CHF to a Swiss client, Record that invoice 2026-041 was paid yesterday, List all unpaid invoices for this client, Log a CHF 120 expense for office supplies
Not supported: Does not process card payments, run payroll, or file VAT returns with the tax authority. Use for Swiss invoicing, expenses, bookkeeping, and bank reconciliation in Lumabill only.
The Lumabill API gives Pro and Lifetime subscribers programmatic access to Swiss invoicing and bookkeeping: it issues invoices, offers, credit notes, and recurring invoices, records payments, and posts journal entries against a chart of accounts. It also tracks clients, vendors, expenses, and reusable product items, imports bank statements and reconciles each transaction against invoices or expenses, and generates accounting reports for a fiscal year. Invoices support CHF, EUR, USD, and GBP with per-line VAT rates, and an account with several companies can target one profile per request with the X-Profile-Id header.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>