POST to your endpoint for each event you subscribe to.
Each request is signed, so you can check that it came from KYC and wasn’t changed on the way.
Events
Event types are named
module.object.action.
New event types are added over time, and you only receive the ones you subscribe to.
Setting up an endpoint
KYC sets up your endpoint. You can’t create or change one through the API. Send KYC:- The URL. It must be HTTPS on port 443, with a publicly trusted certificate.
- The event types you want, or all public event types.
- The property, or all properties in the brand.
- An optional credential header, such as
X-Api-Key: <value>. KYC sends it with every request, so your endpoint can authenticate KYC before it checks the signature.
whsec_.
It is shown only once, so store it securely, for example in a secrets manager.
Ask KYC for a ping to test your endpoint.
What a request looks like
{ data, meta } envelope as API responses:
datais the event. It is identical on every retry. Itsidis also thewebhook-idheader.metais this delivery attempt. It changes on every retry.
Payloads carry IDs, not content
data.resource holds IDs and metadata only.
It never contains message text, attachments, or guest personal data such as names, phone numbers or email addresses.
Use the IDs to fetch the details you need through the API, with your usual credentials.
This keeps personal information behind API authentication, and you always get current data, even when a retry arrives late.
API endpoints for guest messages are not yet published. Ask KYC about access in the meantime.
Next steps
- Verify signatures on every request.
- Check the receiver requirements.
- Learn how retries and auto-disable work.
