Skip to content

Webhook Management

On the webhooks page, you can manage webhook endpoints that will be called when certian events happen on the server.

Webhook response codes

Any status code other than 2xx will be considered an error

Validating payloads

With every payload, the X-Binja-Signature header will contain the hex digest of HMAC_SHA256(<webhook secret>, <request body>).

For example, to validate a payload in flask:

import hmac

from flask import Flask, request, abort

app = Flask(__name__)

@app.route("/", methods=['POST'])
def validate_webhook():
    expected = request.headers.get("X-Binja-Signature")
    if not expected:
        abort(400, "X-Hub-Signature required")

    digest = hmac.new(<webhook secret>, request.data, "sha256").hexdigest()

    if not hmac.compare_digest(expected, digest):
        abort(400, "Invalid signature")
    return ""

Payload format

Common fields

Key Type Description
event_id string Unique event identifier
event_type string Either create or delete
object_type string Type of object to which the event applies
data object Object containing data specific to the object_type

Data formats

Chat message

object_type
chat message
Key Type Description
project_file string ID of project file in which the message was sent
sender string Username of sender
message string Contents of message
timestamp string Timestamp of message (ISO 8601 format)

Project

object_type
project
Key Type Description
id string Unique project identifier
name string Project name
description string Project description
created string Date/time of project creation (ISO 8601 format)

Project file

object_type
project file
Key Type Description
id string Unique project file identifier
project string Unique identifier of project containing the project file
name string Project file name
description string Project file description
hash string Hash of project file contents
created string Date/time of project file creation (ISO 8601 format)

Snapshot

object_type
snapshot
Key Type Description
id string Unique snapshot identifier
project_file string Unique identifier of project file containing the snapshot
name string Project file name
author string Username of user that created the snapshot
created string Date/time of project file creation (ISO 8601 format)

Example payload

{
  "data": {
    "created": "2022-05-03T20:54:34.050Z",
    "description": "A new project",
    "id": "3864aa48-85e9-4781-b8fc-d66c409de0ed",
    "name": "New project"
  },
  "event_id": "6ce49d59-1dc6-49fa-a987-4a46b789ae3f",
  "event_type": "create",
  "object_type": "project"
}