Update Webhook Signature Auth

PUT /v1/endpoints/{id}/settings/webhook

Configure HMAC signature verification on inbound requests. The platform computes HMAC-<algo>(secret, raw_body) for every incoming request and compares against the value in the configured header — requests with missing or wrong signatures are rejected at the edge with 401.

This is the receiving side of webhook integrations: providers like Stripe, GitHub, or Shopify sign every webhook they send you with a shared secret, and this configuration lets you verify those signatures without writing code in your upstream service.

Pair the algorithm with the provider's expected scheme: hmac-sha256 for Stripe / GitHub, hmac-sha1 for legacy GitHub events. The header name varies (X-Hub-Signature-256, Stripe-Signature, X-Shopify-Hmac-SHA256) — set it to whatever the provider sends.

Path parameters

id string (uuid) Req
Endpoint UUID.

Request body

secret string
Shared secret. Empty disables signature checking. Stored encrypted at rest; not retrievable later (only masked on the GET endpoint).
header string
Header to read the signature from. Common values: X-Hub-Signature-256 (GitHub), Stripe-Signature (Stripe — note Stripe wraps in t=...,v1=... format), X-Shopify-Hmac-SHA256 (Shopify).
algo string
hmac-sha256 (default) or hmac-sha1. Anything else returns 400.

Response (200 OK)

Empty body on success.

Errors

400 Bad Request
Unknown fields (strict decoding), invalid JSON, or unsupported algo (only hmac-sha256/hmac-sha1 accepted).
401 Unauthorized
Missing auth.
404 Not Found
Endpoint doesn't exist or belongs to another user.
500
Database error encrypting/persisting the secret.
Request — GitHub webhook signature
curl -X PUT "https://api.ngris.com/v1/endpoints/<uuid>/settings/webhook" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{ "secret": "<your-github-webhook-secret>", "header": "X-Hub-Signature-256", "algo": "hmac-sha256" }'
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") client._put_raw("/endpoints/<endpoint_uuid>/settings/webhook", { "secret": "<your-github-webhook-secret>", "header": "X-Hub-Signature-256", "algo": "hmac-sha256", })
Response — 200 OK
Iris