A pack never contains business content: no event payloads, no event type codes and no names of people. It holds times, states, channels, counts and results. People and devices appear only as codes of the pack (P1, D1), never as their ids. See Codes for people and devices.
Who can use it
The same roles as the compliance report:company_admin, country_admin, wede_tech_ops and wede_global_admin, with a user session. A company_admin produces packs for their own organisation. The other roles must say which organisation (tenant_id); a country_admin only for organisations in their network. Other roles and API keys receive 403 forbidden.
Generate a pack
string
required
Start of the window, ISO 8601 with a time zone (for example
2026-10-14T08:00:00Z).string
required
End of the window. It must be after
from, cannot be in the future and the window can be at most 92 days.string
Optional. Limits zone periods, zone state changes and events to this zone. Organisation periods and synchronisations are always included.
string
Required for the wede and country roles. Ignored for an organisation’s own users.
201 with the pack:
payload is the signed document itself, as a string. signature is the DER signature, base64 encoded. Every pack is kept, can never be changed or removed, and its creation is recorded in the audit log as compliance.evidence_generated.
List and download
The PDF is for people. The proof is always the JSON.
Check a pack without wede
Put three files in one folder: the JSON of the pack, its signature and the public key (fromGET /v1/evidence/public-keys, the entry whose key_id is the key_id of the pack, saved as wede-evidence.pem). Then run:
Verified OK. Any change to the JSON, even one character, makes the check fail. Save the JSON exactly as downloaded: opening it in an editor that reformats it breaks the signature.
The SHA-256 printed on the PDF is the hash of the same JSON:
What a pack contains
The document is canonical JSON: keys sorted at every level and no spaces, so the same pack always gives the same bytes.
All times are UTC.
Codes for people and devices
Each person and each device in a pack gets a code in the order it first appears:P1, P2 for people and D1, D2 for devices. The same person or device has the same code everywhere in that pack, including the person who generated it. Codes belong to one pack: P1 in one pack and P1 in another can be different people.
The key that says who or what each code stands for is not in the pack and is never shown to your organisation. wede writes it at the same moment as the pack, so there is never a pack without its key, and keeps it only for the evidence period of your organisation. Only the wede team can read it, and every reading is recorded in the audit log as compliance.evidence_subjects_viewed. At the end of the evidence period the key is anonymised. The signed pack itself never changes, so it can still be checked with openssl afterwards.
Packs in format wede-evidence/1, made before 16 October 2026, stay exactly as they were signed and still contain user and device ids. The PDF reads both formats.
Reconstructed periods
Periods, synchronisation records and ingest channels are recorded live from 15 October 2026. Earlier periods were rebuilt and say so:reconstructed_from: "audit_log": rebuilt from the audit log, with the exact time of each change.reconstructed_from: "current_state": rebuilt from the state stored on 15 October 2026; the start time is approximate.
not_recorded.
