Introduction
Efimis is Financial Management Software built for law firms. This developer portal documents every surface — REST, GraphQL, webhooks, 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.
Five surfaces
Section titled “Five 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.
- GraphQL — analytical queries for financial and management reports, with paging, grouping, and aggregation built in.
- Webhooks — push notifications for state changes, signed with HMAC-SHA256 and replay-protected.
- 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.
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 |
|---|---|
| Australia | api.au.efimis.com |
| United Kingdom | api.uk.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 "https://id.efimis.com/.../oauth2/v2.0/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=$EFIMIS_CLIENT_ID" \
-d "client_secret=$EFIMIS_CLIENT_SECRET" \
-d "scope=https://id.efimis.com/efimis-api/.default" Cache tokens and reuse them — do not request a new token on every API call.
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: