canonical: https://jentic.com/apis/billit.io/billit-io

# Billit API

Jentic publishes the only available OpenAPI specification for Billit API, keeping it validated and agent-ready. The Billit API is the programmatic interface to the Billit invoicing and accounting automation platform, exposing a small set of endpoints for listing invoices, creating new invoices, and retrieving customers and expenses. Authentication is by API key in the Authorization header. The current spec covers four core read and create operations.

## For AI agents

List and create invoices and pull customer and expense records from the Billit invoicing and accounting platform.

## Scope

Does not handle card payment processing, payroll, or general ledger entries - use for creating Billit invoices and reading customer and expense records only.

## Capabilities

- Create new invoices in Billit with customer, line item, and amount data
- List existing invoices to drive dashboards or downstream reconciliation
- Retrieve the customer list to populate dropdowns or sync with external CRMs
- Pull expense records for categorisation, reporting, or accounting tool sync

## Use cases

### Programmatic Invoice Creation

Service businesses and SaaS companies want to issue invoices automatically when a job completes or a billing cycle closes. The Billit API exposes POST /invoices for creation and GET /invoices for retrieval, so a billing job can issue a new invoice and confirm it was recorded in a single round trip. Integration is typically a half day for a basic create-and-confirm flow.

Example prompt: Create an invoice for customer Acme Ltd with one line item of 500 EUR via POST /invoices, then list invoices and confirm the new one is present.

### Customer Sync to a CRM

Operations teams want their CRM and invoicing tool to share the same customer list so sales activity matches billing records. The Billit API provides GET /customers to pull all customers, which a nightly job can compare against a CRM and reconcile differences. Setup is usually one day for a one-way sync.

Example prompt: Pull the full customer list from GET /customers and upsert each record into a HubSpot company list.

### Expense Reporting Pipeline

Finance teams run weekly expense reports that combine multiple sources. The Billit API exposes GET /expenses, allowing a scheduled job to pull recent expenses and feed them into a BI tool or accounting software. Setup is half a day for a single feed, and the small endpoint surface keeps maintenance light.

Example prompt: Pull all expenses from GET /expenses and write each record as a row in a Google Sheet for the weekly finance review.

### AI Agent Invoicing Assistant via Jentic

An AI assistant for self-employed users can create invoices and pull expense or customer records via natural-language requests routed through Jentic. The API key is stored in your Jentic One instance, so the assistant never sees the raw secret, and Jentic returns the right Billit operation when the user asks something like "create an invoice for Acme for 500 euros". Setup through Jentic takes under an hour.

Example prompt: Search Jentic for 'create an invoice in Billit', load the POST /invoices schema, and execute it with a one-line invoice for 500 EUR to a named customer.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/invoices` | Create a new invoice |
| GET | `/invoices` | List all invoices |
| GET | `/customers` | List all customers |
| GET | `/expenses` | List all expenses |

## Key resources

- **Invoices** — List existing invoices and create new ones
- **Customers** — List customers stored in Billit, used as invoice recipients
- **Expenses** — List expenses recorded in Billit for reporting and reconciliation

## Why Jentic

- **Setup:** Wiring the Billit API by hand means attaching your API key to every call and building each invoice, customer, and expense path yourself. Through Jentic you install once, import Billit from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Billit addresses invoices, customers, and expenses as collections rather than pinning an id in the path for these operations, so limit the agent to the operations it needs, such as creating an invoice or reading customers. You choose that set, so reading expenses is not reachable unless you include it.
- **Credential handling:** Your Billit 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.
- **Discovery method:** Agents search Jentic by intent such as 'create an invoice in Billit' or 'read customer records', and Jentic returns the matching Billit operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Billit Belgium** — The Belgian Billit platform with full invoicing, Peppol e-invoicing, and cashbook scope
- **Billingo** — Hungarian invoicing platform with Online Számla reporting
- **Stripe** — Card and bank-payment processor that pairs with Billit for invoice collection
- **Xero Accounting** — International cloud accounting platform with broad invoicing and ledger support

## FAQ

### Why is there no official OpenAPI spec for Billit API?

Billit does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Billit API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Billit API use?

The Billit API uses an API key in the Authorization header. You generate the key from the Billit dashboard. When called via Jentic, the key is held in your Jentic One instance so the raw Authorization value never reaches the agent's context.

### Can I create invoices with the Billit API?

Yes. POST /invoices creates a new invoice from a JSON body. GET /invoices lists existing invoices, which is the recommended way to confirm a freshly created record was persisted.

### What are the rate limits for the Billit API?

The current spec does not declare explicit numeric rate limits. Treat 429 responses as the signal to back off, and call the Jentic SDK, which retries on 429 with exponential back-off so high-volume jobs do not have to handle this by hand.

### How do I create an invoice through Jentic?

Search Jentic for 'create an invoice in Billit', which surfaces POST /invoices. Load the schema, supply customer and line-item data, and execute. The Python flow is: pip install jentic, then await client.search, await client.load, await client.execute.

### Can I list customers and expenses through the Billit API?

Yes. GET /customers returns all customers and GET /expenses returns all expenses. These two endpoints are read-only in the current spec, suitable for sync jobs and reporting pipelines but not for editing customer or expense records.

### Can I limit what my agent is allowed to do with the Billit API?

Yes. Because you run Jentic One yourself, your own rules decide which Billit operations the agent may call, so you can allow just POST /invoices to create invoices and GET /invoices to confirm them while leaving everything else off. Billit treats invoices, customers, and expenses as collections rather than requiring an id in the path, so you scope by operation: if you do not include GET /expenses, reading expenses is not reachable, and the same goes for GET /customers. The Billit API key is held by your own instance and injected at execution time, so the agent can only act within the operations you have granted.
