Compliance records

Export and verify the tamper-evident log of every compliance decision.

Before every call, oyehello checks it against your compliance rules (DND, opt-outs, calling hours, frequency caps, …) and records the decision. Records are hash-chained: each one includes a hash of the one before, so changing or deleting any past record breaks the chain. Consents and grievances are kept in chains of their own.

These endpoints need the compliance:read scope. The records include call-level personal data, so grant it only where needed.

Verify the records

GET /v1/audit/verify  ·  scope compliance:read

Re-checks every chain from start to end:

{
  "data": {
    "verified": true,
    "records": 18234,
    "chains": [
      { "name": "audit", "verified": true, "records": 18234 },
      { "name": "grievances", "verified": true, "records": 3 },
      { "name": "consent", "verified": true, "records": 911 }
    ]
  }
}

verified: false means a record was altered after it was written. Contact support.

Export the decision log

GET /v1/audit/export  ·  scope compliance:read

Param Type Notes
from / to ISO-8601 The date range to export. Omit for everything.
format string csv (default) or pdf.

Returns the file itself (not JSON). Each row carries its integrity hash and the previous record’s hash, so an auditor can re-verify the chain independently. The whole chain is verified first and the result is stated in the file.

  • CSV - starts with a UTF-8 byte-order mark (so Excel opens it with the right encoding). The columns are seq, timestamp, interaction_id, decision, blocked_by, gate_results, outcome, recording_ref, consent_ref, integrity_hash, prev_hash, then three trailing columns: is_test (a test call), channel (voice or chat) and agent_id. The trailing three are not part of the hashed record, so they never affect chain verification.
  • PDF - one row per decision with Agent, Channel and Test columns alongside the sequence, timestamp, interaction, decision and gate / reason.

Blocked-call statistics

GET /v1/audit/stats?from=…&to=…  ·  scope compliance:read

How many calls your rules blocked, broken down by rule, by day and by agent. These are the same numbers as the console’s Analytics → Compliance page.

Next: Wallet →