canonical: https://jentic.com/apis/fastbill.com/fastbill

# FastBill API

The FastBill API exposes the German invoicing and accounting platform's services through a single JSON-RPC style endpoint at /api.php. Every action - creating an invoice, fetching a customer, recording an expense - is performed by POSTing a service-name payload with parameters. The pattern is unusual for REST consumers but maps cleanly onto agent intents that route to the right service name.

## For AI agents

Send invoicing, customer, and accounting service calls to FastBill's JSON-RPC endpoint to create invoices, manage customers, and record expenses.

## Scope

Does not handle payment capture, payroll, or full ledger reporting - use for invoice, customer, and expense service calls only.

## Capabilities

- Create and update customer records by POSTing customer.create and customer.update services to /api.php
- Issue and fetch invoices through invoice.create, invoice.get, and invoice.complete service calls
- Record expenses and revenue items by calling expense.create and revenue.create against /api.php
- Pull customer or invoice lists with paginated service calls for accounting and reporting workflows
- Trigger reminder and payment workflows by sending the appropriate service-name payload

## Use cases

### Automated Invoice Issuance for German SaaS

German SaaS businesses use FastBill to issue compliant invoices on every successful subscription charge. The agent POSTs an invoice.create service call to /api.php with customer id and line items, then completes it via invoice.complete to issue the legal document. Replaces manual invoice creation in the FastBill UI.

Example prompt: POST to /api.php with service invoice.create and the customer id plus line items, then POST again with invoice.complete to issue the invoice

### Expense Recording from Receipts

Bookkeepers and AI receipt scanners feed expenses into FastBill by POSTing expense.create payloads to /api.php. The pattern lets a receipt-scanning workflow capture vendor, amount, date, and category in a single call. Useful for small businesses that want a single source of truth for VAT-relevant transactions.

Example prompt: POST to /api.php with service expense.create and a payload containing vendor, amount, VAT rate, and date parsed from a receipt

### Customer Sync from CRM to FastBill

Operations teams sync customers from their CRM to FastBill before billing runs by POSTing customer.create or customer.update service calls. Ensures every billable customer has a FastBill record without manual entry. Pairs well with deal-closed automations that should produce a draft invoice.

Example prompt: On a CRM 'deal won' event, POST customer.create to /api.php with the deal's customer details, then POST invoice.create with the agreed line items

### AI Bookkeeper Agent via Jentic

Conversational bookkeeping agents use Jentic to call FastBill from natural-language prompts like 'invoice 500 EUR to ACME for consulting'. Jentic resolves the intent to the right /api.php service-name payload and supplies basic-auth credentials from its vault. The agent never sees the raw password and integration takes minutes rather than days.

Example prompt: Through Jentic, search 'create an invoice in fastbill', load the /api.php operation, and execute with service invoice.create and parsed user details

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api.php` | Universal JSON-RPC endpoint that routes by service name (e.g. invoice.create, customer.update) |

## Key resources

- **API Service** — Single JSON-RPC style endpoint at /api.php that accepts service-name payloads for customers, invoices, expenses, and revenue

## Why Jentic

- **Setup:** Wiring the FastBill API by hand means encoding email and API key into a basic Authorization header and packing the SERVICE name and filters into a single POST body against /api.php yourself. Through Jentic you install once, import FastBill from the API Directory, store the email and key once, and your agent calls it.
- **Permission scoping:** FastBill routes every request through one /api.php endpoint with the target chosen in the request body, so limit the agent to the operations it needs, such as creating an invoice or reading a customer. You choose which services it may invoke, so a write service is included only when you add it.
- **Credential handling:** Your FastBill email and API key are stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an invoice in FastBill', and Jentic returns the /api.php operation with its service-name payload schema so the agent picks the right service variant without reading the apidocs site.

## Related APIs

- **Xero Accounting** — Full REST accounting API used outside the German market
- **Stripe** — Take payments online and feed records into FastBill for invoicing
- **Sage** — Larger-business accounting alternative when FastBill outgrows the use case

## FAQ

### What authentication does the FastBill API use?

FastBill uses HTTP Basic authentication - your FastBill email and API key are sent in the Authorization header. Through Jentic both halves of the basic-auth credential live in the vault and are injected at execution time, never entering the agent's prompt.

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

Yes. POST to /api.php with a service field set to invoice.create and the invoice payload, then POST again with service invoice.complete to issue the invoice. The same /api.php endpoint handles every service name.

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

FastBill does not publish explicit rate limits in the OpenAPI spec. Treat it as a low-frequency back-office API, batch reads where possible, and back off on 429 responses.

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

Install with pip install jentic, search 'create an invoice in fastbill', load the POST /api.php operation, and execute with service invoice.create plus the customer id and line items. Get started with Jentic One, the self-hosted execution layer.

### Why is the FastBill API a single endpoint?

FastBill uses a JSON-RPC style design where every action POSTs to /api.php with a service-name field that routes to the correct handler. The single endpoint is by design - agents pick the right service via the payload rather than the URL path.

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

Yes. Because you run Jentic One yourself, you decide which FastBill services the agent may send to the single /api.php endpoint, so it can be restricted to just the ones it needs, such as reading a customer with customer.get or creating an invoice with invoice.create. Since every action is chosen in the request body rather than the URL, a write service like invoice.complete or expense.create is only reachable when you explicitly allow it. Your FastBill email and API key stay under your control and are injected at execution time, so the agent never handles the raw credential.
