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

# Bkper REST API

The Bkper REST API keeps double-entry books with their accounts, groups, transactions, and balances. It records transactions between accounts, posts and checks them as a book is reconciled, reads account and group balances, and runs saved queries over a book's entries. Books can be copied, audited, organized into collections, and shared with collaborators, and each book carries its own files, events, and integrations.

## For AI agents

Keep double-entry books in Bkper: set up books and accounts, record and post transactions, read balances, run saved queries, and share books with collaborators across 94 endpoints.

## Scope

Does not process payments, file taxes, or run payroll. Use for double-entry bookkeeping of books, accounts, and transactions only.

## Capabilities

- Set up double-entry books and their chart of accounts and groups
- Record, post, check, and reconcile transactions in a book
- Read account and group balances for a book
- Organize books into collections and share them with collaborators
- Run saved queries and attach files to a book
- Replay a book's events and inspect its event backlog
- Batch create and post transactions and accounts in one request

## Use cases

### Automate bookkeeping through Jentic

Let an agent record and post journal entries into a double-entry book without hand-wiring the OAuth2 flow. The agent records a transaction between two accounts and posts it so it affects the balances. Through Jentic the transaction operation is discovered by intent and called with its input schema, so entries land in the right book.

Example prompt: Record a transaction with POST `/v5/books/{bookId}/transactions`, then post it with PATCH `/v5/books/{bookId}/transactions/post`

### Balance reporting

Pull up-to-date balances for a book to build a report or dashboard. The agent reads account and group balances for a book, so a finance workflow can reconcile figures or surface a trial balance on demand.

Example prompt: Read a book's balances with GET `/v5/books/{bookId}/balances`

### Transaction search

Find specific transactions in a book using its query language. The agent lists transactions filtered by a query, so it can reconcile against a bank feed, flag unposted entries, or answer a question about a book's activity.

Example prompt: List transactions with GET `/v5/books/{bookId}/transactions` filtered by a query

### Multi-user books

Give the right people access to a book without manual sharing. The agent adds a collaborator to a book and can list or remove collaborators, so onboarding a bookkeeper or accountant is scripted rather than clicked through.

Example prompt: Add a collaborator with POST `/v5/books/{bookId}/collaborators`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v5/books` | Create a new book |
| GET | `/v5/books/{bookId}/accounts` | List a book's accounts |
| POST | `/v5/books/{bookId}/transactions` | Record a transaction |
| PATCH | `/v5/books/{bookId}/transactions/post` | Post a transaction |
| GET | `/v5/books/{bookId}/balances` | Get a book's balances |
| GET | `/v5/books/{bookId}/transactions` | List transactions in a book |
| POST | `/v5/books/{bookId}/collaborators` | Add a collaborator to a book |
| GET | `/v5/user` | Get the authenticated user |

## Key resources

- **Books** — Create books, copy them, audit them, and organize them into collections
- **Accounts and Groups** — Create accounts and groups and read their balances
- **Transactions** — Record, post, check, trash, and batch transactions in a book
- **Collaborators** — Add, list, and remove the people who can access a book

## AI readiness

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.

- **Score:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 62 / 100
  - Agent Usability: 86 / 100
  - Security: 25 / 100
  - AI Discoverability: 50 / 100
- **View full report:** https://jentic.com/apis/bkper.com/bkper/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Bkper by hand means setting up a Google OAuth2 flow with the email scope, learning its book, account, and transaction model, and the post-and-check transaction lifecycle. Through Jentic you install once, import Bkper from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Bkper puts the book id in the URL path (`/v5/books/{bookId}/...`), so a rule can pin your agent to one book: it can record and read transactions for that book and nothing else. You choose which operations it may call, so deleting accounts or removing collaborators stays out unless you add them.
- **Credential handling:** Your Bkper credential 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 'record a transaction' or 'get a book's balances', and Jentic returns the matching Bkper operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **Pennylane API** — Pennylane is a French accounting and invoicing platform; Bkper is a lightweight double-entry ledger API for books, accounts, and transactions.
- **QuickFile Accounting API** — QuickFile is UK small-business accounting with invoicing and VAT; Bkper focuses on the raw double-entry ledger model.
- **Splitwise API** — Splitwise tracks shared expenses between people; Bkper records the resulting entries in a formal double-entry book.

## FAQ

### What authentication does the Bkper REST API use?

The Bkper REST API authenticates with a Google OAuth2 access token carrying the email scope, sent as a bearer token, per its OpenAPI spec. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at call time.

### Can I record and post transactions with the Bkper REST API?

Yes. Record a transaction between accounts in a book, then post it so it affects the balances, and check or trash it as the book is reconciled. Batch operations record or post many transactions in one request.

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

Yes. Bkper puts the book id in the URL path, so a rule can allow your agent to record and read transactions for one book while blocking account deletion or collaborator changes unless you add those operations. Every book keeps its own audit under your control.

### What are the rate limits for the Bkper REST API?

The OpenAPI spec does not specify rate limits. Check the Bkper documentation at https://bkper.com/docs for current limits before running large batch jobs.

### Is there a Bkper MCP server?

You don't need an MCP server to give your agent Bkper. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent runs the book, transaction, and balance operations on demand. That also keeps extra tool definitions out of the agent's context.

### How do I record a transaction with the Bkper REST API through Jentic?

Search Jentic for 'record a transaction' and it returns the Bkper transaction operation with its input schema. Your agent records the transaction between two accounts and posts it so it hits the balances. To run it on your own infrastructure, install Jentic One from its GitHub repo.
