Skip to main content

Entities & invariants

Events emitted

contact.created|updated|merged · consent.granted|revoked · event.tracked · segment.entered|exited

Endpoints (permission each — DEC-D5)

  • POST /v1/core/track|identify|batch → core.events.write (Runtime, fast-ack 202)
  • GET/POST/PATCH /v1/core/contacts[…] → core.contacts.read|create|update; full national_id read → core.contacts.read_national_id
  • POST /v1/core/contacts/{id}/erasure → core.contacts.erase (ARCO; ≤30 days automated, ledger anonymization)
  • GET /v1/core/contacts/{id}/export → core.contacts.export (ARCO portability)
  • CRUD /v1/core/segments → core.segments.* · POST /v1/core/auth/token-exchange (per ADR-010)
  • Import: POST /v1/core/imports (CSV) → duplicate-DNI rows land in suggested-merge queue (DEC-A6)

Non-negotiables

Identity resolution and merges ONLY here. Consents checked by messaging, WRITTEN only here. Erasure = delete profile/events, anonymize ledger references (tombstone), export first if requested.