canonical: https://jentic.com/apis/fakturoid.cz/fakturoid

# Fakturoid Cz Fakturoid API

Fakturoid is a Czech online invoicing application whose v3 API exposes invoicing, accounting subjects, expenses, recurring generators, todos, events, and bank accounts across 24 endpoints. The API is account-scoped - most operations are nested under `/accounts/{slug}` - and authenticated with HTTP Basic credentials. It covers the day-to-day invoicing workflow for small businesses operating under Czech accounting rules.

## For AI agents

Manage invoices, subjects, expenses, and recurring billing generators across a Fakturoid account. Useful for Czech-market invoicing automations and accounting integrations.

## Scope

Does not handle payment collection, payroll, or VAT filing - use for invoicing, subjects, expenses, and recurring billing on a Fakturoid account only.

## Capabilities

- Issue and update invoices for an account on Fakturoid
- Search and filter invoices by status, subject, or issue date
- Fire actions on an invoice such as marking it sent or paid
- Manage subject (customer) records used on invoices and expenses
- Track recurring billing through invoice generators
- Read events and bank account records linked to invoices
- Manage todos attached to the workspace

## Use cases

### Issue Invoice to a Czech Customer

A SaaS business invoicing a Czech customer creates the subject record, issues the invoice, and triggers the send action through three calls. The flow uses POST `/accounts/{slug}/subjects.json` to ensure the subject exists, POST `/accounts/{slug}/invoices.json` to create the invoice, and POST `/accounts/{slug}/invoices/{id}/fire.json` to mark it sent. Suited to subscription billing where invoices are issued on a fixed schedule.

Example prompt: POST the subject details to `/accounts/{slug}/subjects.json`, POST the invoice payload referencing that subject id to `/accounts/{slug}/invoices.json`, then POST to `/accounts/{slug}/invoices/{id}/fire.json` with the send event.

### Unpaid Invoice Reconciliation

A finance team queries Fakturoid each morning for unpaid invoices, cross-references bank account transactions, and marks paid invoices through the fire action. The flow uses GET `/accounts/{slug}/invoices/search.json` to filter by status and POST .../fire.json to update state. Designed to run as a scheduled job over a small business's daily reconciliation window.

Example prompt: Call GET `/accounts/{slug}/invoices/search.json` with status=open, match each result against the bank account transactions, and fire the paid action on matching invoices.

### Recurring Invoice Generator

A subscription product creates recurring invoice generators in Fakturoid so that monthly invoices are issued without further calls. The Generators endpoints under the spec maintain the recurring schedule, and each cycle creates a fresh invoice that can be searched and fired through the same v3 surface. Reduces operational overhead for businesses on monthly retainers.

Example prompt: Create a recurring generator under `/accounts/{slug}/generators` (per the Generators tag) with the subject id, line items, and recurrence rule, then poll `/accounts/{slug}/invoices/search.json` for the issued invoices each cycle.

### Expense Logging from Receipts

An accounting integration logs expenses against the Fakturoid account when receipts are processed by a separate document scanner. The Expenses endpoint group covers create, list, and detail operations under `/accounts/{slug}/expenses`, and subjects are reused across invoices and expenses. Suited to bookkeepers running monthly expense imports.

Example prompt: POST each parsed receipt as an expense under `/accounts/{slug}/expenses.json` with the supplier subject id and the line item amounts.

### AI Agent Bookkeeping Assistant

An AI agent assisting a Czech freelancer uses Jentic to look up overdue invoices, read recent events, and issue reminder invoices. Jentic exposes the 24 Fakturoid operations with their schemas and account-slug parameter, so the agent can answer 'who owes me money this week' or 'send invoice to ACME for 5000 CZK' without browsing the developer site.

Example prompt: Call jentic.search with 'find overdue invoices on Fakturoid', load `/accounts/{slug}/invoices/search.json`, and execute it with status=overdue, returning the invoice numbers and totals.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/accounts/{slug}/invoices.json` | List invoices for an account |
| POST | `/accounts/{slug}/invoices.json` | Create an invoice |
| GET | `/accounts/{slug}/invoices/search.json` | Search invoices by status, subject, or date |
| POST | `/accounts/{slug}/invoices/{id}/fire.json` | Trigger an action on an invoice |
| GET | `/accounts/{slug}/subjects.json` | List subjects (customers) |
| POST | `/accounts/{slug}/subjects.json` | Create a subject |

## Key resources

- **Invoices** — Issue, list, search, update, and fire actions on invoices
- **Subjects** — Manage customer records reused across invoices and expenses
- **Expenses** — Log and list expense records on the account
- **Generators** — Manage recurring invoice generators
- **Events** — Read events recorded against accounts and invoices
- **Bank Accounts** — Read bank account records linked to invoices

## Why Jentic

- **Setup:** Wiring the Fakturoid API by hand means building its Basic auth header from your email and API token, threading the account slug through every path, and targeting the app.fakturoid.cz/api/v3 host yourself. Through Jentic you install once, import the Fakturoid API from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Fakturoid puts the account slug in the URL path (`/accounts/{slug}/invoices.json`), so a rule can pin your agent to one account: it can create and search invoices and manage subjects there and nothing else. You choose the operations it may call, so firing an invoice is not included unless you add it.
- **Credential handling:** Your Fakturoid email and API token are stored once, encrypted, by your own Jentic One instance, which builds the Authorization header at execution time. The raw token never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an invoice' or 'search overdue invoices', and Jentic returns the matching Fakturoid operation with its schema and the account-slug parameter so the agent calls the right endpoint without reading the docs.

## Related APIs

- **Faktoora** — German XRechnung and ZUGFeRD e-invoicing rather than Czech invoicing
- **Xero Accounting** — Full accounting platform with invoicing as one of many modules
- **Stripe** — Payment processor that collects against issued invoices

## FAQ

### What authentication does the Fakturoid API use?

Fakturoid v3 uses HTTP Basic auth - the email and an API token are encoded in the Authorization header. Through Jentic both values are held in the vault and Jentic builds the Basic header at execution time so the credentials never enter the agent context.

### Can I create an invoice with the Fakturoid API?

Yes. POST the invoice payload, including the subject id and line items, to `/accounts/{slug}/invoices.json.` Once created you can call `/accounts/{slug}/invoices/{id}/fire.json` to trigger send and pay actions on the invoice.

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

The OpenAPI spec does not declare numeric rate limits. Fakturoid applies fair-use throttling per account - keep batch operations sequential per account slug rather than firing parallel requests.

### How do I search unpaid invoices through Jentic?

Run pip install jentic, call jentic.search with 'find overdue invoices on Fakturoid', and execute the returned `/accounts/{slug}/invoices/search.json` operation with status=overdue. The Basic auth credentials are replayed from the vault.

### Does the Fakturoid API support recurring billing?

Yes. The Generators tag exposes operations to create and manage recurring invoice generators, which produce a new invoice on each cycle that can then be searched and fired through the regular invoice endpoints.

### What is the account slug parameter used in every URL?

Every operation under `/accounts/{slug}` is scoped to a specific Fakturoid account by its slug - the value visible in the app URL after a user logs in. Pass it as a path parameter on every account-scoped call.

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

Yes. Because Jentic One is self-hosted, you set the rules that decide which Fakturoid operations and credentials your agent may use. Since every path is scoped by the account slug (`/accounts/{slug}/invoices.json`), you can pin the agent to a single account and allow only the operations you choose, such as creating and searching invoices and managing subjects. Firing an invoice through `/accounts/{slug}/invoices/{id}/fire.json` stays out of reach unless you explicitly grant it.
