Skip to content
Eternify Labs

API and webhooks

Build on your books.

A REST API with a key per integration, signed webhooks with a full delivery log, custom roles and custom fields, and imports and exports in the formats your team already uses. Writes are idempotent, lists are paginated, and the developer reference is public.

API and webhooks, in motion
  • One key per integrationEach integration gets its own key and its own scope, so you can see what it did and revoke it without touching the others.
  • Events you can trustWebhooks are signed, retried and listed in a delivery log, so a missed event is something you can find and replay.
  • Built to be retriedWrites carry idempotency keys, lists use cursor pagination, and errors name the field and what would be valid.

What you get

One key per integration

Each integration gets its own key and its own scope, so you can see what it did and revoke it without touching the others.

Events you can trust

Webhooks are signed, retried and listed in a delivery log, so a missed event is something you can find and replay.

Built to be retried

Writes carry idempotency keys, lists use cursor pagination, and errors name the field and what would be valid.

How it works

From a key to a running integration.

Pick a step to see it. The panel stays beside you while you read.

Create a key for each integration, scope it to the companies and actions it needs, and call the same operations the screens use. Every call is attributed to its key in the audit log.

  • Keys scoped per integration
  • Calls attributed in the audit log
  • Revoked individually

API keys

KeyScopeLast used
Payroll syncJournal entries, writeToday, 06:00
BI warehouseReports, readToday, 05:30
Shop checkoutInvoices, writeYesterday

Subscribe to events such as an entry posting or a bill being approved. Each delivery is signed so you can verify it, retried when your endpoint is down, and recorded with its response.

  • Signature on every delivery
  • Automatic retries
  • Delivery log with the response code

Delivery log

EventEndpointResponse
entry.posted/hooks/ledger200
bill.approved/hooks/ledger200
payment.released/hooks/ledger503, retried

Define the roles your company runs on and assign them per person and per company. The same roles govern the screens, the API and any agent connected through MCP.

  • Permissions you define
  • Per person and per company
  • One model for people, keys and agents

Custom roles

RoleMay draftMay approve
AP clerkBillsNone
Project leadPurchase ordersUp to 5,000.00
ControllerEverythingAll entities

Add the fields your business runs on, such as a job number or a site, to any record. They are filterable, available through the API and printed on the invoice when you choose.

  • On every record type
  • Filterable and exportable
  • Printed on invoices when you choose

A field from setup to the page

  1. Create the fieldJob number, textInfo
  2. Fill it inJ-2291 on invoice INV-0412Info
  3. PrintedShown on the invoice PDFDone

Bring data in from CSV, QuickBooks Online, Xero or Sage 50 exports, and take everything out in standard formats at any time. Imports arrive as proposals you review before they post.

  • Import from CSV and from QuickBooks Online, Xero and Sage 50 exports
  • Reviewed before they post
  • Full export with no exit fee

Import review

Customers, 212 rowsFrom a CSV file212Ready
Opening balancesFrom a QuickBooks Online export148In review

Send an idempotency key with a write and a retry returns the first result instead of creating a second record. Lists page with a cursor, so a long list stays stable while records arrive. Errors are structured and name the field and what would be valid.

  • Idempotency keys on writes
  • Cursor pagination on every list
  • Structured errors with a remedy

A retried request

  1. First callPOST /v1/bills, key a41fInfo
  2. TimeoutYour client never saw the replyWaiting
  3. Retry, same keyThe original bill comes backDone

API keys

KeyScopeLast used
Payroll syncJournal entries, writeToday, 06:00
BI warehouseReports, readToday, 05:30
Shop checkoutInvoices, writeYesterday

Architecture

The same ledger, for your code.

The API calls the operations the screens call, so the rules, the review queue and the audit log apply to your integrations too.

Keep going with the rest.

  • MCP connector

    Your books in Claude, ChatGPT or any agent that speaks MCP.

    Learn more
  • Integrations

    Banks, payroll, payments, CRM and more.

    Learn more
  • Controls and approvals

    The agent proposes, people approve.

    Learn more

Questions

Questions, answered.

Does Eternify Ledger have a REST API?

Yes. It is a REST API with a key per integration, idempotent writes, cursor pagination and structured errors, and a developer reference describes every operation.

How do accounting webhooks stay reliable?

Each delivery is signed so you can verify it, retried when your endpoint is unavailable, and recorded in a delivery log with the response, so a missed event can be found and replayed.

Can I add custom fields to invoices and bills?

Yes. Add fields such as a job number or a site to any record. They can be filtered, read through the API and printed on the invoice.

Can I move my data out of Eternify Ledger?

Yes. Export the full history in standard formats at any time, with no exit fee.

Build on a working ledger.

We show you the API, a signed webhook and the delivery log on a live company.