Skip to main content
Most of what matters in this API happens after your request returns. A transfer settles, a card is authorised, a bill is vended, an account becomes payable. Webhooks are how you find out.

One endpoint, every event

A business has one active webhook endpoint per environment, and it receives every event for that business. There is no per-event subscription and no filtering — route on the event field and ignore what you do not handle. The endpoint is configured in the dashboard. There is no /v1 endpoint for managing it.

The envelope

Every request body has exactly two fields.
That is the whole envelope. There is no id, no version, no environment, and no createdAt in the body. Everything else travels as headers:
The body carries no identifier. A handler that deduplicates on data.id is deduplicating on a business object, not an event — and will drop a legitimate second event about the same object.

Two payload families

A financial payload tells you money moved and what it was for. A resource payload is a snapshot of an object, identical to what a GET would give you. See webhook events for the full catalog and both shapes.

One attempt

This is the most important operational fact about Sakawave webhooks.
Delivery is a single attempt. There is no automatic retry and no backoff. A delivery that fails — a timeout, a 500, a connection reset — is marked exhausted, and the only recovery is a manual resend from the dashboard or your own reconciliation.
That has a direct consequence: webhooks are a latency optimisation, not a source of truth. Any flow where missing an event would cost money needs a reconciliation job reading the REST resources.

The delivery contract

  1. Read the raw body. Do not parse it first.
  2. Verify the signature and a narrow timestamp window.
  3. Deduplicate on Sakawave-Webhook-Id, atomically with recording receipt.
  4. Queue the work.
  5. Return any 2xx within ten seconds.
Sakawave does not follow redirects. Keep the endpoint public over HTTPS and authenticate every request by its signature, never by network position.

Next

Introduction

What to use webhooks for, and what not to.

Get started

A receiver that verifies, deduplicates, and acknowledges.

Events

The catalog and both payload shapes.

Verify signatures

Complete handlers in Node and Python.