Sessions and Package CDRs

If your consent flow is a single page, you can skip this. Captures are grouped automatically and there is nothing to configure.

Grouping exists for the flows that are not a single page. Co-registration sites collect personal details on one screen, offers on the next, and consent on a third. Each screen produces its own CDR, and individually none of them tells the whole story: one shows a phone number with no disclosure, another shows a disclosure with no phone number. Read together they are a complete record of what the person saw and did.

What a session is

A session is one person's visit in one browser tab. The SDK creates a session id on first capture and reuses it for every capture from that tab.

Sessions are stored in sessionStorage, which has two consequences worth knowing:

  • They are tab-scoped, with one useful subtlety. A tab the person opens independently, such as a typed URL, a bookmark, or a second window, is a separate session. A tab your page opens for them, through a target="_blank" link or window.open, inherits a copy of the session, so its captures group with the original.
  • They do not survive the tab closing. There is no cookie and no cross-visit identifier. A session exists to group one visit's captures, not to track a person across visits.

A session also ages out. It rolls over after 30 minutes without a capture, and after 4 hours regardless of activity.

What a Package CDR is

A Package CDR is the set of CDRs from one session, presented as one composite record with a capture timeline and consolidated signer telemetry. Its identifier is packageId, derived from the session id, and it comes back on every capture inside packageData.

A Package CDR is a grouping, not a separate kind of evidence. Each CDR inside it remains an independent record that can be read, shared, and downloaded on its own.

What to store

Store the cdrId from every capture. That is enough to fetch a record, collect it, and share it.

Store packageData if you are building something package-aware, such as presenting a whole flow to a buyer. The API reports packageId on a record only when the package holds more than one record, so its presence is itself the signal that the record is part of a multi-record flow.

Sharing a flow

Moving records into a buyer's own account works one record at a time, because share tokens are per CDR. When a buyer receives several CDRs from one session, those records group into a package on their side automatically.

Separately, you can create a read-only share link for a whole package from the dashboard. That shows a buyer the complete flow in one place without giving them their own copy of each record.

Next