leave.approved
Leave was approved: by its last approval step, recorded by HR or through the API, or approved at once (a type recorded without approval, such as sick leave by default, or an organisation that approves none). Its days come off the balance. A private type of leave (sick and maternity by default) comes back as kind: away, without its type, reason
or note.
Agoo sends this as a signed POST to every enabled endpoint subscribed to leave.approved (or *). Verify the
signature, return any 2xx within 15 seconds, and de-duplicate on webhook-id.
webhook-id*stringThe event's ID. It is the same on every attempt and redelivery, so use it to de-duplicate.
^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$"evt_01m4ww0ezgf2bryg9gxb2gbewx"webhook-timestamp*stringWhen this attempt was signed, in Unix seconds. Reject the request if it is more than 5 minutes from your clock.
^[0-9]+$webhook-signature*stringOne or more space-separated signatures, each v1,<base64>: the base64 HMAC-SHA256 of
{webhook-id}.{webhook-timestamp}.{raw body}, keyed with the base64-decoded part of your whsec_ secret.
During a secret rotation there are two. Accept the request if any one matches.
application/json- body
An event about a leave request.
id*EventIdThe event's ID. Webhook deliveries send it as webhook-id.
^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$"evt_01m4ww0ezgf2bryg9gxb2gbewx"created_at*stringWhen the event happened.
date-timeorganisation_id*OrganisationIdAn organisation ID (TypeID with the org prefix).
^org_[0-7][0-9a-hjkmnp-tv-z]{25}$"org_01kjpsrza0etzb0a4vf72x8ang"livemode*booleanfalse for events in test mode.
type*string"leave.requested""leave.approved""leave.declined""leave.cancelled"data*Return any 2xx status within 15 seconds to acknowledge the event. Agoo ignores the response body, so
acknowledge first and do slow work afterwards.
Example Requests
/leave.approvedleave.requested Webhook
Someone asked for leave (in Agoo Workspace, or the request was made for them) and it waits for a decision by your organisation's approval steps. A private type of leave (sick and maternity by default) comes back as `kind: away`, without its type, reason or note. Agoo sends this as a signed `POST` to every enabled endpoint subscribed to `leave.requested` (or `*`). Verify the signature, return any `2xx` within 15 seconds, and de-duplicate on `webhook-id`.
leave.declined Webhook
A leave request was declined, with a note the person sees (null for a private type). A private type of leave (sick and maternity by default) comes back as `kind: away`, without its type, reason or note. Agoo sends this as a signed `POST` to every enabled endpoint subscribed to `leave.declined` (or `*`). Verify the signature, return any `2xx` within 15 seconds, and de-duplicate on `webhook-id`.