# FiBuKI — AI-powered tax bookkeeping for Austrian/German small businesses > https://fibuki.com ## What FiBuKI does FiBuKI manages bank transactions, receipts/invoices, and tax categorization. Users import bank CSVs, upload or auto-import receipts (email, browser extension), and FiBuKI matches receipts to transactions using AI scoring. ## Authentication All API requests require a Bearer token (API key starting with `fk_`). - Generate manually: fibuki.com → Settings → Integrations → AI Agents - Generate via CLI: npx @fibukiapp/cli auth Header: `Authorization: Bearer fk_...` ## Endpoints ### REST API (simple tool execution) POST https://fibuki.com/api/mcp Content-Type: application/json Body: { "tool": "", "arguments": { ... } } ### MCP SSE (Model Context Protocol) https://fibuki.com/api/mcp/sse For Claude Desktop, Cursor, and other MCP-compatible clients. ### OpenAPI spec GET https://fibuki.com/api/openapi.json ### CLI auth (device flow) npx @fibukiapp/cli auth ## Tools - list_sources(): List all bank accounts/sources for the user - get_source(sourceId: string): Get details of a specific bank account by ID - create_source(name: string, accountKind?: string, iban?: string, currency?: string): Create a new bank account/source - delete_source(sourceId: string, confirm: boolean): Delete a bank account and all associated imports/transactions (cascade). Requires confirm: true. - list_transactions(sourceId?: string, dateFrom?: string, dateTo?: string, search?: string, isComplete?: boolean, limit?: number): List transactions with optional filters. Returns date, amount (cents), partner, completion status. - get_transaction(transactionId: string): Get full details of a transaction by ID - update_transaction(transactionId: string, description?: string, isComplete?: boolean): Update a transaction's description or completion status - list_transactions_needing_files(minAmount?: number, limit?: number): Find transactions without receipts (no files, no category) - import_transactions(sourceId: string, transactions: array): Import pre-mapped transactions into a source. Transactions must include date, amount, name, and currency. - list_files(hasConnections?: boolean, hasSuggestions?: boolean, limit?: number): List uploaded files (receipts/invoices) with match suggestions - get_file(fileId: string): Get file details including extracted data and suggestions - connect_file_to_transaction(fileId: string, transactionId: string): Connect a file (receipt) to a transaction, marking it complete - disconnect_file_from_transaction(fileId: string, transactionId: string): Disconnect a file from a transaction - auto_connect_file_suggestions(fileId?: string, minConfidence?: number): Auto-connect files to transactions above confidence threshold [requires: aiMatching] - upload_file(url?: string, base64?: string, fileName: string, mimeType: string): Upload a file from a URL or base64 data [requires: fileUpload] - score_file_transaction_match(fileId: string, transactionId: string): Score how well a file matches a transaction (0-100 confidence) [requires: aiMatching] - list_partners(search?: string, limit?: number): List user partners with optional search - get_partner(partnerId: string): Get partner details by ID - create_partner(name: string, aliases?: array, vatId?: string, ibans?: array, website?: string, country?: string): Create a new user partner for transaction matching - assign_partner_to_transaction(transactionId: string, partnerId: string): Assign a partner to a transaction for categorization - remove_partner_from_transaction(transactionId: string): Remove a partner assignment from a transaction - list_no_receipt_categories(): List categories for transactions that don't need receipts - assign_no_receipt_category(transactionId: string, categoryId: string): Assign a no-receipt category to a transaction - remove_no_receipt_category(transactionId: string): Remove a no-receipt category from a transaction - get_automation_status(): Get user's automation mode, AI budget, and plan info ## Key Concepts - **Source**: A bank account or credit card. Transactions belong to a source. - **Transaction**: A bank transaction (date, amount in cents, name, partner). Amounts are in cents; negative = expense. - **File**: An uploaded receipt or invoice. AI extracts vendor, amount, date. Can be connected to transactions. - **Partner**: A vendor/counterparty (e.g., "Amazon", "REWE"). Transactions and files are linked via partners. - **Complete**: A transaction is "complete" when it has a file attached OR a no-receipt category assigned. - **No-receipt category**: Categories for transactions that legally don't need receipts (bank fees, payroll, etc.). - **Suggestion**: AI-generated match between a file and a transaction, scored 0–100 confidence. ## Quick Start # List bank accounts curl -X POST https://fibuki.com/api/mcp \ -H "Authorization: Bearer fk_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"tool": "list_sources"}' # List incomplete transactions curl -X POST https://fibuki.com/api/mcp \ -H "Authorization: Bearer fk_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"tool": "list_transactions", "arguments": {"isComplete": false, "limit": 10}}' # Connect a file to a transaction curl -X POST https://fibuki.com/api/mcp \ -H "Authorization: Bearer fk_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"tool": "connect_file_to_transaction", "arguments": {"fileId": "abc", "transactionId": "xyz"}}'