FlyExpense API Documentation

Build on FlyExpense with our REST API. Download the Panel User Guide in English or Turkish, authenticate with session tokens or API keys, then query and manage expenses, cards, bills, vendors, procurement, and the 39-provider payment facilitator.
Panel User Guide
A detailed operations manual for Company Admins covering every module end-to-end: approval flows, card controls, policies, reports, and more. Download in English or Turkish.
- English PDF: /docs/flyexpense-panel-user-guide.pdf
- English DOCX: /docs/flyexpense-panel-user-guide.docx
- Turkish PDF: /docs/flyexpense-panel-kullanim-kilavuzu.pdf
- Turkish DOCX: /docs/flyexpense-panel-kullanim-kilavuzu.docx
- Covers expenses, cards, bills, procurement, vendors, treasury, and reporting
- Approval workflow configuration: multi-step chains, delegation, bulk actions
- Card controls: category blocks, merchant allow-lists, auto-lock on missing receipts
- Policy engine: BLOCK, REQUIRE_APPROVAL, and WARN enforcement levels
REST API Resources
The FlyExpense REST API provides full CRUD operations across all core resources via a unified JSON REST interface with standard HTTP verbs and machine-readable error responses.
- Expenses: submit, list, approve, reject, bulk-action
- Cards: issue, control, freeze, set limits, merchant allow-lists
- Bills & AP: capture invoices, 3-way match, approval routing, payment
- Vendors: create, risk-score, manage contracts
- Procurement: intake requests, POs, approvals, goods receipt
- Payment Facilitator: route payments across 39 providers via POST /pf/v1/payments/authorize
- OpenAPI 3.0 spec available for code generation in any language
API Quick Start
Create an expense via the REST API. All requests require an API key or session token in the Authorization header.
- POST /api/expenses — create an expense with amount, currency, merchant, category, and receipt_url
- GET /api/expenses — list expenses with optional filters (status, date range, category)
- PATCH /api/expenses/:id — update expense details while in DRAFT or PENDING status
- POST /api/expenses/:id/approve — approve an expense (requires APPROVER role or above)
- POST /api/expenses/bulk — bulk approve, reject, or export multiple expenses
Webhooks & Real-Time Events
Subscribe to FlyExpense events to trigger workflows in your own systems. All payloads are signed with HMAC-SHA256.
- expense.submitted, expense.approved, expense.rejected
- card.transaction, card.frozen, card.limit_exceeded
- bill.received, bill.approved, bill.paid
- approval.requested, approval.completed
- Signed payloads with HMAC-SHA256 for security
- Configurable retry with exponential backoff
Authentication
FlyExpense supports multiple authentication methods to match every integration pattern.
- Session tokens for browser-based integrations: Authorization: Bearer <session-token>
- API keys for server-to-server use: Authorization: Bearer <api-key>
- MCP tokens for AI assistant connectors (Claude Desktop, Cursor): Authorization: Bearer <mcp_token>
- OAuth 2.1 + PKCE for claude.ai web connector (no token required, sign in via browser)
- All API calls respect your organization's RBAC configuration