Webhook

circle-info

You may find more specialised integration guidance in the developer documentation: Developer Documentation - Webhook Integration Guidearrow-up-right

What is a Webhook

A webhook is an event-driven HTTP callback mechanism. When a specific event occurs within the YCloud system, it proactively pushes the event data via an HTTPS request to a pre-configured URL (the webhook address), thereby eliminating the need for frequent interface polling.

Create a Webhook

1. Add a Webhook endpoint.

Log in to the YCloud dashboard, navigate to Developer > Webhooks, and click Add Endpoints to create a webhook endpoint.

2. Enter the endpoint address to monitor relevant events.

YCloud offers various event options for WhatsApp, SMS, Contact, Email, and more.

circle-info

You may find all relevant payloads for the events here: Webhook Payloadarrow-up-right

3. Verify Webhook Signature (Optional)

circle-info

Always verify the signature to ensure the request originates from YCloud and has not been tampered with.

Signature format:

Verification algorithm:

  1. Extract the timestamp (t) and signature (s) from the request header (The timestamp is a Unix timestamp in seconds) .

  2. Construct the signed payload: signed_payload: {timestamp}.{request_body}.

  3. Compute the signature using the HMAC-SHA256 algorithm:

  4. Compare the computed signature with the received signature.

4. Respond Webhook

  1. Return a 2xx status code (e.g. 200, 201, 204)

    • Any non-2xx response will trigger a retry.

  2. Fast response (recommended within 6 seconds)

    • Fast responses increase your webhook priority.

    • Slow responses (>10 seconds) may be deprioritised.

  3. Asynchronous processing (recommended)

    • Immediately return 200 OK.

    • Process events in background jobs/queues.

Error handling

Retry mechanism:

Should your service return a non-2xx status code or fail to respond, YCloud will automatically retry:

  • Retry schedule: 10 seconds β†’ 30 seconds β†’ 5 minutes β†’ 30 minutes β†’ 1 hour β†’ 2 hours β†’ 2 hours.

  • Maximum retry count: 7 times.

  • After 7 failures: The event will no longer be retried.

URL suspension:

To safeguard system resources, frequently failing URLs will be temporarily suspended:

  • Trigger conditions: 200 failures per minute or cumulative failure time exceeding 10 minutes per minute

  • Suspension duration: 3 minutes

  • During suspension: No webhook requests will be sent

  • After suspension: Automatic restoration

Last updated

Was this helpful?