InvoanceInvoance
Log inStart free
Audit Logs
How it worksAudit Logs

How Audit Logs are signed at the source

Audit Logs accept any customer activity event, sign it with your organization's Ed25519 key the instant it lands, and store it in an append-only log your customers can view, stream, export, and verify themselves. From a single API call to proof an auditor will accept.

Back to Audit Logs

What you send

Every event is a strongly-typed JSON envelope: which organization it belongs to, the action that occurred, the actor who triggered it, the targets it touched, and typed metadata. An Idempotency-Key header makes the write safe to retry.

Example Request
POST /v1/audit/events
Idempotency-Key: 7f4c1c9d-5b8a-4d42-9e0b-1f2a3b4c5d6e

{
  "organization_id": "org_01J8F3KQ2R7VWX9YB4ND6MCZAH",
  "action": "user.signed_in",
  "actor": { "type": "user", "id": "user_123", "name": "Jordan Reyes" },
  "targets": [{ "type": "team", "id": "team_42" }],
  "metadata": { "ip": "203.0.113.7" },
  "occurred_at": "2026-06-24T16:44:08Z"
}
organization_id

The audit org, your end customer, the event belongs to. Register each one once via POST /v1/audit/orgs; every event references it.

action

A dot-segmented string like user.signed_in or billing.invoice.paid. The grammar keeps actions consistent and the log cleanly filterable.

actor

Who performed the action, structured by type, a user, a service account, or the system itself, and id. The name is optional, the id is not.

targets

The objects an action touched, each by type and id, so the log filters cleanly by what actually changed.

metadata

Typed scalars, strings, integers, booleans, attached to the event, the actor, or any target. Nesting and floats are rejected by design.

occurred_at

When the action actually happened. Optional, the SDKs default it to now and validate it to a sane window so the timeline stays trustworthy.

Idempotency-Key (header)

Required on every write. A retried request resolves to the same record instead of doubling it. The SDKs generate the key for you.

What happens on ingestion

When Invoance receives an event, a deterministic 5-step flow runs. Bad shapes are rejected before anything is written; valid events are signed and appended.

1
Envelope Validation

The event is checked against a strongly-typed schema, the action grammar, structured actor and targets, scalar-only metadata. Unknown fields, nesting, and floats are rejected at the door, so a bad shape never reaches the log.

2
Idempotency Check

The Idempotency-Key is matched against recent writes. A redelivered or retried request resolves to the existing record instead of creating a duplicate, making ingestion safe for at-least-once pipelines.

3
SHA-256 Hashing

A SHA-256 hash is computed over the canonical bytes of the event. Alter a single character of any field and the hash, and the signature that depends on it, no longer match.

4
Ed25519 Signing & Sequencing

The hash is signed with the Ed25519 key bound to your organization, and the event is assigned a per-org sequence number plus an ingestion timestamp. The signature proves origin; the sequence gives the log a stable total order.

5
Append-Only Write

The complete record (envelope, hash, signature, sequence, timestamps) is written to append-only storage. Records are added, never rewritten, and paginate in stable order.

What you receive

Ingestion returns a compact acknowledgement: the event id and its effective timestamp. Use the id to retrieve, list, or verify the record at any time.

API Response
200 OK
{
  "event_id": "9549c332-a52b-4d1e-8c7a-2f1b9e3d4c5a",
  "occurred_at": "2026-06-24T16:44:08Z"
}
event_id

Unique identifier for the event. Use it to retrieve, verify, or reference the record later.

occurred_at

The effective time of the event, echoed back, either the value you sent or the default the SDK applied.

Read it back any time.List and filter events through the API or the portal, and verify any single event with GET /v1/audit/events/{id}/verify.

The customer portal

Enterprise buyers ask for their audit trail. Instead of building a viewer, mint a single-use private link. It opens a hosted, branded portal scoped to one organization, where your customer searches, verifies, exports, and wires up their own streams. Session length is yours to set.

Search and filter

Filter by actor, action, target, and time window over a fast, keyset-paginated view of the org's log.

Verify any event

One click checks the Ed25519 signature for a record and shows the verdict, right inside the portal.

Export on demand

Your customer pulls their own range to CSV, JSON, or PDF without filing a ticket with your team.

Self-serve streams

Customers add their own webhook destinations, watch delivery health, and send a test, all without your involvement.

Stream and export

Some customers want the log pushed to them in real time. Others want a file for their own warehouse. You get both without building delivery infrastructure.

Webhook streaming

Point a stream at any HTTPS endpoint, including a SIEM or log pipeline. Every delivery is HMAC-signed so the receiver can verify it, destinations are checked against an SSRF guard, and delivery is at-least-once from a durable cursor. Send a test before you go live.

Bulk export

Request a range as CSV or NDJSON and get back a presigned download. The serializer is injection-safe, so a malicious cell value can never turn an export into a spreadsheet formula. One call, one file, ready for an auditor.

How verification works

Verification is deterministic and requires no trust in Invoance. Anyone with the event and your organization's public key can confirm the record is authentic and unchanged.

1
Retrieve the event

Fetch the event via the API or the portal. You get the full signed envelope, the SHA-256 hash, the per-org sequence, and the Ed25519 signature.

2
Reconstruct the signed bytes

The SDK rebuilds the exact canonical bytes that were signed from the event fields, the same input the signer used at ingestion.

3
Verify the Ed25519 signature

Check the signature against your organization's public key. A valid signature proves the event came from you and has not changed since it was signed.

4
Confirm offline

None of this requires a network call to Invoance. The SDK's client.audit.events.verify runs the check locally against the public key.

Verify Response
GET /v1/audit/events/{id}/verify
{
  "valid": true,
  "signed_by": "org_01J8F3KQ2R7VWX9YB4ND6MCZAH",
  "verified_at": "2026-06-24T16:45:01Z"
}
No Invoance account required. Your customer, their auditor, or a regulator verifies against your public key and the signature. No one has to trust Invoance, they check the mathematics.

Technical guarantees

These are structural properties of Audit Logs, enforced by cryptography and database design. They hold for every organization and every event, regardless of plan or volume.

Signed at the source

Every event is Ed25519-signed the instant it lands, with a key bound to your organization. The signature travels with the record, so authenticity is built in, not bolted on.

Tamper evidence

Any change to any field, no matter how small, produces a completely different SHA-256 hash, instantly invalidating the signature.

Append-only

Records are added, never updated in place. The write path inserts; it does not rewrite history.

Ordered by a per-org sequence

Each event receives a per-organization sequence number, giving the log a stable total order you can page through and reconcile.

Idempotent ingestion

A required Idempotency-Key means a retried write never doubles a record, even from at-least-once pipelines.

Independent verification

Any party can verify an event offline with only your public key and the Ed25519 signature. No Invoance server, no network call.

Compliance mapping

Audit Logs' technical controls align with the activity-logging and integrity requirements of major frameworks. Your auditor maps these controls to your specific compliance scope.

SOC 2 (CC6.1, CC7.2, CC7.3)

Logical access and activity logging, security event monitoring, and evaluation of events through a signed, tamper-evident trail.

HIPAA (§164.312(b), §164.312(c)(1))

Audit controls that record and examine activity in systems handling ePHI, plus integrity controls proving records have not been altered.

ISO 27001 (A.8.15, A.8.16)

Logging of user activities and monitoring, with records protected against tampering and verifiable after the fact.

GDPR (Art. 5(1)(f), Art. 30, Art. 33)

Integrity and confidentiality of processing, records of processing activities, and the evidence needed to support breach-notification timelines.

Invoance provides the technical control. Your auditor or compliance officer maps it to your specific audit scope and regulatory context.

Give your customers a verifiable audit log

Start with one event. The same cryptographic guarantees apply whether you are logging a handful of actions or millions, across every customer you serve.

Start for freeView API docsBack to Audit LogsHow it works hub

How Audit Logs Work, Invoance

Technical walkthrough of how Invoance Audit Logs ingest customer activity events into a strongly-typed envelope, hash them with SHA-256, sign them with a per-organization Ed25519 key at ingestion, assign a per-org sequence, and write them to append-only storage. Every event is signed at the source, streamable to a SIEM, exportable for an auditor, and independently verifiable offline against your public key with no Invoance account required.

Invoance

Neutral digital proof infrastructure for business. Tamper-evident, independently verifiable records.

Subscribe to our newsletter

Products
Platform
How It Works
Developers
Verify
Resources
Help & Legal
Products
  • Event Ledger
  • Document Anchoring
  • AI Attestation
  • Audit Logs
Platform
  • Why Invoance
  • For Compliance Teams
  • For Finance Teams
  • Pricing
How It Works
  • Overview
  • Event Ledger
  • Document Anchoring
  • AI Attestation
Developers
  • Overview
  • Endpoints
  • Authentication
  • Concepts
Verify
  • Verify Document
  • Verify AI Attestation
  • Verify Event
  • Verify Trace
Resources
  • All Resources
  • SOC 2 Guide
  • HIPAA Guide
  • ISO 27001 Guide
Help & Legal
  • Support
  • Status
  • Verification Help
  • FAQ

Invoance provides technical verification and proof infrastructure for digital records. Invoance does not issue legal, financial, or regulatory advice.

Records anchored through Invoance are cryptographically signed and tamper-evident by design. Invoance does not verify the accuracy, legality, or authenticity of document contents, only that a record existed in a specific form at a specific time. Verification links are publicly resolvable and do not require authentication. Invoance does not act as a custodian of funds, a legal authority, or a regulated financial entity. Use of Invoance does not constitute legal compliance. Consult qualified counsel for your specific obligations.

© 2025 – 2026 Invoance, Inc. All rights reserved.••