Skip to main content
Webhooks push events from Reinx to your own infrastructure as signed HTTPS POSTs — transactions completing, approvals resolving, agents changing state. Use them to keep your systems in sync without polling. Endpoints are configured per organization in Settings → Webhooks in the dashboard, or via the API with a session token (Owner or Admin role required).

Creating an endpoint

The response includes the endpoint plus a signing secret (whsec_…). It is shown once — store it immediately; it can’t be retrieved later, only rotated.

Event types

Scope filtering

An organization-scoped endpoint receives every matching event in the org. project, team, and agent scopes deliver only events whose project/team/agent matches one of the endpoint’s scopeIds. Multiple endpoints can coexist — every endpoint whose scope and event types match receives its own delivery.

The delivery request

Each delivery is an HTTPS POST with these headers: And a JSON body:
project_id, team_id, agent_id, and agent_name are present on agent-related events; org-level events (billing, funding) omit them.

Verifying signatures

Every delivery is signed with your endpoint’s secret: HMAC-SHA256(secret, "<timestamp>.<raw body>"), hex-encoded, prefixed sha256=. Always verify against the raw request bytes, before any JSON parsing or re-serialization. During the 24-hour window after a secret rotation, Reinx-Signature carries two comma-separated signatures (one per secret) — accept the delivery if any of them matches yours.
Respond with any 2xx status within 15 seconds to acknowledge. Anything else — including a timeout — counts as a failure and is retried.

Retries and auto-disable

Delivery is at-least-once: a delivery is attempted up to 5 times, backing off after each failure — 5 minutes, 30 minutes, 2 hours, then 8 hours. Retries reuse the same Reinx-Delivery-Id, so deduplicate on it. After 10 consecutive failed deliveries, the endpoint is automatically disabled (isActive: false) and its queued deliveries are dropped. Check the endpoint’s status and delivery log in Settings → Webhooks; fix your receiver, then re-enable the endpoint there (or via PUT /v1/webhooks/:id), which resets the failure counter.

Rotating the secret

Returns the new secret (again shown once) plus secretPreviousExpiresAt. For the next 24 hours deliveries are signed with both the new and old secrets, so you can deploy the new secret to your receiver without dropping events. After the window only the new secret signs.

Testing an endpoint

Sends a synthetic signed event (data: { "test": true, … }) to your URL and returns the HTTP status and response time. Test sends appear in the delivery log flagged as tests and never count toward the auto-disable failure threshold.

Delivery log

Recent deliveries with status, HTTP response code, response time, and failure reason — also visible per-endpoint in the dashboard.