Kepatuhan & Persetujuan API Langsung
Baca pernyataan privasi/kepatuhan anggota yang diterbitkan tim Anda dan verifikasi persetujuan per anggota melalui v2 REST API yang diatur. Toko online, aplikasi, gudang data, atau kantor belakang Anda dapat mengambil pernyataan terkini, menelusuri riwayat versinya, dan mengkonfirmasi versi mana yang disetujui anggota — dengan kunci yang tercakup dan diaudit.
Autentikasi & cakupan
Semua titik akhir berada di host Flash API dan diautentikasi dengan kunci sisi server API (Bearer). Tim selalu diturunkan dari kunci — tidak pernah dikirim dalam permintaan. Dua cakupan baca-saja membatasi akses:
privacy:read— pernyataan: versi saat ini, riwayat, dan versi spesifik.consent:read— catatan persetujuan anggota (versi, cakupan, status, waktu).
# Every call uses a server-side API key (Bearer). teamId is derived from the key,
# never sent in the request. Two read scopes:
# privacy:read → the statement (current / history / a version)
# consent:read → a member's consent records
curl https://flash.socialhub.ai/api/v2/privacy/current \
-H "Authorization: Bearer fl_live_your_key_here"Baca pernyataannya
Hanya versi yang diterbitkan dan diarsipkan — draf tidak pernah dipublikasikan, dan konten dibersihkan (penanda tinjauan internal dihilangkan) sebelum meninggalkan API.
GET https://flash.socialhub.ai/api/v2/privacy/current # scope: privacy:read
# 200 — the current published statement (sanitized), or { "data": null } if none published.
{
"data": {
"id": "pol_…",
"version": "v3",
"versionSeq": 3,
"status": "published",
"locale": "en",
"changeType": "material",
"changeSummary": "Updated data-retention section",
"effectiveAt": "2026-02-01T00:00:00.000Z",
"contentHash": "…sha256…",
"content": { "sections": [ { "key": "intro", "title": "…", "body": "…" } ] }
}
}GET https://flash.socialhub.ai/api/v2/privacy/policies # scope: privacy:read
# 200 — version history, newest first (metadata only; published & archived — never drafts).
{
"data": [
{ "id": "pol_3", "version": "v3", "versionSeq": 3, "status": "published",
"changeType": "material", "effectiveAt": "2026-02-01T00:00:00.000Z", "contentHash": "…" },
{ "id": "pol_2", "version": "v2", "versionSeq": 2, "status": "archived",
"changeType": "minor", "effectiveAt": "2026-01-01T00:00:00.000Z", "contentHash": "…" }
],
"total": 2
}
GET https://flash.socialhub.ai/api/v2/privacy/policies/{id} # one version, full sanitized content (404 for a draft id)Verifikasi persetujuan
Konfirmasikan secara tepat versi pernyataan dan cakupan mana yang disetujui oleh anggota. Catatan hanya merupakan bukti tambahan dan tetap ada meskipun anggota dihapus; API mengembalikan apa yang Anda butuhkan untuk verifikasi — tanpa IP mentah atau agen pengguna (minimalisasi PII).
GET https://flash.socialhub.ai/api/v2/members/{id}/consents # scope: consent:read
# 200 — the member's consent records, newest first. The evidence to VERIFY consent:
# which statement version + scopes, the method, status and time. No raw IP / user-agent.
{
"data": [
{
"id": "con_…",
"scopes": ["privacy_policy", "marketing_email"],
"method": "register",
"status": "active", // active | legacy_unverified | withdrawn
"policyVersion": "v3",
"policyVersionSeq": 3,
"policyContentHash": "…sha256…",
"consentedAt": "2026-02-02T10:30:00.000Z"
}
]
}
# A member of another team (or unknown) → 404. No consents yet → { "data": [] }.Jaminan
Terisolasi oleh penyewa
teamId berasal dari kunci API; id tim lain ditetapkan menjadi 404. Titik akhir dibatasi tarifnya per kunci.
Draf tidak pernah bocor
Hanya versi yang diterbitkan/diarsipkan yang disajikan, disanitasi — draf yang sedang dikerjakan dan penanda internal tetap berada di dalam.
Persetujuan terikat pada kata-kata
Setiap catatan membawa versi number dan hash konten, jadi "v3" selalu berarti kata-kata yang sama.
Minimal secara default
Catatan persetujuan menghilangkan IP mentah / agen pengguna — Anda mendapatkan bukti verifikasi, bukan data pengawasan.
Referensi yang dapat dibaca mesin: titik akhir ada dalam spesifikasi OpenAPI v2 di https://flash.socialhub.ai/api/v2/openapi.json (tag Privacy).
Di luar persetujuan: langganan topik, diberlakukan saat pengiriman
Persetujuan adalah gerbang hukum; langganan topik adalah pilihan anggota yang lebih rinci tentang pemasaranmana yang mereka inginkan. Dari area privasi portal, anggota dapat menonaktifkan topik individual — promosi, buletin, loyalitas, pengumuman produk — sambil tetap mempertahankan yang lainnya. Ini adalah model opt-out (tidak ada catatan = berlangganan), dan diberlakukan di sisi server: setiap kampanye membawa topik, dan gerbang pengiriman menekan pesan ketika anggota telah mematikan topik tersebut — bersamaan dengan batasan frekuensi kebijakan komunikasi dan jam tenang. Pesan transaksional tidak pernah terpengaruh. Anggota mengelolanya sendiri; portal membaca dan menulisnya melalui titik akhir sesi konsumen (/api/member/topic-subscriptions), sehingga tidak ada kunci admin API yang terlibat.