You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Documents the new public V3 endpoints for self-served rotation of
Messenger Identity Verification secrets:
- GET /secure_mode_secrets — list metadata (no signing material)
- POST /secure_mode_secrets — create; secret returned ONCE
- DELETE /secure_mode_secrets/{id} — soft-delete (rotation out)
The create response includes the raw 256-bit HMAC secret; the list and
delete responses do not. This write-once pattern mirrors AWS IAM access
keys and GitHub fine-grained PATs.
Companion to:
- intercom/intercom#500245
- intercom/intercom#500247
- intercom/intercom#500250
Copy file name to clipboardExpand all lines: descriptions/0/api.intercom.io.yaml
+269Lines changed: 269 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -14080,6 +14080,185 @@ paths:
14080
14080
message: Access Token Invalid
14081
14081
schema:
14082
14082
"$ref": "#/components/schemas/error"
14083
+
"/secure_mode_secrets":
14084
+
get:
14085
+
summary: List all identity verification secrets
14086
+
parameters:
14087
+
- name: Intercom-Version
14088
+
in: header
14089
+
schema:
14090
+
"$ref": "#/components/schemas/intercom_version"
14091
+
tags:
14092
+
- Identity Verification Secrets
14093
+
operationId: listIdentityVerificationSecrets
14094
+
description: |
14095
+
Returns the identity verification secrets configured for your workspace.
14096
+
14097
+
Each entry includes metadata only — the HMAC signing material itself is **never** returned by this endpoint. The raw secret is only available once, in the response to `POST /secure_mode_secrets`. Persist it at that moment.
Creates a new identity verification secret for your workspace. Intercom generates a 256-bit, cryptographically random value server-side and returns it once in the response.
14143
+
14144
+
**This is the only opportunity to capture the secret.** Store it in your secure configuration immediately. The `secret` field is omitted from all subsequent responses (including `GET /secure_mode_secrets`) — if you lose it, you must rotate a new secret in and delete this one.
14145
+
14146
+
You must enable the secret for at least one platform (`supports_android`, `supports_ios`, or `supports_web`). Rotation flow: create the new secret, roll it out to every client signing `user_hash` values, then delete the old secret with `DELETE /secure_mode_secrets/{id}` once traffic has cut over.
description: The unique identifier of the identity verification secret
14222
+
example: '102'
14223
+
required: true
14224
+
schema:
14225
+
type: string
14226
+
tags:
14227
+
- Identity Verification Secrets
14228
+
operationId: deleteIdentityVerificationSecret
14229
+
description: |
14230
+
Soft-deletes an identity verification secret. After deletion, any `user_hash` values signed with that secret will no longer verify — Messenger sessions depending on it will be rejected on their next request. Use this to complete a rotation: create a new secret, roll it out, then delete the old one.
14231
+
responses:
14232
+
'204':
14233
+
description: Secret deleted
14234
+
'404':
14235
+
description: Secret not found
14236
+
content:
14237
+
application/json:
14238
+
examples:
14239
+
Secret not found:
14240
+
value:
14241
+
type: error.list
14242
+
request_id: 77b9d3c0-09e1-4d5f-8e6c-7d4a2f1b9a12
14243
+
errors:
14244
+
- code: identity_verification_secret_not_found
14245
+
message: Identity verification secret not found
14246
+
schema:
14247
+
"$ref": "#/components/schemas/error"
14248
+
'401':
14249
+
description: Unauthorized
14250
+
content:
14251
+
application/json:
14252
+
examples:
14253
+
Unauthorized:
14254
+
value:
14255
+
type: error.list
14256
+
request_id: c1c0477c-5b80-4874-be65-01ec8a9ffe14
14257
+
errors:
14258
+
- code: unauthorized
14259
+
message: Access Token Invalid
14260
+
schema:
14261
+
"$ref": "#/components/schemas/error"
14083
14262
"/segments":
14084
14263
get:
14085
14264
summary: List all segments
@@ -25983,6 +26162,94 @@ components:
25983
26162
nullable: true
25984
26163
required:
25985
26164
- id
26165
+
identity_verification_secret:
26166
+
title: Identity Verification Secret
26167
+
type: object
26168
+
x-tags:
26169
+
- Identity Verification Secrets
26170
+
description: Metadata for an HMAC secret used to sign `user_hash` values for Messenger identity verification. The `secret` field is intentionally omitted — it is only returned once, in the response to `POST /secure_mode_secrets`.
26171
+
properties:
26172
+
type:
26173
+
type: string
26174
+
description: value is "identity_verification_secret"
26175
+
example: identity_verification_secret
26176
+
id:
26177
+
type: string
26178
+
description: The id of the secret
26179
+
example: '102'
26180
+
name:
26181
+
type: string
26182
+
description: Human-readable name for the secret, used to identify it in rotation flows
26183
+
example: Production Web
26184
+
supports_android:
26185
+
type: boolean
26186
+
description: Whether the secret is enabled for the Android SDK
26187
+
example: false
26188
+
supports_ios:
26189
+
type: boolean
26190
+
description: Whether the secret is enabled for the iOS SDK
26191
+
example: false
26192
+
supports_web:
26193
+
type: boolean
26194
+
description: Whether the secret is enabled for the Messenger on web
26195
+
example: true
26196
+
created_at:
26197
+
type: integer
26198
+
description: The time the secret was created, as a Unix timestamp
description: Returned once, at creation time, from `POST /secure_mode_secrets`. Includes the raw `secret` field. Persist the secret immediately — it is never retrievable again.
description: Request payload for creating a new identity verification secret. At least one platform flag must be `true`.
26234
+
properties:
26235
+
name:
26236
+
type: string
26237
+
description: Human-readable name for the secret.
26238
+
example: Production Web
26239
+
supports_android:
26240
+
type: boolean
26241
+
description: Enable this secret for the Android SDK.
26242
+
example: false
26243
+
supports_ios:
26244
+
type: boolean
26245
+
description: Enable this secret for the iOS SDK.
26246
+
example: false
26247
+
supports_web:
26248
+
type: boolean
26249
+
description: Enable this secret for the Messenger on web.
26250
+
example: true
26251
+
required:
26252
+
- name
25986
26253
intercom_version:
25987
26254
description: Intercom API version.</br>By default, it's equal to the version
25988
26255
set in the app package.
@@ -29315,6 +29582,8 @@ tags:
29315
29582
All webhook requests include an `X-Fin-Agent-API-Webhook-Signature` header for request validation.
29316
29583
- name: Help Center
29317
29584
description: Everything about your Help Center
29585
+
- name: Identity Verification Secrets
29586
+
description: Manage HMAC signing secrets for Messenger identity verification — list, create, and rotate out. Signing material is returned only once, at creation time.
29318
29587
- name: Internal Articles
29319
29588
description: Everything about your Internal Articles
0 commit comments