Webhooks

Webhooks

Real-time notifications when payment events occur.

Register an HTTPS endpoint, and Harpoon will POST signed JSON when an event happens. Failed deliveries retry with exponential backoff.

Create an endpoint

Dashboard

Settings → Webhooks → Add Endpoint. Paste your URL, pick events, save. The signing secret is shown once.

API

Bash
POST /v1/webhooks
Authorization: Bearer hpn_live_sk_xxxxxxxxxxxxx
Content-Type: application/json

{
  "url": "https://your-server.com/webhooks/harpoon",
  "events": ["transaction.completed", "transaction.failed", "transaction.expired"],
  "description": "Production webhook"
}

Scope: webhooks:manage

JSON
{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "url": "https://your-server.com/webhooks/harpoon",
    "events": ["transaction.completed", "transaction.failed", "transaction.expired"],
    "secret": "whsec_xxxxxxxxxxxxxxxxxxxxx",
    "is_active": true,
    "created_at": "2026-04-29T12:00:00Z"
  },
  "message": "Webhook endpoint created. Save the secret now - it won't be shown again."
}

The secret is only returned at creation. Reveal it later via the dashboard with your password — see management.