Back to Homepage
DPDP Act 2023 · Rules 2025 · Cryptographically Provable

The Vishwaas AI
Data Trust Model

A visual walkthrough of the entities behind every DPDP-defensible consent record — Data Principals, DP Profiles, Attributes, Processing Systems, Source & Downstream Bindings, Processing Activities, Notices, and the cryptographic Chain of Consent that ties them together.

The Cast Data Principal DP Profiles Attributes Processing Systems Source & Downstream Data Processors Processing Activities Notices Six-Step Consent Hash Chain Fiduciary Profile Full System Map Customer View
Vishwaas AI Consent Ledger
Data Principal
DP Profile
DP Attribute
Activity
Notice
Source Binding
Downstream Binding
Processing System
Consent Record
Data Processor
Campaign
DPR Request
Data Fiduciary
Hash Chain
§ 1 · The Cast of Characters
Domain Model

Twelve entities. One obligation.

Every DPDP control — notice issuance, consent collection, rights fulfilment, breach notification — resolves to a relationship between these twelve entities. Read the rest of this document as the story of how they connect.

Data Principal

The human whose personal data the Data Fiduciary processes. DPDP §2(j). The hub at the centre of every relationship in the model.

DPDP §2(j)

DP Profile

The kind of Data Principal the fiduciary deals with — Customer, Employee, Patient, Loan Applicant. Defines which attributes apply and which notices reach which audience.

Tenant-scoped

DP Attribute

A single field of personal data — email, phone, Aadhaar, salary, blood group. Bound to one or more DP Profiles with sensitivity, retention, and encryption metadata.

Field-level encrypted

Processing System

A third-party system that holds or processes DP data — CRM, HRIS, e-commerce platform, analytics warehouse. The carrier for inbound & outbound bindings.

0..N bindings per system

Source & Downstream Bindings

Connectors on a Processing System. Source Bindings fetch DP data IN; Downstream Bindings propagate consent decisions, attribute changes, and erasures OUT.

Tenant-scoped · auditable

Data Processor

The legal entity that operates a Processing System on the Fiduciary's behalf under a DPA. DPDP §2(k). Carries cross-border, DPA expiry, and sub-processor disclosure.

DPDP §2(k)

Processing Activity

The reason a fiduciary touches personal data — "Marketing emails", "Salary disbursement", "Order delivery". Carries lawful basis (§6 consent / §7 legitimate use), attributes, and retention.

RoPA-equivalent · §8(4)

Notice

The multilingual privacy notice the DP sees before granting consent. Profile-scoped, hash-anchored per language, gated by Rule 3 readiness at publish.

DPDP Rules 2025 · Rule 3

Consent Record

Append-only, SHA-256-chained, RSA-signed proof of a grant / withdrawal / modification. Anchored to the exact notice version & language the DP saw.

Append-only · 7-year retention

Campaign

Bulk consent collection — targets a DP Profile audience, attaches an active Notice, dispatches deep-link magic tokens, and tracks delivery.

10-min token TTL

Data Fiduciary Profile

The tenant's single-row DPDP §5(1) identity — legal entity, registered address, DPO, grievance officer, SDF/DPBI status. The voice of the fiduciary in every notice.

DPDP §5(1) · One row / tenant

Hash Chain

The cryptographic backbone — every consent record's hash feeds the next chain hash. One mutation anywhere breaks the chain everywhere downstream.

SHA-256 · RSA-SHA256
§ 2 · The Data Principal
DPDP §2(j) — "The natural person to whom the personal data relates"
Rahul Verma
CUST-001 · rahul.verma@example.test · +91 9876543210
Customer Employee Loan applicant
3 DP Profiles · 12 attributes · 8 active consents · 0 pending DPR

One person. Many lives.

A Data Principal is a real human, but a single fiduciary may know them in more than one capacity — Rahul the Customer, Rahul the Employee, Rahul the Loan Applicant. Each capacity reveals different attributes, triggers different processing activities, and carries different consent obligations.

Vishwaas AI resolves these capacities into a single canonical data_principal record — so the same person can be erased once, contacted in their preferred language once, and audited from one place — while still expressing membership in multiple DP Profiles.

  • Identity resolution — deterministic (exact email/phone) + probabilistic (Jaro-Winkler name + DOB + city ≥ 85%) match across all Source Bindings.
  • Append-only merge audit — every link, every confidence score, every reviewer decision is preserved.
  • Field-level encryption — email, phone, name, Aadhaar stored as _encrypted BYTEA + _hash VARCHAR(64) for indexed lookup without exposing plaintext.
  • Minor & nominee links — guardian and nominee Data Principals are themselves modelled as DPs, with verifiable consent (DPDP §9) and posthumous rights (§14).
§ 3 · DP Profiles
Profile = audience class

One person, many profile memberships.

A DP Profile is how the fiduciary organises its world. Every Processing Activity is scoped to one profile. Every Notice serves one profile. Every attribute is bound to the profiles where it actually applies.

DP → DP Profile membership · 1:N · live in dp_profile_memberships
Rahul Verma data_principal CUST-001 Customer e-commerce buyer 9 attributes · 6 activities Employee contracted workforce 14 attributes · 8 activities Loan Applicant credit lifecycle 22 attributes · 4 activities dp_profile_memberships (DP × Profile)
Customer
Most fiduciaries' largest profile

Marketing emails · order tracking · loyalty program · cookie analytics · pull from CRM

Section 6 — Consent
Employee
Internal HR scope

Salary disbursement · provident fund filing · attendance · health insurance

Section 7 — Employment
Loan Applicant
Regulated sub-population

CIBIL fetch · KYC verification · Aadhaar masking · disbursement

Mixed: §6 + §7 legal obligation
Architecture rule: every Processing Activity carries dp_profile_id NOT NULL. Every Privacy Notice carries dp_profile_id NOT NULL. A notice can only include activities from its own profile — enforced by the notice_version_activity_profile_match_check Postgres trigger which raises cross_profile_activity_in_notice. Cross-wiring is a database error, not a runtime check.
§ 4 · DP Attributes

Attributes are the unit of data minimisation.

An Attribute is a single field — email, phone, aadhaar_number, blood_group, cibil_score. The fiduciary's attribute catalog is the master list of every kind of fact it might ever hold about a person.

Each attribute is bound to a DP Profile at the catalog level (a profile-attribute binding) and again to a Processing Activity (a processing-activity attribute) — at which point a ≥ 30-character necessity rationale must be written. That rationale is the data-minimisation defence under DPDP §6(1).

  • Sensitivity tier — Normal / Sensitive / Aadhaar-class. Drives encryption-at-rest behaviour and field-level KMS choice.
  • Required vs optional at the activity level — required attributes block consent; optional attributes can be opted in or out per binding.
  • Multilingual DP-facing explanation — what the DP sees when hovering "Why do you need my Aadhaar?" The fiduciary writes this once, in any of the 22 DPDP Eighth-Schedule locales.
  • Reveal modealways, on_demand, or hidden — controls when the attribute label appears in the portal.
Customer profile · attributes bound to "Marketing Emails" activity
Email address email@domain · personal identifier
REQUIRED
Full name display + salutation
REQUIRED
Mobile number fallback channel · SMS OTP
OPTIONAL
Language preference defaults to en
OPTIONAL
City local-events targeting
OPTIONAL

Each binding above carries a ≥ 30-char necessity rationale (e.g. "Required to deliver the marketing newsletter to the unique email address the principal registered.") — audit-loggable, surfaced in the activity register, and demanded by the publish-gate Rule 3 check.

§ 5 · Processing Systems
The third-party world

Where the data actually lives.

A Processing System is any third-party application that holds or operates on DP data — a CRM, an HRIS, an e-commerce platform, an analytics warehouse, FarmRise. Vishwaas AI doesn't replace these systems; it puts a consent-aware membrane around them.

A single Processing System can carry both inbound (Source) and outbound (Downstream) bindings
Salesforce CRM Processing System 5,420 DPs · India region Operated by: Salesforce Inc. (Data Processor) Vishwaas AI Consent Ledger canonical data_principal consent_records · hash chain single source of truth SendGrid Processing System email gateway Operated by: Twilio Inc. (Data Processor) SOURCE BINDING REST poll · CSV upload · webhook receive DOWNSTREAM BINDING HMAC webhook · pull connector · SDK A system can carry 0..N Source bindings …and 0..N Downstream bindings

Source Binding

A connector that pulls DP data into Vishwaas AI from the Processing System. Required to make any DP show up in the consent ledger.

  • REST poll — scheduled GET against the Processing System's API
  • SFTP / CSV — batch file pickup at a defined cadence
  • Webhook receive — Processing System pushes events
  • VAOC on-premise — outbound WebSocket via the VAOC agent for firewalled systems

Every Source Binding has a processing_system_id NOT NULL and a target dp_profile_id — so ingested rows always know which audience they belong to.

Downstream Binding

A connector that propagates consent decisions, attribute changes, and erasure operations out of Vishwaas AI to the Processing System — so it always sees the right people in the right state.

  • Push (webhook) — HMAC-SHA256 POST · exponential backoff · dead-letter queue
  • Pull connector — Processing System reads GET /consent-status · Redis-cached
  • SDK enforcement — embedded JS / iOS / Android SDK checks consent before processing
  • Operation kinds: consent_propagation, attribute_value_change, dp_data_removal

Every Downstream Binding serves exactly one DP Profile, so a Marketing Emails withdrawal never accidentally fires at an HRIS that doesn't know about that profile.

Why this matters: when a Data Principal withdraws consent in the DP Portal at 11:42:03, the consent record is appended immediately, the Redis status cache is invalidated, every Downstream Binding subscribed to that activity fires within 5 seconds, and the propagation outcome is written to propagation_delivery_log. If any downstream call fails, it retries with exponential backoff, then lands in the dead-letter queue for operator action. That is what "real-time compliance" actually means in practice.
§ 6 · Data Processors

The legal entity behind the system.

A Processing System is the technical artefact (the CRM instance, the SMS gateway, the analytics warehouse). A Data Processor is the legal artefact — the company that operates that system on the fiduciary's behalf under a written Data Processing Agreement. DPDP Act 2023 §2(k).

One Data Processor typically operates several Processing Systems — AWS hosts your storage and your VPC and your queue; SendGrid runs your transactional email and your bulk mail; Razorpay handles payments and invoicing. The DPA covers all of them at once, but cross-border, sub-processor disclosure, and DPA expiry tracking live at the Processor level, not the System level.

  • DPA status — draft / executed / expiring / expired — with renewal alerts at 60 / 30 / 7 days.
  • Cross-border tracking — hosting region (e.g. ap-south-1 vs us-east-1) and Schedule transferability flags.
  • Sub-processor disclosure — JSONB list of every entity the Processor itself delegates to.
  • Risk rating — low / medium / high — feeds the DPIA module's risk register.

(In the current codebase the Prisma model is still named vendor for backwards compatibility; the v2.7 rename to data_processors is on the roadmap. The conceptual name "Data Processor" is canonical in every new spec, audit event, and user-facing label.)

One Data Processor → multiple Processing Systems
AWS India Pvt. Ltd. Data Processor S3 storage Processing System RDS PostgreSQL Processing System SQS queue Processing System One DPA · one cross-border footprint · one expiry date
§ 7 · Processing Activities
The two-layer model

The Processing Activity is the unit of accountability.

Every reason a fiduciary touches DP data — "Marketing Emails", "Salary Disbursement", "Order Fulfillment" — is one row in processing_activities. In v2.6-New, a single row carries two layers: the internal RoPA-style metadata (always populated) and, when the lawful basis is consent, the DP-facing copy the principal will read in the privacy notice.

processing_activities — the two-layer model
Processing Activity · "Marketing Emails" code: MKT_EMAILS · dp_profile_id: Customer · lawful_basis: consent LAYER 1 · INTERNAL (always present) Name (internal) Category · retention_days Lawful basis + Section 7 sub-ground DP Profile (NOT NULL) Attribute bindings each with ≥ 30-char necessity rationale Last-reviewed-at Surfaces in /admin/reports/activities-register (RoPA §8(4)) LAYER 2 · DP-FACING (only when basis = consent) Multilingual name (22 locales) Description shown in notice Grant message ("By saying yes you…") Withdrawal message ("If you change your mind…") ▸ Per-attribute explanation & reveal mode always / on_demand / hidden Required-attribute highlighting Surfaces in /portal/consents/[activityId]
Section 6 · Consent
Affirmative, granular, withdrawable
Marketing · Cookies · Analytics

Both layers are populated. The DP sees a notice, the DP grants, the consent record is appended with notice anchor + content hash + per-language proof. Withdrawal propagates to every Downstream Binding within 5 seconds.

Section 7 · Legitimate Use
Statutorily permitted — no consent needed
Salary · Tax · Court order

Layer 1 only. The activity lives in the internal RoPA register but appears in no privacy notice. The Section 7 sub-ground enum captures the specific justification: employment_purposes, state_function_subsidy_benefit, legal_obligation, medical_emergency, pandemic_or_disaster_response, and so on.

§ 8 · Notices
ENHITATEBN+17 more

Marketing Communications — Customer Profile

Acme Corporation collects your email address, full name, and (optionally) mobile number so we can send you our weekly newsletter, product launch announcements, and personalised offers.

v3.2 active Rule 3 · 100% Customer profile 5 activities

content_hash[en]: 8af3e9b2…41c
content_hash[hi]: 2c14db90…7e5
content_hash[ta]: 91a47fee…d63

Profile-scoped, hash-anchored, gated at publish.

A Privacy Notice in Vishwaas AI is always scoped to exactly one DP Profile. The Customer notice and the Employee notice are different documents, in different versions, with different attribute scopes, and they cannot accidentally include each other's Processing Activities — the database trigger refuses.

Every version of a notice computes a per-language SHA-256 content hash and stores them in a JSONB map content_hash_by_language. When a DP grants consent in Hindi, the consent record captures the exact Hindi hash they saw — three years later, in court, the fiduciary can prove what document, in what language, on what date.

  • Multi-version — draft, in_review, approved, active, archived. Only one Active per (profile, target_segment).
  • 22-locale support — full DPDP Eighth Schedule. EN is mandatory; tenant chooses the rest.
  • Approval workflow — Legal officer reviews, DPO approves, single-step or sequential reorderable.
  • Rule 3 publish-gate — refuses to activate any notice scoring below 100% on the readiness checklist.
Rule 3 readiness checklist: entity name · grievance contact · rights-exercise mechanism · withdrawal mechanism · DPBI registration ID (if SDF) · English present · ≥ 1 activity listed · every activity has bound attributes · every §7 activity has its sub-ground · every activity has retention set. Failing any check raises a concrete error code (rule3.entity_name_missing, rule3.activity_MKT_EMAILS_attributes_missing, …) surfaced on the editor right-rail. The system refuses to publish until 100%.
§ 10 · The Hash Chain
Append-only · cryptographic

What "Trust Built into Every Byte" actually means.

Every consent record's hash is fed into the next record's chain_hash. Tamper with any historical row and every record after it becomes unverifiable. This is the cryptographic property that converts a database into legal evidence.

Genesis
tenant: acme-corp
record:
chain_hash:
7c14db90c3e8…f25b
Record #1 · 12:04 IST
DP: CUST-001
activity: MKT_EMAILS
action: granted
chain_hash:
a3f9e1b2c4d7…081a
Record #2 · 12:11 IST
DP: CUST-002
activity: ORDER_TRACK
action: granted
chain_hash:
be8a73d04f2c…91e7
Record #3 · 14:02 IST
DP: CUST-001
activity: MKT_EMAILS
action: withdrawn
chain_hash:
d50c1ff84a6e…3b29
Record #4 · 09:31 +1d
DP: CUST-003
activity: NEWSLETTER
action: granted
chain_hash:
f29b045ad1c6…7c40
record_hash SHA-256 of canonical record JSON
Deterministic JSON.stringify of {tenantId, principalId, purposeId, action, status, timestamp, channel, ipAddress, consentTextSnapshot, noticeContentHash, …}. The legacy JSON key purposeId is intentionally preserved so the chain survives the v2.6 column rename to activityId.
chain_hash SHA-256(record_hash ‖ previous_chain_hash)
UNIQUE constraint at the DB level. The very first record on a tenant chains off the Genesis hash = SHA-256("VISHWAAS_AI_GENESIS_" + tenant_id).
digital_signature RSA-SHA256, base64
The tenant's private key signs the record_hash. Verifiers reproduce the hash, retrieve the tenant public key from the /.well-known endpoint, and validate.
tsa_token RFC 3161 timestamp authority (optional)
Implemented (v2.5-New Patch 17), off by default. When enrolled, every record is countersigned by a trusted timestamp authority, producing a token an Indian court can independently verify against the TSA's certificate chain.
verify-integrity POST /consent/verify-integrity/:recordId
Replays the chain from genesis up to the target record. Returns the failure offset if any intermediate hash disagrees. Run nightly; embed in audit reports.
The deeper invariant: the consent_records table is physically append-only. Migrations issue REVOKE UPDATE, DELETE ON consent_records FROM crosstrust_app. The application user simply does not possess the privilege to mutate a historical row — even if a developer wrote the code, Postgres would refuse the statement.
§ 11 · Data Fiduciary Profile

The voice of the fiduciary, in every notice.

One row per tenant in data_fiduciary_profiles consolidates every DPDP §5(1) mandatory contact and identity field — legal entity name, registered address, DPO contact, grievance officer, SDF status, DPBI registration, rights portal URL, withdrawal portal URL, preferred languages, guardian-verification strategy.

This row is read by three high-stakes surfaces: the Settings → Fiduciary Profile editor, the DP-Portal PortalFiduciaryFooter shown on every notice render, and the publish-gate Rule 3 check that refuses incomplete profiles. When the DPO's email rotates, every future notice picks it up automatically — no manual republish required.

  • PII is encrypted — DPO and grievance officer email/phone live in BYTEA columns with sibling SHA-256 hashes for indexed lookup.
  • SDF mirroris_sdf mirrors the tenant's flag. SDF tenants must additionally populate dpbi_registration_id.
  • Preferred languages — text array; must include en. Drives which locales are required on every notice.
  • Guardian verification strategy — one of signed_declaration (default), digilocker, govt_id_match, video_kyc, multiple — governs §9 minor-consent flows.
data_fiduciary_profiles — one row, three readers
Fiduciary Profile one row · tenant DPDP §5(1) Settings UI edit fiduciary fields DP Portal footer on every notice render Rule 3 publish gate blocks if incomplete
§ 12 · The Complete Relationship Map
Tying it all together

One picture. Every entity. Every relationship.

Read this from the Data Principal in the centre outward. Each arrow is a foreign-key relationship in the production database; each colour is an entity family; each animated dash shows where data & consent decisions actually flow at runtime.

DATA FIDUCIARY · tenant boundary · DPDP §5(1) Data Principal data_principal DPDP §2(j) DP Profile Customer / Employee / Applicant memberships · M:N DP Attribute email · phone · Aadhaar profile_attribute_bindings Processing Activity RoPA row · §6 / §7 consent_records.activity_id Notice (version) multilingual · hashed notice_version_id + content_hash PROCESSING SYSTEM carrier for both bindings CRM / HRIS / Data Lake e.g. Salesforce, Workday Source Binding fetches DPs IN Downstream Binding propagates consent, attribute changes, erasure OUT ingest propagate Data Processor DPDP §2(k) · DPA · cross-border operated by Consent Record SHA-256-chained · RSA-signed Hash Chain (append-only) REVOKE UPDATE, DELETE How a consent flows 1. DP reads Notice in chosen language 2. Grants against Processing Activity 3. Consent Record appended (hash-chained) 4. Downstream Bindings propagate < 5s LEGEND DP relationships ingestion / consent flow profile / outbound propagation processing-system parent-child fiduciary governance data-processor link (operated-by) processing-activity reference notice-version anchor
§ 13 · The Customer Perspective
From the buyer's seat

What each entity actually means for your organisation.

Same twelve entities — re-explained from the lens of the DPO, Privacy Manager, Legal Officer, CISO, IT Admin, and business owner sitting inside the customer organisation. What problem does it solve? Who owns it day-to-day? What evidence does it produce when the DPBI knocks?

DPO

Owns DPDP outcomes end-to-end. Approves notices, breach assessments, DPIAs.

Privacy Manager

Configures activities, attributes, notices day-to-day. Closest to the model.

Legal / Compliance

Reviews notice copy, DPA contracts, retention rules. Final sign-off on legal exposure.

CISO / Security

Owns encryption keys, audit chain integrity, breach response, CERT-In.

IT Admin

Connects Processing Systems, configures bindings, manages webhooks & SDK keys.

Business Owner

Marketing / HR / Operations lead who defines why data is needed.

60 days
to full DPDPA compliance
< 5s
consent withdrawal → downstream propagation
100%
Rule 3 readiness threshold to publish a notice
7 yrs
cryptographic retention of every consent decision

1 · Data Principal — "Your customer, your employee, your patient"

Owner: Privacy Manager

The real people whose data you hold. Before Vishwaas AI, the same person exists as a row in your CRM, a row in HRIS, a row in your loyalty database, a row in your support tool — and you have no idea any of them are the same human.

Pain it solves
An erasure request comes in for "Rahul Verma". You delete from CRM. Three weeks later HRIS leaks the same Rahul on a payslip CSV. One row in Vishwaas AI = one human, everywhere.
Evidence produced
Unified principal view across all Source Bindings · auto-link + review-queue identity resolution · append-only merge audit · indexed lookup without exposing plaintext PII.
Day-1 task
Connect your CRM, HRIS, and support tool as Source Bindings. Vishwaas matches identities in 24h, surfaces ambiguous matches for your review.
Real scenario: Rahul Verma logs into the DP portal. He sees a single dashboard with his Customer consents, his Employee notices, and his Loan Applicant attribute requests. He toggles Marketing off once — and your CRM, your email gateway, and your push notification platform all stop within 5 seconds.

2 · DP Profile — "How you actually segment your audience"

Owner: Privacy Manager + Business Owners

A bank doesn't talk to a Loan Applicant the way it talks to a Salary Account holder. A hospital doesn't talk to an OPD patient the way it talks to an in-patient. Vishwaas AI codifies these audience classes as DP Profiles — and every notice, every activity, every binding inherits the right scope automatically.

Pain it solves
Without profiles, your Customer notice accidentally lists Employee-only attributes (or worse: vice-versa). Vishwaas refuses cross-profile leakage at the database level.
Evidence produced
Profile-scoped notices · profile-scoped activities · profile-scoped attribute catalog · audit log of every membership change.
Day-1 task
Your Business Owners (Marketing head, HR head, Loans head) name their audience classes once. Privacy Manager confirms attribute scope per profile.
Real scenario: The marketing team launches a "Festive Offers" campaign. The campaign wizard's audience filter shows only Customer Profile DPs — they cannot accidentally email it to Employees or Loan Applicants. The protection happens before anyone clicks Send.

3 · DP Attribute — "Every field you collect, justified in writing"

Owner: Privacy Manager + Legal

The DPBI's first inspection question will be: "Why do you collect this field?" Today, your defence is verbal. With Vishwaas AI, every attribute bound to an activity carries a ≥ 30-character necessity rationale, written by the Privacy Manager, reviewed by Legal, surfaced in the activity register.

Pain it solves
"Why do you have Aadhaar on this form?" — you cannot answer that 18 months later from memory. Vishwaas AI writes the answer once, surfaces it forever.
Evidence produced
DPDP §6(1) data-minimisation defence on demand · per-attribute encryption tier · multilingual DP-facing explanation · reveal-mode control in portal.
Day-1 task
Sit with each business owner for an hour. Walk their form. For every field, write the rationale. Vishwaas tracks who wrote it and when.
Real scenario: Your auditor asks for justification on "City" being captured in newsletter signups. Privacy Manager opens the activity register, the rationale reads "Required to deliver locality-specific event invitations from the events team". Auditor moves on.

4 · Processing System — "The systems already on your tech inventory"

Owner: IT Admin + CISO

Your Salesforce instance, your Workday tenant, your SendGrid subaccount, your Razorpay merchant. Every system that holds DP data somewhere. Vishwaas AI doesn't replace any of them — it puts a consent-aware membrane around them.

Pain it solves
Today nobody can tell you "everywhere this DP exists". With Vishwaas, each Processing System is registered once and every binding inherits the data-asset map.
Evidence produced
DPDP §8(4) Record of Processing · cross-border footprint · hosting region · risk rating · linkage to DPA.
Day-1 task
IT Admin lists every SaaS or internal system that touches PII. CISO classifies risk. Each becomes a Processing System row.
Real scenario: CISO needs to brief the board: "Which third parties currently hold customer email addresses?" Open the data-asset map, filter by the email attribute → six Processing Systems listed with their bindings, their data processors, their hosting regions. Five-minute answer to what used to take a quarter.

5 · Source & Downstream Bindings — "The plumbing of consent in motion"

Owner: IT Admin

A Source Binding pulls customer data into Vishwaas; a Downstream Binding propagates consent decisions out. Both are configurable in minutes — REST poll, SFTP, CSV upload, push webhook, pull connector, or embedded SDK — and both write delivery proof to the audit log.

Pain it solves
"A customer withdrew consent on Tuesday. We still emailed her on Friday." With Downstream Bindings, that's mathematically impossible — withdrawal fires within 5 seconds and dead-letters if any system fails.
Evidence produced
HMAC-signed delivery proofs · per-attempt HTTP status log · exponential-backoff retry schedule · dead-letter queue with operator review.
Day-1 task
For each Processing System, IT Admin decides: how do we pull DPs IN? How do we push consent decisions OUT? Configure once, monitor on the propagation dashboard.
Real scenario: Your CRM goes down at 3am. The next morning IT Admin opens the dead-letter queue, sees 412 buffered consent updates, hits Retry All. Every queued change replays in order — and the consent ledger and the CRM converge again. Zero data loss, full audit trail.

6 · Data Processor — "The contract behind the connection"

Owner: Legal + Procurement

Every Processing System is operated by someone — AWS, SendGrid's parent Twilio, Razorpay, Mixpanel. DPDP §2(k) calls them Data Processors and mandates a written agreement. Vishwaas AI tracks the DPA, its expiry, cross-border posture, and sub-processors per Processor — not per System.

Pain it solves
"Whose DPA expired last quarter?" The Legal team currently maintains a spreadsheet. Vishwaas fires a 60-day / 30-day / 7-day alert automatically.
Evidence produced
Signed DPA document URL · cross-border transfer log · sub-processor disclosure list · risk score feeding the DPIA register.
Day-1 task
Legal uploads the DPA PDF for each Processor (one Processor, one DPA, many systems). Sets renewal alerts.
Real scenario: DPBI Officer asks for proof of cross-border safeguards for a new SaaS in scope. Legal opens the Data Processor row → DPA, hosting region (Singapore), Schedule transferability flag, signed sub-processor list — all in one PDF export.

7 · Processing Activity — "Every reason you touch data, named"

Owner: Privacy Manager + Business Owner

"Marketing Emails", "Salary Disbursement", "Order Fulfillment", "CIBIL Pull", "Birthday Gift Despatch". Every reason your organisation touches DP data becomes one row in the activity register. Each row decides its own lawful basis — DPDP §6 (consent) or §7 (legitimate use) — and refuses to mix.

Pain it solves
"Show me your RoPA" — DPDP §8(4) mandates a Record of Processing. Most organisations produce a stale Word document. Vishwaas generates a live, CSV-exportable register.
Evidence produced
Live RoPA at /admin/reports/activities-register · per-activity attribute scope · retention period · last-reviewed date · automatic flag on review-overdue activities.
Day-1 task
Two-hour workshop per department head. List every business reason you touch personal data. Privacy Manager turns each into an activity row.
Real scenario: Salary disbursement is §7 (employment purpose); marketing newsletter is §6 (consent). Both live in the register, but only marketing appears in any privacy notice. Auditor verifies the §7 sub-ground is captured. Zero ambiguity.

8 · Notice — "The document the customer actually reads"

Owner: Privacy Manager + Legal + DPO

A multilingual privacy notice, drafted in TipTap, gated by Rule 3 readiness, hash-anchored per language. The Privacy Manager drafts; Legal reviews; DPO approves; Vishwaas refuses to activate it until every Rule 3 box ticks green.

Pain it solves
"Prove the customer read the Tamil version dated 11-Apr-2026." Today: impossible. With per-language content hash on every consent record — instant.
Evidence produced
DPDP Rules 2025 Rule 3 conformance · version history · approval audit trail · per-language SHA-256 anchor on every record.
Day-1 task
Pick from 13 industry templates. Privacy Manager edits in TipTap. Legal reviews. DPO approves. Active.
Real scenario: Three years after a consent grant, a customer disputes ever receiving notice. The DPO opens the consent record, retrieves the exact notice version + language + 64-hex content hash. Renders the document the customer saw, byte-identical, in court.

9 · Consent Record & Hash Chain — "Compliance you can cryptographically prove"

Owner: DPO + CISO

Every grant, withdrawal, or modification appends to an immutable hash-chained ledger. Append-only at the database privilege level — even an admin SQL user cannot UPDATE a historical row. The chain is what converts a database from "our records" to legal evidence.

Pain it solves
"Could a rogue admin have backdated this consent?" In a normal database — yes. In Vishwaas — the cryptographic chain plus database privilege revocation make it provable, mathematically.
Evidence produced
SHA-256 chained records · RSA-signed per-record · optional RFC 3161 TSA countersign · nightly chain-verify report · forensic replay from genesis.
Day-1 task
CISO holds the tenant signing key. DPO schedules monthly chain-integrity reports. Both are notified instantly if the verifier ever fails.
Real scenario: A regulator demands proof that consent record #4,217 was not edited after collection. The DPO runs POST /consent/verify-integrity/4217. The system replays the entire chain from genesis to that record, returns {verified: true, signature_valid: true}. The regulator is satisfied. Total elapsed time: 90 seconds.

10 · Data Fiduciary Profile — "Your identity, the way DPDP §5(1) wants it"

Owner: DPO + Legal

One row in the database. Legal entity name, registered office address, DPO contact, grievance officer contact, SDF status, DPBI registration, rights-portal URL, withdrawal URL, preferred languages, guardian-verification strategy. Read by every privacy notice render.

Pain it solves
DPO email rotates. Today: every notice across every version needs republishing. With Vishwaas: change one row, every future notice render picks it up — historical records still cite the contact in effect at the time.
Evidence produced
DPDP §5(1) full coverage · audit trail of every contact change · DPBI registration ID surfaced on every Significant Data Fiduciary notice · feeds the Rule 3 publish gate.
Day-1 task
DPO + Legal sit together for 30 minutes. Fill the form. SDF flag if applicable. Done — feeds into every notice automatically from then on.
Real scenario: Your organisation gets notified by MeitY that you've crossed the SDF threshold. DPO toggles is_sdf = true, adds the DPBI registration ID. Every future notice render now shows the DPBI contact in the footer. Compliance turnaround: 5 minutes, zero developer effort.
A 60-day customer journey — first login to full DPDPA defensibility
Week 1 Onboarding wizard Fiduciary Profile · Profiles · roles Week 2–3 Activity register Attributes · rationales · §6/§7 split Week 3–5 Connect systems Source + Downstream bindings · Processors Week 5–7 Notices & campaigns Multilingual · Rule 3 · launch Week 8–9 DPDPA defensible Chain · audits · DPR · breach drills FROM PROCUREMENT-PO TO REGULATOR-READY Each milestone produces evidence the previous one made possible. By the end, every consent the organisation collects is cryptographically defensible.
The bottom line: for a buying organisation, these twelve entities are not abstractions — they are the line items on the DPDP audit checklist, the boxes on the Rule 3 readiness report, the answers to "show me", "prove it", and "what happens when". When the DPBI knocks, every entity in this model produces evidence that the previous one made possible. That is the difference between "we have a privacy policy" and "compliance you can cryptographically prove".
Glossary
Quick reference

Twelve terms in one minute.

Data Principal (DP)
The natural person whose data is processed. DPDP §2(j). One canonical row per person per tenant, resolved across all Source Bindings.
DP Profile
A class of Data Principal — Customer, Employee, Patient, Applicant. Scopes notices, activities, attributes.
DP Attribute
A single field of personal data. Bound to profiles in the catalog and to activities at the rationale level.
Data Fiduciary Profile
The tenant's one-row DPDP §5(1) identity — legal entity, DPO, grievance officer, SDF / DPBI status.
Processing System
A third-party application that holds or operates on DP data — CRM, HRIS, analytics warehouse, gateway.
Source Binding
A connector on a Processing System that fetches DP data into Vishwaas AI (REST, SFTP, CSV, webhook).
Downstream Binding
A connector on a Processing System that propagates consent / attribute changes / erasures out (push, pull, SDK).
Data Processor
The legal entity that operates one or more Processing Systems under a DPA. DPDP §2(k).
Processing Activity
The reason a fiduciary touches data — "Marketing Emails", "Salary Disbursement". Two-layer: RoPA + DP-facing copy.
Notice
The multilingual privacy notice version a DP reads before consenting. Profile-scoped, per-language hashed, Rule-3 gated.
Consent Record
Append-only proof of a grant / withdrawal. Anchored to notice version + content hash + language. Hash-chained & signed.
Hash Chain
The cryptographic backbone: every record's hash feeds the next chain hash. One mutation breaks everything downstream.