Webhook JSON Schemas
Machine-readable definitions of the webhook envelopes and the announcement event.
These JSON Schemas (draft 2020-12) define what Everee sends, so you can validate requests in your handler or generate types from them. Validate the body only after you have verified the signature.
A request is a company event or a partner event, told apart by the x-everee-webhook-audience header (company or partner) or by which of companyId and partnerId is present. See the Webhooks Overview.
Company envelope
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://developer.everee.com/schemas/webhook-company-envelope.json",
"title": "Company webhook envelope",
"description": "What Everee sends to a company's webhook endpoint. A company's events always carry companyId and never partnerId.",
"type": "object",
"required": ["version", "id", "companyId", "type", "timestamp", "data"],
"not": { "required": ["partnerId"] },
"properties": {
"version": { "const": "1" },
"id": { "type": "string", "minLength": 1 },
"companyId": { "type": "integer" },
"type": { "type": "string", "minLength": 1 },
"timestamp": { "type": "integer" },
"data": {
"type": "object",
"required": ["object"],
"properties": { "object": { "type": "object" } }
}
}
}Partner envelope
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://developer.everee.com/schemas/webhook-partner-envelope.json",
"title": "Partner webhook envelope",
"description": "What Everee sends to a partner's webhook endpoint. A partner's events always carry partnerId and never companyId.",
"type": "object",
"required": ["version", "id", "partnerId", "type", "timestamp", "data"],
"not": { "required": ["companyId"] },
"properties": {
"version": { "const": "1" },
"id": { "type": "string", "minLength": 1 },
"partnerId": { "type": "integer" },
"type": { "type": "string", "minLength": 1 },
"timestamp": { "type": "integer" },
"data": {
"type": "object",
"required": ["object"],
"properties": { "object": { "type": "object" } }
}
}
}Announcement event object
The data.object of announcement.published, announcement.updated and announcement.retracted. See Announcement events.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://developer.everee.com/schemas/announcement-event-object.json",
"title": "Announcement event data.object",
"description": "The data.object of announcement.published, announcement.updated and announcement.retracted. Fields without a value are omitted. retractedAt appears only on announcement.retracted. The full text is not included: read it with the Announcements API.",
"type": "object",
"required": ["id", "kind", "category", "severity", "title", "summary", "mandatory"],
"properties": {
"id": { "type": "integer" },
"kind": { "const": "TECHNICAL" },
"category": { "enum": ["API_RELEASE", "DEPRECATION", "MAINTENANCE", "SECURITY"] },
"severity": { "enum": ["INFO", "IMPORTANT", "CRITICAL"] },
"title": { "type": "string" },
"summary": { "type": "string" },
"effectiveDate": { "type": "string", "format": "date" },
"sunsetDate": { "type": "string", "format": "date" },
"affected": { "type": "string" },
"learnMoreUrl": { "type": "string" },
"mandatory": { "type": "boolean" },
"publishedAt": { "type": "string", "format": "date-time" },
"retractedAt": { "type": "string", "format": "date-time" }
}
}These schemas describe the shape of a request and are not exhaustive for every event type: data.object is validated as an object here, and each event's own structure is on its documentation page. Everee may add fields to an object over time, so don't reject a request only because it has a field you don't know. The schemas allow extra fields.
Updated about 5 hours ago