Voice Signatures (Verbal Contracts)
Regulated tele-sales, lending, and insurance operations must keep the exact moment a customer verbally agreed to a contract — the spoken “yes, I agree to the terms” — as a discrete, retrievable piece of evidence. A voice signature marks that moment on a call recording: a timed segmentstart_ms/end_ms bound to your external transaction
reference (order id, loan-application id, policy number).
The discrete artifact
A voice signature is a segment marker on an existing recording — not a separate media file and not a free-text note. Each capture stores:- Segment boundaries —
start_ms/end_msoffsets into the parent recording, so the isolated moment can be played back through the recording playback surface. - Transaction reference —
transaction_ref, your external id for the order, loan, or policy the customer agreed to. It is a fast lookup key, not a foreign key to any Orbit entity. - Classification —
agreement_type(tele_sales,lending,insurance,debt_collection,subscription, orother) andoutcome(agreedordeclined), so a compliance report can group evidence per regulated vertical. - Optional context — the verbatim
script_textread to the customer, atranscript_excerptof what the customer said, thelanguageof the agreement, and thejurisdictionit governs.
end_ms must exceed start_ms, and
when the recording’s duration is known the segment must fall inside it
(a one-second tolerance applies because duration is stored at second
granularity). A single recording can hold up to 100 voice signatures —
enough for bundled policies or add-ons captured on one call.
Endpoints
All three endpoints live under your tenant’s/compliance namespace
and require an authenticated session (any role that can read
recordings can read voice signatures).
Capture a voice signature
POST /compliance/voice-signatures
The capture returns
201 with the persisted descriptor. Every capture
is recorded in your audit log as compliance.voice_signature_captured
with the recording id, transaction reference, agreement type, outcome,
and segment boundaries.
Errors. 404 VOICE_SIGNATURE_RECORDING_NOT_FOUND when no recording
matches the id for your tenant. 422 VOICE_SIGNATURE_INVALID_RANGE
when the offsets are incoherent or exceed the recording duration.
422 VOICE_SIGNATURE_LIMIT_REACHED when the recording already holds
the maximum of 100 signatures.
List a recording’s voice signatures
GET /compliance/voice-signatures?recording_id=<id>
Returns every clip captured against the recording, newest first — an
empty array when the recording exists but none were captured. Returns
404 when the recording id does not resolve for your tenant.
Retrieve one voice signature
GET /compliance/voice-signatures/<signature_id>?recording_id=<id>
Returns the clip descriptor plus a segment block carrying the parent
recording id, the ms boundaries, and the computed duration — pass the
recording id and the boundaries to your existing recording playback or
signed-URL surface to play or download exactly the isolated moment.
Returns 404 VOICE_SIGNATURE_NOT_FOUND when neither the recording nor
the clip id matches for your tenant.
Neither retrieval endpoint re-derives media. The voice signature is
a marker; playback continues through the recording playback surface
you already use, so no second copy of the audio is ever minted.
Persistence and lifecycle
Voice signatures persist under thevoice_signatures key of the
recording’s existing metadata — no separate table and no migration.
That placement is deliberate: a clip inherits the parent recording’s
lifecycle for free.
- Retention. Your recording retention window deletes a signature with its recording; there is no second TTL to configure.
- Legal hold. Holding the recording holds its signatures — a hold can never be bypassed by deleting a clip independently.
- GDPR erasure. Erasing a recording erases its signatures in the same operation, so a data-subject deletion request cannot strand verbal-contract evidence.
- Tenant isolation. Clips resolve only against your own
organization id; a recording id from another tenant returns
404.
How this differs from the other consent artifacts
Orbit holds three separate consent-adjacent artifacts. They answer different questions and none substitutes for another:
Recording consent makes the recording lawful; a voice signature makes
the content of the agreement retrievable. Capture both in regulated
flows — the first gates the media, the second proves the contract.
Role gating and audit
Reading and writing voice signatures requires the same authenticated session as the recordings they annotate. Writes are validated server-side against the parent recording — a session that cannot reach the recording cannot attach a signature to it. Every capture writes an audit log entry (compliance.voice_signature_captured) with the actor, the recording
id, the transaction reference, the agreement type, the outcome, and
the segment boundaries, so a reviewer can reconstruct who marked which
moment on which recording.
Tenant-owned posture
The voice-signature surface is a control, not a conclusion. You decide which calls need a verbal-contract artifact, what disclosure your agents read, which external systems supply the transaction reference, and how long evidence is retained. Orbit stores and indexes the marker and enforces tenant isolation, bounds, and audit — the regulatory judgement about whether a given capture satisfies a specific obligation stays with you and your counsel.Related references
- Call Recording Consent — lawful capture of the recordings a voice signature marks.
- Legal Hold — freeze a recording and its signatures against retention.
- DSAR and Erasure — how a deletion request propagates to recordings.
- Evidence Binder — assemble voice signatures into a regulator-facing bundle.