Skip to content

Introduction

3 min read Last updated Jun 16, 2026

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.

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.

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.

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.

Efimis is hosted in multiple regions. Your tenant lives in exactly one — choose based on data residency requirements:

RegionHostname
Australiaapi.au.efimis.com
United Kingdomapi.uk.efimis.com

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.

Sandbox tenants are real Efimis tenants with seeded data.

Pick the path that matches your build: