API key sent as a bearer token: Authorization: Bearer kyc_live_.... Keys are prefixed kyc_live_ (production) or kyc_test_ (test mode). OAuth2 access tokens (also Bearer) may be supported later — the header never changes.
Unix time in seconds when this attempt was sent. New on every attempt. Part of the signed content. Reject a request whose timestamp is more than 5 minutes from your clock.
One or more space-separated signatures, each v1, followed by the base64 HMAC-SHA256 of {webhook-id}.{webhook-timestamp}.{raw body}, keyed with your signing secret (the bytes after decoding the base64 part of whsec_…). Two are sent while a rotated-out secret is in its 24-hour grace period. Accept the request if any one matches.
This delivery of the event to your endpoint, the same as meta.deliveryId. Quote it to KYC support when asking about a delivery. Not part of the signed content.
The body of every webhook request: the event in data, this delivery attempt in meta. Mirrors the API's { data, meta } success envelope. Ignore fields you don't recognise.
Payload schema version: the date it was introduced. Payloads change only additively within a version (Decision 32 records this exception to Decision 3).
How the message was sent, e.g. sms, whatsapp, email, web-app, line, wechat, messenger. New values are added without notice; treat unknown ones as "other".
When this attempt was sent (UTC), with milliseconds. The same moment as the webhook-timestamp header.
Example:
"2026-10-30T09:14:03.120Z"
Response
Stop sending. KYC disables the endpoint at once and sends nothing more until it is re-enabled. Use this only when the endpoint is retired for good.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"KYCH Public API","colors":{"primary":"#007799","light":"#91e3ff","dark":"#005e7f"},"logo":{"light":"https://mintcdn.com/kych-api/12fbZITjhjaHP-wP/logo/KYC_Logo2019_LG.png?fit=max\u0026auto=format\u0026n=12fbZITjhjaHP-wP\u0026q=85\u0026s=cefb1a32385dbab34dc6e5b2ea0d4818","dark":"https://mintcdn.com/kych-api/PsI7KkhyZoJkzvCm/logo/dark.svg?fit=max\u0026auto=format\u0026n=PsI7KkhyZoJkzvCm\u0026q=85\u0026s=e304f042b070b38e4afec71272133af3"},"favicon":"https://mintcdn.com/kych-api/7i7tXOdK23ubC-dK/favicon.svg?fit=max\u0026auto=format\u0026n=7i7tXOdK23ubC-dK\u0026q=85\u0026s=5f605ec12d2a5c2ef75f9f1bec697f88","api":{"openapi":["openapi/kych-public-v1.0.yaml"],"params":{"expanded":"all","post":["nullable","x-internal"]},"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["curl","javascript","php","java"],"prefill":true,"autogenerate":true},"url":"full"},"appearance":{"default":"light"},"navbar":{"links":[{"href":"mailto:support@Kychospitality.com","label":"Support"}],"primary":{"type":"button","label":"KYC","href":"https://www.kychospitality.com/"}},"footer":{"socials":{"website":"https://www.kychospitality.com/"}},"icons":{"library":"fontawesome"},"banner":{"content":"⚠️ Alpha: API is not yet available","dismissible":false,"type":"warning"},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kych-api","hasAudioNarration":false,"actualSubdomain":"kych-api","customDomains":["api-docs.kychospitality.com"],"gitSource":{"type":"gitlab","owner":"kych-software/projects","repo":"kych-public-api","deployBranch":"master","contentDirectory":"docs","isPrivate":true,"projectId":85246669,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae8da2086742ac67233d271","collectionId":"cb2ef1e9-4e1c-4bcb-922a-b2c9b7723ddb","liveDeploymentHistoryId":"6ae8da2086742ac67233d271","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae8da2086742ac67233d271","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Guides","count":17},{"language":"default","tag":"API Reference","count":6},{"language":"default","tag":"Webhooks","count":6},{"language":"default","tag":"Using the API","count":4},{"language":"default","tag":"Core Concepts","count":4},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"Properties","count":2},{"language":"default","tag":"System","count":2},{"language":"default","tag":"Authentication \u0026 Security","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/webhooks/guestcomm-message-created","slug":"/api-reference/webhooks/guestcomm-message-created","pageMetadata":{"openapi":"openapi/kych-public-v1.0.yaml webhook guestcomm.message.created","title":"Guest message created","description":"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel.\n\nThe payload carries IDs and metadata only: never the message body, attachments, or the guest's name, phone or email. Fetch those through the API.\n","href":"/api-reference/webhooks/guestcomm-message-created"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The payload carries IDs and metadata only: never the message body, attachments, or the guest’s name, phone or email. Fetch those through the API.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"openapi/kych-public-v1.0.yaml webhook guestcomm.message.created","title":"Guest message created","description":"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel.\n\nThe payload carries IDs and metadata only: never the message body, attachments, or the guest's name, phone or email. Fetch those through the API.\n","href":"/api-reference/webhooks/guestcomm-message-created"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"guestcommMessageCreated","tags":["Webhooks"],"summary":"Guest message created","description":"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel.\n\nThe payload carries IDs and metadata only: never the message body, attachments, or the guest's name, phone or email. Fetch those through the API.\n","parameters":["d65aa0d4-7c12-4dee-8dcb-39c6a3f32723","7d55c468-f0ca-4ba6-8cc2-90df0468cfbb","eb002eaa-5508-4549-8e73-f470ea287f54","3713d23f-6e09-4b28-8d85-f84f1784e17f","5d027480-10f4-4e07-a5d1-89e311ecb229"],"requestBody":"638c2ec9-91a9-4cf6-8f24-a507a62f6e89","responses":{"410":"ff9e00ec-d4b9-46c7-be21-cbeadc7d985d","2XX":"c5a8d8bc-511c-4983-bd74-0688378ffcf8","default":"5aec4710-2ab3-4a9a-9996-f3510e6f692b"},"method":"post","type":"webhook","servers":["da463b40-c5e0-4513-ac00-44d23c4ff243"],"security":["5437c725-2a13-40b0-86d7-d4752b01d89f"],"path":"guestcomm.message.created","baseUrlOptions":["https://{service}.{brand}.kych.co/v1"],"title":"Guest message created","codeSamples":[],"requestExampleLanguages":["bash","javascript","php","java"],"requiredOnlyExamples":false,"requestExamples":[{"language":"json","filename":"incomingSms","code":"{\n \"data\": {\n \"object\": \"event\",\n \"id\": \"0193b2f0-7c1e-7a4b-9f3d-2e6c8a1b5d40\",\n \"type\": \"guestcomm.message.created\",\n \"apiVersion\": \"2026-11-01\",\n \"occurredAt\": \"2026-10-30T09:14:02.000Z\",\n \"propertyId\": \"4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b\",\n \"resource\": {\n \"object\": \"guestcomm.message\",\n \"id\": \"9c8b1e4f-3a2d-4c5b-8e7f-1a2b3c4d5e6f\",\n \"threadId\": \"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a\",\n \"guestId\": \"7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928\",\n \"direction\": \"incoming\",\n \"channel\": \"sms\",\n \"providerMessageId\": \"SM8f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c\"\n }\n },\n \"meta\": {\n \"deliveryId\": \"0193b2f0-7c20-7d11-8e2a-3f4b5c6d7e8f\",\n \"attempt\": 1,\n \"timestamp\": \"2026-10-30T09:14:03.120Z\"\n }\n}"},{"language":"json","filename":"outgoingWhatsappRetry","code":"{\n \"data\": {\n \"object\": \"event\",\n \"id\": \"0193b2f4-1a2b-7c3d-8e4f-5a6b7c8d9e0f\",\n \"type\": \"guestcomm.message.created\",\n \"apiVersion\": \"2026-11-01\",\n \"occurredAt\": \"2026-10-30T10:02:45.000Z\",\n \"propertyId\": \"4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b\",\n \"resource\": {\n \"object\": \"guestcomm.message\",\n \"id\": \"2b3c4d5e-6f70-4a81-92b3-c4d5e6f7a8b9\",\n \"threadId\": \"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a\",\n \"guestId\": \"7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928\",\n \"direction\": \"outgoing\",\n \"channel\": \"whatsapp\",\n \"providerMessageId\": null\n }\n },\n \"meta\": {\n \"deliveryId\": \"0193b2f4-1a2d-7e5f-9a0b-1c2d3e4f5a6b\",\n \"attempt\": 2,\n \"timestamp\": \"2026-10-30T10:03:51.402Z\"\n }\n}"}],"requestExampleType":"webhook","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.data.object":"event","body.data.id":"0193b2f0-7c1e-7a4b-9f3d-2e6c8a1b5d40","body.data.type":"guestcomm.message.created","body.data.apiVersion":"2026-11-01","body.data.occurredAt":"2026-10-30T09:14:02.000Z","body.data.propertyId":"4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b","body.data.resource.object":"guestcomm.message","body.data.resource.id":"9c8b1e4f-3a2d-4c5b-8e7f-1a2b3c4d5e6f","body.data.resource.threadId.oneOf.0":"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a","body.data.resource.guestId.oneOf.0":"7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928","body.data.resource.direction":"incoming","body.data.resource.channel":"sms","body.data.resource.providerMessageId.oneOf.0":"SM8f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c","body.meta.deliveryId":"0193b2f0-7c20-7d11-8e2a-3f4b5c6d7e8f","body.meta.attempt":1,"body.meta.timestamp":"2026-10-30T09:14:03.120Z"},{"body.data.object":"event","body.data.id":"0193b2f4-1a2b-7c3d-8e4f-5a6b7c8d9e0f","body.data.type":"guestcomm.message.created","body.data.apiVersion":"2026-11-01","body.data.occurredAt":"2026-10-30T10:02:45.000Z","body.data.propertyId":"4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b","body.data.resource.object":"guestcomm.message","body.data.resource.id":"2b3c4d5e-6f70-4a81-92b3-c4d5e6f7a8b9","body.data.resource.threadId.oneOf.0":"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a","body.data.resource.guestId.oneOf.0":"7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928","body.data.resource.direction":"outgoing","body.data.resource.channel":"whatsapp","body.meta.deliveryId":"0193b2f4-1a2d-7e5f-9a0b-1c2d3e4f5a6b","body.meta.attempt":2,"body.meta.timestamp":"2026-10-30T10:03:51.402Z"}],"urlDisplay":"full"},"dependencies":{"parameters":{"d65aa0d4-7c12-4dee-8dcb-39c6a3f32723":{"name":"webhook-id","in":"header","required":true,"description":"The event ID, the same as `data.id`. Stable across retries: use it to deduplicate. Part of the signed content.\n","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The event ID, the same as `data.id`. Stable across retries: use it to deduplicate. Part of the signed content.\n","uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"0193b2f0-7c1e-7a4b-9f3d-2e6c8a1b5d40"},"7d55c468-f0ca-4ba6-8cc2-90df0468cfbb":{"name":"webhook-timestamp","in":"header","required":true,"description":"Unix time in seconds when this attempt was sent. New on every attempt. Part of the signed content. Reject a request whose timestamp is more than 5 minutes from your clock.\n","schema":{"type":"string","pattern":"^[0-9]{1,12}$","isRequired":true,"description":"Unix time in seconds when this attempt was sent. New on every attempt. Part of the signed content. Reject a request whose timestamp is more than 5 minutes from your clock.\n","uniqueKey":"","typeLabel":"string"},"example":"1761815643"},"eb002eaa-5508-4549-8e73-f470ea287f54":{"name":"webhook-signature","in":"header","required":true,"description":"One or more space-separated signatures, each `v1,` followed by the base64 HMAC-SHA256 of `{webhook-id}.{webhook-timestamp}.{raw body}`, keyed with your signing secret (the bytes after decoding the base64 part of `whsec_…`). Two are sent while a rotated-out secret is in its 24-hour grace period. Accept the request if any one matches.\n","schema":{"type":"string","pattern":"^v1,[A-Za-z0-9+/]+={0,2}( v1,[A-Za-z0-9+/]+={0,2})*$","isRequired":true,"description":"One or more space-separated signatures, each `v1,` followed by the base64 HMAC-SHA256 of `{webhook-id}.{webhook-timestamp}.{raw body}`, keyed with your signing secret (the bytes after decoding the base64 part of `whsec_…`). Two are sent while a rotated-out secret is in its 24-hour grace period. Accept the request if any one matches.\n","uniqueKey":"","typeLabel":"string"},"example":"v1,g0hM9SsE+OTPJTGt/tmIKtSyZlE3uFJELVlNIOLJ1OE="},"3713d23f-6e09-4b28-8d85-f84f1784e17f":{"name":"Kyc-Delivery-Id","in":"header","required":true,"description":"This delivery of the event to your endpoint, the same as `meta.deliveryId`. Quote it to KYC support when asking about a delivery. Not part of the signed content.\n","schema":{"type":"string","format":"uuid","isRequired":true,"description":"This delivery of the event to your endpoint, the same as `meta.deliveryId`. Quote it to KYC support when asking about a delivery. Not part of the signed content.\n","uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"0193b2f0-7c20-7d11-8e2a-3f4b5c6d7e8f"},"5d027480-10f4-4e07-a5d1-89e311ecb229":{"name":"User-Agent","in":"header","required":true,"description":"Identifies KYC webhook requests.","schema":{"type":"string","const":"KYCH-Webhooks/1.0","isRequired":true,"description":"Identifies KYC webhook requests.","uniqueKey":"","typeLabel":"string"},"example":"KYCH-Webhooks/1.0"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"The body of every webhook request: the event in `data`, this delivery attempt in `meta`. Mirrors the API's `{ data, meta }` success envelope. Ignore fields you don't recognise.\n","required":["data","meta"],"properties":{"data":{"type":"object","description":"What happened. Identical, byte for byte, on every retry of the event.","required":["object","id","type","apiVersion","occurredAt","propertyId","resource"],"properties":{"object":{"type":"string","const":"event","description":"Resource type discriminator.","isRequired":true,"uniqueKey":"data.object","typeLabel":"string"},"id":{"type":"string","format":"uuid","description":"Event ID, also sent as the `webhook-id` header. Your deduplication key.","examples":["0193b2f0-7c1e-7a4b-9f3d-2e6c8a1b5d40"],"isRequired":true,"uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","description":"Event type, `module.object.action`. Each type is documented as its own webhook. Ignore types you don't handle; new ones are added without notice.\n","const":"guestcomm.message.created","example":"guestcomm.message.created","isRequired":true,"uniqueKey":"data.type","typeLabel":"string"},"apiVersion":{"type":"string","description":"Payload schema version: the date it was introduced. Payloads change only additively within a version (Decision 32 records this exception to Decision 3).\n","examples":["2026-11-01"],"isRequired":true,"uniqueKey":"data.apiVersion","typeLabel":"string"},"occurredAt":{"type":"string","format":"date-time","description":"When the event happened (UTC). Use it, not delivery order, to sequence events.","examples":["2026-10-30T09:14:02.000Z"],"isRequired":true,"uniqueKey":"data.occurredAt","typeLabel":"string\u003cdate-time>"},"propertyId":{"type":"string","format":"uuid","description":"The property the event belongs to, as used in the `Kyc-Property-Id` header.","examples":["4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b"],"isRequired":true,"uniqueKey":"data.propertyId","typeLabel":"string\u003cuuid>"},"resource":{"type":"object","description":"A message on a guest conversation, as a thin reference: IDs and metadata only. Never the body, attachments, or the guest's name, phone or email.\n","required":["object","id","threadId","guestId","direction","channel","providerMessageId"],"properties":{"object":{"type":"string","description":"Resource type discriminator. Dotted to mirror the event naming (Decision 32).","const":"guestcomm.message","isRequired":true,"uniqueKey":"data.resource.object","typeLabel":"string"},"id":{"type":"string","description":"Message UUID.","format":"uuid","isRequired":true,"uniqueKey":"data.resource.id","typeLabel":"string\u003cuuid>"},"threadId":{"oneOf":[{"type":"string","description":"The conversation the message belongs to.","format":"uuid","isRequired":true,"uniqueKey":"data.resource.threadId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"The conversation the message belongs to.","format":"uuid","isRequired":true,"uniqueKey":"data.resource.threadId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.resource.threadId","typeLabel":"string\u003cuuid> | null"},"guestId":{"oneOf":[{"type":"string","description":"The guest on the conversation. `null` when the conversation isn't linked to a guest record.","format":"uuid","isRequired":true,"uniqueKey":"data.resource.guestId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"The guest on the conversation. `null` when the conversation isn't linked to a guest record.","format":"uuid","isRequired":true,"uniqueKey":"data.resource.guestId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.resource.guestId","typeLabel":"string\u003cuuid> | null"},"direction":{"type":"string","description":"`incoming`: from the guest to the hotel. `outgoing`: from the hotel (staff or automation) to the guest.\n","enum":["incoming","outgoing"],"isRequired":true,"uniqueKey":"data.resource.direction","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","description":"How the message was sent, e.g. `sms`, `whatsapp`, `email`, `web-app`, `line`, `wechat`, `messenger`. New values are added without notice; treat unknown ones as \"other\".\n","example":"sms","isRequired":true,"uniqueKey":"data.resource.channel","typeLabel":"string"},"providerMessageId":{"oneOf":[{"type":"string","description":"The messaging provider's ID for the message, when known. Often `null` for outgoing messages, whose provider ID arrives after the event.\n","example":"SM8f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c","isRequired":true,"uniqueKey":"data.resource.providerMessageId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The messaging provider's ID for the message, when known. Often `null` for outgoing messages, whose provider ID arrives after the event.\n","example":"SM8f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c","isRequired":true,"uniqueKey":"data.resource.providerMessageId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.resource.providerMessageId","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.resource","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"description":"This delivery attempt. Changes on every retry and is not part of the event.","required":["deliveryId","attempt","timestamp"],"properties":{"deliveryId":{"type":"string","format":"uuid","description":"This event's delivery to your endpoint, also sent as the `Kyc-Delivery-Id` header.","examples":["0193b2f0-7c20-7d11-8e2a-3f4b5c6d7e8f"],"isRequired":true,"uniqueKey":"meta.deliveryId","typeLabel":"string\u003cuuid>"},"attempt":{"type":"integer","minimum":1,"description":"Attempt number, starting at 1.","examples":[1],"isRequired":true,"uniqueKey":"meta.attempt","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","description":"When this attempt was sent (UTC), with milliseconds. The same moment as the `webhook-timestamp` header.","examples":["2026-10-30T09:14:03.120Z"],"isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"incomingSms":{"title":"incomingSms","value":{"data":{"object":"event","id":"0193b2f0-7c1e-7a4b-9f3d-2e6c8a1b5d40","type":"guestcomm.message.created","apiVersion":"2026-11-01","occurredAt":"2026-10-30T09:14:02.000Z","propertyId":"4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b","resource":{"object":"guestcomm.message","id":"9c8b1e4f-3a2d-4c5b-8e7f-1a2b3c4d5e6f","threadId":"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a","guestId":"7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928","direction":"incoming","channel":"sms","providerMessageId":"SM8f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c"}},"meta":{"deliveryId":"0193b2f0-7c20-7d11-8e2a-3f4b5c6d7e8f","attempt":1,"timestamp":"2026-10-30T09:14:03.120Z"}}},"outgoingWhatsappRetry":{"title":"outgoingWhatsappRetry","value":{"data":{"object":"event","id":"0193b2f4-1a2b-7c3d-8e4f-5a6b7c8d9e0f","type":"guestcomm.message.created","apiVersion":"2026-11-01","occurredAt":"2026-10-30T10:02:45.000Z","propertyId":"4a2f0c10-2e7a-4b9d-9b3a-1f0c9e8d7a6b","resource":{"object":"guestcomm.message","id":"2b3c4d5e-6f70-4a81-92b3-c4d5e6f7a8b9","threadId":"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a","guestId":"7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928","direction":"outgoing","channel":"whatsapp","providerMessageId":null}},"meta":{"deliveryId":"0193b2f4-1a2d-7e5f-9a0b-1c2d3e4f5a6b","attempt":2,"timestamp":"2026-10-30T10:03:51.402Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"ff9e00ec-d4b9-46c7-be21-cbeadc7d985d":{"description":"Stop sending. KYC disables the endpoint at once and sends nothing more until it is re-enabled. Use this only when the endpoint is retired for good.\n","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"c5a8d8bc-511c-4983-bd74-0688378ffcf8":{"description":"Received. Respond within 10 seconds, before doing the work: queue the event and process it afterwards. The response body is ignored.\n","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"5aec4710-2ab3-4a9a-9996-f3510e6f692b":{"description":"Any other response, a timeout (10 seconds) or a connection error. 408, 429, 5xx, timeouts and connection errors are retried for up to 8 attempts over about 31 hours, honouring `Retry-After` up to an hour. 3xx and other 4xx responses are retried once, then the delivery fails. Redirects are never followed.\n","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"5437c725-2a13-40b0-86d7-d4752b01d89f":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token: `Authorization: Bearer kyc_live_...`. Keys are prefixed `kyc_live_` (production) or `kyc_test_` (test mode). OAuth2 access tokens (also `Bearer`) may be supported later — the header never changes.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"da463b40-c5e0-4513-ac00-44d23c4ff243":{"url":"https://{service}.{brand}.kych.co/v1","description":"Production. Brand is the host; the path is brand-agnostic.","variables":{"service":{"default":"public-api","description":"API service label (not yet finalized — `public-api` or `api`)."},"brand":{"default":"hilton","description":"Brand subdomain, e.g. `hilton`."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token: `Authorization: Bearer kyc_live_...`. Keys are prefixed `kyc_live_` (production) or `kyc_test_` (test mode). OAuth2 access tokens (also `Bearer`) may be supported later — the header never changes.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key sent as a bearer token: `Authorization: Bearer kyc_live_...`. Keys are prefixed `kyc_live_` (production) or `kyc_test_` (test mode). OAuth2 access tokens (also `Bearer`) may be supported later — the header never changes.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/kych-public-v1.0.yaml"},"subdomain":"kych-api","siteName":"KYCH Public API","title":"Guest message created - KYCH Public API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T18:44:53.996Z","originalFileLocation":"api-reference/webhooks/guestcomm-message-created.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel. The payload carries IDs and metadata only: never the message body, attachments, or the guest\u0026#x27;s name, phone or email. Fetch those through the API.\">\u003cmeta data-mint-head name=\"application-name\" content=\"KYCH Public API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Guest message created - KYCH Public API\">\u003cmeta data-mint-head property=\"og:description\" content=\"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel. The payload carries IDs and metadata only: never the message body, attachments, or the guest\u0026#x27;s name, phone or email. Fetch those through the API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"KYCH Public API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kych-api.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Guest+message+created\u0026amp;description=A+new+message+on+a+guest+conversation%2C+inbound+%28from+the+guest%29+or+outbound+%28to+the+guest%29%2C+on+any+channel.%0A%0AThe+payload+carries+IDs+and+metadata+only%3A+never+th\u0026amp;theme=3410fee5fe2c7746c39aa71b\u0026amp;signature=db648661c81e39f0f847b52694d81e0532a8809d0b0db220fa6819daecad84ed\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Guest message created - KYCH Public API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel. The payload carries IDs and metadata only: never the message body, attachments, or the guest\u0026#x27;s name, phone or email. Fetch those through the API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kych-api.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Guest+message+created\u0026amp;description=A+new+message+on+a+guest+conversation%2C+inbound+%28from+the+guest%29+or+outbound+%28to+the+guest%29%2C+on+any+channel.%0A%0AThe+payload+carries+IDs+and+metadata+only%3A+never+th\u0026amp;theme=3410fee5fe2c7746c39aa71b\u0026amp;signature=db648661c81e39f0f847b52694d81e0532a8809d0b0db220fa6819daecad84ed\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kych-api/bxdh40ZXYcV5JwSd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"KYCH Public API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#007799\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/webhooks/guestcomm-message-created.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api-docs.kychospitality.com/#organization\",\"name\":\"KYCH Public API\",\"url\":\"https://api-docs.kychospitality.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kych-api/12fbZITjhjaHP-wP/logo/KYC_Logo2019_LG.png?fit=max\u0026auto=format\u0026n=12fbZITjhjaHP-wP\u0026q=85\u0026s=cefb1a32385dbab34dc6e5b2ea0d4818\"}},{\"@type\":\"WebSite\",\"@id\":\"https://api-docs.kychospitality.com#website\",\"name\":\"KYCH Public API\",\"url\":\"https://api-docs.kychospitality.com\",\"publisher\":{\"@id\":\"https://api-docs.kychospitality.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created#webpage\",\"url\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created\",\"name\":\"Guest message created\",\"description\":\"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel. The payload carries IDs and metadata only: never the message body, attachments, or the guest's name, phone or email. Fetch those through the API.\",\"dateModified\":\"2026-11-02T18:44:53.996Z\",\"isPartOf\":{\"@id\":\"https://api-docs.kychospitality.com#website\"},\"breadcrumb\":{\"@id\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"KYCH Public API\",\"item\":\"https://api-docs.kychospitality.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guest message created\",\"item\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created#apireference\",\"headline\":\"Guest message created\",\"name\":\"Guest message created\",\"description\":\"A new message on a guest conversation, inbound (from the guest) or outbound (to the guest), on any channel. The payload carries IDs and metadata only: never the message body, attachments, or the guest's name, phone or email. Fetch those through the API.\",\"url\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created\",\"mainEntityOfPage\":{\"@id\":\"https://api-docs.kychospitality.com/api-reference/webhooks/guestcomm-message-created#webpage\"},\"dateModified\":\"2026-11-02T18:44:53.996Z\",\"publisher\":{\"@id\":\"https://api-docs.kychospitality.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api-docs.kychospitality.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"KYCH Public API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"KYCH Public API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/guests"}]},{"tab":"API Reference","pages":[{"group":"System","pages":[{"openapi":"get /","title":"Get API info","href":"/api-reference/system/get-api-info"},{"openapi":"get /health","title":"Health check","href":"/api-reference/system/health-check"}]},{"group":"Properties","pages":[{"openapi":"get /properties","title":"List properties","href":"/api-reference/properties/list-properties"},{"openapi":"get /properties/{propertyId}","title":"Get a property","description":"Returns a single property by ID. The path parameter is the property, so **no `Kyc-Property-Id` header** is needed. 404 if the ID does not exist or your key cannot access it.\n","href":"/api-reference/properties/get-a-property"}]},{"group":"Webhooks","pages":[{"openapi":"openapi/kych-public-v1.0.yaml webhook guestcomm.message.created","title":"Guest message created","href":"/api-reference/webhooks/guestcomm-message-created"},{"openapi":"openapi/kych-public-v1.0.yaml webhook webhook.ping","title":"Ping","description":"A test event, sent only when you or KYC ask for one, to check that your endpoint receives and verifies webhooks. It is never sent on its own. It has no resource: `resource.id` is `null`.\n","href":"/api-reference/webhooks/webhook-ping"}]}]}]},"basePath":"","title":"Guest message created - KYCH Public API","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}