An alert was resolved
One or more thresholds that had triggered the alert are no longer in alarm.
Only thresholds with resolved in their notify_on are announced, and only when Lago recorded an alarm for their code. A threshold that was already in alarm when it was created or opted in is recorded silently, so its first recovery is announced without an earlier alert.triggered. Pairing is by threshold code: a threshold replaced by another one with the same code resolves the alarm the first one raised.
Headers
Signature of the webhook payload. The format depends on X-Lago-Signature-Algorithm: hmac is the Base64 encoding of an HMAC-SHA256 digest of the payload, jwt is an RS256 JSON Web Token (a string starting with eyJ).
Algorithm used to generate the signature
Unique id of the webhook. It can be used for idempotency
Payload
Example payload
{
"organization_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"resolved_alert": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"lago_organization_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"lago_alert_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"lago_subscription_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"external_subscription_id": "sub_1234567890",
"external_customer_id": "cust_1234567890",
"billable_metric_code": "storage_usage",
"alert_type": "billable_metric_current_usage_amount",
"alert_code": "storage_threshold_alert",
"alert_name": "Storage Usage Alert",
"current_value": "700.0",
"previous_value": "1200.0",
"recovered_thresholds": [
{
"code": "warn",
"value": "99.0"
}
],
"in_alarm_thresholds": [
"warning"
],
"reason": "recovered",
"resolved_at": "2025-05-19T10:04:21Z"
}
}Response
Return a 200 status to indicate that the data was received successfully
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.