Introduction
Efimis is Financial Management Software built for law firms. This developer portal documents every surface — REST, webhooks, GraphQL, embeddable UI, ETL, and the MCP server — for engineers and architects integrating with us.
Platform overview
Section titled “Platform overview”The Efimis platform combines transactional APIs, embeddable UI, bulk data tooling, and an MCP server. You can use any subset independently — most integrations start with the REST API, then add webhooks, then layer on UI components or ETL as the integration matures.
The platform
Section titled “The platform”Efimis splits cleanly along data and surface boundaries. The same matter, client, work item, and invoice records are addressable through every API, and changes flow through the same event bus regardless of how they were initiated.
Six surfaces
Section titled “Six surfaces”Pick the entry point that matches your integration. You can mix and match.
- REST — transactional reads and writes for entities, matters, work items, disbursements, invoices, and journals.
- Webhooks — push notifications for state changes, signed with HMAC-SHA256 and replay-protected.
- GraphQL — analytical queries for financial and management reports, with paging, grouping, and aggregation built in.
- UI Components — React components for billing widgets, ledger views, time entry, and statement viewers.
- ETL — bulk import via a documented SQL schema; stage, validate, then promote.
- MCP — a Model Context Protocol server that exposes platform operations as tools for AI agents.
Alongside these surfaces, connectors ship as open-source reference integrations — apps for Zapier and Power Automate, plus NetDocuments and iManage sync services — built on the REST API and webhooks.
Regions & residency
Section titled “Regions & residency”Efimis is hosted in multiple regions. Your tenant lives in exactly one — choose based on data residency requirements:
| Region | Hostname |
|---|---|
| United Kingdom | api.uk.efimis.com |
| Australia | api.au.efimis.com |
Authentication
Section titled “Authentication”Every API call carries a bearer token. Tokens are issued via the OAuth 2.0 client credentials flow against your tenant’s identity provider endpoint.
curl --fail-with-body -sS -X POST "$EFIMIS_AUTH_URL" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=client_credentials" \
--data-urlencode "client_id=$EFIMIS_CLIENT_ID" \
--data-urlencode "client_secret=$EFIMIS_CLIENT_SECRET" \
--data-urlencode "scope=$EFIMIS_API_SCOPE"Cache tokens and reuse them — do not request a new token on every API call.
EFIMIS_AUTH_URL and EFIMIS_API_SCOPE are provided with your client credentials.
Working in sandbox
Section titled “Working in sandbox”Sandbox tenants are real Efimis tenants with seeded data.
What’s next
Section titled “What’s next”Pick the path that matches your build: